Informatieanalyse klassediagram I
Agenda Object (instantie) Klasse Hoe kunnen we klasse bepalen? Attribuut (eigenschap) Operaties (methode) Verschil tussen object en klasse Associatie Multipliciteit Klassendiagram Generalisatie en overerving Commentaar
Object (instantie) I Een object is iets dat een zelfstandig bestaan leidt; Kan worden gezien als een zelfstandig iets. Is voor andere objecten in zijn omgeving belangrijk vanwege de diensten die het voor zijn omgeving kan uitvoeren;
Object (instantie) II Een object of instantie kan op verschillende manieren worden getekend: Als een rechthoek met daarin onderstreept de naam van het object, gevolgd door een dubbele punt en de naam van de klasse. Als een rechthoek met daarin onderstreept een dubbele punt en de naam van de klasse.
Klasse I Een klasse is een verzameling van objecten met overeenkomstige eigenschappen. Een klasse is de basis van het gehele objectgeoriënteerde ontwerp. Een klasse is een soort van sjabloon voor objecten.
Klasse II Een klasse bestaat uit drie delen: Naam van de klasse; De eigenschappen (attributen) van de klasse (bijvoorbeeld: hoogte, lengte, bedrag); De methoden van de klasse (bijvoorbeeld: BerekenTotaal, Print, Bewaar).
Klasse III De UML notatie van een klasse is een rechthoek met drie compartimenten. Boven in de rechthoek staat de naam van de klasse. Daaronder de attributen en vervolgens de operaties.
Attribuut (eigenschap) I Een attribuut is informatie die door een object beheerd wordt. Bijvoorbeeld: naam, sekse, gewicht, haarkleur en aantal poten zijn attributen van objecten van de klasse Hond.
Attribuut (eigenschap) II Bij de attributen kunnen ook de datatypes genoteerd worden (string, integer, etc.)
Een operatie beschrijft een service die een object levert. Operatie (methode) Een operatie beschrijft een service die een object levert. Bijvoorbeeld: blaffen, kwispelen, eten, wandelen en apporteren zijn operaties van de objecten van de klasse Hond.
Verschil tussen object en klasse Een object is een instantie van een klasse; Een klasse beschrijft algemeenheden over zijn objecten. Voorbeeld: Als Amsterdam een object is, dan zou Stad zijn klasse kunnen zijn.
Klassendiagram In een klassendiagram projecteren we de klassen en de relatie met andere klassen. Een goed klassendiagram kenmerkt zich door zoveel mogelijk onafhankelijke klassen en zo min mogelijk relaties met andere klassen. Natuurlijk moet wel alle functionaliteit aanwezig zijn.
Associatie Heel vaak is er een relatie tussen klassen. Een verbinding tussen twee klassen noemt men een associatie. Dit wordt grafisch weergegeven door een lijn met daarboven de naam van de associatie en een pijl die de richting aanduidt.
Multipliciteit I Bij de relatie tussen twee klassen (ook wel associatie genoemd) kunnen we precies aangeven hoeveel objecten van de ene klasse een relatie hebben met een object van een andere klasse. Dit noemen we multipliciteit.
Multipliciteit II
Hoe bepalen we de klassen? Brainstormsessie Onderstrepen van zelfstandige naamwoorden: Identificeer alle mogelijke kandidaatklassen; Verwijderen van synoniemen en kandidaat-klassen die een verband met elkaar hebben; Verwijderen van vage kandidaat-klassen; Verwijderen van kandidaat-klassen die een eigenschap zijn van een andere kandidaat-klasse.
Voorbeeld De keuze voor een computer hangt vooral af van het soort gebruik en de maximaal te betalen prijs. Een spelfanaat zal graag wat meer willen betalen voor een computer met uitgebreide multimediamogelijkheden terwijl een zakelijke computergebruiker voor al de stabiliteit van het systeem als belangrijkste aandachtpunt heeft. Toch kan men zich gemakkelijk vergissen. Tegenwoordig is een ingebouwde cd-brander zowel door de spelfanaat als de zakelijke gebruiker gewenst.
Voorbeeld keuze computer gebruik prijs spelfanaat multimediamogelijkheden eigenschap van computer stabiliteit eigenschap van computer zakelijke computergebruiker Systeem synoniem voor computer aandachtpunt cd-brander eigenschap van computer
Voorbeeld keuze computer gebruik prijs spelfanaat twee soorten gebruikers zakelijke computergebruiker twee soorten gebruikers aandachtpunt onduidelijk
Voorbeeld keuze computer gebruik prijs kenmerk van computer gebruiker
Generalisatie en overerving I Generalisatie is het classificeren van klassen. Net als bij objecten gaan we opzoek naar klassen die identieke kenmerken hebben. Als we een aantal van deze klassen hebben gevonden, kunnen we een nieuwe klasse specificeren die alle gezamelijke kenmerken bevat. Deze klasse heet de Superclass van de klassen. De klassen die dezelfde kenmerken hadden noemen we subclass.
Generalisatie en overerving II In UML wordt een generalisatie aangegeven door een pijl met een grote, gesloten pijlpunt. De pijl is gericht naar de superclass. Overerving betekent dat iedere subclass alle eigenschappen van zijn superclass erft.
Commentaar Commentaar kan toegevoegd worden in een zogenaamde note-box. Een note-box kan met behulp van een onderbroken lijn gekoppeld worden aan een element in een diagram.
Volgende les Verdieping klassendiagrammen: Afgeleide attributen; Zichtbaarheid van attributen; Afgeleide associaties; Aggregatie en compositie; Meervoudige en herhaalde overerving.