Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdRudolf Verbeek Laatst gewijzigd meer dan 10 jaar geleden
1
EEN INLEIDING IN DE UNIFIED MODELING LANGUAGE
2
Inleiding Aannemer bouwt
volgens bouwplannen -> toont het ontwerp van het huis Programmeurs, softwarearchitecten en analisten gebruiken modelleertalen -> beschrijven het ontwerp van software door middel van grafische notaties
3
Modelleertaal = een grafische notatie voor het beschrijven van softwareontwerpen omvat regels waarmee juiste van onjuiste tekeningen kunnen worden onderscheiden het zijn deze regels die de UML tot een modelleertaal maken, in plaats van alleen een verzameling symbolen voor het tekenen Is verschillend van een methodologie
4
Methodologie beschrijft een procedure voor het ontwerpen van software
levert richtlijnen voor het analyseren en ontwerpen van software omvat vaak een modelleertaal, die dan dat ontwerp op grafische manier weergeeft de modelleertaal illustreert het ontwerp door een methodologie te volgen.
5
UML = een algemeen aanvaarde standaard modelleertaal
nodig voor het modelleren van software zodat anderen uw ontwerpdiagrammen snel en makkelijk kunnen begrijpen Unified Modeling Language betekent letterlijk vereende modelleertaal UML is het resultaat van drie met elkaar concurrerende modelleertalen cursus is geen uitgebreide inleiding in de UML
6
UML = taal = een betekenisvolle (grafische) notatiewijze om de verschillende aspecten in een objectgeoriënteerd ontwerp weer te geven bestaat uit een verzameling van min of meer onafhankelijke diagramtechnieken Klassediagram Objectdiagram Volgordediagram
7
Klassediagram laat zien:
welke klassen er zijn ontworpen welke attributen en bewerkingen of methodes deze klassen hebben welke relaties tussen deze klassen bestaan = een weergave van de statische structuur van een programma
8
Klassediagram waarom een klassediagram: is codeonafhankelijk
code is de laagste vorm van documentatie van het ontwerp, alhoewel de meest volledige, maar nutteloos voor iemand die de implementatietaal niet kent ontwerp is in één oogopslag te begrijpen u kan zich concentreren op de structuur (hoofdklassen en inhoud van de klassen)van de klassen op een hoog niveau doordat de grafische notatie u afschermt van de details
9
De basisnotatie voor klassen
10
De basisnotatie voor klassen
syntaxis voor attributen of eigenschappen naam: type = waarde alles tussen de rechte haken mag worden weggelaten = waarde : standaardwaarde die het attribuut krijgt bij de creatie van een instantie van de klasse enkel de naam van een attribuut kan vermeld worden.
11
De basisnotatie voor klassen
syntaxis voor methode of bewerking naam(parameterlijst) : resultaattype minimale aanduiding = de naam van de methode plus een paar haakjes in UML : bewerking is verschillend van methode bewerking = een service die u bij een willekeurig object van een klasse kunt aanvragen methode = een specifieke implementatie van die bewerking
12
De basisnotatie voor klassen
zichtbaarheid: - : voor private + : voor public # : voor protected opmerking helpt soms betekenis over te dragen die anders verloren zou raken of over het hoofd zou worden gezien = gele post-it briefjes
13
De basisnotatie voor klassen
voorbeeld van een opmerking :
14
Geavanceerde notatie voor klassen
om meer beschrijvende of omschrijvende modellen mogelijk te maken stereotype = een UML-element om de vocabulaire van de taal UML zelf uit te breiden bestaat uit een woord of een zinsnede tussen dubbele hoekige haakjes (« ») wordt boven of naast een bestaand element geplaatst
15
Geavanceerde notatie voor klassen
stereotype voorbeeld:
16
Geavanceerde notatie voor klassen
abstracte klasse en abstracte methode naam van de klasse en de methode : cursief voorbeeld:
17
Uw klassen modelleren om aan uw doeleinden te voldoen
verschillende keuzemogelijkheden om klassen te modelleren -> welke notatie nu gebruiken? situatie-afhankelijk: niet-technisch persoon <-> collega aangepaste vocabulair Tips voor het effectief modelleren Wat probeer ik over te dragen? Aan wie probeer ik die informatie over te dragen? Zo een eenvoudig mogelijk model maken om een zo effectief mogelijk ontwerp over te dragen.
18
Uw klassen modelleren om aan uw doeleinden te voldoen
doel : de publieke interface van de klasse Bank over te dragen
19
Uw klassen modelleren om aan uw doeleinden te voldoen
Tips voor het effectief modelleren Verzand niet in de modelleertaal. niet al te veel van de semantiek afwijken, maar model hoeft niet helemaal perfect zijn Maak u alleen zorgen als uw model het ontwerp niet goed overdraagt de UML = hulpmiddel doel -> ontwerp over te dragen. UML is geen doel op zichzelf -> nog steeds code moet geschreven worden
20
Relaties tussen klassen modelleren
Klassen hebben ingewikkelde relaties tot elkaar relatie -> beschrijft hoe klassen samenwerken -> wordt in de UML aangegeven met een verbinding tussen twee of meer elementen in de notatie in UML : 3 soorten relaties Afhankelijkheid Associatie generalisatie eigen notaties maar UML-onafhankelijk
21
Afhankelijkheid = object is afhankelijk van de specificatie (interface of gedrag) van een ander object wijziging in specificatie -> bijwerking van het afhankelijke object voorbeeld:
22
Afhankelijkheid 2 x afhankelijk
afhankelijkheidsmodel bevat enkel de kenmerken die van belang zijn voor de afhankelijkheidsrelatie doel van UML is informatie over te dragen
23
Afhankelijkheid afhankelijkheden zoveel mogelijk beperken
soms onmogelijk : niet alle afhankelijkheden zijn gelijk: Afhankelijkheid van een interface = acceptabel Afhankelijkheid van de implementatie = nooit acceptabel Wanneer moet u afhankelijkheden modelleren? als het ene object een ander object gebruikt. Voorbeeld : in argumenten van methoden
24
Associatie dieper dan afhankelijkheidsrelaties = structurele relatie
associatie geeft aan dat een object een ander object bevat of dat de objecten met elkaar verbonden zijn voorbeeld : naam van de associatie = naam die de relatie beschrijft in casu: naam = Leent van
25
Associatie de rol van een object in de associatie
meervoudigheid geeft aan hoeveel objecten er aan de associatie deelnemen meervoudigheid wordt weergegeven door enkel getal : exact dat aantal objecten een asterisk : * = willekeurig aantal een lijst : 1..4 = minimum 1, maximum 4 3..* = 3 of meer
26
Associatie Wanneer moet u associaties modelleren?
voorbeeld van meervoudigheid: Wanneer moet u associaties modelleren? als het ene object een ander object bevat - de ‘bevat een’-relatie of als een object een ander object gebruikt Een associatie maakt het u mogelijk te modelleren wie wat doet in een relatie. *
27
Associatie twee subtypen om modellen verder te verfijnen
aggregatie compositie beiden zijn deel/geheel-relaties of ‘bevat een’-relaties beschrijven de relatie tussen objecten waarbij het ene object een ander object bevat
28
Aggregatie = deel/geheel-relatie tussen gelijken voorbeeld:
gelijken = het ene object is niet belangrijker is dan het andere in de relatie belangrijk = de objecten kunnen onafhankelijk van elkaar bestaan voorbeeld:
29
Aggregatie wordt aangegeven met een open ruitje
object dat ruitje raakt = het geheel van de relatie; de klasse die naar de andere klasse verwijst of bevat de andere klasse(n) is het deel of delen in voorbeeld: Bank : geheel Klant : deel ze zijn onafhankelijk van elkaar; dus elkaars gelijken als de Bank verdwijnt, verdwijnen de klanten niet en omgekeerd
30
Aggregatie Wanneer moet u aggregatie modelleren?
als het model tot doel heeft de structuur van een deel/geheel-relatie tussen gelijken te beschrijven. Mocht u er echter meer in geïnteresseerd zijn te modelleren wie wat doet in een relatie, dan kunt u beter een gewone associatie gebruiken: een relatie zonder het ruitje.
31
Compositie strenger dan aggregatie
deel/geheel-relatie maar niet tussen gelijken wordt aangegeven met een zwart ruitje (aan de kant van het geheel) in voorbeeld: Filialen kunnen niet onafhankelijk van de Bank bestaan alle filialen worden gesloten als de bank wordt gesloten omgekeerd : de bank kan open blijven als een filiaal wordt gesloten
32
Compositie Wanneer moet u compositie modelleren?
als het model tot doel heeft de structuur van een deel/geheel-relatie maar niet tussen gelijken te beschrijven Het onderdeel is dus afhankelijk van het geheel in voorbeeld: alle filialen zullen gesloten worden, als de bank wordt gesloten. in termen van programmeren betekent dit dat alle Filialen vernietigd zullen worden als de Bank wordt vernietigd
33
Compositie Wanneer moet u compositie modelleren?
Mocht u er echter meer in geïnteresseerd zijn te modelleren wie wat doet in een relatie, dus de rollen van de objecten in de associatie, dan kunt u beter een gewone associatie gebruiken: een relatie zonder het ruitje
34
Aggregatie en Compositie
Een object kan tegelijkertijd aan een aggregatierelatie en een compositierelatie deelnemen:
35
Generalisatie = relatie tussen het algemene en het specifieke
= voorstelling van de ‘is een’-relatie voor vervanging geschikte relaties definiëren: afstammelingen worden gebruikt in plaats van hun voorouders of children in plaats van hun parents
36
Generalisatie
37
Alles bij elkaar we weten hoe basisklassen en relaties te modelleren -> nu beginnen met redelijk veelzeggende modellen te vormen 2 modellen : hebben gemeen: Elk model bevat net voldoende informatie en net genoeg notatie om het idee over te dragen. Deze modellen hebben niet tot doel elke beschikbare notatie te gebruiken. combineren verschillende elementen van de UML. U kunt zeer informatieve modellen maken door de diverse elementen te combineren.
38
Alles bij elkaar
39
Alles bij elkaar
40
Toepassingen Toepassing 1:
Modelleer een bij/ bijenkorf compositierelatie. Toepassing 2: Modelleer de associatie tussen een winkelbezoeker en een winkelier. Specificeer de rollen, de meervoudigheid en de associatienaam.
41
Toepassingen Toepassing 1:
42
Toepassingen Toepassing 2:
43
Toepassingen Toepassing 3:
Gegeven een klasse Cirkel, met een attribuut straal met standaardwaarde 1. De klasse heeft methoden om de omtrek en het oppervlak van de cirkel te berekenen, alsmede een methode om de cirkel in een vlak te plaatsen met het middelpunt op gegeven coördinaten. Teken een klassediagram waarin deze informatie over attributen en methoden is opgenomen.
44
Toepassingen Toepassing 3:
45
Toepassingen Toepassing 4:
Maak een klasse Artikel. Hiermee wordt een artikel bedoeld die bijvoorbeeld in een winkel verkocht wordt. Deze klasse heeft attributen artikelnummer, prijs, naam en voorraad. De klasse beschikt eveneens over een methode getPrijs( ). Teken een klassediagram waarin deze informatie over attributen en de methode is opgenomen.
46
Toepassingen Toepassing 4:
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.