Unified Modeling Language

Slides:



Advertisements
Verwante presentaties
Procenten Als je deze uitleg stap voor stap volgt, kun je na afloop prima rekenen met procenten Elke keer als je klaar bent met lezen, klik je op een toets.
Advertisements

Mijn Inburgering Hoe werkt dat?.
KWALITEITSZORG november 2012
Optimale flexibiliteit in de verkrijging van royementsgegevens
Automatic Delivery Rewards Basisprincipes. Automatic Delivery Rewards •Automatic Delivery Rewards of ADR is een programma waarvoor Distributeurs en Klanten.
Beste klant, Welkom op Modelovereenkomst.nl. Onder de knop ‘Documenten’ vind u al onze documenten geordend in mappen. Klik iedere keer op ‘pijltje naar.
HANDLEIDING ONLINE BESTELLEN. Ga naar en klik op catalogus.
Rekenen met procenten Rekenen met procenten.
Wat was toen het grootste het grootste probleem van de van de FOD?
Presentatie cliëntenonderzoek. Algemeen Gehouden in december 2013 (doorlopend tot eind januari) DoelgroepVerzondenOntvangen% LG wonen en dagbesteding.
HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification.
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
Work shop nieuwe functionaliteit Roy-data Nieuwe bevragings- en procesmogelijkheden release voorjaar 2014 Tjeerd Wierda.
Informatie en gebruikershandleiding versie 3.0 Mei 2010 Arthur Kleijn
Duurzaamheid en kosten
Aanvraagformulier slachterijen zonder permanent toezicht
NEWCASH 2007 PRESENTATIE Versie 2007.R3 PRESENTATIE © 2007 NEWTRONICS AUOTMATISERING MEER INFO: Hét complete kassa.
Feedback applicatie Introductie in het gebruik Aanleiding •Wie? Het betreft de Autorisatie artsen en de eigen Huisarts van de Patiënt •Wat? Het betreft.
Uitleg installatie SAM Broadcaster v3 en v4 met de MySQL database
Beheer van gebruikers en groepen lancering DSH Leuven 2-feb-2009 Jan Vangrinsven.
1 nüMaps Lifetime Europe: installatie procedure. 2 Product verpakking.
Verlof autoriseren als leidinggevende met TSS
Rekenen met procenten Rekenen met procenten.
INITIATIE DEFINITIESELECTIECONCIPIËREN INBEDDING IN ORGANISATIE ONDERHOUD Opdrachtgever/ Projectleider Eigenaar Architect en zijn team Stakeholders INITIATIEDEFINITIESELECTIECONCIPIËRENINBEDDINGONDERHOUD.
SCHAKELINGEN & SCHEMA'S.
Tevredenheidsonderzoek 2007
Zelf aanmelden Hoe doet u dat?.
Nooit meer onnodig groen? Luuk Misdom, IT&T
HANDLEIDING: REGISTREREN VAN VACCINATIES Q-KOORTS
Elke 7 seconden een nieuw getal
Tevredenheidsonderzoek 2009 Sinte-Maartenschool, Meise.
In dit vakje zie je hoeveel je moet betalen. Uit de volgende drie vakjes kan je dan kiezen. Er is er telkens maar eentje juist. Ken je het juiste antwoord,
Object Oriented Modeling
Foto 65 – wegenis + parking + rechts G01 Foto 66 – G01.
Seminarie 1: Pythagoreïsche drietallen
1 © GfK 2012 | Supermarktkengetallen | GFK SUPERMARKTKENGETALLEN ‘Hoe ontwikkelt het aantal kassabonnen zich?’ ‘Wat is de omzet van de supermarkten.
Inger Plaisier Marjolein Broese van Groenou Saskia Keuzenkamp
Een bakje kwark kost € 1,27. Hoeveel kosten vijf bakjes? 5 x € 1,27 = 5 x € 1,00 = € 5,00 5 x € 0,20 = € 1,00 5 x € 0,07 = € 0, € 6,35 Een.
Help! ‘Niet vorderende ontsluiting’
SAMENWERKING WO EN HBO BIJ AANSLUITINGSONDERZOEK V0-HO Rob Andeweg DAIR 7 en 8 november 2007.
CQI- ziekenhuisopname ontwikkeling en discriminerend vermogen
EFS Seminar Discriminatie van pensioen- en beleggingsfondsen
Hoe gaat dit spel te werk?! Klik op het antwoord dat juist is. Klik op de pijl om door te gaan!
Eerst even wat uitleg. Klik op het juiste antwoord als je het weet.
Opzet van het onderzoek Merk- en reclamebekendheid
Individuele leerlijnen
Op reis naar een dierentuin
Uitleg scheikundige begrippen
STIMULANS KWALITEITSZORG juni 2014.
Workshop nieuwe release Roy-data september Agenda Aanleiding en uitgangspunten nieuwe release Roy-data 1 x nieuwe zoekfunctionaliteit, 4 logistieke.
Digitale urenverwerking voor leerbedrijven
Resultaten leesverbeterplan Enschede
Vesting Naarden met Fort Ronduit
Zet de telefoon aan en voer je pincode in.
Welkom bij digiDUIF! Jouw school heeft gekozen om gebruik te maken van digiDUIF. Deze korte animatie helpt je met het aanmaken van jouw account en het.
Subsidie individueel vervoer:
Waarom Scrum? Structuur Flexibeliteit Kwaliteit Toegevoegde waarde
?.
Magister voor ouders.
Handleiding Mijn Amersfoortse. Inhoud 1.Inloggen Mijn Amersfoortse 2.Overzicht Mijn Amersfoortse 3.Inzien en wijzigen gegevens –Gegevens contracthouder.
Quick Reference Guide Plandix versie 2.0 Loket. Uitleg 1. Dashboard [2] Een lijst van alle notificaties die niet zijn gemarkeerd als afgerond [4] Klik.
1 Hendrik Jan van Randen Inleiding UML Realisatie Klassen Processen Rollen Navigatie Schermen Logica Koppelen Eisen Inleiding UML Unified Modeling Language.
Wat is Hyperdesk? Web platform voor het optimaliseren en automatiseren van uw dienstverlening aan bedrijven. Kort samengevat:
Renault Merchandise Webshop – Gebruiksaanwijzing
GOUD is geld de rest krediet
Subsidie individueel vervoer:
Gebruikerstraining Digitaal Doorstroomdossier Regio Rijnmond
Waarom Scrum? Structuur Flexibeliteit Kwaliteit Toegevoegde waarde
Handleiding NODR Schade App
Transcript van de presentatie:

Unified Modeling Language UML Unified Modeling Language

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

Agenda <- zie linker kantlijn

Verkrijgbaar in elke boekhandel Naslagwerk Verkrijgbaar in elke boekhandel

Programma van Eisen Beschrijft: Doel Bereik Eisen Use Cases

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

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

Eisen Wat Niet hoe

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

Alomtegenwoordige taal Consequente, voor zich sprekende, naamgeving

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

Vragen?

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

Klassendiagram Doel: aangeven welke gegevens rol spelen

Klasse klant bestelling product

Object klant bestelling product

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

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 €

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 €

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

Associatie klant bestelling product

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

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

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

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

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

Navigeerbaarheid klant bestelling 1 * * product bestelregel 1 *

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

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

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 € *

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

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

Telefoonnummer type string

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.

Object Relational Mapping

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:

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

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

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

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

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

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

Vragen?

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

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

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]

[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]

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

Create, Read, Update, Delete komt later

Vragen?

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

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

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

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

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

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

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

Vragen?

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

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

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

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

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

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

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

Vragen?

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

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!

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

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

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

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 …

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

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

Knop uitgrijzen Persoon voornaam tussenvoegsel achternaam * straat & huisnummer * postcode & plaats * email 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.

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

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

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

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

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

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

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

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.

Vragen?

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

Bedrijfslogicaregels

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

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!

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

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

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

Vragen?

Oefening voor Bedrijfslogicaregels Beschrijf de bedrijfslogicaregels van uw applicatie

Rapporten & Koppelingen

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

Koppelingen tussen systemen webshop iDeal

Afhankelijkheden tussen systemen controller model view

Afhankelijkheden tussen packages user interface business logic entities

Vragen over de hele stof?

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.

Van ontwerp naar realisatie

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.

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

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

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

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

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

Veel modelleerplezier!