De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding UML Unified Modeling Language.

Verwante presentaties


Presentatie over: "1 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding UML Unified Modeling Language."— Transcript van de presentatie:

1 1 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding UML Unified Modeling Language

2 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 3 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Agenda <- zie linker kantlijn

4 4 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Naslagwerk Verkrijgbaar in elke boekhandel

5 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 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 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 8 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Eisen Wat Niet hoe

9 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 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 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 12 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?

13 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 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 15 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Klasse klantbestellingproduct

16 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 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 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 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 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 21 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Associatie klantbestelling product

22 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) 0..10 of 1 *0 of meer (is afkorting van 0..*) 1..*1 of meer

23 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 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 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 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 27 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Navigeerbaarheid klantbestelling product 1 * * bestelregel 1 *

28 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 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 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 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 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 33 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Telefoonnummer type string

34 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 35 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Object Relational Mapping

36 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 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 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 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 1 0..1 database-ontwerp: factuur id (PK, FK, int, not null) id (PK, int, not null) bestelling

40 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 1 0..1 database-ontwerp: id (PK, int, not null) bestellingEnFactuur

41 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 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 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 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 45 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?

46 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 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 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 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 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 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 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 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 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 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 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 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 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 59 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Create, Read, Update, Delete komt later

60 60 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?

61 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 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 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 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 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 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 67 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?

68 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 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 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 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 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 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 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 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 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 77 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?

78 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 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 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 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 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 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 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 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 86 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Knop uitgrijzen tussenvoegsel postcode & plaats * email 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 87 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Helpteksten tussenvoegsel postcode & woonplaats email 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 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 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 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 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 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 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 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 95 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Balsamiq

96 96 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen?

97 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 98 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Logica en Koppelingen

99 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 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 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 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 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 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 105 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Koppelingen tussen systemen webshop iDeal

106 106 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Afhankelijkheden tussen systemen modelview controller

107 107 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Afhankelijkheden tussen packages user interfacebusiness logicentities

108 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 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 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 111 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Vragen over de hele stof?

112 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 113 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Van ontwerp naar realisatie

114 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 115 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Scrum bijeenkomsten

116 116 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Scrumbord

117 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 118 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Sprint Planning

119 119 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Planning Poker

120 120 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Boek

121 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 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 123 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding Veel modelleerplezier!


Download ppt "1 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding UML Unified Modeling Language."

Verwante presentaties


Ads door Google