Cursussen/Courses Codesnippets     Top 
Software Ontwikkeling - UML diagram


1. Klassen
Tool: WhiteStarUML (no install)
WhiteStarUML
UML (Unified Modelling Language) is een notatiewijze om modellen van objectgeoriënteerde softwaresystemen te visualiseren en te documenteren.
UML werkt met diagrammen die elk een bepaald deel of een gezichtspunt van een systeem voorstellen. Zo zijn er verschillende diagrammen: use case, class, collaboration, activity, sequence, state, component, deployment diagram.
Het Class diagram gaat hieronder verder toegelicht worden.
Klassen bepalen
Tijdens de analyse van een softwaresysteem ga je op zoek naar alle objecten die een rol kunnen spelen in het softwaresysteem. Je beschrijft deze objecten in een klasse diagram.
Je moet je daarbij afvragen welke objecten zinvolle kenmerken en gedragingen hebben die voor het systeem van belang zijn. Een klasse is een beschrijving van een object. Een object is een deel van het softwaresysteem dat in de werkelijkheid voorkomt. Een object is een instantie (voorkomen) van een klasse.
Een voorbeeld ter verduidelijking:


2. Eigenschappen toevoegen
Bij het toevoegen van de eigenschappen kan je de “visibility” of scope van de eigenschap aanduiden.
De publieke eigenschappen van een klasse zijn opvraagbaar vanuit andere objecten.
De “protected” eigenschappen zijn enkel opvraagbaar in de methodes van de eigen klasse en in de methodes van de afgeleide klassen.
De private eigenschappen zijn enkel opvraagbaar door de “get”-methodes van de klasse te gebruiken. De eigenschappen een waarde toekennen (initialiseren) kan dan enkel via de “set”-methodes van de klasse.
Je kan achter de naam van de eigenschap ook het datatype aangeven bv. String, Datum, …
Een enumeratie wordt in een aparte kader aangemaakt en wordt als datatype vermeld achter de eigenschap.


3. Methodes
Er is steeds een standaard methode aanwezig die men de “constructor” noemt.
De constructor functie (methode) wordt uitgevoerd zodra een nieuw object van die klasse wordt gemaakt. In de constructor worden de attributen (eigenschappen) van het object geïnitialiseerd. Een constructor heeft geen returntype. Je kan meerdere constructors definiëren in een klasse zolang de argumenten van de functie maar verschillend zijn. Dit noemt men functie “overloading”.
Je kan verder nog eigen methodes implementeren. Je geeft de naam op en vermeldt de parameters van de functie.
De methodes zijn “publiek” toegankelijk en kunnen uitgevoerd worden vanuit andere objecten.
De private eigenschappen kunnen een waarde krijgen in de constructor of via een “setter”-methode. De inhoud van deze eigenschappen kan je opvragen met een “getter”-methode.


4. Hiërarchie
Bij het analyseren kan je in enkele klassen overeenkomsten vinden die leiden tot het aanmaken van een basisklasse (= generalisatie).
Van een basisklasse kan je verschillende soorten afgeleide klassen maken (=specialisatie). Dit wordt aangeduid met de term “overerving” of “inheritance”.
Een basisklasse duid je aan met het woord “abstract”. Men spreekt soms ook van een abstracte klasse. Abstracte methodes worden in de afgeleide klasse verder uitgewerkt.
In het klasse diagram duid je de basisklasse aan door een pijl vanuit de afgeleide klasse(n).
De abstracte klasse Persoon heeft 2 afgeleide klassen: Leraar en Leerling. De afgeleide klassen erven de eigenschappen van de abstracte (basis) klasse.
Tussen de andere klassen kan je “associaties” aanduiden te vergelijken met de relaties in een ER-model. Rond de lijn geef je de associatie een omschrijving en duid je de cardinaliteit aan (1-op-1, 1-op-veel, veel-op-veel).