EEN INLEIDING IN DE UNIFIED MODELING LANGUAGE

Slides:



Advertisements
Verwante presentaties
Informatieanalyse klassediagram I.
Advertisements

Les 2 klassediagrammen II
De zin en onzin van escrow
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
SQL deel 2: datamodel ontwerp
Rekenproblemen en Dyscalculie
Autisme en Mindmap Thuis en op School
Lees- en Taalproblemen
OOS Object geOrienteerd Software-ontwerp
Programmeren in Java met BlueJ
Hoe uw TurboCASH moet gebruiken. :voor verkoop gerichte bedrijven.
Vanaf oktober verkrijgbaar: Muiswerk Uitdrukkingen 1
Het ER model Een powerpoint presentatie, gemaakt door: F. Triep
Objecten en Volgordediagrammen
Software Architectuur Over de samenhang der dingen = Over de connecties tussen componenten Over de afhankelijkheden tussen modules Over de belangen van.
vwo A/C Samenvatting Hoofdstuk 6
Van domeinklasse tot implementatie
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Nog meer over klassen en het begrip overerving  nieuwe map -> Mensen  op eerste bladzijde: “ Alle mensen.
Polymorfie.
Masterclass Informatiekunde, Dominicuscollege, Nijmegen
Autisme en intelligentie
Ontwerpen van Informatiesystemen met
1 Het probleem RO Milieu Landbouw SocZekerheid Etc. LerenWerkenWonenPensioenEtc. Overheids- organisatie Burger ??? Regelgeving per domein Vraag op levensmoment.
Inleidend probleem Data structuur (hiërarchie van classes)
Voorspellende analyse
Meten bij marktonderzoek
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
Webapplicaties: de clientkant in het universitaire onderwijs Sylvia Stuurman – Herman Koppelman Faculteit Informatica.
Informatieanalyse.
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Accessors en polymorfie zGoede gewoonte voor objectgeoriënteerde programma -> voor alle eigenschappen:
Inleiding CIW 2008 Analysecollege 1. Analysevraag 1 Bekijk de reclame van Bol.com waarbij mensen vragen naar een bepaalde film, maar vervolgens een product.
Module 7 – Hoofdstuk 3 Unified Modeling Language.
OOS Object geOrienteerd Software-ontwerp - 2
Inleiding tot Excel.
FlexForum februari 2009 Deel : Release
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
1.Klik in het hoofdvenster van Lync op het tabblad Chatruimten. 2.Typ in het zoekvak de naam van een ruimte of een of meer trefwoorden. De overeenkomende.
Fase 2 Tijdelijke presentatie bouwen
Objectgeoriënteerd Ontwerp
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Beschouwing – De Laatste Tips
Ordenen van gegevens Inleiding informatiesystemen © Sander Cox.
Polymorphisme en Interfaces: inleiding
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
Prototyping Week 7 // Tweenlite & API. TweenMax Snel mooie en effectieve animatie.
Serie/Parallel Schakelingen
Een prachtige kans voor uw kinderen
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
UML 1. Use cases1. Use cases. Het probleem: Hoe inventariseer ik wensen en eisen voor mijn project? Hoe leg ik ze vast? Hoe geef ik vorm en structuur.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Leesvaardig Examentraining.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
SharePoint Machtigingen In de Private en Public cloud.
SharePoint Alles over metadata In de Private en Public cloud.
Objectgeoriënteerd Programmeren
Gameprogrammeren: Methoden
Unified Modeling Language 2.0
E-Boeken van binnen Of wat zit er in een epub
Gameprogrammeren: Abstracte klassen
Unified Modeling Language
Gameprogrammeren: Klassen en objecten
Jongens en meisjes …verschillende rollen
Software Development fundamentals
Unified Modeling Language
Meetkunde Verzamelingen Klas 8.
DCAT-AP Vlaanderen voorlegging als standaard
Transcript van de presentatie:

EEN INLEIDING IN DE UNIFIED MODELING LANGUAGE

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

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

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.

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

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

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

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

De basisnotatie voor klassen

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.

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

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

De basisnotatie voor klassen voorbeeld van een opmerking :

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

Geavanceerde notatie voor klassen stereotype voorbeeld:

Geavanceerde notatie voor klassen abstracte klasse en abstracte methode naam van de klasse en de methode : cursief voorbeeld:

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.

Uw klassen modelleren om aan uw doeleinden te voldoen doel : de publieke interface van de klasse Bank over te dragen

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

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

Afhankelijkheid = object is afhankelijk van de specificatie (interface of gedrag) van een ander object wijziging in specificatie -> bijwerking van het afhankelijke object voorbeeld:

Afhankelijkheid 2 x afhankelijk afhankelijkheidsmodel bevat enkel de kenmerken die van belang zijn voor de afhankelijkheidsrelatie doel van UML is informatie over te dragen

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

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

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

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

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

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:

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

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.

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

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

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

Aggregatie en Compositie Een object kan tegelijkertijd aan een aggregatierelatie en een compositierelatie deelnemen:

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

Generalisatie

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.

Alles bij elkaar

Alles bij elkaar

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.

Toepassingen Toepassing 1:

Toepassingen Toepassing 2:

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.

Toepassingen Toepassing 3:

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.

Toepassingen Toepassing 4: