Unified Modeling Language is ontstaan door Booch en Rumbaugh (Rational Software Corporation)
Wat zijn de 4 belangrijkste OO principes?
− Inkapseling (Encapsulation): plaats gerelateerde data en de operaties die ingrijpen op deze data in
dezelfde klasse
− Methodes/functies en attributen toevoegen aan een object
− Voorbeeld:
− Abstractie (Abstraction): het weglaten of verbergen van niet-relevante eigenschappen en het
benadrukken van algemene gemeenschappelijke eigenschappen van objecten.
− abstract maken van code (DVD speler heeft veel software binnenin, maar gebruiker ziet
maar enkel paar knoppen). Als je iets verandert, zie je enkel iets veranderen binnenin
− voorbeeld:
− Overerving (Inheritance): plaats gemeenschappelijke eigenschappen/gedrag in een meer
algemene superklasse. Een subklasse kan eigenschappen en methodes erven van de meer
algemene superklasse.
− Voorbeeld:
− Polymorfisme (Polymorphism): het gelijkvormig zijn van de interface van klassen en objecten, maar
met verschillende implementaties. Een methode oproepen die specifiek is voor jouw object en dus
anders gedraagt.
− Voorbeeld:
Interface = mogelijkheid om de interactie tussen gebruiker en systeem te doen
OO is niet hetzelfde als gestructureerd!
Het is een combinatie van data en gedrag in objecten die met elkaar communiceren.
Voordelen Nadelen
Modulair Moeilijker te ontwerpen en te
programmeren
Informatie verbergen -> lagere complexiteit Voor kleinere programma’s is klassiek
programmeren vaak efficiënter
Hergebruik van code / uitbreidbaar Voor bepaalde doeleinden kunnen
functionele talen en SQL beter geschikt zijn
UML is een modelleertaal en geen methode of methodologie.
• Methode (wat, hoe, wanneer, waarom acties)
− bevat modellen uitgedrukt in modelleertaal
• Modelleertaal (notatie en regels)
− Syntactisch : hoe symbolen eruit zien + mogelijke combinatie = woorden + correct gebruik
− Semantisch : betekenis van elk symbool + diagram = betekenis van woorden
− Pragmatisch : intenties van de symbolen = regels voor heldere, duidelijke zinnen
JDK 2020 1
, Modeling maturity levels
• 0: geen specificatie
• 1: tekstuele specificaties
• 2: tekst met diagrammen
• 3: modellen met tekst
• 4: exacte modellen
• 5: alleen modellen
Verschillende diagrammen:
• Use case diagram : toont hoe het systeem kan worden
gebruikt door externe entiteiten zoals menselijke
gebruikers
• Klassendiagram : toont de statische structuur van het
softwaresysteem weergegeven als klassen en hun
relaties
• Objectdiagram : toont de statische structuur van het
softwaresysteem weergeven als objecten en hun relaties
• Toestandsdiagram : toont de toestanden waarin een object zich kan bevinden gedurende zijn
levensloop
• Sequentiediagram : toont de volgorde in tijd van de boodschappen die het systeem verstuurd en
ontvangen worden
• Communicatiediagram : toont hoe de objecten samenwerken om een doel te bereiken
• Activiteitendiagram : toont de activiteiten die door een deel van het systeem worden uitgevoerd,
inclusief eventueel parallellisme
• Componentendiagram : toont de verdeling van het gehele systeem in componenten en de relaties
tussen die componenten
• Deploymentdiagram : toont hoe de softwarecomponenten in een bepaalde systeemconfiguratie
worden gebruikt
Projectfasering:
• Conceptualisatie
• Use case diagram
• Analyse
• Het klassendiagram en het sequentie diagram.
• Wanneer softwaresysteem omvangrijk is, wordt het component- en deployment-diagram
gebruikt.
• Ontwerp
JDK 2020 2