Academiejaar 2016 - 2017
Jakob Lierman
HoGent
,Jakob Lierman OO Ontwerpen I
Inhoud
KLASSEN EN OBJECTEN ............................................................................................................................... 4
INLEIDING ................................................................................................................................................................ 4
OBJECTEN ................................................................................................................................................................ 4
Toestand van een object .................................................................................................................................. 4
Gedrag van een object ..................................................................................................................................... 4
Vier soorten operaties ................................................................................................................................................... 5
Identiteit van een object .................................................................................................................................. 5
Relaties tussen objecten .................................................................................................................................. 5
Verantwoordelijkheid van een object .............................................................................................................. 5
KLASSEN IN UML ...................................................................................................................................................... 6
Klassendiagram................................................................................................................................................ 6
De klassenaam ............................................................................................................................................................... 6
De attributenlijst ............................................................................................................................................................ 6
De operatielijst (enkel op ontwerpniveau) .................................................................................................................... 7
Inkapseling via een klasse .............................................................................................................................................. 8
ObjectNotatie in UML ...................................................................................................................................... 8
SD EN DCD ................................................................................................................................................. 9
INLEIDING ................................................................................................................................................................ 9
Situering ........................................................................................................................................................... 9
SEQUENTIEDIAGRAM (SD) .......................................................................................................................................... 9
Onderdelen SD ............................................................................................................................................... 10
Deelnemers en levenslijnen......................................................................................................................................... 10
Boodschappen ............................................................................................................................................................. 11
Frames.......................................................................................................................................................................... 12
Interaction use ............................................................................................................................................................. 14
Voorbeeld ....................................................................................................................................................... 15
SSD ≠ SD ......................................................................................................................................................... 15
DESIGN CLASS DIAGRAM (DCD) ................................................................................................................................ 16
DCD ≠ Domeinmodel ...................................................................................................................................... 16
DCD – Softwareklassen .................................................................................................................................. 16
Associaties op een DCD .................................................................................................................................. 16
Rolnaam ....................................................................................................................................................................... 17
Visibiliteit ..................................................................................................................................................................... 17
Multipliciteit ................................................................................................................................................................. 17
Navigeerbaarheid......................................................................................................................................................... 17
SAMENHANG SD EN DCD ......................................................................................................................................... 18
Van een SD naar een DCD .............................................................................................................................. 18
RDD EN GRASP ......................................................................................................................................... 19
RESPONSIBILITY-DRIVEN DESIGN (RDD)....................................................................................................................... 19
GRASP-patronen ............................................................................................................................................ 20
Controller ..................................................................................................................................................................... 20
Creator ......................................................................................................................................................................... 20
Expert ........................................................................................................................................................................... 20
HET DRIELAGENMODEL............................................................................................................................. 21
APPLICATIE............................................................................................................................................................. 21
ARCHITECTUUR ....................................................................................................................................................... 22
Drielagenmodel.............................................................................................................................................. 22
Meerlagenarchitectuur .................................................................................................................................. 22
Drielagenmodel.............................................................................................................................................. 23
2
,Jakob Lierman OO Ontwerpen I
De presentatielaag ....................................................................................................................................................... 23
De domeinlaag ............................................................................................................................................................. 24
De persistentielaag ...................................................................................................................................................... 24
TESTEN..................................................................................................................................................... 26
UNIT TESTEN .......................................................................................................................................................... 26
UP & TDD ..................................................................................................................................................................... 26
FIRST eigenschappen...................................................................................................................................... 26
Fast ............................................................................................................................................................................... 26
Isolated ........................................................................................................................................................................ 26
Repeatable ................................................................................................................................................................... 26
Self validating ............................................................................................................................................................... 26
Timely........................................................................................................................................................................... 26
Structuur ........................................................................................................................................................ 27
Voorbeeld .................................................................................................................................................................... 27
Ontwerp technieken ....................................................................................................................................... 27
Equivalentiepartities .................................................................................................................................................... 28
Grenswaarden.............................................................................................................................................................. 28
Equivalentiepartitionering en grenswaardenanalyse gaan hand in hand ................................................................... 28
@before ....................................................................................................................................................................... 29
PIJLERS VAN OO ....................................................................................................................................... 30
DE VIER PIJLERS VAN OO .......................................................................................................................................... 30
OVERERVING .......................................................................................................................................................... 30
POLYMORFISME ...................................................................................................................................................... 34
Kracht van polymorfisme: dynamische binding ............................................................................................. 34
Waarom polymorfisme? ................................................................................................................................ 35
ABSTRACTE KLASSEN ................................................................................................................................................ 36
Abstractie operatie ........................................................................................................................................ 36
Nut van een constructor in een abstracte klasse ........................................................................................... 37
INTERFACES ............................................................................................................................................................ 37
Voorbeeld ....................................................................................................................................................... 37
Gebruik van interfaces ................................................................................................................................... 38
Gebruik abstracte klasse – interface.............................................................................................................. 38
3
,Jakob Lierman OO Ontwerpen I
Klassen en objecten
Inleiding
Sleutelconcept: object
Real-world objecten:
kunnen onderscheiden worden
hebben eigenschappen
Kunnen benoemd worden, hebben een waarde (die kan veranderen)
hebben een gedrag
Omvat wat het object kan doen, kan eigenschappen veranderen via uitvoeren
Real-life objecten:
interactie tussen veranderende objecten
een object kan een ander object vragen om iets te doen
Abstractie is essentieel
Via abstractie ontstaan soorten of types van objecten
Soortgelijke objecten hebben dezelfde eigenschappen en hetzelfde gedrag
Sleutelconcept: klasse
Bevat de omschrijving van de eigenschappen en het gedrag van soortgelijke objecten
Een object is een instantie van een klasse: Horloge1 is een instantie van PolsHorloge
Tijdens ontwikkeling van software worden de klassen ontworpen, tijdens de uitvoering ervan komen
de objecten tot leven.
Objecten
Alles is een object, een object wordt beschreven door een klasse, een object is een instantie van een
klasse
Elk object heeft een toestand, een gedrag en een identiteit
Een applicatie bestaat uit objecten die samenwerken, tussen die objecten zijn er dus relaties
Toestand van een object
Omvat alle eigenschappen en de huidige waarde van deze eigenschappen van het object
Toestand evolueert mogelijks met de tijd
Toestand kan gewijzigd of opgevraagd worden
Toestand verschilt mogelijks van object tot object
Is omschreven in zijn klasse
Elke eigenschap wordt voorgesteld door een attribuut, bestaande uit een naam en een typen
Gedrag van een object
Gedrag is wat het object kan doen
Objecten sturen en ontvangen boodschappen van andere objecten, waarna er een gedrag wordt
uitgevoerd
Elke dienst die een object aanbiedt wordt omschreven via een methode
4
, Jakob Lierman OO Ontwerpen I
Een klasse bevat de opsomming van alle methodes
Het gedrag wordt gecodeerd en niet getoond in de klasse
Een methode heeft een naam, eventuele parameter(s), een eventueel returntype en een code die
de reactie beschrijft
Vier soorten operaties
Constructors: objecten aanmaken
Setters: eigenschappen van objecten veranderen
Getters: eigenschappen van objecten opvragen
Acties: andere acties op objecten uitvoeren
Identiteit van een object
Maakt het mogelijk om objecten van elkaar te onderscheiden
Twee objecten met dezelfde eigenschappen blijven uniek
Relaties tussen objecten
Interactie tussen objecten is enkel mogelijk als objecten elkaar kennen en worden gerealiseerd door
relaties tussen objecten
Verantwoordelijkheid van een object
Elk object draagt deels verantwoordelijkheid voor het geheel
5