Inhoudsopgave

1 Inleiding

1.1 Softwareontwikkeling
1.2 Wat is software?
1.3 Cognitieve complexiteit

2 De ontwikkelcyclus

2.1 De fasen van de ontwikkelcyclus
2.1.1 analyse
2.1.2 ontwerp
2.1.3 programmeren
2.1.4 testen en debuggen
2.1.5 onderhoud
2.1.6 hergebruik

3 Inleiding tot object-oriëntatie

3.1 Andere ontwikkelmethoden
3.1.1 De top-down-methode
3.1.2 De modulaire methode
3.2 Wat is OO?
3.2.1 Abstracte datatypen
3.2.2 Polymorfisme en overerving
3.3 Waarom OO?

4 OO in de praktijk: waar liggen de problemen?

4.1 Structurering is niet altijd natuurlijk
4.1.1 Het opdelen in objectklassen is niet altijd natuurlijk
4.1.2 Bezwaren tegen ADT als enige structureringsmethode
4.1.3 Hergebruik in OO resulteert vaak in teveel extra complexiteit
4.2 Versnippering van functionaliteit
4.2.1 Het control-flow-aspect van het programmeren wordt op de achtergrond gezet.
4.2.2 Moeilijk te debuggen
4.3 Onverwacht grote afhankelijkheden
4.3.1 Overerving en polymorfisme leveren veel onderlinge afhankelijkheden op.
4.3.2 Afhankelijkheden bij andere coherente structuren met meerdere objecten
4.3.3 Dynamische allocatie en referenties naar objecten

5 Conclusies

6 Referenties