Objecten en Volgordediagrammen
Objecten
Verschillende voorstellingswijzen:
Objecten
Zelfde relaties als klassen, bijvoorbeeld:
VolgordediagrammenKlassediagram -> statische structuur van
programma -> welke methoden de
klassen hebbenvolgordediagram:
-> toont wanneer de methoden gebruikt worden of samenhangen-> toont berichtenverkeer tss een aantal objecten voor een bepaald gebruik van het systeem
Volgordediagrammenvolgordediagram:
-> toont de volgorde van dit berichtenverkeer -> toont het gedrag van het systeem-> 2 assen
* horizontaal: links -> rechts objecten
* vertikaal: boven -> onder tijdas
Volgordediagrammen
Volgordediagrammenvolgordediagram:
->vanuit elk object: levenslijn-> tussen levenslijnen : horizontale pijlen
= berichten of communicatie tss objectenhoe hoger bericht hoe eerder
-> verzenden van bericht naar object = aanroepen van overeenkomstige methode-> methode is actief -> activatie van levenslijn: stippellijn verandert in langgerekte blok
Volgordediagrammen-> activatie : * begint wanneer object bericht ontvangt * eindigt bij terugkeer uit methode-> label op pijlen* -> label = naam bericht + eventueel parameters* <- label = eventueel terugkeerwaarde-> voorwaarde : tussen rechthoekige haken moet waar zijn voordat bericht kan verstuurd en ontvangen worden
Volgordediagrammen2 vormen
-> Instant vorm* 1 specifiek scenario in detail* 1 mogelijke interactie van het systeem* zonder voorwaarden, lussen
-> Generieke vorm* alle mogelijke alternatieven van een scenario* met vertakkingen, voorwaarden en lussen
Volgordediagrammen
vb. Instant vorm
Volgordediagrammen
vb. Generieke vorm
Volgordediagrammencreatie en vernietiging van objecten
-> creatie* object creëert een ander object door middel van bericht* op tijdas : nieuwe object wordt getekend wanneer het gecreëerd is
-> vernietiging* levenslijn stopt van object* X
Volgordediagrammen
vb. creatie
Volgordediagrammen
vb. vernietiging
Volgordediagrammenvb. orderverwerkingssysteem
-> ontwerpmodel-> gebruiksmogelijkheid : invoeren van een bestelling
* gebruiker gaat eerst aangeven dat er een nieuwe bestelling wordt opgegeven* vervolgens een reeks items opgeven* elk bestaande uit een artikelnummer en een aantal* artikel niet in voldoende mate in voorraad artikel kan niet worden besteld.
Volgordediagrammen
Volgordediagrammen
->gebruik klasse BestelInterface, met één instantie die de interactie met de
gebruiker verzorgt. -> methode nieuweBestelling( ): wordt aangeroepen als gebruiker een nieuwe bestelling doet
Volgordediagrammen
Volgordediagrammen->gebruiker voert nieuwe bestelling in:
=> instantie van BestelInterface ontvangt bericht nieuweBestelling( ).
-> creatie nieuwe instantie van Bestelling door instantie van BestelInterface-> voor ieder item : bericht bestelArtikel( ) naar dit object, met argumenten artikelnummer en aantal-> bestelArtikel( ): bericht getVoorraad( ) om voorraad van artikel op te vragen
Volgordediagrammen-> voorraad >= gewenste aantal
=>nieuwe instantie van BestelItem -> 4 objecten-> drie soorten acties
* creatie van een object* verzenden van een bericht (ofwel het aanroepen van een methode) * terugkeer vanuit een methode.
-> bestelArtikel( ) wordt verschillende keren verzonden (multipliciteit: *) -> lus
Volgordediagrammen-> getVoorraad( ) :1x telkens wanneer de bestelling een bericht bestelArtikel( ) -> als conditie geldt : uitvoeren van actie
=> als het bestelde aantal van het artikel in voorraad is ->nieuw bestelItem ->
belangrijk :volgordediagram = informeel. bestelArtikel( ) wordt voor ieder besteld artikel 1 keer verstuurd aan de nieuwe instantie van Bestelling -> getVoorraad( ) naar betreffende object van Artikel, en dat is voor ieder bestelItem( ) een ander.
Volgordediagrammen->berichtenverkeer => verschillende objecten van Artikel betrokken zijn -> volgt niet uit
volgordediagram->verband tussen de 1e parameter van bestelArtikel( ) en de instantie artikel, volgt ook niet uit volgordediagram.
=> volgordediagram = hulpmiddel voor programmeur => kan niet op zichzelf
staan => meer formele beschrijving blijft daarvoor nodig.
Volgordediagrammen
-> tweede gebruiksmogelijkheid : verwijderen
van een bestelitem-> weglating van gebruiker :meestal zo
-> nieuw actie: object van de klasse Bestelling
stuurt een bericht naar zichzelf.
Volgordediagrammen
Volgordediagrammen-> verwijderArtikel( ) roept een (private)
hulpmethode contoleerItem( ) aan
-> die controleert of het item wel tot de bestelling
behoort
=> 2 methoden tegelijkertijd actief, nl.
verwijderArtikel( ) en contoleerItem( )
=> dubbele activatie.
-> aanroepen naar private methoden hoeven niet
worden opgenomen in volgordediagram
Volgordediagrammen
->terugkeerpijlen: aan eind van activatie
mogen weg gelaten worden omwille van
overzicht
toepassing: teken een volgordediagram voor het berichtenverkeer bij het berekenen van de totaalprijs van een bestelling. Neem aan dat het bericht berekenPrijs( ) verstuurd wordt aan een instantie van Bestelling door een instantie van BestelInterface.
Volgordediagrammen