De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Unified Modeling Language

Verwante presentaties


Presentatie over: "Unified Modeling Language"— Transcript van de presentatie:

1 Unified Modeling Language
UML Unified Modeling Language

2 Waarom modelleren? Eenduidigheid:
versie 3 Waarom modelleren? Eenduidigheid: Afbeelding zegt meer dan 1000 woorden

3 Agenda <- zie linker kantlijn

4 Verkrijgbaar in elke boekhandel
Naslagwerk Verkrijgbaar in elke boekhandel

5 Programma van Eisen Beschrijft: Doel Bereik Eisen Use Cases

6 Doel Voorbeeld: Doel van een webshop is om klanten via internet producten te laten bestellen

7 beschrijft kort en bondig wat applicatie wel en niet doet.
Bereik beschrijft kort en bondig wat applicatie wel en niet doet.

8 Eisen Wat Niet hoe

9 product aan winkelwagen toevoegen
Use Cases product aan winkelwagen toevoegen verkoper klant bestelling plaatsen betalen via iDeal magazijnbediende bestelling verzenden

10 Alomtegenwoordige taal
Consequente, voor zich sprekende, naamgeving

11 Onduidelijkheden Taak van ontwerper om onduidelijkheden weg te nemen
Logboek t.b.v. traceerbaarheid, bijvoorbeeld voor als later dieper graven

12 Vragen?

13 Oefening Programma van Eisen
Beschrijf voor maatwerksoftware die uw organisatie wil (laten) bouwen: Doel Bereik Maak bereik klein, om kosten en doorlooptijd van realiseren laag te maken Eisen Use cases Dit is de basis voor uw functioneel ontwerp

14 Klassendiagram Doel: aangeven welke gegevens rol spelen

15 Klasse klant bestelling product

16 Object klant bestelling product

17 Attribuut Kleine letters, tenzij taalkundig altijd met hoofdletter
voornaam tussenvoegsel achternaam straat huisnummer huisnummertoevoeging postcode plaats klant bestelling nummer status besteld op product naam merk prijs incl. btw Kleine letters, tenzij taalkundig altijd met hoofdletter

18 Attribuuttypen voornaam : string tussenvoegsel : string
achternaam : string straat : string huisnummer : integer huisnummertoevoeging : string postcode : string plaats : string klant bestelling nummer : integer status : process besteld op : datetime product naam : string merk : string prijs incl. btw : amount in €

19 Optionele attributen klant bestelling voornaam : string [0..1]
tussenvoegsel : string [0..1] achternaam : string straat : string huisnummer : integer huisnummertoevoeging : string [0..1] postcode : string plaats : string klant bestelling nummer : integer status : process besteld op : datetime [0..1] product naam : string merk : string prijs incl. btw : amount in €

20 Enumeratie klant bestelling voornaam : string [0..1] nummer : integer
tussenvoegsel : string [0..1] achternaam : string geslacht : geslacht [0..1] straat : string huisnummer : integer huisnummertoevoeging : string [0..1] postcode : string plaats : string privilegeniveau : privilegeniveau nummer : integer status : process besteld op : datetime [0..1] product naam : string merk : string prijs incl. btw : amount in € «enumeration» geslacht man vrouw «enumeration» privilegeniveau brons zilver goud

21 Associatie klant bestelling product

22 Multipliciteit 1 * * * multipliciteit: Aantal geassocieerde objecten:
klant bestelling product 1 * * * multipliciteit: Aantal geassocieerde objecten: 1 precies 1 (afkorting van 1..1) 0..1 0 of 1 * 0 of meer (is afkorting van 0..*) 1..* 1 of meer

23 Voorkom kip ei probleem
klant bestelling 1 1..* klant bestelling 1 *

24 Tussenklasse klant bestelling 1 * bestelregel aantal : integer 1 *
product 1 *

25 Composiet = Cascading Delete
klant bestelling 1 * * product bestelregel 1 *

26 Aggregatie klant bestelling * * product bestelregel 1 *
Klant met zijn bestellingen verwijderen? Wilt u deze klant inclusief zijn 5 bestellingen verwijderen? Verwijderen Annuleren

27 Navigeerbaarheid klant bestelling 1 * * product bestelregel 1 *

28 Naam van associatie einde
vanaf transportboeking * 1 plaats naam : string * 1 naar

29 Referentieklasse Enumeratie: Referentieklasse: klant «enumeratie»
privilegeniveau privilegeniveau : privilegeniveau brons zilver goud Referentieklasse: klant 1 * privilegeniveau naam : string

30 Afgeleide attributen klant bestelling
/totaalbedrag bestelling incl. btw : amount in € 1 * * product bestelregel 1 aantal : integer prijs per stuk incl. btw : amount in € /totaalbedrag bestelregel incl. btw: amount in € *

31 Overerving hotelboeking «enumeration» bedgrootte king size queen size
budget size bedgrootte : bedgrootte ontbijt : boolean boeking aantal personen : integer totaalprijs incl. btw: amount in € plaats naam : string 1 * van naar transportboeking vliegreis klasse : vliegklasse «enumeration» vliegklasse business economy busreis

32 Gebruikers en rollen gebruiker gebruikersnaam : string
wachtwoord : password is klant : boolean is magazijnmedewerker : boolean is verkoper : boolean is produktbeheerder : boolean

33 Telefoonnummer type string

34 Layout van diagram Maak de layout van diagrammen zo, dat de letters voldoende groot zijn als je ze op een beamer of in een ontwerpdocument toont.

35 Object Relational Mapping

36 ORM: klasse voornaam : string tussenvoegsel : string [0..1]
achternaam : string klant product naam : string prijs incl. btw : amount in € klassendiagram: id (PK, int, not null) voornaam (varchar, not null) tussenvoegsel (varchar, null) achternaam (varchar, not null) klant product naam (varchar, not null) prijsInclBtw (decimal, not null) database-ontwerp:

37 ORM: 1 op veel associatie
klant bestelling id (PK, int, not null) klantid (FK, int, not null) database-ontwerp: klassendiagram: klant 1 * bestelling

38 ORM: veel op veel associatie
klassendiagram: database-ontwerp: student les studentid (PK, FK, int, not null) lesid (PK, FK, int, not null) student_les id (PK, int, not null) student les * *

39 ORM: 1 op 1 associatie klassendiagram: database-ontwerp: factuur
id (PK, FK, int, not null) id (PK, int, not null) bestelling bestelling 1 0..1 factuur

40 ORM: overerving Delegate
klassendiagram: database-ontwerp: id (PK, FK) bedgrootte overnachting reis afstand boeking id (PK) prijs boeking prijs overnachting reis bedgrootte afstand

41 ORM: overerving roll down
klassendiagram: database-ontwerp: id (PK) prijs bedgrootte overnachting reis afstand boeking prijs overnachting reis bedgrootte afstand

42 ORM: overerving roll up
klassendiagram: database-ontwerp: boeking id (PK) soort prijs bedgrootte afstand boeking prijs overnachting reis bedgrootte afstand

43 Vragen?

44 Oefening Klassendiagram
Maak klassendiagram met: Klassen Associaties Multipliciteiten Attributen Indien nodig: Overerving

45 Processen d.m.v. Activity Diagram
Doel: Laten zien welke processen de objecten van een klasse doorlopen

46 Voorbeeld van bedrijfsproces
proces van bestelling: klant magazijnmedewerker winkelwagen bestellen te betalen betaald betalen versturen verstuurd bestelling nummer : integer status : process besteld op : datetime [0..1]

47 [aantal bestelregels > 0]
Voorwaarde proces van bestelling: klant magazijnmedewerker winkelwagen [aantal bestelregels > 0] bestellen te betalen betaald betalen versturen verstuurd bestelling nummer : integer status : process besteld op : datetime [0..1]

48 Automatische Keuze proces van aanvraagregel: medewerker garagebedrijf
goedkeuring medewerker leasemaatschappij afkeuren nieuw afgekeurd [automatisch afgewezen] handmatig te beoordelen aangevraagd aanvragen [anders] [automatisch akkoord] gereed melden goedgekeurd goedkeuren gereed gemeld

49 Handmatige Keuze proces van aanvraagregel: medewerker garagebedrijf
automatische goedkeuring medewerker leasemaatschappij afkeuren nieuw afgekeurd [automatisch afgewezen] handmatig te beoordelen aangevraagd aanvragen [anders] [automatisch akkoord] gereed melden goedgekeurd goedkeuren gereed gemeld

50 Handmatige Keuze proces van aanvraagregel: medewerker garagebedrijf
automatische goedkeuring medewerker leasemaatschappij nieuw afgekeurd [automatisch afgewezen] handmatig te beoordelen aangevraagd aanvragen [anders] beoordelen [automatisch akkoord] gereed melden goedgekeurd gereed gemeld

51 Impliciete Merge proces van aanvraagregel: medewerker garagebedrijf
automatische goedkeuring medewerker leasemaatschappij nieuw afgekeurd [automatisch afgewezen] handmatig te beoordelen aangevraagd aanvragen [anders] beoordelen [automatisch akkoord] gereed melden goedgekeurd gereed gemeld

52 Verwijderen afh v status
proces van aanvraagregel: medewerker garagebedrijf automatische goedkeuring medewerker leasemaatschappij verwijderd verwijderen nieuw afgekeurd [automatisch afgewezen] handmatig te beoordelen aangevraagd aanvragen [anders] beoordelen [automatisch akkoord] gereed melden goedgekeurd gereed gemeld

53 betalings-herinnering incassobureau inschakelen
Timer proces van factuur: systeem boekhouder te versturen betaald versturen naar klant te betalen betaling koppelen na 1 week betalingsherinnering te versturen betalings-herinnering versturen betalingsherinnering verstuurd na 10 werkdagen incassobureau in te schakelen incassobureau ingeschakeld incassobureau inschakelen

54 Veel Ingangsstatussen
proces van factuur: systeem boekhouder te versturen betaald versturen naar klant te betalen betaling koppelen na 1 week betalingsherinnering te versturen betalings-herinnering versturen betalingsherinnering verstuurd na 10 werkdagen incassobureau in te schakelen incassobureau ingeschakeld incassobureau inschakelen

55 betalings-herinnering incassobureau inschakelen
Geen Ingangsstatus proces van factuur: systeem boekhouder te versturen betaald versturen naar klant te betalen betaling koppelen na 1 week betalingsherinnering te versturen betalings-herinnering versturen betalingsherinnering verstuurd na 10 werkdagen incassobureau in te schakelen incassobureau ingeschakeld incassobureau inschakelen

56 Parallelle activiteiten
proces van bestelling: klant systeem boekhouder magazijn- medewerker winkelwagen verstuurd te versturen bestelling versturen afgehandeld bestellen factuur versturen betaling koppelen betaald te factureren te betalen

57 Eenvoudig subproces afgehandeld proces van bestelling: klant systeem
boekhouder magazijn- medewerker winkelwagen verstuurd te versturen bestelling versturen afgehandeld bestellen proces van factuur: factuur versturen betaling koppelen betaald te factureren te betalen

58 Apart subproces afgehandeld proces van bestelling: klant systeem
magazijn- medewerker winkelwagen verstuurd te versturen bestelling versturen afgehandeld bestellen proces van factuur proces van factuur: systeem boekhouder factuur versturen betaling koppelen betaald te factureren te betalen

59 Signaal proces van bestelling: afgehandeld klant systeem magazijn-
medewerker factuur is betaald winkelwagen besteld te versturen bestellen factuur creëren bestelling versturen verstuurd proces van factuur: afgehandeld systeem boekhouder factuur is betaald te factureren factuur versturen te betalen betaling koppelen betaald

60 Layout van diagram Maak de layout van diagrammen zo, dat de letters voldoende groot zijn als je ze op een beamer of in een ontwerpdocument toont.

61 Schermstroom komt later
Inlogscherm [anders] Inloggen Toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect”. Overzicht belacties [gebruikersnaam en wachtwoord zijn correct] Volgende belactie Toon debiteur van volgende belactie. Belactie Debiteurdetails Uitloggen Uitloggen

62 Create, Read, Update, Delete komt later

63 Vragen?

64 Oefening voor Processen
Inventariseer van welke klassen in uw applicatie de objecten een bedrijfsproces doorlopen Teken voor elk van deze klassen: voor elke gebruikersrol die in het proces iets doet een zwembaan de activiteiten tussen deze activiteiten de statussen in de vorm van pijlen Indien dit weinig processen zijn: vraag docent om extra oefeningen In StarUML teken je een guard d.m.v. Annotation > Text

65 Rollen & Autorisaties Doel:
Aangeven welke rollen gebruikers kunnen hebben, en wat deze gebruikers kunnen (mogen) doen.

66 Zwembanen magazijnmedewerker klant winkelwagen bestellen te betalen
betaald versturen verstuurd proces van bestelling: bestelling nummer : integer status : process besteld op : datetime [0..1]

67 CRUD matrix Create Read Update Delete klant product- beheerder C R U D
magazijn- medewerker R klant eigen C R U D bestelling C R U1D1 eigen bestelregel C R U1D1 eigen product R indien de status van de bestelling ‘winkelwagen’ is 1

68 Attributen in CRUD matrix
klant product- beheerder magazijn- medewerker klant C R U D R eigen R bestelling C R U1D1 R eigen R bestelregel C R U1D1 eigen R R prijs incl. btw R eigen R R product R C R U D R indien de status van de bestelling ‘winkelwagen’ is 1

69 Associaties in CRUD matrix
klant plaats transportboeking van verkoper planner eigen C R U D C R D1 R R U indien de status van de reis ‘nog niet definitief’ is 1 naar plaats naam : string 1 * van naar transportboeking

70 Verwijderen afhankelijk van status
proces van reparatie- of onderhoudsactiviteit: medewerker garagebedrijf automatische goedkeuring medewerker leasemaatschappij verwijderd verwijderen nieuw afgewezen [automatisch afgewezen] aangevraagd handmatig te beoordelen aanvragen [anders] beoordelen [automatisch akkoord] gereed melden akkoord gereed gemeld

71 Vragen?

72 Oefening Rollen & Autorisaties
Maak CRUD matrix voor uw applicatie Waar nodig, aparte rijen voor attributen en associaties Wanneer alleen op eigen objecten, geef dit dan aan met het woord ‘eigen’ Als andere beperkingen, voetnoten

73 Navigatie: Schermstroomdiagram
Doel: Aangeven hoe gebruiker tussen de schermen van de applicatie navigeert

74 wachtwoord zijn correct]
Voorbeeld Schermstroom van debiteurenbeheerder: Inlogscherm [anders] Inloggen Toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect”. Overzicht belacties [gebruikersnaam en wachtwoord zijn correct] Volgende belactie Toon debiteur van volgende belactie. Belactie Debiteurdetails Uitloggen Uitloggen

75 wachtwoord zijn correct] «pseudostate» menubalk
Hoofdmenu Schermstroom van productbeheerder: Inlogscherm Inloggen toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect” [anders] [gebruikersnaam en wachtwoord zijn correct] Uitloggen «pseudostate» menubalk Producten Klanten Bestellingen Creëren Annuleren Sluiten Sluiten «popup» Nieuw product «popup» Klant «popup» Bestelling Opslaan Annuleren «popup» Product

76 Navigeren via hoofdvenster...
Product naam Kaas, jong, 1 kilogram prijs incl. btw 12 Opslaan Annuleren

77 ...of via popup Product naam Kaas, jong, 1 kilogram prijs incl. btw €
12 Opslaan Sluiten

78 Layout van diagram Maak de layout van je diagrammen zo, dat ze grote letters hebben als je ze op een beamer wilt laten zien.

79 Vragen?

80 Oefening voor Schermnavigatie
Teken het hoofdmenu van uw applicatie Teken de schermstroomdiagrammen voor uw applicatie StarUML toont een choice als een cirkel i.p.v. een diamant

81 Schermen Doel: Aangeven wat je ziet op de schermen, en hoe ze werken
Mooie vormgeving valt buiten bereik van deze cursus, dus besteed daar nu geen tijd aan!

82 Toevoegen aan winkelwagen
Voorbeeld Startscherm van een klant: Gebruikersaccount aanmaken Inloggen Apple In winkelwagen: Zoek producten 1 x iPad 3G 3 x Magic Mouse € 398 € 195 Prijs inc. btw Product Merk Aantal Totaal inc. btw € 593 iPad Apple € 320 Bestellen iPad 3G Apple € 398 iPhone 4GS Apple € 495 MacBook Air 11 inch 64 GB Apple € 869 MacBook Air 13 inch 128 GB Apple € 999 Magic Mouse Apple € 65 Magic Trackpad Apple € 85 Toevoegen aan winkelwagen

83 Moet kloppen met schermstroom
Schermstroom van een klant: toevoegen aan winkelwagen startscherm bestellen aangegeven aantallen toevoegen aan winkelwagen en aantallen weer leeg maken winkelwagen betalen gebruikersaccount aanmaken [anders] aanmelden gebruikersaccount aanmaken sluiten [ingelogd] inloggen toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect” betalen «modal» bevestiging betaling [anders] [gebruikersnaam en wachtwoord zijn correct] «modal» betalen via iDeal bevestigen

84 Attributen van klassendiagram
Type van het attribuut: Schermelement: amount textbox met valutateken boolean checkbox date date picker vrijdag 6 april 2012 ::: datetime of timestamp date picker met tijdbox vrijdag 6 april 2012 ::: 9:15 enumeratie radiogroep of dropdown keuze 1 keuze 2 keuze 3 of keuze 1 keuze 2 integer, float textbox string textbox time tijdbox 9:15

85 Associatie enkelvoudige multipliciteit
klant verkoper * 0..1 Situatie: Schermelement: Weinig elementen om uit te kiezen en genoeg ruimte beschikbaar radio groep keuze 1 keuze 2 keuze 3 Weinig elementen om uit te kiezen en weinig ruimte beschikbaar dropdown keuze 1 keuze 2 keuze 3 Veel elementen om uit te kiezen veld met selecteerknop keuze 1

86 Associatie meervoudige multipliciteit
klant verkoper * 0..1 Klanten Klant toevoegen… + Abel de Eerste x Benny van Beverwijk x Dirk Smets x Karel de Grote x Nico de Haas x Peter Pippeling x Stefan Klein Zwaaftink x

87 Duidelijke namen van knoppen
Opslaan? Wilt u de wijzigingen opslaan? Opslaan Niet opslaan Annuleren Opslaan? Wilt u de wijzigingen opslaan? Ja Nee Annuleren

88 Knop uitgrijzen Persoon voornaam tussenvoegsel achternaam *
straat & huisnummer * postcode & plaats * telefoon thuis telefoon mobiel Opslaan Annuleren Velden met een * zijn verplicht Opslaan is niet mogelijk omdat er geen achternaam, straat, huisnummer, postcode en plaats is ingevuld.

89 Helpteksten Nieuwe persoon voornaam tussenvoegsel achternaam
? achternaam straat & huisnummer ? postcode & woonplaats Het huisnummer is inclusief de eventuele toevoeging (bis, III hoog, a, etc.). telefoon thuis telefoon mobiel Creëren Annuleren

90 Defaultwaarden... Nieuw leasecontract Kenteken Ingangsdatum :::
Looptijd 36 maanden Winterbanden Brandstof Benzine Diesel Elektriciteit LPG Opslaan Annuleren

91 ... of zekerheid dat bewust invullen
Nieuw leasecontract Kenteken * Ingangsdatum * ::: Looptijd * maanden Winterbanden * Brandstof * Benzine Diesel Elektriciteit LPG Opslaan Annuleren Velden met een * zijn verplicht

92 Niet-modale mededeling
De wijzigingen in klant Nico de Haas zijn opgeslagen. Klanten Klant toevoegen… + Abel de Eerste x Benny van Beverwijk x Dirk Smets x Karel de Grote x Nico de Haas x Peter Pippeling x Stefan Klein Zwaaftink x

93 Bevestigen of ongedaan maken
De klant Jan Jansen is verwijderd ongedaan maken Klanten + Klant toevoegen… Abel de Eerste x Benny van Beverwijk x Dirk Smets x Karel de Grote x Nico de Haas x Peter Pippeling x Stefan Klein Zwaaftink x

94 Het CRUD patroon... + x x x x x x x Producten Nieuw product…
Kaas, belegen, 1 kilogram € 14,- x Kaas, jong, 1 kilogram € 12,- x Kaas, oud, 1 kilogram € 16,- x Kwark, halfvol, 500 gram € 3,- x Kwark, vol, 500 gram € 4,- x Melk, vol, 1 liter € 1,50 x Yoghurt, vol, 1 liter € 2,- x hoofdmenu Producten Creëren Annuleren Opslaan Annuleren Nieuw product Product

95 ... CRUD patroon Nieuw product naam Slagroom, vol, 250 gram
prijs incl. btw 3 Creëren Annuleren Product naam Kaas, jong, 1 kilogram prijs incl. btw 12 Opslaan Sluiten

96 Layout van diagram Maak de layout van schermen zo, dat de letters voldoende groot zijn als je ze op een beamer of in een ontwerpdocument toont.

97 Vragen?

98 Oefening voor schermen
Teken de schermen van uw applicatie Maak schermstroomdiagram consistent ermee Maak alles consistent met eerder getekende diagrammen

99 Bedrijfslogicaregels

100 Meestal onderdeel van model
proces van bestelling: klant magazijnmedewerker bestelling * bestelregel winkelwagen bestellen te betalen betaald betalen versturen verstuurd

101 Soms in tekst beschrijven
Voorbeeld Als een klant voor € 1000 (excl. btw) of meer tegelijk bestelt, krijgt hij 2% korting. Altijd kort en duidelijk beschrijven!

102 Voorwaarde in bedrijfsproces
backorderen te backorderen [anders] betaald [voldoende in voorraad] versturen te versturen

103 Voorwaarde in schermstroom
Inlogscherm Inloggen [anders] [gebruikersnaam en wachtwoord zijn correct] Overzicht belacties

104 Automatische gebeurtenis
Inlogscherm Inloggen Toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect”. [anders] [gebruikersnaam en wachtwoord zijn correct] Overzicht belacties

105 Vragen?

106 Oefening voor Bedrijfslogicaregels
Beschrijf de bedrijfslogicaregels van uw applicatie

107 Rapporten & Koppelingen

108 Rapporten Specification by Example Representatieve gegevens
Bijvoorbeeld meerdere exemplaren waar dat mogelijk moet zijn Tonen via schermstroom hoe gebruikers rapport kunnen opvragen

109 Koppelingen tussen systemen
webshop iDeal

110 Afhankelijkheden tussen systemen
controller model view

111 Afhankelijkheden tussen packages
user interface business logic entities

112 Vragen over de hele stof?

113 Oefening Maak uw functioneel ontwerp volledig en correct
Maak voorbeelden van de te genereren rapporten Geef aan welke systemen een rol spelen Geef de afhankelijkheden tussen deze systemen weer In StarUML teken je een interface als interface + association, en wordt een dependency op een interface op een andere manier getoond.

114 Van ontwerp naar realisatie

115 Scrum sprint 1 sprint 2 etc. sprint planning daily standup
sprint demo retrospective sprint 2 sprint planning sprint demo daily standup retrospective etc. tijd etc.

116 Product Backlog Debiteuren zien Openstaand bedrag van debiteur zien
Facturen zien Betalingen zien Betalingsherinneringen aanmaken Betalingsherinneringen zien Betalingsherinneringen versturen Contactmomenten loggen Contactmomenten zien

117 Rollen in een Scrum proces
product owner scrum master teamlid Het proces Ontwikkelaar Tester Grafisch ontwerper etc. Functioneel ontwerp

118 Iteratieplan sprint 1: Openstaande bedragen inzien
tijd sprint 2: Facturen en betalingen inzien etc. sprint 3: Herinneringen versturen sprint 4: Contactmomenten loggen

119 Modelgedreven Ontwikkeling
Modellen Sjablonen Code generatie Source code van werkende applicatie Modellen Engine Werkende applicatie Runtime interpretatie

120 Oefening Maak een product backlog op basis waarvan uw functioneel ontwerp gebouwd kan worden.

121 Veel modelleerplezier!


Download ppt "Unified Modeling Language"

Verwante presentaties


Ads door Google