1 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding UML Unified Modeling Language
2 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Waarom modelleren? Eenduidigheid: Afbeelding zegt meer dan 1000 woorden versie 3
3 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Agenda <- zie linker kantlijn
4 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Naslagwerk Verkrijgbaar in elke boekhandel
5 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Programma van Eisen Beschrijft: Doel Bereik Eisen Use Cases
6 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Doel Voorbeeld: Doel van een webshop is om klanten via internet producten te laten bestellen
7 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Bereik beschrijft kort en bondig wat applicatie wel en niet doet.
8 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Eisen Wat Niet hoe
9 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding klant magazijnbediendeverkoper product aan winkelwagen toevoegen bestelling verzenden Use Cases betalen via iDeal product zoeken bestellingen bekijken bestelling plaatsen product manager producten beheren werkwoord
10 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Alomtegenwoordige taal Consequente, voor zich sprekende, naamgeving
11 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Onduidelijkheden Taak van ontwerper om onduidelijkheden weg te nemen Logboek t.b.v. traceerbaarheid, bijvoorbeeld voor als later dieper graven
12 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?
13 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Oefening Programma van Eisen Use cases Dit is de basis voor uw functioneel ontwerp Beschrijf voor maatwerksoftware die uw organisatie wil (laten) bouwen:
14 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Klassendiagram Doel: aangeven welke gegevens rol spelen
15 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Klasse klantbestellingproduct
16 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Object klantbestelling product Klassenaam is altijd enkelvoud
17 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Attribuut voornaam tussenvoegsel achternaam straat huisnummer huisnummertoevoeging postcode plaats klantbestelling nummer status besteld op product naam merk prijs incl. BTW Kleine letters, tenzij taalkundig altijd met hoofdletter
18 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Attribuuttypen voornaam : string tussenvoegsel : string achternaam : string straat : string huisnummer : integer huisnummertoevoeging : string postcode : string plaats : string klantbestelling nummer : integer status : process besteld op : datetime product naam : string merk : string prijs incl. BTW: amount in €
19 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Optionele attributen voornaam : string [0..1] tussenvoegsel : string [0..1] achternaam : string straat : string huisnummer : integer huisnummertoevoeging : string [0..1] postcode : string plaats : string klantbestelling nummer : integer status : process besteld op : datetime [0..1] product naam : string merk : string prijs incl. BTW: amount in €
20 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Enumeratie voornaam : string [0..1] tussenvoegsel : string [0..1] achternaam : string geslacht : geslacht [0..1] straat : string huisnummer : integer huisnummertoevoeging : string [0..1] postcode : string plaats : string privilegeniveau : privilegeniveau klant bestelling product nummer : integer status : process besteld op : datetime [0..1] naam : string merk : string prijs incl. BTW: amount in € «enumeration» privilegeniveau brons zilver goud «enumeration» geslacht man vrouw
21 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Associatie klantbestelling product
22 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Multipliciteit 1 ** * klantbestelling product multipliciteit:Aantal geassocieerde objecten: 1precies 1 (afkorting van 1..1) of 1 *0 of meer (is afkorting van 0..*) 1..*1 of meer
23 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Voorkom kip ei probleem klantbestelling 1 1..* klantbestelling 1 *
24 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Tussenklasse klantbestelling product 1 * * 1 * bestelregel aantal : integer 1
25 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Composiet = Cascading Delete klantbestelling product 1 * * bestelregel 1 *
26 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Aggregatie klant product * bestelregel 1 * * Klant met zijn bestellingen verwijderen? Wilt u deze klant inclusief zijn 5 bestellingen verwijderen? VerwijderenAnnuleren bestelling
27 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Navigeerbaarheid klantbestelling product 1 * * bestelregel 1 *
28 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Naam van associatie einde vervoer plaats naam : string 1 * 1 * naar vanaf
29 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Referentieklasse privilegeniveau : privilegeniveau klant «enumeratie» privilegeniveau brons zilver goud Enumeratie: Referentieklasse: privilegeniveau naam : string klant 1 *
30 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Afgeleide attributen klantbestelling product 1 * * bestelregel 1 * aantal : integer prijs per stuk incl. btw : amount in € /totaalbedrag bestelregel incl. BTW: amount in € /totaalbedrag bestelling incl. BTW: amount in €
31 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Overerving hotelovernachting «enumeration» bedgrootte king size queen size budget size bedgrootte : bedgrootte ontbijt : boolean vervoer per bus vervoer per vliegtuig klasse : vliegklasse «enumeration» vliegklasse business economy plaats naam : string 1 * van 1 * naar vervoer boeking boekingsregel aantal personen : integer totaalprijs incl. btw: amount in €
32 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Gebruikers en rollen gebruikersnaam : string wachtwoord : password is klant : boolean is magazijnmedewerker : boolean is verkoper : boolean is produktbeheerder : boolean gebruiker
33 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Telefoonnummer type string
34 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Object Relational Mapping
36 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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 id (PK, int, not null) naam (varchar, not null) prijsInclBTW (decimal, not null) database-ontwerp:
37 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding ORM: 1 op veel associatie klant bestelling 1 * klassendiagram: klant bestelling id (PK, int, not null) klantid (FK, int, not null) id (PK, int, not null) database-ontwerp:
38 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding ORM: veel op veel associatie klassendiagram: student les ** database-ontwerp: student les studentid (PK, FK, int, not null) lesid (PK, FK, int, not null) student_les id (PK, int, not null)
39 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding ORM: 1 op 1 associatie klassendiagram: bestelling factuur database-ontwerp: factuur id (PK, FK, int, not null) id (PK, int, not null) bestelling
40 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding ORM: 1 op 1 associatie klassendiagram: bestelling factuur database-ontwerp: id (PK, int, not null) bestellingEnFactuur
41 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding ORM: overerving Delegate klassendiagram: bedgrootte overnachting vervoer afstand boekingsregel prijs inc BTW database-ontwerp: id (PK, FK) bedgrootte overnachtingvervoer id (PK, FK) afstand boekingsregel id (PK) prijs inc BTW
42 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding ORM: overerving roll down klassendiagram: bedgrootte overnachting vervoer afstand database-ontwerp: id (PK) prijs inc BTW bedgrootte overnachtingvervoer id (PK) prijs inc BTW afstand boekingsregel prijs inc BTW
43 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding ORM: overerving roll up klassendiagram: bedgrootte overnachtingvervoer afstand boekingsregel prijs inc BTW database-ontwerp: boekingsregel id (PK) soort prijs inc BTW bedgrootte afstand
44 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Onvolmaakte requirements Requirements zijn altijd onvolmaakt Het is deel van de professionaliteit van de ontwerper om dit d.m.v. aanvullende elicitaties aan te vullen
45 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?
46 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Oefening Klassendiagram Maak klassendiagram met: Klassen Associaties Multipliciteiten Attributen Indien nodig: Overerving
47 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Processen d.m.v. Activity Diagram Doel: Laten zien welke processen de objecten van een klasse doorlopen
48 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Voorbeeld van bedrijfsproces magazijnmedewerkerklant winkelwagen bestellen te betalen betalen betaald versturen verstuurd proces van bestelling: bestelling nummer : integer status : process besteld op : datetime [0..1]
49 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Voorwaarde magazijnmedewerkerklant winkelwagen bestellen te betalen betalen betaald versturen verstuurd proces van bestelling: bestelling nummer : integer status : process besteld op : datetime [0..1] [aantal bestelregels > 0]
50 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Automatische Keuze proces van aanvraagregel: automatische goedkeuring medewerker leasemaatschappij medewerker garagebedrijf nieuw aanvragen gereed melden goedgekeurd afkeuren [anders] handmatig te beoordelen aangevraagd [automatisch akkoord] gereed gemeld afgekeurd [automatisch afgewezen] goedkeuren
51 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Handmatige Keuze automatische goedkeuring medewerker leasemaatschappij medewerker garagebedrijf nieuw aanvragen gereed melden goedgekeurd afkeuren proces van aanvraagregel: [anders] handmatig te beoordelen aangevraagd [automatisch akkoord] gereed gemeld afgekeurd [automatisch afgewezen] goedkeuren
52 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Timer boekhoudersysteem te betalen betaling koppelen betaald proces van factuur: versturen naar klant betalings- herinnering versturen te versturen na 1 week na 10 werkdagen incassobureau inschakelen incassobureau ingeschakeld incassobureau in te schakelen betalingsherinnering te versturen betalingsherinnering verstuurd betaling factuur
53 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Parallelle activiteiten boekhoudermagazijn- medewerker systeemklant winkelwagen te versturen bestelling versturen proces van bestelling: factuur versturen betaald te betalen betaling koppelen te factureren bestellen verstuurd afgehandeld
54 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Eenvoudig subproces boekhoudermagazijn- medewerker systeem proces van factuur: klant winkelwagen te versturen bestelling versturen proces van bestelling: factuur versturen betaald te betalen betaling koppelen te factureren bestellen verstuurd afgehandeld
55 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Apart subproces systeem boekhouder systeem magazijn- medewerker klant winkelwagen te versturen bestelling versturen proces van bestelling: factuur versturen betaald te betalen betaling koppelen te factureren bestellen verstuurd afgehandeld proces van factuur proces van factuur:
56 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Signaal magazijn- medewerker systeem klant winkelwagen bestellen besteld factuur creëren te versturen bestelling versturen afgehandeld proces van bestelling: factuur is betaald verstuurd boekhoudersysteem betaald te betalen betaling koppelen proces van factuur: factuur is betaald factuur versturen te factureren afgehandeld
57 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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.
58 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Schermstroom komt later Uitloggen Inlogscherm Overzicht belacties [gebruikersnaam en wachtwoord zijn correct] Inloggen [anders] Toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect”. Volgende belactie Toon debiteur van volgende belactie. Uitloggen Belactie Debiteurdetails
59 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Create, Read, Update, Delete komt later
60 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?
61 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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
62 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Rollen & Autorisaties Doel: Aangeven welke rollen gebruikers kunnen hebben, en wat deze gebruikers kunnen (mogen) doen.
63 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Zwembanen magazijnmedewerkerklant winkelwagen bestellen te betalen betalen betaald versturen verstuurd proces van bestelling: bestelling nummer : integer status : process besteld op : datetime [0..1]
64 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding CRUD matrix klant eigen C R U D product R bestelling C R U 1 D 1 eigen bestelregel C R U 1 D 1 eigen indien de status van de bestelling ‘winkelwagen’ is 1 magazijn- medewerker R R R R product- beheerder C R U D R R R CreateReadUpdateDelete
65 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Attributen in CRUD matrix klant bestelling product bestelregel prijs incl. btw product- beheerder klant magazijn- medewerker C R U 1 D 1 eigen C R U D C R U 1 D 1 R R eigen indien de status van de bestelling ‘winkelwagen’ is 1 eigen C R U DR R R R R R R R R verkoper C R U 1 D 1 C R U D C R U 1 D 1 R R U
66 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Associaties in CRUD matrix klant plaats transportboeking van verkoper klant planner eigen C R U D C R D 1 R R U eigen indien de status van de reis ‘nog niet definitief’ is 1 eigen C R U DR R R R R R R naar R U eigen R R plaats naam : string 1 * van 1 * naar transportboeking
67 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?
68 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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
69 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Navigatie: Schermstroomdiagram Doel: Aangeven hoe gebruiker tussen de schermen van de applicatie navigeert
70 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Voorbeeld Uitloggen Inlogscherm Overzicht belacties [gebruikersnaam en wachtwoord zijn correct] Inloggen [anders] Toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect”. Volgende belactie Toon debiteur van volgende belactie. Uitloggen Belactie Debiteurdetails Schermstroom van debiteurenbeheerder:
71 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Hoofdmenu Inlogscherm Producten [gebruikersnaam en wachtwoord zijn correct] Inloggen [anders] «pseudostate» menubalk toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect” Klanten Bestellingen «popup» Nieuw product Annuleren Creëren «popup» Product Annuleren Opslaan «popup» Klant «popup» Bestelling Uitloggen Sluiten Schermstroom van productbeheerder:
72 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Tabbladen Inlogscherm Producten [gebruikersnaam en wachtwoord zijn correct] Inloggen [anders] «pseudostate» tabcontrol toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect” Klanten Bestellingen «popup» Nieuw product Annuleren Creëren «popup» Product Annuleren Opslaan «popup» Klant «popup» Bestelling Uitloggen Sluiten Schermstroom van productbeheerder:
73 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Navigeren via hoofdvenster... Product prijs incl. btw naam Kaas, jong, 1 kilogram 12 OpslaanAnnuleren € Producten Product Annuleren Opslaan
74 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding...of via popup Product prijs incl. btw naam Kaas, jong, 1 kilogram 12 OpslaanSluiten € Producten «popup» Product Annuleren Opslaan
75 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Gebruikersrollen Indien UI grotendeels gelijk: zelfde schermstroom Anders verschillende schermstromen voor verschillende rollen
76 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Layout van diagram Maak de layout van je diagrammen zo, dat ze grote letters hebben als je ze op een beamer wilt laten zien.
77 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?
78 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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
79 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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!
80 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Moet kloppen met schermstroom aanmelden startscherm inloggen [anders] toevoegen aan winkelwagen toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect” bestellen winkelwagen «modal» betalen via iDeal [ingelogd] [anders] betalen gebruikersaccount aanmaken gebruikersaccount aanmaken [gebruikersnaam en wachtwoord zijn correct] betalen bevestigen sluiten aangegeven aantallen toevoegen aan winkelwagen en aantallen weer leeg maken «modal» bevestiging betaling Schermstroom van een klant:
81 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Attributen van klassendiagram Schermelement: Type van het attribuut: boolean checkbox integer, float textbox string textbox amount textbox met valutateken € date date picker vrijdag 6 april 2012 ::: datetime of timestamp date picker met tijdbox vrijdag 6 april 2012 ::: 9:15 time tijdbox 9:15 enumeratie radiogroep of dropdown keuze 1 keuze 2 keuze 1 keuze 2 keuze 3 of Voorbeeld:
82 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Associatie enkelvoudige multipliciteit klantverkoper * 0..1 keuze 1 keuze 2 keuze 3 Weinig elementen om uit te kiezen en weinig ruimte beschikbaar dropdown keuze 1 Veel elementen om uit te kiezen veld met selecteerknop Schermelement: Situatie: Weinig elementen om uit te kiezen en genoeg ruimte beschikbaar radio groep (geen) keuze 1 keuze 2 keuze 3 Voorbeeld:
83 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Associatie meervoudige multipliciteit klantverkoper * 0..1 Abel de Eerste Benny van Beverwijk Dirk Smets Karel de Grote Nico de Haas Peter Pippeling Stefan Klein Zwaaftink Klanten
84 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Enkelvoudige multipliciteit – Ongebruikelijke create & delete klantverkoper * 0..1 Schermelement: Situatie: Weinig elementen om uit te kiezen en genoeg ruimte beschikbaar radio groep keuze 1 keuze 2 keuze 3 (geen) keuze 1 keuze 2 keuze 3 Weinig elementen om uit te kiezen en weinig ruimte beschikbaar dropdown Veel elementen om uit te kiezen veld met selecteerknop
85 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Duidelijke namen van knoppen Opslaan? Wilt u de wijzigingen opslaan? OpslaanNiet opslaanAnnuleren Opslaan? Wilt u de wijzigingen opslaan? JaNeeAnnuleren
86 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Knop uitgrijzen tussenvoegsel postcode & plaats * telefoon thuis Persoon voornaam straat & huisnummer * achternaam * telefoon mobiel OpslaanAnnuleren Velden met een * zijn verplicht Opslaan is niet mogelijk omdat er geen achternaam, straat, huisnummer, postcode en plaats is ingevuld.
87 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Helpteksten tussenvoegsel postcode & woonplaats telefoon thuis Nieuwe persoon voornaam straat & huisnummer achternaam telefoon mobiel CreërenAnnuleren ? ? Het huisnummer is inclusief de eventuele toevoeging (bis, III hoog, a, etc.).
88 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Defaultwaarden... Ingangsdatum Brandstof Nieuw leasecontract Kenteken Winterbanden Looptijd 36 OpslaanAnnuleren ::: maanden Benzine Diesel Elektriciteit LPG
89 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding... of zekerheid dat bewust invullen Ingangsdatum * Brandstof * Nieuw leasecontract Kenteken * Winterbanden * Looptijd * OpslaanAnnuleren ::: maanden Benzine Diesel Elektriciteit LPG Velden met een * zijn verplicht
90 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Niet-modale mededeling Abel de Eerste Benny van Beverwijk Dirk Smets Karel de Grote Nico de Haas Peter Pippeling Stefan Klein Zwaaftink Klanten Klant toevoegen… x + x x x x x x De wijzigingen in klant Nico de Haas zijn opgeslagen.
91 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Bevestigen of ongedaan maken Abel de Eerste Benny van Beverwijk Dirk Smets Karel de Grote Nico de Haas Peter Pippeling Stefan Klein Zwaaftink Klanten Klant toevoegen… x + x x x x x x De klant Jan Jansen is verwijderd. ongedaan maken
92 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Het CRUD patroon... Kaas, belegen, 1 kilogram€ 14,- Kaas, jong, 1 kilogram€ 12,- Kaas, oud, 1 kilogram€ 16,- Kwark, halfvol, 500 gram€ 3,- Kwark, vol, 500 gram€ 4,- Melk, vol, 1 liter€ 1,50 Yoghurt, vol, 1 liter€ 2,- Producten Nieuw product… x + x x x x x x Producten hoofdmenu Nieuw product Annuleren Creëren Product Annuleren Opslaan
93 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding... CRUD patroon Nieuw product prijs incl. btw naam Slagroom, vol, 250 gram 3 CreërenAnnuleren € Product prijs incl. btw naam Kaas, jong, 1 kilogram 12 OpslaanSluiten €
94 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding 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.
95 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Balsamiq
96 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?
97 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Oefening voor schermen Teken de schermen van uw applicatie Naam van elk scherm correspondeert met naam blokje in schermstroomdiagram Maak schermstroomdiagram consistent ermee Maak alles consistent met eerder getekende diagrammen Studenten HvA: geef in Functioneel Ontwerp aan dat het door HvA gebruikt mag worden voor onderwijsdoeleinden
98 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Logica en Koppelingen
99 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Meestal onderdeel van model bestelling * bestelregel magazijnmedewerkerklant winkelwagen bestellen te betalen betalen betaald versturen verstuurd proces van bestelling:
100 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Soms in tekst beschrijven Altijd kort en duidelijk beschrijven! Voorbeeld Als klant wil ik 2% korting wanneer ik € 1000 (excl. btw) of meer tegelijk bestel.
101 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Voorwaarde in bedrijfsproces versturen [voldoende in voorraad] [anders] backorderen te backorderen te versturen betaald
102 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Voorwaarde in schermstroom Inlogscherm Overzicht belacties [gebruikersnaam en wachtwoord zijn correct] Inloggen [anders]
103 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Automatische gebeurtenis Inlogscherm Overzicht belacties [gebruikersnaam en wachtwoord zijn correct] Inloggen [anders] Toon modusloos bericht “gebruikersnaam en/of wachtwoord incorrect”.
104 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Rapporten Specification by Example Representatieve gegevens Bijvoorbeeld meerdere exemplaren waar dat mogelijk moet zijn Tonen via schermstroom hoe gebruikers rapport kunnen opvragen
105 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Koppelingen tussen systemen webshop iDeal
106 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Afhankelijkheden tussen systemen modelview controller
107 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Afhankelijkheden tussen packages user interfacebusiness logicentities
108 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Sequence diagram – Synchroon usernameTextbox : Textbox theUser : User setUsername theEventFactory : EventFactory newUpdateEvent theEvent : UpdateEvent new theEventStore : EventStore updated
109 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Sequence diagram – 1 aanroep asynchroon usernameTextbox : Textbox theUser : User setUsername theEventFactory : EventFactory newUpdateEvent theEvent : UpdEvent new theEventStore : EventStore updated
110 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Communicatiediagram usernameTextbox : Textbox theUser : User 1 : setUsername 2 : newUpdateEvent theEventStore : EventStore 3 : new 4 : updated theEventFactory : EventFactory theEvent : UpdEvent
111 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen over de hele stof?
112 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Oefening Voeg waar nodig bedrijfslogicaregels toe Maak voorbeelden van de te genereren rapporten Geef aan welke systemen een rol spelen, en wat hun onderlinge afhankelijkheden zijn HvA: Aanduiding dat FO voor onderwijsdoeleinden gebruikt mag worden Maak uw FO volledig en correct In StarUML teken je een interface als interface + association, en wordt een dependency op een interface op een andere manier getoond.
113 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Van ontwerp naar realisatie
114 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Scrum Sprint 5 Sprint 3 Sprint 1 tijd Sprint 4 Sprint 2 etc. werkende applicatie versi e 1 versi e 2 versi e 3 versi e 4 product backlog met gebruikerswensen
115 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Scrum bijeenkomsten
116 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Scrumbord
117 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Rollen in een Scrum proces product ownerscrum master Het proces teamlid Ontwikkelaar Tester Grafisch ontwerper etc. Functioneel ontwerp
118 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Sprint Planning
119 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Planning Poker
120 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Boek
121 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Modelgedreven Ontwikkeling Modellen Sjablonen Code generatie Source code van werkende applicatie Modellen Engine Werkende applicatie Runtime interpretatie
122 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Oefening Maak een product backlog op basis waarvan uw functioneel ontwerp gebouwd kan worden. Formuleer hierin uw user stories als Als wil ik om.
123 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Veel modelleerplezier!