Interaction diagrams: Sequence Diagram

Slides:



Advertisements
Verwante presentaties
1.larmoire. 2. lescalier 3. La grand-mere 4. Le canapé
Advertisements

Objectgeoriënteerd Programmeren in C++
Doublet deel 1 – de basis.
Use Case Modelling.
Klimaatrobuustere modellering van evapotranspiratie
Leer de namen van de noten 1
1 Instituut voor Informatica en Informatiekunde Magneetstrip- en chipkaarten Engelbert Hubbers Erik Poll Digital Security Informatica en Informatiekunde.
Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.
dr. H.J. Bulten Mechanica najaar 2007
Prekenserie Handelingen - deel 6 (slot) ‘Gods Woord overwint omdat het mensen in de vrijheid zet!’ Hand 28,31.
Personalisatie van de Archis website Naam: Sing Hsu Student nr: Datum: 24 Juni 2004.
Figuur 5.1 Organisatieschema Figuur 5.2 Steile en platte organisatie.
Welkom Katja Goertz, commercieel adviseur Ascom Nederland.
1 Wat is microfinanciering ? 2 1. De financiële behoefte.
Objecten en Volgordediagrammen
RUP Elaboration Analyse en Ontwerp Jef Bergsma.
1 Demo of Praktijk Over de problematiek bij het ontwerpen van informatiesystemen Mark Dumay Afstudeervoordracht 15 oktober 2004.
Ronde (Sport & Spel) Quiz Night !
1 Welk plaatje hoort bij de pols? 2 Welk plaatje hoort bij het gezicht?
Presentatie VUD Document Proma BV
Hoe pas je de interacties in in je analyse van je domein?
prNBN D addendum 1 Deel 2: PLT
Diagnosticeer uw schouder Dit is een interactieve gids om u te helpen vinden relevante patiënten informatie over uw schouderprobleem. Het is bedoeld als.
Klassieke AO Leseenheid1
Use Case Modelling Summary
Naar het Jaareinde toe
Leer de namen van de noten 2
WISKUNDIGE FORMULES.
Persoonlijk worden.
Ondergrondse Geo-Informatie GIS bij tunnel-engineering
Software Engineering les Procesmodellen en Use Cases
MICROBIOLOGIE - DEEL I - Prof. Dr. ir. J. Swings LES 6 « Biology of Microorganisms », 9de ed. (2000)
Ontwerpen van Informatiesystemen met
TUDelft Knowledge Based Systems Group Zuidplantsoen BZ Delft, The Netherlands Caspar Treijtel Multi-agent Stratego.
Probeer te begrijpen wat de Midzomernacht zon betekent
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
In dit vakje zie je hoeveel je moet betalen. Uit de volgende drie vakjes kan je dan kiezen. Er is er telkens maar eentje juist. Ken je het juiste antwoord,
Dia 1 Politiewerk in de Toekomst Kan technologie “ons” helpen om het veiliger te maken?
Object Oriented Modeling
Werken aan Intergenerationele Samenwerking en Expertise.
Breuken-Vereenvoudigen
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
Hoe werkt een rekenmachine?
PLAYBOY Kalender 2006 Dit is wat mannen boeit!.
Chronologie van maatregelen tegen de joden in het Derde rijk
Professioneel Kritische Instelling
Informatiesystemen in de Bouw
C/S varianten s /CSpaginas/
Economische impact sluiting Ford Genk Ludo Peeters en Mark Vancauteren (Universiteit Hasselt)
Module 7 – Hoofdstuk 3 Unified Modeling Language.
 Doel  Doelgroep  Aanloop  Userstudy  Resultaten  Ervaringen van de gebruiker  Besluit 1.
A H M F K EB C x 91 Van hand veranderen voor de X splitsen en Rechangeren. Met de nieuwe partner op.
A H M F K EB C x 85 Korte zijde bij C 2 e secties volte 14 m en op afstand komen ( 0,5 rijbaan)
A H M F K EB C x 88. Korte zijde bij A en C changement met gebroken lijnen (opsluiten!) Daarna rijden.
ZijActief Koningslust 10 jaar Truusje Trap
Ontwikkeld door CWB3. Opbouw Presentatie 1.Wat is GeoSport? 2.Ontwerp 1.Gebruikte ontwerpmethodieken 2.Ervaring 3.Implementatie 1.Gebruikte technologieën.
Voorrangsregels bij rekenen (1)
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
De financiële functie: Integrale bedrijfsanalyse©
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
ZijActief Koningslust
1 Jeroen de Vries Topologie. 2  Historische basis  Belangrijkste concepten  Topologie in de praktijk Inhoud:
Tuinvogels herkennen.
Informatiesystemen in de Bouw 7M711 Joran Jessurun en Jos van Leeuwen Week 1.
UML De Basics en de Use-case Diagrammen. UML Introductie Unified Modeling Language Grafische modelleertaal Waarom UML? - UML wordt gebruikt om de werking.
Unified Modeling Language 2.0
Unified Modeling Language
Transcript van de presentatie:

Interaction diagrams: Sequence Diagram

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.

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 2000 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

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.

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.

sequentiediagram

collaborationdiagram

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

collaborationdiagram

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

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

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.

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é

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).

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

NS Kaartjesautomaat

Use Case diagram NS kaartjesautomaat

Sequence diagram bij Use Case: Koop Ticket

Ontleend aan Sommerwille: Software Engineering

Ontleend aan Sommerwille: Software Engineering

Ontleend aan van Vliet: Software Engineering

Ontleend aan van Vliet: Software Engineering