1
Presentatie ontwerp
- Een herinnering aan de basisprincipes van OOP en UML.
- De voordelen van UML voor ontwerp.
- De uitdagingen van ontwerpen.
- Overerving gebruiken. Voor- en nadelen.
2
Fundamentele principes van object-georiënteerd ontwerp
- De principes van openen/sluiten (OCP) en Liskov substitutie (LSP).
- Concept van polymorfisme, zwakke koppeling en sterke cohesie.
- De impact van objectontwerp op projecten.
Praktisch werk
Verdeling van verantwoordelijkheden tussen klassen.
3
Principes voor klassenbouw
- Afhankelijkheidsbeheer met afhankelijkheidsinversie (DIP).
- De ogenschijnlijke complexiteit verminderen door interfaces te scheiden (ISP).
- Verdeling van verantwoordelijkheden met GRASP.
4
Principes van pakketorganisatie
- Het pakket: een ontwerpunit voor levering/hergebruik (REP) en gemeenschappelijk hergebruik (CRP).
- De verdeling van pakketten. CCP.
- Organisatie tussen pakketten.
Praktisch werk
Pakketten samenstellen en prioriteren.
5
Testgestuurde ontwikkeling
- Test Driven Development (TDD) versus Model Driven Engineering (MDE).
- Schrijven van testgevallen en testsuites.
Praktisch werk
Verantwoordelijkheden toewijzen aan softwarecomponenten met behulp van de TDD-aanpak.
6
Principes van ontwerppatronen
- Ontwerppatronen voor hergebruik van ervaring.
- Toepassingsgebied, voordelen en beperkingen van Design Patterns.
- Reageren op terugkerende problemen.
- De oprichtingspatronen van Gamma en GoF: creatie-, gedrags- en structuurpatronen.
- Refactoren. Waarom refactoren?
- Aanpassing van de codepresentatie en klassenalgoritmen. Herontwerp.
Praktisch werk
Voorbeeld van ontwerpen, refactoren en programmeren met GoF-patronen.
7
Softwarearchitectuur en architectuurpatronen
- Van vereisten naar architectuur.
- Architecturale stijlen.
- Distributiepatronen (Client Server Style, Data Bus Patroon, Blackboard, Repository).
- Systeemontwerppatronen (MVC, gelaagde architectuur, Plug-in stijl, Pipeline).
8
Ontwikkelingsproces
- Ontwerp in een iteratief en incrementeel proces.
- Het Agile-manifest. XP, Scrum.