C/S varianten s /CSpaginas/
Conceptueel Informatie Modelleren Woe 6 november 2002 Drs. F. de Vries
Programma vandaag s 1e uur: –Bespreking eenvoudig voorbeeld –Kopie fig Mughal & Rasmussen – opdrachten afgelopen week s 2e uur: –Bespreking stof Fowler hoofdstuk 5 –Kopie fig. 5.1 en 5.4
Eenvoudig voorbeeld s Thema: gelaagdheid en voorkennis –Moet een architect iets over bakstenen en specie weten? –Moet een metselaar iets over bouwtekeningen weten?
View: extern
View: implementatie
View: klassendiagram
View: sequentiediagram
opmerkingen s Toegevoegde waarde meerdere views s Wijzigingen in view, effect? s UML = visueel programmeren?
Konklusie voorkennis s Een goede ontwerper kent z’n patronen en z’n hulpmiddelen
Interactie diagrammen s Amigo: Ivar Jacobson s Waarom nuttig? s Vormen: –1. Volgorde (sequence) –2. Samenwerking (collaboration)
1. Sequentie diagrammen objecten berichtenvolgorde s Geselecteerde objecten sturen elkaar berichten in een bepaalde volgorde s Basis: use-cases en klassendiagram s Voorbeeld fig. 5.1: –OrderEntry - Order - OrderLine –StockItem - DeliveryItem - ReorderItem
Sequentie diagram (1) s Elementen: –1. objecten –2. berichten –3. tijdas
Sequentie diagram (2) s 1. Objecten: objectnaam:klassenaam –box met objectnaam:klassenaam –levenslijn met verstuurde boodschappen –actoren van buiten het systeem mogelijk: gebruiker ( >) –nieuwe objecten (new) starten later
Sequentie diagram (3) s 2. Berichten: –naar ander object (syntax UML 1.4) u synchroon u asynchroon –label, argumenten, stuurinformatie –naar zichzelf (self-call) –beperkingen / varianten:
Sequentie diagram (4) s 2. Boodschappen: –beperkingen / varianten: u konditie [ isInVoorraad ] u iteratie: bv: *[ voor alle orderregels ] u of bv: *[ i:=1..10] geefElement(i) u alleen als het iets toevoegt: return u tijdsbeperking, bv: { t2 - t1 < 24 uur }
Sequentie diagram (5) s 3. Tijdas X –verticale stippellijn, eindigt met X activatieblok –duur van een activiteit: activatieblok –vgl. object op de stack –vgl. synchroon en asynchroon! –self-call: activatieblok op activatieblok
Parallelle processen s asynchrone berichten naar meerdere objecten s aanroeper kan iets anders gaan doen s vorm asynchroon bericht: –aanmaak nieuwe thread –naar bestaande thread –aanmaak nieuw object (Java ?)
Tekstuele informatie s Fowler: bijzonder waardevol s met name voor archivering s links, op de hoogte van het bericht
Opmerkingen s ‘moeilijke’ diagrammen opsplitsen s afzonderlijke diagrammen linken met uitvoeg- & invoegpijlen (UML ) s branching ook mogelijk, bv case s ‘time constraints’ mogelijk (UML )
2. Samenwerkingsdiagam s geen object ‘life line’ maar genummerde berichten-ketens s equivalent met volgorde diagram
CRC kaarten s 1989: Beck & Cunningham s informele techniek m.b.v indexkaartjes s noteren van: klassenaam - gedrag - samenwerking met andere klassen s workshop sessies s rollenspel (video Peter Coad) met bal s rol van programma-bibliotheek?
Opmerkingen s JVM als rots of ijsberg? s abstraheren: welke details weglaten?