De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Interaction diagrams: Sequence Diagram

Verwante presentaties


Presentatie over: "Interaction diagrams: Sequence Diagram"— Transcript van de presentatie:

1 Interaction diagrams: Sequence Diagram

2 UML biedt een aantal diagrammen die gezamenlijk het model van het softwaresysteem vormen:
Het use-case diagram toont hoe het systeem gebruikt kan worden door externe entiteiten zoals menselijke gebruikers - wat een systeem zou moeten doen onder welke omstandigheden; Het sequence diagram toont de volgorde in tijd van de boodschappen die in het systeem verstuurd en ontvangen worden; Het activity diagram toont de activiteiten die door een deel van het systeem worden uitgevoerd; Het class diagram toont de statische structuur van het softwaresysteem weergegeven als klassen en hun relaties. Andere: collaboration, state, component en deployment diagrammen.

3 Object behaviour modelling
Gedrag is een observeerbaar effect, inclusief de resultaten. Use-case diagram beschrijft het gedrag van een systeem. De context van het systeem wordt gemodelleerd en vereisten voor de elementen van de use-case. Een interactie is het gedrag dat een set messages omvat welke tussen objecten binnen een bepaalde context worden uitgewisseld om een bepaald doel te bereiken c.q. tot stand te brengen. Object behaviour modelling Ian Sommerville Software Engineering, 6th edition. Chapter 7 A behavioural model shows the interactions between objects to produce some particular system behaviour that is specified as a use-case Sequence diagrams (or collaboration diagrams) in the UML are used to model interaction between objects

4 Use-case diagram wordt ook wel de requirementsdiagram genoemd
Use-case diagram wordt ook wel de requirementsdiagram genoemd. SD’s worden ook wel dynamische diagrammen genoemd. Samenhang van de diagrammen. Een pijl van een diagram naar een ander geeft aan dat het tweede diagram informatie uit het eerste diagram nodig heeft. Een gestippelde lijn betekent dat het eerste diagram wel invloed heeft op het tweede, zonder dat delen van het tweede diagram direct uit het eerste voorkomen. In het midden van de figuur ziet u een dikke pijl. Het klassendiagram (in verschillende stadia) dat in het traject langs diep pijl wordt ontwikkeld is het centrale diagram in de methode. Structurele aspecten worden weergegeven in het klassendiagram. De gedragsaspecten in de overige diagrammen, met uitzondering van de component en deployment diagrammen. Uiteindelijk worden beide zijden geïntegreerd in het klassendiagram. Samenhang van de diagrammen.

5 Interactiediagrammen
Sequencediagram laat zien hoe tussen een verzameling objecten een reeks van berichten wordt verzonden en ontvangen om een functie uit te voeren. Collaborationdiagram kernaspect is de ruimte. Dit houdt in dat relaties (de links) tussen de objecten in de ruimte centraal staan en daarom expliciet in het diagram worden vermeld. Een interactie is een reeks van gebeurtenissen die plaatsvinden tijdens een specifieke (deel)sessie met het systeem. Het is een uitdetaillering van de interactiestappen uit de beschrijving van de use-case. Uitgaande van de interactie tussen de actor en het systeem worden nu ook de interactie mbv events tussen objecten in het systeem beschreven. Iedere input van een actor in een use-case is nu input voor een specifiek object in het systeem. Dit object kan op zijn beurt weer boodschappen sturen naar andere objecten in het systeem. Interactiediagrammen Interactiediagrammen zijn modellen die beschrijven hoe groepen van objecten samenwerken om gedrag te verkrijgen. Sequence diagram toont een interactie tussen objecten met de nadruk op het tijdsaspect. In een collaboration diagram wordt exact dezelfde informatie weergegeven maar ligt de nadruk niet op tijd maar op de samenwerking van objecten.

6

7

8 sequentiediagram

9 collaborationdiagram

10 Een sequencediagram toont een dynamische samenwerking tussen een aantal objecten. Het belang is de weergave van een reeks berichten die tussen de objecten worden verzonden. Het toont eveneens een interactie tussen objecten, iets dat op een bepaald punt in het systeem zal plaatsvinden. Het diagram bestaat uit een aantal objecten met verticale lijnen. Het tijdsverloop wordt in dit diagram verticaal aangegeven en het diagram laat zien hoe tijdens de sequentie of functie berichten tussen de objecten worden uitgewisseld. Berichten worden voorgesteld door lijnen met berichtpijlen tussen de verticale objecten. Een collaboratiediagram toont een dynamische samenwerking, net als een sequentiediagram. Vaak staan voor een keuze. Behalve de uitwisseling van berichten (interacties) toont collaboratiediagram de objecten en hun relaties (soms de context genoemd). Berichten krijgen labels en er wordt aangegeven in welke volgorde berichten worden verstuurd. Tijdsaspect is van belang  sequence Context benadrukken  collaboration De berichten van de PrinterServer naar de Printer hebben voorwaarden die laten zien hoe alternatieven in een sequentiediagram beschreven worden. Of het ebricht Afdrukken wordt naar de Printer gestuurd, of het bericht Opslaan naar de Wachtrij. sequentiediagram

11 collaborationdiagram

12 Concepten Sequencediagram
De berichten van de PrinterServer naar de Printer hebben voorwaarden die laten zien hoe alternatieven in een sequentiediagram beschreven worden. Of het bericht afdrukken wordt naar de printer gestuurd, of het bericht opslaan naar de Wachtrij. Het concept van de SD. Concepten Sequencediagram

13 Concepten Sequencediagram
Een event is een gebeurtenis die logiscg gezien geen tijd kost. Een event kan namelijk niet opgedeeld worden, een event is of gebeurd of moet nog gebeurd worden. Voorbeelden van events zijn operatieaanroepen en het sturen van een boodschap. Een interactie is een serie events. In een sequencediagram kunnen beperkingen worden aangegeven op het tijdsverloop tussen twee events. Dit noemen we een tijdconstraint (timing constraint). Een beperking kan bvb zijn maximaal 6 milliseconden tussen twee boodschappen. Een dergelijke constraint wordt in de kantlijn van een sequencediagram genoteerd. Events, met name operatieaanroepen, hoeven niet altijd op het moment van verzending verwerkt te worden door het ontvangende object. Dergelijke events noemen we asynchroon. Soms mag een event alleen voorkomen onder bepaalde condities (conditional event). De conditie wordt weergegeven als een boolean expressie tussen rechte haken voor de event. Vaak komt het voor dat een boodschap meerdere keren naar een object gestuurd wordt, bijvoorbeeld met een andere parameter. Hierbij moeten de waarden waarover geitereerd wordt worden aangegeven. Een sterretje geeft de iteratie aan en tussen twee rechte haken staan de iteratiewaarden. Hier: Tijdsbeperkingen in labels. De tijd tussen a en b mag de 5 sec niet overschrijden. Het bericht afdrukken van de printerserver moet binnen 1 sec ontvangen worden. Een schuine pijl laat zien dat de tijd tussen sturen en ontvangen van het bericht substantieel is. De beperkingen staan zoals gewoonlijk in accolades. Concepten Sequencediagram

14 Levenslijn en Berichten
Berichten worden afgebeeld als een middel tot communicatie tussen objecten. Eenvoudig: representeert een platte besturingsstroom. De pijl geeft aan hoe de besturing van het ene naar het andere object wordt doorgegeven zonder nadere beschrijving van details van de communicatie. Dit berichttype wordt gebruikt als er geen details over de communicatie bekend zijn of wanneer deze voor het diagram niet relevant worden geacht. Synchroon: een geneste besturingsstroom, gewoonlijk geïmplementeerd als een operatieaanroep. De operatie die het bericht verwerkt wordt voltooid (inclusief eventuele andere geneste berichten die als onderdeel van de verwerking verstuurd worden) voordat de aanroeper met de uitvoering verder gaat. Return: een bericht wordt in de meeste gevallen door een eenvoudige operatieaanroep geïmplementeerd, wanneer het ene object een operatie in het andere aanroept; als de operatie is uitgevoerd, wordt de besturing met een retourwaarde (‘retun value’) teruggeven aan de aanroeper. Asynchroom: asynchrone besturingsstroom, waarin geen expliciete return naar de aanroeper bestaat en waar de afzender na het versturen van het bericht doorgaat met de uitvoering, zonder op de verwerking van het bericht te wachten. Deze gebruikt men gewoonlijk in real-time systemen waarin objecten gelijktijdig wordn uitgevoerd (concurreny). De verticale lijn wordt de levenslijn van het object genoemd. Langs deze lijn ontwikkelt zich de levensloop van het object gedurende de interactie. De tijdas loopt van boven naar beneden. Elk bericht wordt voorgesteld door een pijl tussen de levenslijnen van twee objecten. Elk bericht is van een label voorzien dat op zijn minst de naam van dit bericht bevat. Aan het label kunnen ook argumenten en stuurinformatie worden toegevoegd. Ook is het mogelijk een self-call op te nemen.

15 Concepten Sequencediagram Resumé
Activering van een object. In een SD kan aangegeven worden dat een object gedurende bepaalde tijd actief is, bijvoorbeeld tijdens de executie van een operatie. Een object dat een eigen thread of control heeft en uit zichzelf acties kan uitvoeren of events kan versturen is een actief object. De tijdsperiode gedurende welke het object een actie uitvoert, direct of indirect via aanroep van een andere operatie, wordt aangegeven door een witte balk. Recursie of zelfaanroep Het aanroepen door een object van een bepaalde operatie op zichzelf wordt weergegeven door een kromme pijl. In een SD gaat de pijl vd oorspronkelijke witte balk naar een nieuwe witte balk die gedeeltelijk over de oorspronkelijke ligt. Er moet een voorwaarde in de operatie zijn die de recursie stopt.(?de return wordt expliciet getoond). Creatie en verwijdering Ook creatie en verwijdering kan weergegeven worden. In een creatie gaat de pijl die de vent aangeeft niet naar de witte balk die het object representeert maar naar de rechthoek daarboven. Bij verwijdering staat een groot, dik kruis aan het eind van de balk. Werkwijze Geef voor elke use-case een sequence diagram. [transmissievertragingen kunnen worden afgebeeld met een schuine berichtpijl die aangeeft dat het bericht later wordt ontvangen dan het is verzonden]. Concepten Sequencediagram Resumé

16 Het venster Order Entry stuurt een bericht ‘voorbereiden’naar een Order.
De Order stuurt vervolgens een bericht ‘voorbereiden’ naar elke Order Line van de Order. Elke Order controleert het betreffende Stock Item: als deze controle ‘true’returneert, verwijdert de Order Line de juiste hoeveelheid Stock Items uit het magzijn en maakt een Delivery Item. als het voorraadniveau van het Stock Item onder het minimum voorraadniveau komt, doet dit Stock Igtem een verzoek tot nabestelling. Een self-call is een bericht dat een object aan zichzelf stuurt. Met een iteratiemarkering wordt aangegeven dat een bericht naar diverse objecten wordt gestuurd. {waarover geitereerd wordt tussen rechte haken, bvb * [voor alle Orderr-Lines] }. Een return geeft aan waar teruggekeerd wordt, dus het betreft geen nieuw bericht. De geassocieerde lijn is gestippeld. Een return alleen wanneer het de gang van zaken verduidelijkt (anders teveel returns).

17 SD ook geschikt om parallelle processen te beschrijven.
Hier zien we enkele objecten die een bancaire transactie controleren.

18

19 NS Kaartjesautomaat

20 Use Case diagram NS kaartjesautomaat

21 Sequence diagram bij Use Case: Koop Ticket

22 Ontleend aan Sommerwille: Software Engineering

23 Ontleend aan Sommerwille: Software Engineering

24 Ontleend aan van Vliet: Software Engineering

25 Ontleend aan van Vliet: Software Engineering


Download ppt "Interaction diagrams: Sequence Diagram"

Verwante presentaties


Ads door Google