SOFTWARE
ENGINEERING P4
KDG | 2021-22
,Inhoudsopgave
1. Ontwerp Klassediagrammen ....................................................................................................................... 3
1.1 Context.......................................................................................................................................................... 3
1.2 Attributen ..................................................................................................................................................... 5
1.2.1 Notatie .................................................................................................................................................. 5
1.2.2 Toegankelijkheid attributen en operaties ............................................................................................. 5
1.2.3 Inkapseling ............................................................................................................................................ 6
1.2.4 Datatypes .............................................................................................................................................. 6
1.3 Associaties .................................................................................................................................................... 6
1.3.1 Associaties (analyse) en attributen (ontwerp) ...................................................................................... 6
1.3.2 Ontwerp associaties .............................................................................................................................. 8
1.4 Operaties .................................................................................................................................................... 10
1.4.1 Operaties vs methoden....................................................................................................................... 10
1.4.2 Syntax.................................................................................................................................................. 11
1.4.3 Bijzondere operaties ........................................................................................................................... 11
1.4.4 Van Sequence Diagram (SD) naar Ontwerp Klassediagram (DCD) ..................................................... 12
1.5 Ontwerpklassen .......................................................................................................................................... 13
1.6 Overige toevoegingen DCD ......................................................................................................................... 13
1.6.1 Constraints en stereotypes ................................................................................................................. 13
5.6.2 Interfaces en abstracte klassen........................................................................................................... 16
1.6.3 Polymorfisme ...................................................................................................................................... 19
1.6.4 Wanneer overerving gebruiken? ........................................................................................................ 20
2. Visibility/zichtbaarheid ............................................................................................................................. 24
2.1 Definitie ...................................................................................................................................................... 24
2.2 Types zichtbaarheid .................................................................................................................................... 25
2.2.1 Permanente zichtbaarheid.................................................................................................................. 25
2.2.2 Tijdelijke zichtbaarheid ....................................................................................................................... 26
2.3 Transformatie tijdelijke zichtbaarheid naar attribuutzichtbaarheid .......................................................... 28
2.4 Conclusie: Zichtbaarheid en koppeling ....................................................................................................... 28
2.5 Samenvatting.............................................................................................................................................. 29
2.5.1 Zichtbaarheid in de praktijk ................................................................................................................ 29
2.5.2 Zichtbaarheid in een SD ...................................................................................................................... 29
2.5.3 Zichtbaarheid in een DCD ................................................................................................................... 30
3. GRASP ....................................................................................................................................................... 30
3.1 Responsibility-Driven Design (RDD) ............................................................................................................ 30
3.2 GRASP ......................................................................................................................................................... 30
3.3 Basisprincipes van GRASP ........................................................................................................................... 31
3.4 Eerste patroon: controller ........................................................................................................................... 32
3.4.1 Voorbeeld Facade controller .............................................................................................................. 32
1
, 3.4.2 Voorbeeld UC/session controllers ...................................................................................................... 33
3.4.3 Controller ............................................................................................................................................ 34
3.5 Tweede patroon: Creator ............................................................................................................................ 34
3.6 Derde patroon: Information expert ............................................................................................................ 36
3.7 Vierde patroon: Low coupling ..................................................................................................................... 37
3.8 Vijfde patroon: High cohesion .................................................................................................................... 39
2
, 1. Ontwerp Klassediagrammen
1.1 Context
3
ENGINEERING P4
KDG | 2021-22
,Inhoudsopgave
1. Ontwerp Klassediagrammen ....................................................................................................................... 3
1.1 Context.......................................................................................................................................................... 3
1.2 Attributen ..................................................................................................................................................... 5
1.2.1 Notatie .................................................................................................................................................. 5
1.2.2 Toegankelijkheid attributen en operaties ............................................................................................. 5
1.2.3 Inkapseling ............................................................................................................................................ 6
1.2.4 Datatypes .............................................................................................................................................. 6
1.3 Associaties .................................................................................................................................................... 6
1.3.1 Associaties (analyse) en attributen (ontwerp) ...................................................................................... 6
1.3.2 Ontwerp associaties .............................................................................................................................. 8
1.4 Operaties .................................................................................................................................................... 10
1.4.1 Operaties vs methoden....................................................................................................................... 10
1.4.2 Syntax.................................................................................................................................................. 11
1.4.3 Bijzondere operaties ........................................................................................................................... 11
1.4.4 Van Sequence Diagram (SD) naar Ontwerp Klassediagram (DCD) ..................................................... 12
1.5 Ontwerpklassen .......................................................................................................................................... 13
1.6 Overige toevoegingen DCD ......................................................................................................................... 13
1.6.1 Constraints en stereotypes ................................................................................................................. 13
5.6.2 Interfaces en abstracte klassen........................................................................................................... 16
1.6.3 Polymorfisme ...................................................................................................................................... 19
1.6.4 Wanneer overerving gebruiken? ........................................................................................................ 20
2. Visibility/zichtbaarheid ............................................................................................................................. 24
2.1 Definitie ...................................................................................................................................................... 24
2.2 Types zichtbaarheid .................................................................................................................................... 25
2.2.1 Permanente zichtbaarheid.................................................................................................................. 25
2.2.2 Tijdelijke zichtbaarheid ....................................................................................................................... 26
2.3 Transformatie tijdelijke zichtbaarheid naar attribuutzichtbaarheid .......................................................... 28
2.4 Conclusie: Zichtbaarheid en koppeling ....................................................................................................... 28
2.5 Samenvatting.............................................................................................................................................. 29
2.5.1 Zichtbaarheid in de praktijk ................................................................................................................ 29
2.5.2 Zichtbaarheid in een SD ...................................................................................................................... 29
2.5.3 Zichtbaarheid in een DCD ................................................................................................................... 30
3. GRASP ....................................................................................................................................................... 30
3.1 Responsibility-Driven Design (RDD) ............................................................................................................ 30
3.2 GRASP ......................................................................................................................................................... 30
3.3 Basisprincipes van GRASP ........................................................................................................................... 31
3.4 Eerste patroon: controller ........................................................................................................................... 32
3.4.1 Voorbeeld Facade controller .............................................................................................................. 32
1
, 3.4.2 Voorbeeld UC/session controllers ...................................................................................................... 33
3.4.3 Controller ............................................................................................................................................ 34
3.5 Tweede patroon: Creator ............................................................................................................................ 34
3.6 Derde patroon: Information expert ............................................................................................................ 36
3.7 Vierde patroon: Low coupling ..................................................................................................................... 37
3.8 Vijfde patroon: High cohesion .................................................................................................................... 39
2
, 1. Ontwerp Klassediagrammen
1.1 Context
3