Wat is een klassendiagram in UML?
De Uniforme modelleertaal (UML) kan u helpen om systemen op verschillende manieren te modelleren. Een veelgebruikt type in UML is het klassendiagram. Een klassendiagram is een soort structuurdiagram, omdat het beschrijft wat er aanwezig moet zijn in het systeem dat gemodelleerd wordt. Het wordt vaak door ingenieurs gebruikt om softwarearchitectuur te documenteren. Het maakt niet uit of u bekend bent met UML- of klassendiagrammen, onze UML-software is ontworpen om eenvoudig en gebruiksvriendelijk te zijn.
UML werd gecreëerd als een gestandaardiseerd model om een objectgeoriënteerde programmeerbenadering te beschrijven. Klassen zijn de bouwstenen van objecten, en dus zijn klassendiagrammen de bouwstenen van UML. De diagramcomponenten in een klassendiagram kunnen de klassen voorstellen die geprogrammeerd zullen worden, de belangrijkste objecten, of de interactie tussen klasse en object.
De klassevorm zelf bestaat uit een rechthoek met drie rijen. De bovenste rij bevat de naam van de klasse, op de middelste rij staan de attributen van de klasse, en de onderste rij benoemt de methodes of bewerkingen die de klasse kan gebruiken. Klassen en subklassen worden samen gegroepeerd om de statische relatie tussen elk object weer te geven.
De UML-vormbibliotheek in Lucidchart kan u helpen om vrijwel elk klassendiagram op maat te maken met behulp van onze UML-diagramtool.
In minder dan 5 minuten aan de slag met Lucidchart
- Gebruik onze online tool om je eerste online diagram te maken op basis van een sjabloon of leeg canvas of importeer een document.
- Voeg tekst, vormen en lijnen toe om je stroomdiagram aan te passen.
- Meer informatie over het aanpassen van de stijl en opmaak in je stroomdiagram.
- Vind wat je nodig hebt met 'Functie zoeken'.
- Deel je stroomdiagram met je team om samen te werken.
Voordelen van klassendiagrammen
Elke organisatie kan zijn voordeel doen met klassendiagrammen. U kunt ze gebruiken om:
- datamodellen van informatiesystemen te illustreren, ongeacht hoe eenvoudig of complex.
- het algemene overzicht van de schematische weergave van een toepassing te begrijpen.
- de specifieke behoeften van een systeem visueel uit te drukken en die informatie te verspreiden in het bedrijf.
- gedetailleerde schema's te creëren die gericht zijn op de specifieke code die geprogrammeerd en op de beschreven structuur toegepast moet worden.
- een inrichtingsonafhankelijke beschrijving te voorzien van types die in een systeem worden gebruikt en die later tussen de componenten ervan worden doorgegeven.
Basisonderdelen van een klassendiagram.
Het klassendiagram bestaat uit drie delen:
- Bovenste gedeelte: Bevat de naam van de klasse. Dit gedeelte is verplicht, zowel voor een classificeerder als voor een object.
- Middelste gedeelte: Bevat de attributen van de klasse. Gebruik dit gedeelte om de eigenschappen van de klasse te beschrijven. Dit is alleen nodig wanneer een specifieke instantie van een klasse wordt beschreven.
- Onderste gedeelte: Bevat klasseoperaties (methoden). Weergegeven als lijst, waarin elke operatie een eigen regel beslaat. De operaties beschrijven hoe een klasse kan omgaan met data.
Toegangsmodificators voor leden
Alle klassen hebben verschillende toegangsniveaus, afhankelijk van de toegangsmodificator (zichtbaarheid). Hieronder vindt u de verschillende toegangsniveaus en de bijbehorende symbolen:
- Openbaar (+)
- Privé (-)
- Beschermd (#)
- Pakket (~)
- Afgeleid (/)
- Statisch (onderlijnd)
Ledenbereik
Er zijn twee soorten bereik voor leden: classificeerders en instanties.
Classificeerders zijn statische leden en instanties zijn de specifieke instanties van de klasse. Als u bekend bent met de theorie van objectoriëntatie, dan is dit niets grensverleggend.
Aanvullende componenten van klassendiagrammen
Afhankelijk van de context kunnen klassen in een klassendiagram de hoofdobjecten, interacties in de applicatie en de te programmeren klassen representeren. Om de vraag "wat is een klassendiagram in UML" te beantwoorden, moet u eerst de fundamentele samenstelling ervan begrijpen.
-
Klassen: Een sjabloon om objecten te creëren en gedrag te implementeren in een systeem. In UML vertegenwoordigt een klasse een object of een groep objecten die hun structuur of gedrag gemeen hebben. Ze worden voorgesteld met een rechthoek die rijen bevat met de naam, attributen en bewerkingen van de klasse. Bij het tekenen van een klasse in een klassendiagram moet alleen de bovenste rij worden ingevuld—de andere rijen zijn optioneel als u meer details wilt verstrekken.
-
Naam: De eerste rij in een klassevorm.
-
Attributen: De tweede rij in een klassevorm. Elk attribuut van de klasse wordt weergegeven op een aparte regel.
-
Methoden: De derde rij in een klassevorm. Methoden worden ook operaties genoemd en worden weergegeven als een lijst, waarbij elke operatie op zijn eigen regel staat.
-
-
Signalen: Symbolen die asynchrone eenrichtingscommunicatie tussen actieve objecten representeren.
-
Gegevenstypes: Classificeerders die de gegevenswaarde bepalen. Gegevenstypes kunnen zowel primitieve types als opsommingen modelleren.
-
Pakketten: Vormen ontworpen om gerelateerde classificeerders te organiseren in een diagram. Ze worden gesymboliseerd met een grote, gekartelde, rechthoekige vorm.
-
Interfaces: Een verzameling handtekeningen voor bewerkingen en/of definities van attributen die een samenhangend geheel van gedragingen definiëren . Interfaces lijken op een klasse, behalve dat een klasse instanties van dat type kan hebben en een interface minstens een klasse moet hebben om dit te implementeren.
-
Opsommingen: Voorstellingen van door de gebruikers gedefinieerde gegevenstypes. Een opsomming omvat groepen identificatoren die waarden van de opsomming voorstellen.
-
Objecten instanties van een klasse of van klassen. Objecten kunnen aan een klassendiagram worden toegevoegd wanneer ze concrete of prototypische instanties voorstellen.
-
Artefacten modelelementen die de concrete entiteiten in een softwaresysteem weergeven, zoals documenten, databases, uitvoerbare bestanden, softwarecomponenten enzovoort.
Interacties
De term "interacties" verwijst naar de verschillende relaties en links die kunnen bestaan in klassen- en objectdiagrammen. Een aantal veelvoorkomende interacties zijn:
-
Overname: bij dit proces neemt een onderliggende of subklasse de functionaliteit van een bovenliggende of superklasse over, ook gekend als generalisatie Dit wordt gesymboliseerd door een rechte verbonden lijn met een gesloten pijl die in de richting van de superklasse wijst.
In dit voorbeeld zou het object 'auto' alle eigenschappen erven (snelheid, aantal passagiers, brandstof) en methoden (rijden(), stoppen(), richtingWijzigen()) van de ouderklasse ("Voertuig"), naast de specifieke attributen (modeltype, aantal deuren, fabrikant) en methoden van zijn eigen klasse (Radio(), ruitenWisser(), AC/verwarming()). Erving wordt in een klassendiagram weergegeven met een ononderbroken lijn met een gesloten, holle pijl.
-
Bidirectionele associatie: de standaardrelatie tussen twee klassen. Beide klassen zijn zich bewust van elkaar en van de relatie die ze met elkaar hebben. Deze associatie wordt weergegeven met een rechte lijn tussen twee klassen.
In het bovenstaande voorbeeld zijn de klassen Auto en RoadTrip met elkaar verbonden. Aan het einde van de lijn neemt de auto de associatie "toegewezenAuto" aan met de vermenigvuldigingsfactor 0..1, wat betekent dat als de instantie RoadTrip bestaat, er ofwel één ofwel geen instantie Auto mee geassocieerd kan zijn. In dit geval is er een aparte klasse Caravan nodig, met vermenigvuldigingsfactor 0..*, om aan te geven dat een RoadTrip met meerdere instanties van Auto geassocieerd zou kunnen worden. Omdat een Auto meerdere "getRoadTrip"-associaties kan hebben - met andere woorden, één auto kan meerdere autoritten maken - is de vermenigvuldigingsfactor 0..*
-
Unidirectionele associatie: een iets minder voorkomende relatie tussen twee klassen. Eén klasse is zich bewust van de andere klasse en werkt erop in. Unidirectionele associatie wordt gemodelleerd met een rechte, verbindende lijn die met een open pijlpunt van de kennende klasse naar de gekende klasse richt.
Als voorbeeld: u zou tijdens een autorit naar Frankrijk een flitser kunnen passeren die uw activiteiten vastlegt, maar dat weet u pas wanneer er daarover een brief in de bus valt. Dit is niet in de afbeelding opgenomen, maar in dit geval is de vermenigvuldigingsfactor 0..*, afhankelijk van hoe vaak u de flitser passeert.
Voorbeelden klassendiagram
Het maken van een klassendiagram om processtromen in kaart te brengen is eenvoudig. Bekijk de twee onderstaande voorbeelden en maak uw eigen klassendiagrammen in UML.
Klassendiagram van een beheerssysteem van een hotel
Een klassendiagram kan de relaties tonen tussen elk object in een beheersysteem van een hotel, zoals informatie over gasten, personeelsverantwoordelijkheden en kamerbezetting. Het onderstaande voorbeeld geeft een handig overzicht van het beheersysteem van het hotel. Klik op het sjabloon om uw eigen klassendiagram te maken.
Klik hier om dit sjabloon te gebruiken
Klassendiagram van een geldautomaatsysteem
Geldautomaten zijn bedrieglijk eenvoudig: hoewel klanten slechts enkele knoppen hoeven in te drukken om contant geld te ontvangen, zijn er vele beveiligingslagen die een veilige en effectieve geldautomaat moet passeren om fraude te voorkomen en waarde te bieden voor bankklanten. De verschillende menselijke en technische onderdelen van een geldautomaatsysteem worden hieronder in een gemakkelijk te lezen diagram geïllustreerd—elke klasse heeft een titel, en de attributen staan hieronder vermeld. U kunt dit diagram bewerken, opslaan en delen door het document te openen en u aan te melden voor een gratis Lucidchart-account.
Hoe maak ik een klassendiagram?
Met Lucidchart is het verrassend eenvoudig om een klassendiagram te creëren. Volg daarvoor deze stappen:
-
Open een leeg document of kies een sjabloon.
-
Activeer de UML-vormbibliotheek. Klik op "Vormen" links in de Lucidchart-editor. In het beheer van de vormbibliotheek vinkt u "UML" aan en klikt u op "Opslaan".
-
Selecteer in de bibliotheken die u zojuist hebt toegevoegd de gewenste vorm en sleep deze van de toolbox naar het tekenvel.
-
Modelleer de processtroom door lijnen tussen vormen te tekenen en tekst toe te voegen.
Lees de handleiding Een klassendiagram tekenen in UML voor meer uitleg. In Lucidchart kan het formaat en de stijl van elk element gemakkelijk worden aangepast. U kunt zelfs SVG-vormen en Visio-bestanden importeren voor een oplossing op maat. Als u meer over UML te weten wilt komen, raadpleeg dan onze tutorial "Wat is UML?"