Unified Modeling Language
Sinds 1997 bestaat er een standaard voor UML. Kenmerkend is dat de UML-modellen een grafische weergave zijn van bepaalde aspecten van het informatiesysteem. Er zijn verschillende versies UML. De eerste versie was 1.0. Vervolgens waren er verschillende subversies. 1.1, 1.2 tot 1.5 . Vervolgens kwam vers
UML biedt een verzameling van structuur- en gedragsdiagrammen, die zoals hier ook wel statische en dynamische diagrammen genoemd worden
- het middelste deel bevat de attributen
- Deze attributen zijn meestal private attributen en kunnen enkel worden aangeroepen en aangepast door de methoden van deze klasse. Dit is wat men inkapseling noemt of met andere woorden het afschermen van gegevens.
- schrijfwijze: zichtbaarheid naam: type = startwaarde
- (private aangeraden voor attributen)
- zichtbaarheden
- +: publiek
- -: privaat
- #: protected
- Bijvoorbeeld naam, leeftijd, omschrijving
- vb. + naam: String = "een naam"
- het onderste deel bevat de methoden
- Methoden zijn functies of handelingen die men kan uitvoeren op deze objecten.
- Deze kunnen bewerkingen uitvoeren op de attributen en zo de nodige gegevens ophalen of wijzigen.
- schrijfwijze: zichtbaarheid naam(parameter:type): teruggeeftype
- (zo veel mogelijk protected aangeraden)
- Bijvoorbeeld LeesNaam()
- WijzigNaam("Nieuwe naam")
- + maakTekst(naam:String):String
- optioneel kan een vak met de uitzonderingen (exceptions) worden toegevoegd
- Wat kan men zien:
- klassen
- attributen
- methoden
- associatie (object) tussen klassen
- aggregatie van klassen
- compositie van klassen
- afhankelijkheden (dependencies) van klassen
Het verschil tussen associaties, aggregaties en composities

- Associaties geven aan welke objecten kunnen 'praten' met elkaar. Een associatie verbindt 2 klassen. Elk van beide uiteinden van de associatie heeft een multipliciteit: n objecten (aan het ene uiteinde) verbonden met 1 object (aan het andere uiteinde). Associaties zijn:
- uni-directioneel: slechts 1 klasse kan berichten sturen naar de andere klassen;
- bi-directioneel: beide klassen kunnen heen-en-weer berichten sturen naar elkaar.
- Een aggregatie is een speciaal type associatie tussen 2 ongelijkwaardige klassen. Ze vormen een “geheel-deel” relatie. Een aggregatie beschrijft hoe 1 “geheel-klasse” wordt samengesteld uit 1 “deel-klasse” of meer dan 1 “deel-klassen”. Een aggregatie heeft altijd 1 “geheel-klasse” met multipliciteit = 1. Een aggregatie kan n objecten van 1 “deel-klasse” hebben of meer dan 1 “deel-klassen” met verschillende multipliciteiten.
- Een compositie is een zeer sterke aggregatie. Het is ook een “geheel-deel” relatie, maar de “deel-klassen” kunnen niet bestaan zonder de “geheel-klasse”. Als de "geheel-klasse" verdwijnt, dan verdwijnen de "deel-klassen" ook.
Een voorbeeld: bekijk de figuur hiernaast. Stel dat we 4 klassen hebben: Schip, Vloot, Motor en Land. Een Vloot heeft enkel maar zin om te bestaan wanneer er Schepen in zitten. Een Vloot heeft daarom een aggregatie met Schip. Wanneer een Vloot opgeheven wordt hoeft dit immers niet te betekenen dat de Schepen mee moeten verdwijnen. Een vloot heeft verder een bi-directionele associatie met Land. Elk Land kan meer dan 1 Vloot hebben, een Vloot behoort slechts tot één land. Vandaar de respectievelijke multipliciteiten * en 1. Een Schip heeft een Motor. Hier wordt een compositie gebruikt. Dit betekent dat er geen Motor kan bestaan, zonder dat deze in context van een Schip moet bekeken worden. Wanneer het Schip weg is, is de bijbehorende Motor dat ook.
Objectendiagram (object diagram)
Het objectdiagram geeft de objecten binnen een applicatie of systeem in een soort verzameling weer. Objecten zijn instanties van klassen. In een object hebben de attributen een bepaalde waarde op een bepaald tijdstip. Een object heeft een unieke identiteit. De naam van een object wordt onderlijnd.
- wat kan men zien:
- objecten
- attributen met hun waarde op bepaald ogenblik
- link tussen objecten
Componentendiagram (component diagram)
Het componentendiagram laat de verdeling van het systeem in componenten zien alsook en vooral hun onderlinge relaties of samenwerking. Elke component vormt één of meerdere klassen.
Gebruiksdiagram (deployment diagram)
Het gebruiksdiagram toont het gebruik van de hardwarecomponenten binnen een systeemconfiguratie.
Dynamische diagrammen
Use Case-diagram
Het Use case diagram toont de actoren en de gebruikersfunctie van het systeem. Een algemeen Use Case-diagram is een tekening. Een gedetailleerde Use Case is een tekst die een vaste structuur heeft. Het is een dynamisch diagram.
- Wat kan je zien op het diagram:
- systeemgrens,
- systeemnaam (optioneel)
- actoren (externe systemen of gebruikers),
- use-case
- associatie (object) tussen actor en use-case
- dependecies tussen use-cases
- generalisatie van actoren
- generalisatie van use-cases
- Werkwijze
- bepaal naam systeem
- bepaal actoren
- welke behoeften hebben actoren (use-case)
- schrijf de use case uit in een gedetailleerde use case
- leg de associatie tussen de actoren en use cases vast
- bepaal de onderlinge relatie tussen use cases (stereotype <<include>> en <<extend>>)
- controle
- elke actor moet minstens 1 use case-associatie hebben
- elke use case moet minstens 1 actor-associatie hebben
Collaboratiediagram (collaboration diagram/ communicatiediagram)
Het toepassingsdiagram toont hoe het systeem gebruikt gaat worden, welke handelingen ermee moeten worden verricht. Er wordt getoond welke verantwoordelijkheden (berichten/ methoden) worden verstuurd over de associatie.
- wat kan men zien op het diagram:
- klassen
- berichten (methoden)
- associatie (object)s
- actoren
Volgordediagram/sequentiediagram (sequence diagram)
Het volgordediagram geeft de interacties weer tussen verschillende objecten die een bepaalde functionaliteit (of een deel ervan) implementeren. De tijdsvolgorde staat centraal in het volgordediagram. Ook wel bekend als een sequentiediagram. Wat kan men zien op het diagram:
- objecten
- actoren
- levenslijn (lifeline)
- activeringsblok (execution bar)
- berichten
- creatie en verwijderen (creation en destroy)
- fragment (UML 2.0) (fragments) vb. loop (lus) , alt (alternatieven), opt (optioneel), par (parallel), ...
Activiteitendiagram (activity diagram)
Het activiteitendiagram laat de toestanden van het systeem zien gedurende het gebruik ervan en hoe de verschillende toestanden in elkaar overlopen.
- Wat kan je zien op het diagram:
- start en eind activiteit
- activiteit
- transitie
- zwembaan (swimlane): baan waarvoor een bepaalde actor verantwoordelijk is
- keuzeknoop (decision node) en samenvoegknoop (merge node)
- vork (fork) en samenkomst (join) voor parallelle verwerking
- Werkwijze
- bepaal welke gedetailleerde use case je wil uitwerken
- teken de actoren en het systeem van de use case bovenaan en teken verticale stippellijnen tussen deze (zwembanen)
- teken per interactie tussen de actoren en systeem de activiteit in zwembaan van wie de activiteit doet
- plaats keuzeknopen, fork en joins
- teken de pijlen tussen alle elementen (transities)
Correlatiediagram
Het correlatiediagram stelt de samenwerking centraal tussen objecten en hun gestructureerde organisatie.