1 / 56

Object Oriented Modeling

Object Oriented Modeling. Week 2. Mededelingen. Zie BB-annoucements Rooster: 2x extra les inplannen voor VT. Vandaag. Use case uitbreiding Activity diagram Testscenario's Testen. Diagram. Activity Diagram. Interaction Diagram. Use case Diagram. Composite Structure Diagram.

morley
Télécharger la présentation

Object Oriented Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object Oriented Modeling Week 2

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

  3. Vandaag • Use case uitbreiding • Activity diagram • Testscenario's • Testen

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

  5. week2 tijd Volgorde modelleertechnieken procesdiagram use case diagram use case beschrijvingen activity diagrammen test cases business class diagram (domein) user interface diagram sequencediagram gegevensdiagram (database) state machine diagram detail classdiagram packagediagram

  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. use casediagram Use case niveau's merge companies 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. use case beschrijvingen use casediagram Voorbeeld (1)

  12. use casediagram use case beschrijvingen Voorbeeld (2) Wat is hier: gewenst, alternatief, faal?

  13. use casediagram use case beschrijvingen In aparte scenario's Waar kan het 'mis' gaan? Guard

  14. Voorbeeld 2 use casediagram use case beschrijvingen Wat is hier: gewenst, alternatief, faal? 14

  15. In aparte scenario's use casediagram use case beschrijvingen 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] decision node «form» inloggen Abonnee Nog een postconditie! Verhoog aantal ongeldige logins Actor voert login en password in Applicatie valideert decision node [login geldig] guard Markeer actor final node, met postconditie(s) [Actor is abonnee]

  17. Layout v/d scenario’s Normaal 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

  18. Activity diagram • 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

  19. 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. Activity diagram [login geldig] 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

  21. stuur bevestiging verlaag saldo update portfolio bestel product Activity diagram Fork / Join • een fork start concurrent activities • concurrency eindigt bij een join (gaat pas verder als alle concurrent acties gereed zijn) fork join

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

  23. 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. Activity diagram Object flow symbols (toestanden) • mogen tussen twee acties getekend worden • symbool bevat object en toestand van dat object object Order [placed] toestand

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

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

  27. Oefening: maak activity diagram Invoeren Abonnement Valideren Abonnement «include» «include» Invoeren Creditcard «include» Aanvragen Abonnement «include» Bezoeker Valideren Creditcard «extend» CreditcardMaatschappij Versturen e-mail

  28. Use case beschrijving

  29. Stappenplan

  30. Oefening: uitwerking Niet op hoofdas «use case» Invoeren Abonnement [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 [actor heeft geannuleerd] [creditcard is niet valide]

  31. [e-mail adres onbekend] «use case» Versturen e-mail [actor is geabonneerd] [actor is geabonneerd en e-mail is verstuurd]

  32. Demo Activity diagram in StarUML

  33. Vandaag • Activity diagram • Testscenario's • Testen

  34. Scenario’s valideer aantal ongeldige logins [#ongeldige logins > 2] [niet ingelogd] «form» inloggen Abonnee Verhoog aantal ongeldige logins Actor voert login en password in Applicatie valideert [login geldig] Markeer actor [ingelogd] • Op hoeveel manieren kun je hier doorheen lopen? • Welke manieren zijn dit dan? •  Scenario’s! OOM 34

  35. Scenario’s valideer aantal ongeldige logins [#ongeldige logins > 2] [niet ingelogd] «form» inloggen Abonnee Verhoog aantal ongeldige logins Actor voert login en password in Applicatie valideert [login geldig] Markeer actor [ingelogd] • 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) OOM 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

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

  38. 2. Paren deelpaden 1 «use case» Invoeren Abonnement 2 5 6 [abonnement is bevestigd] Toon melding «use case» Valideren Abonnement 3 [abonnement is valide] «use case» Invoeren Creditcard 4 Paren van deelpaden: 1-2 2-3, 2-6 3-4, 3-5 5-2 OOM 38

  39. 3. Scenario’s vinden Pragmatisch 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’ Start bij 1e paar (1-2) 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 «use case» Invoeren Abonnement 2 5 6 [abonnement is bevestigd] Toon melding «use case» Valideren Abonnement 3 [abonnement is valide] «use case» Invoeren Creditcard 4 Paren van deelpaden: 1-2 2-3, 2-6 3-4, 3-5 5-2 Scenario’s (deelpaden combineren): 1-2-3-4 1-2-6(overbodig) 1-2-3-5-2-6 OOM 40

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

  42. 4 7 1 2 9 8 10 11 3 5 6 Oefening: 1. deelpaden «use case» Invoeren Abonnement [abonnement is bevestigd] Toon foutmelding «use case» Valideren Abonnement [abonnement is valide] «use case» Invoeren Creditcard [creditcard is bevestigd] «use case» Valideren Creditcard Toon foutmelding [creditcard is valide]

  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: • 1-2-10 (overbodig (1)) • 1-2-3-4-5-11 (overbodig (2)) • 1-2-3-4-5-6-7 • 1-2-3-8-2-10(1) • 1-2-3-4-5-6-9-5-11(2)

  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 • 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, s301234 • wat vult actor in en hoe/waarmee reageert de applicatie? • grenzen opzoeken: • extreme waarden, lege velden, negatieve waarden

  47. Simpele template testgeval

  48. Voorbeeld testgeval

  49. Voorbeeld testgeval (2)

  50. Voorbeelden toetsvragen 50

More Related