Objecten en Volgordediagrammen
Objecten Verschillende voorstellingswijzen:
Objecten Zelfde relaties als klassen, bijvoorbeeld:
Volgordediagrammen Klassediagram -> statische structuur van programma -> welke methoden de klassen hebben volgordediagram: -> toont wanneer de methoden gebruikt worden of samenhangen -> toont berichtenverkeer tss een aantal objecten voor een bepaald gebruik van het systeem
Volgordediagrammen volgordediagram: -> toont de volgorde van dit berichtenverkeer -> toont het gedrag van het systeem -> 2 assen * horizontaal: links -> rechts objecten * vertikaal: boven -> onder tijdas
Volgordediagrammen
Volgordediagrammen volgordediagram: ->vanuit elk object: levenslijn -> tussen levenslijnen : horizontale pijlen = berichten of communicatie tss objecten hoe 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
Volgordediagrammen 2 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
Volgordediagrammen creatie 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
Volgordediagrammen vb. 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.
van Artikel betrokken zijn -> volgt niet uit volgordediagram 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