1 / 121

UML

UML. U nified M odeling L anguage. versie 3. Waarom modelleren?. Eenduidigheid: Afbeelding zegt meer dan 1000 woorden. Agenda. <- zie linker kantlijn. Naslagwerk. Verkrijgbaar in elke boekhandel . Programma van Eisen. Beschrijft: Doel Bereik Eisen Use Cases. Doel.

randy
Download Presentation

UML

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

E N D

Presentation Transcript


  1. UML Unified Modeling Language

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

  3. Agenda <- zie linker kantlijn

  4. Naslagwerk Verkrijgbaar in elke boekhandel

  5. Programma van Eisen Beschrijft: • Doel • Bereik • Eisen • Use Cases

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

  7. Bereik beschrijft kort en bondigwat applicatie wel en niet doet.

  8. Eisen • Wat • Niet hoe

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

  10. Alomtegenwoordige taal Consequente, voor zich sprekende, naamgeving

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

  12. Vragen?

  13. Oefening Programma van Eisen • 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 Beschrijf voor maatwerksoftware die uw organisatie wil (laten) bouwen:

  14. Doel: aangeven welke gegevens rol spelen Klassendiagram

  15. Klasse product klant bestelling

  16. Object product klant bestelling

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

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

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

  20. Enumeratie klant bestelling voornaam : string [0..1] 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 «enumeration» privilegeniveau man vrouw brons zilver goud

  21. Associatie product klant bestelling

  22. Multipliciteit product klant bestelling 1 * * *

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

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

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

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

  27. Navigeerbaarheid klant bestelling 1 * * product bestelregel 1 *

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

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

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

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

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

  33. Telefoonnummer type string

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

  35. Object Relational Mapping

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

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

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

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

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

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

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

  43. Vragen?

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

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

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

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

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

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

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

More Related