deel i hoofdstuk 2: het...
TRANSCRIPT
© 2005 Prof Dr. O. De Troyer | Klasse Model pag. 1
Deel IHoofdstuk 2: Het klassenmodel
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 2
Hoofdstuk 2: Het klassenmodel
• Het Klassenmodel– Beschrijft de statische structuur van een systeem
door middel van• Het beschrijvingen van de objecten in het systeem
– Welke objecten– Welke informatie bevatten ze– Hoe zijn ze gerelateerd; verbanden tussen objecten
Belangrijke concepten in dit hoofdstuk:– object, klasse, link, associatie, generalisatie,
overerving
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 3
2.1 Objecten
Voorbeelden van objecten:Prof JonckersVrije Universiteit Brusselhet boek “Object-Oriented Modeling and Design withUML”de factuur nr. 05-09-03-1235een variabele...
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 4
2.1 Objecten
Objectis een ding, concept of abstractie met een identiteit datbetekenis heeft voor de toepassing onder beschouwing (hetsysteem).
– Objecten met een correspondentie in de werkelijkheid• Prof Jonckers,• De Vrije Universiteit Brussel, ...
– Objecten die corresponderen met abstracte entiteiten uit dewerkelijkheid:
• Het huwelijk van Jan en Hilde• De regel van 3, …
– Objecten die niet corresponderen met dingen uit werkelijk:• De variabele a, een schermvenster (window), ...
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 5
2.1 Objecten
• Alle objecten hebben een identiteit en zijnte onderscheiden op basis van hunidentiteit!– Gevolg: objecten kunnen dezelfde
beschrijvende eigenschappen hebben• 2 appels kunnen dezelfde eigenschappen hebben
(rood, rond, zoet) maar toch zijn het 2verschillende objecten (≠ identiteit)
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 6
2.2 Klassen
En wat als je heel veel objecten nodig hebt?Voorbeelden:
– 500 proffen– 9000 studenten– 100.000 boeken– ...
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 7
2.2 Klassen
• Klassebeschrijft een groep van gelijksoortige objecten.
Voorbeelden Klassen:– Prof– Student– Universiteit– Boek– Computerboek– Factuur– Huwelijk– ...
• Geef een klasse een betekenisvolle unieke naam!
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 8
2.2 Klassen
• Elk object is een instantie van een klasse– Objecten van een klasse
• dezelfde soort eigenschappen• maar de waarden van de eigenschappen kunnen verschillenVoorbeeld• Proffen hebben allemaal een naam en doceren cursussen• Naam kan verschillen; cursussen kunnen verschillen
• De klasse van een object is een implicieteeigenschap van het object– Objecten “weten” tot welke klasse ze behoren
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 9
2.2 Klassen
• Definitie van de eigenschappen van eenklasse moet slechts 1 keer gegevenworden– ook al zijn er zeer veel instanties van de
klasse nodig– Ook klasse indien slechts 1 enkele instantie
• Het concept Klasse is zelf ook eenabstractie mechanisme
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 10
2.3 UML - GrafischeRepresentatie
UML = Unified Modeling Language• Aantal diagrammen om bepaalde
modellen grafisch weer te geven– Class en Object diagrams– Sequence diagrams– Collaboration diagrams– Statecharts– Component diagrams– Use case diagrams
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 11
2.3 UML - GrafischeRepresentatie
• Grafische representaties zijngemakkelijker te begrijpen, ook voor niettechnische personen
• Laat communicatie toe met opdrachtgever,domeinspecialisten, enz.– Maakt validatie van de modellen mogelijk
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 12
2.3 UML - Klasse en objectnotatie
• Klasse grafische notatie
• Object grafische notatie
• UML conventies– Symbool voor klasse is rechthoek– Klassennaam in vet, gecentreerd en beginnend met
hoofdletter
Prof
Jonckers:Prof Houben:Prof :Prof
Object zonder naam
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 13
2.4 Attributen
• Objecten hebben meestal een boel vaste eigenschappen• Sommige ervan zijn belangrijk voor het systeem
Voorbeelden:– Een prof: naam, geboortedatum, graad– Een factuur: datum, bedrag, gefactureerde– Een boek: titel, jaar van uitgifte, uitgeverij
Attribuutis een (benoemde) eigenschap van een object dieeen waarde beschrijft voor het object.
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 14
2.4 Attributen
• Een attribuut heeft een waarde voor eenobject– Voorbeeld: naam prof, waarde = Jonckers
• Verschillende objecten kunnen dezelfdewaarde hebben voor een attribuut– 2 facturen met dezelfde datum– Meerdere boeken met dezelfde uitgever– Meerdere proffen met dezelfde graad– 2 proffen met dezelfde naam
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 15
2.4 Attributen
• Attributen worden gedefinieerd in deklasse door middel van een naam;eventueel ook een data type
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 16
2.4 Attributen - UML notatie
UML - grafische notatie
Prof
Attribuutnamen starten met een kleine letter
naamgeboortedatum
Profnaam: Stringgeboortedatum: Date
Klasse met attributen
UML datatypen:Boolean, Integer, UnlimitedNatural, String
Ook andere datatypen zijn mogelijk, bijv. Date
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 17
2.4 Attributen
• Namen van attribuut moeten uniek zijnbinnen één klasse– “naam” attribuut voor Prof– “naam” attribuut voor Univ
Profnaamgeboortedatum
Univnaamadres
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 18
2.4 Attributen
UML - grafische notatie (2)
Meersman:Prof
Objecten met attribuutwaarden
Janssens:Profnaam=“Meersman”geboortedatum=18 november 1947
naam=“Janssens”geboortedatum= 20 januari 1945
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 19
2.4 Attributen
• Attributen worden gebruik om eigenschappen tebeschrijven; geen verbanden tussen objecten(relaties) !!
– Daarom moet een attribuut een waarde beschrijven !!– waarde ≠ object
• Waarden hebben geen identiteit– Alle voorkomen van de string “Canada” zijn hetzelfde– Alle voorkomen van de integer 17 zijn hetzelfde
“bedrijf” is geen eigenschap van eenpersoon;“Een Persoon werkt voor een Bedrijf” iseen voorbeeld van een verband tussenobjecten
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 20
2.4 Attributen
Opgelet: objecten kunnen in de werkelijkheid ook identificatienummershebben. Deze dienen, indien relevant, wel gemodelleerd te worden.
profId: Integernaam: Stringgeboortedatum: Date
Prof
De identiteit van een object is een impliciete eigenschapen mag niet gemodelleerd worden als attribuut!
ProfAdministratieNr: Integernaam: Stringgeboortedatum: Date
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 21
Verschil object - klasse
• Een klasse is een veralgemening vangelijksoortige objecten
• Klassen laten toe om objecten teclassificeren
• Een klasse heeft een extensie en eenintentie– Extensie: verzameling van alle mogelijke
instanties– Intentie: eigenschappen gemeenschappelijk
aan alle instanties
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 22
Verschil object - klasse
Koe: klasse of object of beide?
Wat klasse is en wat object is afhankelijkvan het domein en de toepassing.
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 23
2.5 Operaties en Methoden
• Objecten in de werkelijkheid vertonen “gedrag”– Om informatie te verstrekken aan andere objecten– Om iets te doen
• Weerspiegeld in OO– OO-objecten kunnen ook gedrag hebben
• Door middel van het definiëren van operaties.Voorbeelden:• Window: open, move, resize, hide, close• Prof: geefNaam, geefLeeftijd, veranderGraad
OperatieEen functie of een procedure die kan wordentoegepast op of door objecten
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 24
2.5 Operaties en Methoden
• Elke operatie wordt toegepast op of door eenobject– De “open” operatie wordt toegepast op een Window-
object• Alle objecten van een klasse hebben dezelfde
operaties– Alle Window-objecten hebben de operaties open,
move, resize, hide en close• Operaties worden gedefinieerd in de klasse
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 25
2.5 Operaties en Methoden
MethodeDe implementatie van een operatie voor een klasse
m.a.w. de code nodig voor de operatie
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 26
2.5 Operaties en Methoden
Eenzelfde operatie kan verschillend wordengeïmplementeerd voor verschillende klassen nl.door verschillende methoden
Voorbeeld:“drukaf” voor Formulier“drukaf” voor Figuur
PolymorfismeDezelfde operatie is gedefinieerd voor verschillendeklassen
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 27
2.5 Operaties en Methoden
• Vermijd het gebruik van dezelfde naamvoor operatie die semantisch niethetzelfde zijn!– Voorbeeld:
• “inverse”voor Matrix en “inverse” voor spiegelbeeldvan een Figuur
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 28
2.5 Operaties en Methoden- UML notatie
UML - grafische notatieProf
naam: Stringgeboortedatum: Dateadres: String
wijzigAdres(nieuwAdres: String)drukaf ()
Klasse met attributen en operaties
• Operatienamen starten met een kleine letter• Operaties worden niet opgenomen in object
diagrammen, enkel in klasse diagrammen
optioneel
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 29
2.6 UML - Klasse diagram
UML - Klasse diagram
KlasseNaam
attribuut1Naam: dataType1 = defaultWaarde1attribuut2Naam: dataType2 = defaultWaarde2
…
operatieNaam1(argumentLijst1): resultaatType1operatieNaam2(argumentLijst2): resultaatType2
} Lijst van attributen - mag weggelaten worden- leeg betekent geen attributen
Lijst van operaties- mag weggelaten worden- leeg betekent geen operaties
Naam van de klasse
}Notatie voor een argument
[ in | out | inout ] argumentNaam : type = defaultWaarde
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 30
2.6 UML - Klassevoorstelling - voorbeelden
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 31
2.7 Link en Associaties
• In de werkelijkheid zijn er verbandentussen objectenVoorbeeld:
• Prof Jonckers doceert de Cursus Structuur I• Het Land België heeft Brussel als Hoofdstad• Het Boek Object-Oriented Modeling and Design
with UML heeft als auteurs Michael Blaha andJames Rumbaugh
• In OO modelleren:– Links tussen objecten
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 32
2.7 Link en Associaties
• Deze verbanden worden gemodelleerd opklasse niveauVoorbeeld:
• ‘Prof’ doceert ‘Cursus’• ‘Land’ heeft hoofdstad ‘Stad’• ‘Boek” heeft auteur ‘Persoon’
• Verbanden tussen klassen wordenassociaties genoemd– Associatie is een veralgemening van links
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 33
2.7 Link en Associatie -UML notatie
UML - grafische notatie
Persoon
naam: String
Bedrijf
naam: String
HeeftAandelenVan
Klasse Diagram
Naam van de associatieNiet verplicht maar zeer wenselijk
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 34
2.7 Link en Associaties
Linkverband tussen objecten
Associatiebeschrijft een groep van gelijksoortige links
• Een link is een instantie van een associatie• De links van een associatie liggen tussen
objecten van dezelfde klassen
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 35
2.7 Link en Associatie UMLnotatie
UML - grafische notatie
Jan:Persoon
naam=“Jan” IMB:Bedrijf
naam=“IBM”
Alice:Persoon
naam=“Alice”
Apple:Bedrijf
naam=“Apple’”
Hilde:Persoon
naam=“Hilde”
Object Diagram
Als een link een naam heeft moet die onderlijnd worden
HeeftAandelenVan
HeeftAandelenV
an
HeeftAandelenVan
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 36
2.7 Link en Associatie -UML notatie
• Meerdere associaties mogelijk tussen dezelfdeklassen– Associatienamen verplicht !!
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 37
2.7 Link en Associaties
• De verbanden zijn bi-directioneel– Ze kunnen in 2 richtingen gelezen worden
• Default van links naar rechts en van boven naaronder:
– Persoon WerktVoor Bedrijf
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 38
2.7 Link en Associaties
• Andere leesrichting via pijltje – Bedrijf SteltTeWerk Persoon
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 39
2.7 Link en Associaties
• Verbanden mogen niet als attributen gemodelleerdworden!– Een bedrijf is geen eigenschap van een persoon en
een persoon is geen eigenschap van een bedrijf
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 40
2.8. Multipliciteit
• Een persoon werkt maar voor ten hoogste1 bedrijf en het bedrijf kan meerderepersonen te werk stellen
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 41
2.8 Multipliciteit
MultipliciteitAantal instanties van een klasse dat kanverbonden zijn met één instantie van eengeassocieerde klasse
1 juist 11..* 1 of meer3..5 3 tot 5, 5 inbegrepen* meerdere
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 42
2.8 Multipliciteit -voorbeelden
Met een welbepaalde stad kan juist 1 landverbonden zijn via de associatie‘HeeftHoofdstad’
1-1 associatie
Met een welbepaalde land kan juist 1 stadverbonden zijn via de associatie‘HeeftHoofdstad’
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 43
2.8 Multipliciteit -voorbeelden
1-veel associatie
Met een cursus is juist 1 professor geassocieerd, m.a.ween cursus wordt maar door 1 professor gedoceerd.
Met een professor kunnen 0 of meerdere cursussengeassocieerd zijn, m.a.w een professor kan meerderecursussen doceren.
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 44
2.8 Multipliciteit -voorbeelden
veel-veel associatie
Met een bedrijf kunnen meerdere personengeassocieerd zijn via de associatie ‘HeeftAandelen’,m.a.w een bedrijf kan meerdere aandeelhoudershebben.
Met een persoon kunnen meerdere bedrijvengeassocieerd zijn via de associatie ‘HeeftAandelen’,m.a.w een persoon kan aandelen hebben vanverschillende bedrijven.
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 45
2.8 Multipliciteit -voorbeelden
Met een bedrijf kunnen meerdere personengeassocieerd zijn via de associatie ‘WerktVoor’, m.a.ween bedrijf kan meerdere werknemers hebben.
Met een persoon kan geen of juist 1 bedrijf geassocieerdzijn via de associatie ‘WerktVoor’, m.a.w een persoonwerkt voor 1 of geen bedrijf.
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 46
2.9 Rolnamen
• Een klasse speelt een welbepaalde rol ineen associatie
Persoon speelt de rol van werknemer in deze associatie.
Bedrijf speelt de rol van werkgever in deze associatie.
Rolnamen: niet altijd verplicht.
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 47
2.9 Rolnamen
• Gebruik van rolnamen is optioneel, maarnoodzakelijk voor associaties tussen dezelfdeklasse
• In UML zijn rolnamen meestal zelfstandigenaamwoorden
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 48
2.9 Rolnamen
• Alle rolnamen moeten uniek zijn voor eenklasse en verschillend van van deattribuutnamen gebruikt in de klasse– Een rol kan gezien worden als een soort
attribuut
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 49
2.9 Rol vs Klasse
of
• Klasse:– als elke instantie onafhankelijk kan bestaan– als elke instantie steeds een instantie van de klasse
blijft• Rol:
– Instantie kan alleen bestaan als er een link is met eenander object
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 50
2.10 Ordening van links
• Wanneer een object verbonden is met meerdereobjecten door middel van links dan is er geen explicieteorde– Voorbeeld
• Een professor is verbonden met een verzameling vancursussen
• Soms is een orde aangewezen:– geordende verzameling
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 51
2.11 Bags en Sequences
• Normaal is er ten hoogste 1 link tussen 2 objecten• Meerdere links tussen dezelfde 2 objecten zijn mogelijk
via “bags” en “sequences”– Bag: verzameling waarin duplicaten toegelaten zijn– Sequence: geordende verzameling waarin duplicaten toegelaten
zijn
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 52
2.11 Bags en Sequences
• {sequence} is gelijk aan {ordered} {bag}
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 53
2.12 Associatie klassen
Associatie Klasseeen associatie die tevens een klasse is
• Laat toe om links te beschrijven door middel vanattributen en er operaties aan toe te kennen
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 54
2.12 Associatie klassen
/documents/les1 read Marie/documents/les1 read-write Olga/documents/les2 read-write Olga
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 55
2.12 Associatie klassen
• De objecten van een associatie klasse krijgenhun identiteit van de instanties verbonden doorde link
/documents/les1 read Marie/documents/les1 read-write Jan/documents/les2 read-write Jan/documents/les2 read Jan Niet toegelaten !
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 56
2.12 Associatie klassen
• Associatie klassen zijn ook mogelijk voor 1-1associaties and 1-veel associaties
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 57
2.12 Associatie klassen
• Het is beter om de attributen van 1-1 en 1-veelassociaties te modeleren via associatie klassen dandeze attributen toe te voegen aan één van de klassen
GOED
Slecht modelTe vermijden
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 58
2.12 Associatie klassen
• Een associatie klasse kan ook participeren inandere associaties
– Een gebruiker heeft toegang toe meerdere computer. Op elkecomputer heeft hij andere toegangsrechten. En op elkecomputer heeft hij 1 home folder. Verschillende gebruikerskunnen dezelfde home folder hebben
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 59
2.12 Associatie klassen
• Een associatie klasse is verschillend van een associatiedie “gepromoveerd” werd tot klasse
(Jan, project1) manager, 10(Jan, project2) analist, 30(Dirk, project1) analist, 20(Piet, project1) programmeur, 40
(Jan, job1) (job1,project1)(Jan,job2) (job2, project2)(Dirk, job3) (job3, project1)(Piet, job4) (job4,project1)(Piet, job5) (job5, project1)
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 60
2.13 Specialisatie engeneralisatie
• Voorbeeld– Stockbeheer
• Onderdelen– Naam, fabrikant, gewicht, prijs
• Maar er zijn verschillende soorten onderdelen:– Pompen
» Zuigkracht, doorstroomvolume– Tanken
» Volume, druk• Pomp en Tank te beschouwen als speciale soorten
onderdelen
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 61
2.13 Specialisatie engeneralisatie
De klassen Pomp en Tank hebbenalle attributen en operaties van deklasse Onderdeel, maar ook nogextra attributen en operaties
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 62
2.13 Specialisatie engeneralisatie
• Alle eigenschappen van Onderdeel zijn impliciet ook eigenschappenvan Pomp
– Pomp• Naam, fabrikant, gewicht, prijs, aantal, zuigkracht, doorstroomvolume• updateStock
superklasse
subklasse
Specialisatie/generalisatie
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 63
2.13 Specialisatie engeneralisatie
• Specialisatie/generalisatie organiseertklassen op basis van gemeenschappelijke endiscriminerende eigenschappen in eenhiërarchie
• De superklasse bevat degemeenschappelijke attributen, operaties enassociaties;de subklasse voegt hier specifieke attributen,operaties en associaties aan toe
• Elke subklasse erft de eigenschappen vanzijn superklasse
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 64
2.13 Specialisatie engeneralisatie
• Verkorte notatie bij meerdere subklassen voor 1superklasse: dimensie– Logische groepering van subklassen– Meerdere dimensies mogelijk per superklasse
OnderdeelType
Naam van de dimensie: optioneel
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 65
2.13 Specialisatie engeneralisatie
• Generalisatie/specilalisatie wordt ook een “is-een” relatiegenoemd– Elke instantie van de subklasse is ook een instantie
van de superklasse– Voorbeelden:
• Elke pomp is een onderdeel• Elke vrouw is een persoon• Elke kat is een dier
– Tegenvoorbeeld: elk dier is geen kat• Een instantie van een subklasse heeft een waarde voor
elk attribuut van elke (directe of indirecte) superklasse• Een instantie kan een methode uitvoeren van elke van zijn
(directe of indirecte) superklassen
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 66
2.13 Specialisatie engeneralisatie
• Er kunnen verschillende niveaus zijn– Een subklasse kan superklasse zijn van een andere
subklasse
• Generalisatie is transitief overde verschillende niveaus– PompelPomp erft van Pomp– Pomp erft van Onderdeel– Dus PompelPomp erft ook
van Onderdeel
– PompelPomp is subklasse van Pomp– Pomp is subklasse van Onderdeel– Dus PompelPomp is ook subklasse
van Onderdeel
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 67
2.13 Specialisatie engeneralisatie
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 68
2.13 Specialisatie engeneralisatie
Waarom subklasse hiërarchieën gebruiken?1. Abstractie mechanisme
• Laat toe om beschrijvingen van complexe klassestapsgewijs op te bouwen
• Voorbeeld:– Persoon - personeelslid - Academisch Personeelslid -
Zelfstandig Academisch Personeelslid
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 69
2.13 Specialisatie engeneralisatie
Waarom subklasse hiërarchieën gebruiken?2. Onderhoudbaarheid
• Aanpassingen zijn gelokaliseerd tot het niveau waar zegespecificeerd zijn
window
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 70
2.13 Specialisatie engeneralisatie
Waarom subklasse hiërarchieën gebruiken?3. Uitbreidbaarheid
• Nieuwe subklassen kunnen eenvoudig toegevoegd wordenzonder de andere klassen te beïnvloeden
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 71
2.13 Specialisatie engeneralisatie
• Overschrijven (“Overriding”)– Een subklasse kan eigenschappen die geërfd werden
aanpassen. Dit wordt “overriding” genoemd.– Methoden en default waarden van attributen kunnen
overschreven worden• Signatuur van de operatie (aantal en type van de
argumenten en return type) moet bewaard blijven
– Overriding mag nooit aanleiding geven totinconsistenties
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 72
2.13 Specialisatie engeneralisatie
• Voorbeeld overschrijven– default waarde van attribuut
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 73
2.13 Specialisatie engeneralisatie
• Voorbeeld overschrijven– Methoden overschrijven
Objectgerichtemodelleertechnieken© 2005 Prof. Dr. O. De Troyer | Klasse Model pag. 74
2.13 Specialisatie engeneralisatie
• Waarom overschrijven?– Als de methode voor een operatie bepaald wordt
door de subklasse• In het voorbeeld van ‘Figure’ zal de methode ‘display’ verschillend
zijn voor elke subklasse
– Om de specificatie meer specifiek te maken• Bijv. Het type van een attribuut meer specifiek maken: integer ->
small integer.
– Om de performantie te verbeteren• De methode ‘rotate’ kan aangepast worden voor ‘Circle’, nl. de
rotatie van een cirkel hoeft niets te doen