deel i hoofdstuk 2: het...

37
© 2005 Prof Dr. O. De Troyer | Klasse Model pag. 1 Deel I Hoofdstuk 2: Het klassenmodel Objectgerichte modelleertechnieken © 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

Upload: vuthu

Post on 28-Mar-2018

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

© 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

Page 2: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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), ...

Page 3: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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– ...

Page 4: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 5: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 6: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 7: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 8: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 9: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 10: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 11: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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.

Page 12: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 13: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 14: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 15: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 16: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 17: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 18: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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 !!

Page 19: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 20: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 21: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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’

Page 22: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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.

Page 23: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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.

Page 24: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 25: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 26: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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}

Page 27: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 28: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 29: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 30: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 31: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 32: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 33: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 34: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 35: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 36: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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

Page 37: Deel I Hoofdstuk 2: Het klassenmodelwise.vub.ac.be/Downloads/Courses/OOModelleertechnieken/pdf-files/2... · •Objecten hebben meestal een boel vaste eigenschappen ... eventueel

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