Main Page
From Flyingdutchmen
(→Beslissingen) |
(→Klasse-diagram) |
||
Line 84: | Line 84: | ||
* We gebruiken ook '''chain of responsability''', bv bij het opvragen v e paper. | * We gebruiken ook '''chain of responsability''', bv bij het opvragen v e paper. | ||
* Roles moeten eigenlijk maar 1 keer geinitaliseerd worden (bv iemand die voor 2 conferences COC is, hoeft maar 1 object COC in zijn roles hebben), daarom '''singelton''' | * Roles moeten eigenlijk maar 1 keer geinitaliseerd worden (bv iemand die voor 2 conferences COC is, hoeft maar 1 object COC in zijn roles hebben), daarom '''singelton''' | ||
+ | *De ProgramCommiteeModule heeft methodes isValid___Date(Date) die checken of een bepaalde date geldig is. Deze methodes gaan checken op _alle_ andere datums die al beschikbaar zijn. (Dus niet null). Zo kun je de datums ingeven in eender welke volgorde. | ||
===Beslissingen=== | ===Beslissingen=== |
Revision as of 17:51, 15 March 2008
Contents |
Info
- We mogen de counselor altijd een mail sturen en hem doorverwijzen naar de wiki om daar enkele vragen te beantwoorden. De vragen moeten dan natuurlijk heel duidelijk geformuleerd zijn.
Deadline / Doelen
- Woensdag 05/03/08: Analyse afwerken!
- Zondag 16/03/08: Implementatie af!
- Woensdag 19/03/08: Verslag af!
- Donderdag 20/03/08: Verslag indienen!
Samenkomst
- Vrijdag 22/02/08 10:35
- Maandag 25/02/08 11:00
- Donderdag 28/02/08 10:35
- Vrijdag 29/02/08 10:35
- Maandag 03/03/08 10:35
- Donderdag 06/03/08 12:00
- Maandag 10/03/08 10:35
- Donderdag 13/03/08 11:00
- Vrijdag 14/03/08 10:00
Use cases
Noot: Author en Reviewer moeten een affiliation hebben voor ze papers kunnen insturen of reviewen.
Specificatie voor elke use case
a* At anytime, the use case can be aborted.
COC
- Create New Conference (src) -> Daniel (Aangepast van Tuur) (Oude Versie)
PCC
- Provide Info For Call of Papers (src) -> Daniel
- Assign Papers (src)-> Kjelle
- Start selection process (src) -> Kjelle + Daniel
PC-Member
- Give Preference (src) -> Mathias
- Give Affiliation (src) -> Mathias
WSC
- Review Workshop (src) -> Mathias werkt af
- Call for Workshop (src)
- Download Workshop proposal
WSO
- Submit Workshop Proposal (src) --> Kjelle
- Modify info of WS, (src) -> Kjelle
- Read report of WS -> Kjelle
- Decide how to organize WS, (src) -> Kjelle
- OLD: Resubmit WS, (src) -> Kjelle
Reviewer
- Review Object (src) -> Daniel
- Download Object (src) -> Daniel
Domain Model van 22/02
Cedric zegt dat de reden waarom zou 2.54 hadden op dit is omdat ze ook constraints in domain model hadden gezet. Ze kregen er bonuspunten voor. Dus letterlijk een concept class "SubmitNotification" en andere deadlines en shit, en de onderlinge relaties ertussen zoals "Komt voor" enzo.
Hij zegt zelf dat onze domain model ongeveer zo ingewikkeld is nu als die van hun toen.
Dus het wordt toch tijd om wat dingen te herzien.
Domain Model van 25/02
todo: WSO --> wordt PCC + note hierbij om te verduildelijken
Design
Klasse-diagram
1. Beslissingen
- Geen database, wel managers/containers (Conference-manager en Person-manager?)
- Role base access control: Person heeft List<Role>, Role is een interface die geimplementeerd wordt door CoC, Pcc, Pc-member, Author, Wsc, Wso... met een methode getActions().
- Een Action heeft een naam en een aantal argumenten, deze worden gebruikt om de methode op te vragen via reflection(?). Subactions: ?
- voordelen: uitbreidbaarheid, geen duplicate code,
- nadelen: reflection is toch niet zo proper?
- Roles: bevatten ofwel conference/paper/ws, ofwel niet (dan kunnen ze een enumeration zijn). Information expert is namelijk de conference, rather then the role. Een role verwijderen of toevoegen is wel lastig, en niet zo leesbaar/begrijpbaar in de code.
- GUI: een guicontroller die actions omzet in methodes (een adaptor), deze methodes worden opgeroepen in de mediator in het view. De mediator kent alle buttons en menukes en zit in de view.
- We gebruiken ook chain of responsability, bv bij het opvragen v e paper.
- Roles moeten eigenlijk maar 1 keer geinitaliseerd worden (bv iemand die voor 2 conferences COC is, hoeft maar 1 object COC in zijn roles hebben), daarom singelton
- De ProgramCommiteeModule heeft methodes isValid___Date(Date) die checken of een bepaalde date geldig is. Deze methodes gaan checken op _alle_ andere datums die al beschikbaar zijn. (Dus niet null). Zo kun je de datums ingeven in eender welke volgorde.
Beslissingen
- Een role "Everyone": deze bevat dingen die iedereen moet kunnen doen, bijvoorbeeld conferences browsen. Iedereen heeft deze role vanzelf, zelfs guests.
- Affiliation: een Vector van Strings in een Person, die de naam van een company aanduiden. Een company kan waarschijnlijk beter een object zijn ipv een string?
- Exceptions worden doorgethrowed tot aan de guicontroller. Deze kan dan errorhandling zelf afhandelen (System legt dus niet op welke error messages de gui krijgt)
Vragen voor de counselor
Onbeantwoord
- Als we werken met int's ipv verwijzingen op sommige plaatsen (bijvoorbeeld int conferenceID ipv Conference conference), is dit dan coupling of niet. (Wij denken van niet)
Beantwoord
- Zie sommige van mijn (Daniel) use cases. Ik heb er "Notes" in gezet in verband met de term "being assigned a paper" en de "review deadline + one week extension". Is dit duidelijk? Moet dit beter in de glossary?
- Zie review paper/workshop. Is het correct om te stellen dat review paper eigenlijk review workshop is maar dan in de notes schrijven dat het woordje paper moet vervangen worden door workshop ipv de hele use case opnieuw te schrijven.
- Als je een super object maakt boven workshop en paper, geef het een duidelijke naam en gebruik die term dan. Hetgeen in de notes staat kan gemakkelijk ook in de glossary, zeker als het over het gebruik van een bepaald woord gaat.
- Assign workshop usecase: is goed zoals het is, met een verwijzing naar een extra specificatie (normaal aangezien er weinig interactie is met gebruiker) Zie wel dat je het consistent houdt met het feit dat het volledig automatisch gebeurt zonder interactie met de pcc.
- Role Based System: Users (Coc, PCC,...) met privileges of methodes?
- Users zelf methodes of klasses met methodes (actions/usecases)
- Users lijst met privileges, methodes in controller(s)
- Antwoord: zie blad; zet zeker in verslag wat je hebt bedacht met enkele voor en na delen. Toont dat je er over hebt nagedacht.
- Database:
- Zoals vorige keer een database nabootsen met een klasse die lijsten van objecten bevat
- Of toch beter een meer object georienteerde oplossing: een nieuwe klasse "Conference Cyber Chair System" die enkel een lijst met conferences bevat.
- Antwoord: key guideline: je moet de verantwoordelijkheid aan de juiste(logische) klasse toewijzen. Bijv: een conference manager zorgt voor low coupling, als je die elders moet halen heb je een andere (extra) koppeling. Als je een paper wilt lezen, haal je eerst de conference op en vraag je dan aan de conference om de paper. Belangrijk dat je verschillende mogelijkheden afweegt tegen elkaar, er is geen optimale oplossing.
- Onze sequence diagrams bevatten de inhoud van de system sequence diagram! Daarom was het fout.
-> ff ter verduidelijking, die sequence diagrams waren van een voorhistorisch tijdperk toen we nog niet eens met usecase controllers werkte. Dan is het nogal logisch dat die dingen compleet fout waren, maar dat is enkel artefact...
- Hoe ver moeten we gaan in de use-case specificatie.
- Hoe concreter de use-case hoe beter. Door op te splitsen in de gevallen die fout kunnen gaan, wordt alles duidelijker (wees daar dus zo specifiek mogelijk).
- Hoever moeten we gaan in het opsplitsen in stappen de use case, vooral als de stappen allemaal zonder interactie gebeuren.
- Zulke stappen mogen altijd samengenomen worden in een grote stap. De extensies moeten dan wel een beetje meer tekst bevatten. Je mag gewoon zeggen op het einde van de extensie 'resume step 1' of 'goto step 1 and resume from'
- Is het nuttig om sub-usecases te gebruiken voor de grote use cases (ook voor hergebruik)?
- Bijv. 'Download paper use case' mag perfect worden ingeplugd in de use-cases die deze gebruiken. (met include download paper use case)
- Is het goed als een use-case twee dingen bevat die te maken hebben met andere gebruikers (actoren?) (hetgeen wel lichtjes gekoppeld is).
- Geef als primary actor op PCC of PC, hereafter known as the Reviewer Of gewoon primary actor reviewer en specifieer dan later wie een reviewer kan zijn in de glossary. Moet ook duidelijk staan in het use-case-diagram (een link van twee actoren naar eenzelfde use-case).
- Een COC kan meerdere conferences organizeren, waarbij elk conference een of geen workshop commitee heeft. De COC stelt ook meerdere WSC aan voor de verschillende conferences die hij organiseert. Het probleem is nu dat we in het domain model niet kunnen opleggen dat hij enkel WSC's kan aanstellen voor conferences die hij zelf organiseert. (Er is immers een link <COC 1 - * WSC>)
- Goed gemodelleerd. Zie hieronder.
- In domain model:
- Nuttig om een evaluation te modelleren die het gemiddelde geeft van reports? Als het concept nuttig is in het probleem domein dan wel. De term gemiddelde lijkt weer te neigen naar het oplossingsdomein, omdat die zegt HOE de evaluatie zal gebeuren!
- Domain model dient voor beschrijving van het probleem model
- Tijdlijn erbij zitten is zeer goed. Keuze: modelleer je de concepten en ga je textueel verbanden beschrijven met andere concepten of modelleer je het met extra links/contraints in het model zelf.
- Is op dit moment nog niet te complex!
- Cardinaliteit: is een soort van contraints
- Topic selection: oppassen met term container, lijkt te gaan naar solution domain; dus goed uitleggen in de glossary of weglaten. Dit concept stelt wel degelijk iets voor in het probleem domain. Maak alle textuele beschrijvingen zo duidelijk mogelijk (Is before -> Must be made before)
- Woordjes zoals "has": zeker oppassen, want de betekenis kan van geval tot geval verschillen, maakt het dus onduidelijk aangezien de betekenis verschilt. Oppassen met generische woorden.
- Cardinaliteiten tussen COC, Conference en WSC: deze kloppen, de assigns relatie verstrengt eigelijk de tweevoudige relatie COC-Conference-WSC. Maar zoals het nu is, is het duidelijk.
- Je kan een soort van superconcept maken voor bestaande concepten om overeenkomstige contstraints en verbanden te moddeleren. Bijvoorbeeld een Event-concept als superconcept voor Conference en Workshop die dan allebei een aantal datums hebben. Btw. als je in het domain model vanuit twee concepten naar eenzelfde derde concept gaat betekent dit niet dat dit een verbinding is met dezelfde instantie van dat concept. Als dit wel de bedoeling is moet dit gemodelleerd worden als een extra constraints.
- Vragen hoe het zit met het system die een use case initialiseerd
- JA dat mag.
Vragen voor klant
Onbeantwoord
Zijn conference topics ook geldig voor workshops of kunnen workshops andere topics hebben?
edit by kjelle: volgens de opgave gaat een workshop over 1 conference topic specifiek
Beantwoord
- Als de toewijzing van papers niet kan doordat zijn affiliation dit verbiedt, dan is het maar zo!!
- Het verschil van aantal toegewezen papers mag dan wel meer dan 1 bedragen. Eerlijkheid is het belangrijkst.
- Is er een deadline dat de PCC een lijst van PCmembers's kan opstellen?
- Er staat geen datum op vast. Zeker voor "Call of papers". PCC heeft immers tijd nodig om alles in orde te krijgen en als hij alles heeft is er de "Call for paper launch".
- PCC: call for papers launch. Moet dit automatisch gedaan worden of moet dit expliciet gedaan worden door de coc.
- Launch is het moment dat alles vastgelegd is op het systeem. Van dan af is het bekend. Er moet mss iets getoond worden maar er worden geen massa berichten verstuurd. Het systeem wordt niet belast met zulke dingen.
- Hoe de COC conference aanmaken use case aanpakken.
- Affiliation: wat bedoelen ze daarmee? Algemeen, specifiek. Organisatie?
- Organisatie
- Prefer topics ok maar wat met veto topics?
- Niet aan gedacht, nog nooit nodig gehad, dus NEE.
- Cancel conference, nodig voor jou? Wat zijn de gevolgen?
- Niet aan gedacht, zware gevolgen omdat er reeds kosten gemaakt zijn. Ook aanpassen is niet echt nodig (omwille van extra kost).
- Moet je de pcc en wsc kunnen veranderen als coc?
- zelf invullen, geen nood aan.
- Als er minder work shops of papers zijn dan aangegeven door de coc, wat gebeurd dan. Worden alle ingegeven papers dan geaccepteerd of wordt de conference gecancelled.
- workshop: beslissing ligt bij wsc, manuele beslissing.
- papers: richtlijn blijven volgen (op basis van punten: minstens drie punten nodig); om kwaliteit te bewaren. Het is ook niet zo dat er uit de ingediende papers het maximum wordt geselecteerd. Enkel de beste
- Wat is nu een workshop: die bevat blijkbaar zelf ook nog papers... Er is dan wsl de mogelijkheid om een call for papers te doen voor die workshop (subconference-style) of de wso kan zijn vooraf gekozen papers gebruiken (self-organised). Wat doe je als je het zelf organiseerd, houdt dit dan ook nog in dat er papers zijn of mag je dan een eigen invulling geven (praktische dingen, tentoonstelling, god weet wa)
- Veeleer de neven activiteiten op de conference. Eigenlijk een soort kleine conferentie dus.
- Datums bij sub-conferences
- submit datum en andere mogen zelf gekozen worden binnen het tijdframe van de conference. Enkel de dagen dat de conference doorgaat blijven hetzelfde.
- Een wso wordt automatisch Coc?
- Voor een sub conference heeft het weinig zin om onderscheid te maken tussen COC en PCC, je mag kiezen hoe je dat implementeert. Co-organisers zijn wel automatisch pc-members.
- Datums van een workshop vallen binnen de tijdsframe van de conference, ze hebben dus minder tijd om hun workshop in te vullen (de call for papers van een workshop zal impliciet korter zijn als die van de conference). Worden workshops en papers tegelijk ge-evalueerd dan blijft er voor voorgaande fenomeen weinig tijd over, als ze apart (vroeger) worden geselecteerd, heeft de wso nog wat meer tijd
- Datums hoeven niet samen te vallen tussen ws en papers. (submit en review-datums)
- Er is mogelijkheid om een week extensie te hebben.
- Dit moet dus impliciet opgelegd worden in de keuze van review en notification datum (minstens een week later).
- Als een PCC een review moet doen wat is dan zijn deadline.
- Dit is de notification datum. Dus ook best wat tijd overhouden tussen extensie en notification datum. 8 dagen tussen dus.
Glossary of Terms
- Schedule: Kan zowel verband hebben met submission, notification date etc... of met het aantal slots dat in een conference zelf past. Wij kiezen het eerste.
- Reviewer: Een reviewer kan zowel een PCC als een PC Member zijn. Dit is een term die wordt gebruikt voor use cases die zowel de PCC als de PC members kunnen uitvoeren.
- Review deadline:
- Affiliate: Author or PC Member
- WS = Workshop
- WSO = Worshop Organizer
- Program Committee Module: Een module voor de organisatie van paper submissions. Deze wordt standaard gebruikt in een conference en kan dan ook gebruikt worden voor een workshop.
Nuttige Links
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
Tijdsbesteding
Naam | Beschrijving | Datum | Tijdsduur |
Kjelle, Daniel, Tuur, Mathias | Assignment analyseren, verantwoordelijkheden bepalen, use cases onderscheiden. | 18/02/08 | 3u |
Kjelle, Daniel, Tuur | Use Case overleggen | 22/02/08 | 1.5u |
Kjelle, Daniel, Tuur | Domain Model Maken | 22/02/08 | 1.5u |
Daniel, Tuur,Mathias | Domain Model Verbeteren, Sommige Use Cases uitwerken. Nadenken over wat te vragen aan PC. | 25/02/08 | 3u |
Daniel, Tuur,Mathias | Overleg met de klant | 26/02/08 | 1u |
Mathias, Kjelle, Daniel | Use case uitwerken. | 28/02/08 | 2.5u |
Tuur, Daniel | Overleg met Counselor | 29/02/08 | 1u |
Kjelle | Use Cases schrijven | 01-02/03/08 | 1u |
Mathias | Use Cases schrijven | 02/03/08 | 2u |
Daniel | Use Cases schrijven | 01-02/03/08 | 3.5u |
Daniel, Kjelle, Mathias, Tuur | Use Cases Nalezen | 03/03/08 | 2u |
Daniel, Mathias | Use Cases Maken & Bewerken | 03/03/08 | 2u |
Tuur, Kjelle | Design | 07/03/08 | 1u |
Tuur, Kjelle, Mathias, Daniel | Bespreking met counselor | 07/03/08 | 1u |
Tuur, Kjelle, Mathias, Daniel | Design: klassediagram | 10/03/08 | 5u |
Tuur, Kjelle, Mathias, Daniel | Design: klassediagram | 13/03/08 | 2u |
Daniel, Tuur | Design: klassediagram | 14/03/08 | 1u30 |
Tuur, Kjelle, Mathias, Daniel | Design: klassediagram | 14/03/08 | 1u30 |
Kjelle | Design: sequence diagram + implementatie | 14/03/08 | 2u |