Download de presentatie
1
Object Oriented Modeling
Week 2 OOM
2
Mededelingen Zie BB-annoucements
Rooster: 2x extra les inplannen voor VT
3
Vandaag Use case uitbreiding Activity diagram Testscenario's Testen
OOM
4
UML diagrammen Diagram Structure Diagram Behavior Diagram week 2 Class Diagram Component Diagram Object Diagram Activity Diagram Interaction Diagram Use case Diagram State Machine Diagram Overzicht van alle UML diagrammen met daarin aangegeven : Activity diagrammen worden deze week behandeld Composite Structure Diagram Deployment Diagram Package Diagram Interaction Overview Diagram Sequence Diagram Communication Diagram Timing Diagram OOM
5
Volgorde modelleertechnieken
week2 proces diagram use case diagram use case beschrijvingen activity diagrammen test cases business class diagram (domein) user interface diagram sequence diagram gegevens diagram (database) state machine diagram detail class diagram package diagram tijd OOM
6
Detailniveau use case Lastigst… Hele systeem in één use case?
Elke stap in één use case? Elke methode-aanroep in een use case?
7
Wat zegt UML hierover? Niets… UML is een taal
Zoals Nederlands, Java, PHP, … “Hoe teken je een …” Er zijn regels (pijltjes, lijntjes, tekens, …), maar Je moet de taal zelf (goed) toepassen!
8
Use case richtlijnen Document binnen SIS Zie Blackboard
Gebruiken in vakken en de KBS-en
9
merge mortgage systems
use case diagram Use case niveau's merge companies Cloud level Strategic Kite level Tactical Sea level User goal Fish level Sub-function Clamp level Too low merge mortgage systems place order select product insert member
10
Use case beschrijvingen
Moeten overzicht bieden Lange stappenplannen kunnen onoverzichtelijk worden Mogelijkheden Detailniveau is te hoog opsplitsen use case Detailniveau wél goed opsplitsen stappenplan gewenst scenario (UC slaagt) alternatieve scenario('s) (UC slaagt) faalscenario('s) (UC faalt) Gebruik activity diagrams
11
Voorbeeld (1) Naam Versturen bericht Doel
use case diagram use case beschrijvingen Voorbeeld (1) Naam Versturen bericht Doel Abonnee maakt een bericht en stuurt deze naar een geselecteerde persoon. (Actief formuleren!) Korte omschrijving Na het zoeken van een profiel van iemand anders, bekijkt de actor dit profiel en kan hij besluiten een bericht naar dit profiel te sturen. Hij maakt daarvoor zijn bericht eerst op en verstuurt hem daarna. Precondities Profiel is bekend. Actor is ingelogd. Postcondities Bericht is verstuurd aan Profiel of Actor heeft geannuleerd.
12
Wat is hier: gewenst, alternatief, faal?
use case diagram use case beschrijvingen Voorbeeld (2) Stappenplan 1. Haal profiel op. 2. Toon webpagina. 3. Actor typt nieuw bericht in. 4. Actor bevestigt versturen bericht. 5. Als bericht leeg is Actor krijgt melding dat het bericht leeg is. 5.2 Actor krijgt de mogelijkheid om opnieuw bericht in te typen. 5.3 Terug naar stap 3. 6. Applicatie verstuurt Bericht aan Profiel. 7. Als bericht versturen faalt 7.1 Het versturen van het bericht mislukt omdat de mailserver niet reageert. 7.2 De actor krijgt een melding dat het versturen mislukt is. 7.3. Einde use case. 8. Actor krijgt bevestiging van versturen Bericht. Wat is hier: gewenst, alternatief, faal?
13
In aparte scenario's Stappenplan 1. Haal profiel op.
use case diagram use case beschrijvingen In aparte scenario's Stappenplan 1. Haal profiel op. 2. Toon webpagina. 3. Actor typt nieuw bericht in. 4. Actor bevestigt versturen bericht. 5. Applicatie verstuurt Bericht aan Profiel. 6. Actor krijgt bevestiging van versturen Bericht. Alternatieven 4. [bericht is leeg] Actor krijgt melding dat het bericht leeg is. 4.2. Actor krijgt de mogelijkheid om opnieuw bericht in te typen. 4.3. Terug naar stap 3. Faalscenario’s 5. [bericht versturen faalt] 5.1. Het versturen van het bericht mislukt omdat de mailserver niet reageert. 5.2. De actor krijgt een melding dat het versturen mislukt is. 5.3. Einde use case. Waar kan het 'mis' gaan? Guard
14
Wat is hier: gewenst, alternatief, faal?
use case diagram use case beschrijvingen Voorbeeld 2 Stappenplan 1. Valideer aantal ongeldige logins. 2. Als aantal ongeldige logins > 2, 2.1 Einde use case 3. Toon webpagina 4. Actor voert login en pw in 5. Applicatie valideert login 6. Als login geldig 6.1 Markeer actor als abonnee 7. Als login ongeldig 7.1 Verhoog aantal ongeldige logins 7.2 Herhaal vanaf 1. Wat is hier: gewenst, alternatief, faal? 14
15
In aparte scenario's 1. Valideer aantal ongeldige logins
use case diagram use case beschrijvingen In aparte scenario's Stappenplan 1. Valideer aantal ongeldige logins 2. Toon webpagina 3. Actor voert login en pw in 4. Applicatie valideert login 5. Markeer actor als abonnee Alternatieven 4. [login ongeldig] 4.1. Verhoog aantal ongeldige logins 4.2. Naar stap 1 Faalscenario’s 1. [aantal ongeldige logins > 2 ] Einde use case 15
16
initial node Activity diagram Use case p.89 Inloggen abonnee merge node valideer aantal ongeldige logins activity [Actor geen abonnee] [#ongeldige logins <= 2] «form» inloggen Abonnee decision node Verhoog aantal ongeldige logins Actor voert login en password in Nog een postconditie! Applicatie valideert Voorbeeld van inlogscherm waar je max drie pogingen hebt om in te loggen. In dit voorbeeld kan je heel veel richtlijnen uitleggen: - normale scenario van boven naar beneden - bij final nodes staan de postcondities - bij de decision nodes staan slechts aan een kant de guard decision node [login geldig] guard Markeer actor final node, met postconditie(s) [Actor is abonnee] OOM
17
[#ongeldige logins <= 2]
Normaal Layout v/d scenario’s Use case p.89 Inloggen abonnee Alternatief valideer aantal ongeldige logins [Actor geen abonnee] [#ongeldige logins <= 2] Faal «form» inloggen Abonnee Verhoog aantal ongeldige logins Actor voert login en password in Applicatie valideert [login geldig] Markeer actor [Actor is abonnee] OOM 17 17
18
Activity diagram Doel? Uitgangspunt: use case beschrijving
Requirements testen: use cases aanscherpen Identificeren van alle scenario’s Volledig beeld van een use case Testgevallen Uitgangspunt: use case beschrijving Nodes en transities Van boven naar beneden tekenen 'happy day' scenario op de hoofdas Faal rechts Alternatieven links OOM
19
Activity diagram Nodes Activity: elke stap zonder conditie
Activity nodes Control nodes Activity: elke stap zonder conditie Initial node: één! Final nodes: meerdere mogelijk minstens alle postcondities! Decision node: stap met conditie [guards] meer-in, meer-uit Loop node: (==desc. node) Merge node: handig voor bepalen testgevallen meer-in, één-uit Activity OOM
20
Activity diagram Guards: Herhalingen (loops):
condities bij transities vanuit decision node sluiten elkaar uit! Zo formeel mogelijk noteren: [aantal >= 2] default guard [else] Niet op de hoofdas Herhalingen (loops): gebruik merge node (p.107/108) doorbreken met minimaal één decision node Overzichtelijker Mogelijke guards bij merge node nu ook meenemen Deelpaden bepalen makkelijker [login geldig] OOM
21
Activity diagram Fork / Join een fork start concurrent activities
concurrency eindigt bij een join (gaat pas verder als alle concurrent acties gereed zijn) stuur bevestiging update portfolio verlaag saldo bestel product fork join OOM
22
In figuur zijn ook fork en join te zien
Activity diagram Fork/join met activity partitions (swimlanes) naam v/d partitie Customer Sales Stockroom request service pay take order fill order In figuur zijn ook fork en join te zien deliver order collect order OOM
23
Nederlands: zwembanen.
Activity diagram Activity partition (swimlane) wordt gebruikt om aan te geven welke business unit of class dit stuk afhandelt doorgetrokken lijnen geven verschillende partities aan, deze lijnen mogen zowel horizontaal als verticaal, recht als gebogen in UML 2.0 mogen partities ook 2-dimensioneel (grid) afh. van detailniveau use case p.117 Nederlands: zwembanen. OOM
24
Activity diagram Object flow symbols (toestanden)
mogen tussen twee acties getekend worden symbool bevat object en toestand van dat object object Order [placed] toestand OOM
25
Activity diagram Object flow symbols (toestanden) Customer Sales
Stockroom request service Order [placed] pay take order Order [entered] Order [filled] fill order Order [delivered] deliver order collect order OOM
26
Pragmatisch modelleren
Forks/joins en swimlanes nodig… Detailniveau UC goed? Object-flow modelleren… Nuttig in deze fase v/h project? OOM
27
Oefening: maak activity diagram
Invoeren Abonnement Valideren Abonnement «include» «include» Invoeren Creditcard «include» Aanvragen Abonnement «include» Bezoeker Valideren Creditcard «extend» Versturen Creditcard Maatschappij OOM
28
Use case beschrijving Aanvragen Abonnement Naam
Doel Bezoeker abonneert zich op Dare2Date Korte omschrijving Bezoeker abonneert zich op Dare2Date en betaalt met Creditcard. Als actor een adres heeft opgegeven, dan wordt ter bevestiging een bericht gestuurd. Precondities Geen Postcondities Actor is geabonneerd of Actor is geabonneerd en is verstuurd of Actor heeft geannuleerd. OOM
29
Stappenplan Voer uit Invoeren Abonnement
Als actor annuleert, einde use case Voer uit Valideren Abonnement Als Abonnement niet valide, herhaal 1 Voer uit Invoeren Creditcard Voer uit Valideren Creditcard Als Creditcard niet valide, herhaal 5 Als adres actor bekend is 9.1 Voer uit Versturen OOM
30
Oefening: uitwerking Niet op hoofdas postconditie postconditie
«use case» Invoeren Abonnement Niet op hoofdas [actor annuleert] «use case» Valideren Abonnement [actor heeft geannuleerd] [abonnement is niet valide] postconditie postconditie «use case» Invoeren Creditcard [actor annuleert] «use case» Valideren Creditcard [creditcard is niet valide] [actor heeft geannuleerd] OOM
31
[e-mail adres onbekend]
«use case» Versturen [actor is geabonneerd] [actor is geabonneerd en is verstuurd] OOM
32
Demo Activity diagram in StarUML
33
Vandaag Activity diagram Testscenario's Testen OOM
34
Scenario’s Op hoeveel manieren kun je hier doorheen lopen?
Welke manieren zijn dit dan? Scenario’s! valideer aantal ongeldige logins «form» inloggen Abonnee Actor voert login en password in Applicatie valideert Verhoog aantal [#ongeldige logins > 2] [login geldig] Markeer actor [niet ingelogd] [ingelogd] Voorbeeld van inlogscherm waar je max drie pogingen hebt om in te loggen. In dit voorbeeld kan je heel veel richtlijnen uitleggen: - normale scenario van boven naar beneden - bij final nodes staan de postcondities - bij de decision nodes staan slechts aan een kant de guard OOM 34 34
35
Scenario’s Alle mogelijke paden door activity diagram. Scenario:
doorlopen activity diagram van initial node naar één van de final nodes 1 pad = 1 scenario bevat zélf geen beslismomenten (keuze is impliciet onderdeel scenario) valideer aantal ongeldige logins «form» inloggen Abonnee Actor voert login en password in Applicatie valideert Verhoog aantal [#ongeldige logins > 2] [login geldig] Markeer actor [niet ingelogd] [ingelogd] Voorbeeld van inlogscherm waar je max drie pogingen hebt om in te loggen. In dit voorbeeld kan je heel veel richtlijnen uitleggen: - normale scenario van boven naar beneden - bij final nodes staan de postcondities - bij de decision nodes staan slechts aan een kant de guard OOM 35 35
36
Vinden scenario’s Deelpaden identificeren en nummeren:
initial node decision/merge node decision node decision/merge node decision node final node Begin met nummeren gewenst scenario Paren van deelpaden maken Twee elkaar opvolgende deelpaden combineren Scenario’s vinden: Paren deelpaden kop-staart leggen Alle mogelijke manieren om alle decision nodes te passeren Evt. overbodige scenario’s wegfilteren OOM
37
1. DP’en nummeren Activities even wegdenken! 1 2 5 6 3 4 «use case»
Invoeren Abonnement 6 [abonnement is bevestigd] 3 «use case» Valideren Abonnement Toon melding [abonnement is valide] 4 «use case» Invoeren Creditcard OOM
38
2. Paren deelpaden 1 2 5 6 3 4 Paren van deelpaden: 1-2 2-3, 2-6
«use case» Invoeren Abonnement [abonnement is valide] [abonnement is bevestigd] Valideren Abonnement Toon melding Invoeren Creditcard 1 2 3 4 5 6 Paren van deelpaden: 1-2 2-3, 2-6 3-4, 3-5 5-2 OOM 38
39
3. Scenario’s vinden Pragmatisch Voldoende voor bijna alle UC’s!
Voor alle final nodes ‘F’ Start bij 1e paar (1-2) Ga naar ‘F’ Streep paren weg die je tegenkomt Voor alle overgebleven paren ‘X-Y’ Ga naar ‘X-Y’, zo kort mogelijk Ga naar dichtstbijzijnde final node Streep overbodige scenario’s weg Voldoende voor bijna alle UC’s! Complexe/risicovolle UC’s: meer scenario’s maken!
40
3. Scenario’s 1 2 5 6 3 4 Paren van deelpaden: 1-2 2-3, 2-6 3-4, 3-5
«use case» Invoeren Abonnement [abonnement is valide] [abonnement is bevestigd] Valideren Abonnement Toon melding Invoeren Creditcard 1 2 3 4 5 6 Paren van deelpaden: 1-2 2-3, 2-6 3-4, 3-5 5-2 Scenario’s (deelpaden combineren): 1-2-6 (overbodig) OOM 40
41
Oefening: 1. deelpaden «use case» Invoeren Abonnement
[abonnement is bevestigd] «use case» Valideren Abonnement Toon foutmelding [abonnement is valide] «use case» Invoeren Creditcard [creditcard is bevestigd] «use case» Valideren Creditcard Toon foutmelding [creditcard is valide] OOM
42
Oefening: 1. deelpaden 1 2 8 10 3 4 5 9 11 6 7 «use case»
Invoeren Abonnement 10 [abonnement is bevestigd] 3 «use case» Valideren Abonnement Toon foutmelding [abonnement is valide] 9 4 5 «use case» Invoeren Creditcard 11 [creditcard is bevestigd] 6 «use case» Valideren Creditcard Toon foutmelding [creditcard is valide] 7 OOM
43
Oefening: 2. Paren , 3. Scenario’s
Paren van DP’en: 1-2 2-10, 2-3 3-8, 3-4 4-5 5-11, 5-6 6-7, 6-9 8-2 9-5 Minimale scenario’s: (overbodig (1)) (overbodig (2)) (1) (2) OOM
44
Vandaag Activity diagram Testscenario’s Testen OOM 44
45
Scenario’s en testgevallen
Bepalen scenario’s: Deelpaden identificeren en nummeren Paren deelpaden bepalen Paren deelpaden kop-staart samenvoegen Per scenario meerdere testgevallen maken: Testacties: acties door actor en applicatie Testattributen: soort in- en uitvoer per testactie Testgevallen: testattributen van waarde voorzien OOM 45
46
Testscenario’s en testgevallen
beschrijving interactie tussen actor en applicatie testattributen: welk soort in- en uitvoergegevens? bijv.: wachtwoord, plaatsnaam, studentnummer, … Testgeval: ‘ingevuld’ scenario (instantie!) voorziet interactie van concrete waarden bijv.: Flip15.; , Apeldoorn, s301234 wat vult actor in en hoe/waarmee reageert de applicatie? grenzen opzoeken: extreme waarden, lege velden, negatieve waarden OOM
47
Simpele template testgeval
Use case <<naam use case>> Scenario <<naam scenario>> Testacties Testattribuut Waarde 1. <<stap 1>> <attribuut 1> <<geval 1>> <attribuut 2> <<geval 2>> … 2. <<stap 2>> 3. <<stap 3>> OOM
48
Voorbeeld testgeval Use case Aanvragen abonnement Scenario
Happy day ( ) Testacties Testattribuut Waarde 1. Invoeren abonnement Klantnr 200 Geb. datum 2. Valideren abonnement (systeem) 3. Invoeren creditcard Cardnr. Cardcode 9999 OOM
49
Voorbeeld testgeval (2)
Use case Aanvragen abonnement Scenario Happy day ( ) (met rare input) Testacties Testattribuut Waarde 1. Invoeren abonnement Klantnr Xxyyzz Geb. datum Letters 2. Valideren abonnement (systeem) 3. Invoeren creditcard Cardnr. … (Heel lang nummer) Cardcode ABCD OOM
50
Voorbeelden toetsvragen
50
51
Voorbeeldtoetsvraag Volgens Hoogendoorn zit een secundaire use case op het volgende niveau: user goal strategic tactical sub function 51
52
Voorbeeldtoetsvraag Eén bewandelbaar pad in het activity diagram
is gelijk aan het stappenplan van een use case. komt overeen met een happy day scenario. komt overeen met één scenario van een use case. leidt niet altijd tot een postconditie. 52
53
Voorbeeldtoetsvraag De eigenschap “één ingaande transitie en meerdere uitgaande transities” komt in een activity diagram overeen met een final node. merge node. initial node. decision node. 53
54
Voorbeeldtoetsvraag Gegeven de volgende twee stellingen:
Het aantal pragmatische scenario’s van een activity diagram is kleiner of gelijk aan het totaal aantal scenario’s. Elk pragmatisch scenario leidt tot een final node. Welke stelling is waar? Stelling I is waar. Stelling II is waar. Stelling I en II zijn beiden waar. Stelling I en II zijn beiden onwaar. 54
55
Planning/huiswerk B 2 uur IC Use case beschr. v2
Activity diagram Testpaden Testscenario’s Doorlezen Boek deel III Use case standaard Oefenen: StarUML User’s Guide “Modeling with Activity Diagram” & “Modeling with UseCase Diagram” - Bestuderen: stof boek, slides - Maken: HW1: Casus camping use case activity diagram C 2 uur IC User-interface diagram Sequence diagram Communication diagram Doorlezen boek Deel V (niet: laatste hoofdstuk "Forms, Factories…") Deel VI Oefenen: StarUML User’s Guide, “Modeling with Sequence Diagram” en “Modeling with Collaboration Diagram” Bestuderen: stof boek, slides - Maken: HW2: Casus videotheek sequence-/comm. Diagram DEELTIJD 55
56
Planning/huiswerk B 1e uur Presentaties studenten HW0 2 uur IC (aansluitend): Use case beschrijving v2 Activity diagram Testpaden Testscenario’s Doorlezen Boek deel III Use case standaard Oefenen: StarUML User’s Guide “Modeling with Activity Diagram” & “Modeling with UseCase Diagram” HW0 maken en meenemen. - Bestuderen: stof boek, slides - Maken: HW1: Casus camping use case activity diagram C 2 uur IC User-interface diagram Sequence diagram Communication diagram Doorlezen boek Deel V (niet: laatste hoofdstuk "Forms, Factories…") Deel VI Oefenen: StarUML User’s Guide, “Modeling with Sequence Diagram” en “Modeling with Collaboration Diagram” Bestuderen: stof boek, slides - Maken: HW2: Casus videotheek sequence-/comm. Diagram VOLTIJD 56
57
Als tijd over Demo class diagram in StarUML (hw-opgave)
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.