De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

OOM1 Object Oriented Modeling Week 2. Mededelingen Zie BB-annoucements Rooster: 2x extra les inplannen voor VT.

Verwante presentaties


Presentatie over: "OOM1 Object Oriented Modeling Week 2. Mededelingen Zie BB-annoucements Rooster: 2x extra les inplannen voor VT."— Transcript van de presentatie:

1 OOM1 Object Oriented Modeling Week 2

2 Mededelingen Zie BB-annoucements Rooster: 2x extra les inplannen voor VT

3 OOM3 Vandaag Use case uitbreiding Activity diagram Testscenario's Testen

4 OOM4 UML diagrammen Component Diagram Object Diagram Class Diagram Structure Diagram Behavior Diagram Activity Diagram Use case Diagram State Machine Diagram Deployment Diagram Package Diagram Communication Diagram Interaction Diagram Sequence Diagram Composite Structure Diagram Timing Diagram Interaction Overview Diagram week 2

5 OOM5 proces diagram use case diagram use case beschrijvingen business class diagram (domein) activity diagrammen user interface diagram sequence diagram detail class diagram detail class diagram Volgorde modelleertechnieken test cases gegevens diagram (database) gegevens diagram (database) package diagram state machine diagram state machine diagram week2 tijd

6 Detailniveau use case Lastigst… Hele systeem in één use case? Elke stap in één use case? Elke methode-aanroep in een use case? 6

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

8 Use case richtlijnen Document binnen SIS Zie Blackboard Gebruiken in vakken en de KBS-en

9 9 Cloud levelStrategic Kite levelTactical Sea levelUser goal Fish levelSub-function Clamp levelToo low Use case niveau's use case diagram merge companies place order insert member select product merge mortgage systems

10 Use case beschrijvingen Moeten overzicht bieden Lange stappenplannen kunnen onoverzichtelijk worden Mogelijkheden 1.Detailniveau is te hoog  opsplitsen use case 2.Detailniveau wél goed  opsplitsen stappenplan gewenst scenario (UC slaagt) alternatieve scenario('s)(UC slaagt) faalscenario('s) (UC faalt) 3.Gebruik activity diagrams 10

11 11 Voorbeeld (1) Naam Versturen bericht Doel Abonnee maakt een bericht en stuurt deze naar een geselecteerde persoon. (Actief formuleren!) Korte omschrijvingNa 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. use case diagram use case beschrijvingen

12 12 Voorbeeld (2) use case diagram use case beschrijvingen Stappenplan1. Haal profiel op. 2. Toon webpagina. 3. Actor typt nieuw bericht in. 4. Actor bevestigt versturen bericht. 5. Als bericht leeg is 5.1 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 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 Einde use case. 8. Actor krijgt bevestiging van versturen Bericht. Wat is hier: gewenst, alternatief, faal?

13 13 In aparte scenario's use case diagram use case beschrijvingen 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. Alternatieven4. [bericht is leeg] 4.1. Actor krijgt melding dat het bericht leeg is Actor krijgt de mogelijkheid om opnieuw bericht in te typen Terug naar stap 3. Faalscenario’s5. [bericht versturen faalt] 5.1. Het versturen van het bericht mislukt omdat de mailserver niet reageert De actor krijgt een melding dat het versturen mislukt is Einde use case. Waar kan het 'mis' gaan? Guard

14 14 Voorbeeld 2 use case diagram use case beschrijvingen 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?

15 15 In aparte scenario's use case diagram use case beschrijvingen 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 Alternatieven4. [login ongeldig] 4.1. Verhoog aantal ongeldige logins 4.2. Naar stap 1 Faalscenario’s 1. [aantal ongeldige logins > 2 ] 1.1. Einde use case

16 OOM16 Activity diagram valideer aantal ongeldige logins «form» inloggen Abonnee Actor voert login en password in Applicatie valideert Verhoog aantal ongeldige logins [#ongeldige logins <= 2] [Actor geen abonnee] [login geldig] Markeer actor [Actor is abonnee] initial node decision node activity final node, met postconditie(s) merge node Use case p.89 Inloggen abonnee Nog een postconditie! decision node guard

17 OOM17 Layout v/d scenario’s valideer aantal ongeldige logins «form» inloggen Abonnee Actor voert login en password in Applicatie valideert Verhoog aantal ongeldige logins [#ongeldige logins <= 2] [Actor geen abonnee] [login geldig] Markeer actor [Actor is abonnee] Use case p.89 Inloggen abonnee Alternatief Faal Normaal

18 OOM18 Doel? 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 Activity diagram

19 OOM19 Nodes 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 Activity diagram

20 OOM20 Guards: 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 Activity diagram [login geldig]

21 OOM21 Fork / Join een fork start concurrent activities concurrency eindigt bij een join (gaat pas verder als alle concurrent acties gereed zijn) Activity diagram stuur bevestigingupdate portfolioverlaag saldo bestel product fork join

22 OOM22 Activity diagram Fork/join met activity partitions (swimlanes) request service pay take order fill order deliver order collect order CustomerSalesStockroom naam v/d partitie

23 OOM23 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

24 OOM24 Activity diagram Object flow symbols (toestanden) mogen tussen twee acties getekend worden symbool bevat object en toestand van dat object Order [placed] object toestand

25 OOM25 Activity diagram Object flow symbols (toestanden) request service pay take order fill order deliver order collect order CustomerSalesStockroom Order [placed] Order [entered] Order [delivered] Order [filled]

26 Pragmatisch modelleren Forks/joins en swimlanes nodig… Detailniveau UC goed? Object-flow modelleren… Nuttig in deze fase v/h project? OOM26

27 OOM27 Oefening: maak activity diagram Aanvragen Abonnement Bezoeker Invoeren Abonnement Valideren Abonnement Invoeren Creditcard Valideren Creditcard Versturen «include» «extend» Creditcard Maatschappij

28 OOM28 Use case beschrijving Naam Aanvragen Abonnement 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.

29 OOM29 Stappenplan 1.Voer uit Invoeren Abonnement 2.Als actor annuleert, einde use case 3.Voer uit Valideren Abonnement 4.Als Abonnement niet valide, herhaal 1 5.Voer uit Invoeren Creditcard 6.Als actor annuleert, einde use case 7.Voer uit Valideren Creditcard 8.Als Creditcard niet valide, herhaal 5 9.Als adres actor bekend is 9.1 Voer uit Versturen

30 OOM30 Oefening: uitwerking «use case» Invoeren Abonnement [abonnement is niet valide] [actor annuleert] «use case» Valideren Abonnement «use case» Invoeren Creditcard [creditcard is niet valide] «use case» Valideren Creditcard [actor annuleert] [actor heeft geannuleerd] Niet op hoofdas postconditie

31 OOM31 [actor is geabonneerd][actor is geabonneerd en is verstuurd] [ adres onbekend] «use case» Versturen

32 Demo Activity diagram in StarUML

33 OOM33 Vandaag Activity diagram Testscenario's Testen

34 OOM34 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 [#ongeldige logins > 2] [login geldig] Markeer actor [niet ingelogd] [ingelogd]

35 OOM35 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 [#ongeldige logins > 2] [login geldig] Markeer actor [niet ingelogd] [ingelogd]

36 OOM36 Vinden scenario’s 1.Deelpaden identificeren en nummeren: initial node  decision/merge node decision node  decision/merge node decision node  final node Begin met nummeren gewenst scenario 2.Paren van deelpaden maken Twee elkaar opvolgende deelpaden combineren 3.Scenario’s vinden: Paren deelpaden kop-staart leggen Alle mogelijke manieren om alle decision nodes te passeren Evt. overbodige scenario’s wegfilteren

37 OOM37 1. DP’en nummeren «use case» Invoeren Abonnement [abonnement is valide] [abonnement is bevestigd] «use case» Valideren Abonnement Toon melding «use case» Invoeren Creditcard Activities even wegdenken!

38 OOM38 Paren van deelpaden: 2. Paren deelpaden , , «use case» Invoeren Abonnement [abonnement is valide] [abonnement is bevestigd] «use case» Valideren Abonnement Toon melding «use case» Invoeren Creditcard

39 3. Scenario’s vinden Pragmatisch 1. Voor alle final nodes ‘F’ Start bij 1e paar (1-2) Ga naar ‘F’ Streep paren weg die je tegenkomt 2.Voor alle overgebleven paren ‘X-Y’ Start bij 1e paar (1-2) Ga naar ‘X-Y’, zo kort mogelijk Ga naar dichtstbijzijnde final node 3.Streep overbodige scenario’s weg Voldoende voor bijna alle UC’s! Complexe/risicovolle UC’s: meer scenario’s maken!

40 OOM40 Paren van deelpaden: Scenario’s (deelpaden combineren): 3. Scenario’s , , (overbodig) «use case» Invoeren Abonnement [abonnement is valide] [abonnement is bevestigd] «use case» Valideren Abonnement Toon melding «use case» Invoeren Creditcard

41 OOM41 Oefening: 1. deelpaden «use case» Invoeren Abonnement [abonnement is valide] [abonnement is bevestigd] «use case» Valideren Abonnement Toon foutmelding «use case» Invoeren Creditcard [creditcard is valide] «use case» Valideren Creditcard Toon foutmelding [creditcard is bevestigd]

42 OOM42 Oefening: 1. deelpaden «use case» Invoeren Abonnement [abonnement is valide] [abonnement is bevestigd] «use case» Valideren Abonnement Toon foutmelding «use case» Invoeren Creditcard [creditcard is valide] «use case» Valideren Creditcard Toon foutmelding [creditcard is bevestigd]

43 OOM43 Oefening: 2. Paren, 3. Scenario’s Paren van DP’en: , , , , Minimale scenario’s: (overbodig (1) ) (overbodig (2) ) (1) (2)

44 OOM44 Vandaag Activity diagram Testscenario’s Testen

45 OOM45 Scenario’s en testgevallen Bepalen scenario’s: 1.Deelpaden identificeren en nummeren 2.Paren deelpaden bepalen 3.Paren deelpaden kop-staart samenvoegen Per scenario meerdere testgevallen maken: 1.Testacties: acties door actor en applicatie 2.Testattributen: soort in- en uitvoer per testactie 3.Testgevallen: testattributen van waarde voorzien

46 OOM46 Testscenario’s en testgevallen Testscenario: 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, s wat vult actor in en hoe/waarmee reageert de applicatie? grenzen opzoeken: extreme waarden, lege velden, negatieve waarden

47 Simpele template testgeval Use case > Scenario > TestactiesTestattribuutWaarde 1. > > > …… 2. > > > …… 3. > … OOM47

48 Voorbeeld testgeval Use caseAanvragen abonnement ScenarioHappy day ( ) TestactiesTestattribuutWaarde 1.Invoeren abonnementKlantnr200 Geb. datum Valideren abonnement(systeem) 3.Invoeren creditcardCardnr Cardcode9999 OOM48

49 Voorbeeld testgeval (2) Use caseAanvragen abonnement ScenarioHappy day ( ) (met rare input) TestactiesTestattribuutWaarde 1.Invoeren abonnementKlantnrXxyyzz Geb. datumLetters 2.Valideren abonnement(systeem) 3.Invoeren creditcardCardnr … (Heel lang nummer) CardcodeABCD OOM49

50 Voorbeelden toetsvragen 50

51 Voorbeeldtoetsvraag 1.Volgens Hoogendoorn zit een secundaire use case op het volgende niveau: a)user goal b)strategic c)tactical d)sub function 51

52 Voorbeeldtoetsvraag 2.Eén bewandelbaar pad in het activity diagram a)is gelijk aan het stappenplan van een use case. b)komt overeen met een happy day scenario. c)komt overeen met één scenario van een use case. d)leidt niet altijd tot een postconditie. 52

53 Voorbeeldtoetsvraag 3.De eigenschap “één ingaande transitie en meerdere uitgaande transities” komt in een activity diagram overeen met een a)final node. b)merge node. c)initial node. d)decision node. 53

54 Voorbeeldtoetsvraag 4.Gegeven de volgende twee stellingen: I.Het aantal pragmatische scenario’s van een activity diagram is kleiner of gelijk aan het totaal aantal scenario’s. II.Elk pragmatisch scenario leidt tot een final node. Welke stelling is waar? a)Stelling I is waar. b)Stelling II is waar. c)Stelling I en II zijn beiden waar. d)Stelling I en II zijn beiden onwaar. 54

55 55 Planning/huiswerk B2 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 C2 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

56 56 Planning/huiswerk B1 e 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 C2 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

57 Als tijd over Demo class diagram in StarUML (hw-opgave)


Download ppt "OOM1 Object Oriented Modeling Week 2. Mededelingen Zie BB-annoucements Rooster: 2x extra les inplannen voor VT."

Verwante presentaties


Ads door Google