Het doceren van Object Georiënteerde analyse, ontwerp en implementatietechnieken in het HBO-systeem

Auteur(s): 
dr. D.J. Duffy, Directeur, Software Ontwikkeling, Datasim Education BV
Samenvatting: 

Deze lezing gaat over het belang van goed C++ onderwijs op het HBO. C++ begint steeds belangrijker te worden als programmeertaal. C++ is inmiddels een ANSI standaard waardoor compatibiliteit tussen verschillende compilers gewaarborgd is. C++ maakt het gebruik van nieuwe programmeer technieken mogelijk zoals objecten, generieke klassen en 'exception handling'. Hierdoor kunnen we zeer robuuste, begrijpelijke en goed te onderhouden software schrijven. Tevens maken de object georiënteerde technieken het grootschalig hergebruik van code mogelijk.
De bovenstaande voordelen gaan natuurlijk niet vanzelf. Een ongetrainde programmeur kan ook met C++ een onbegrijpelijk brei van code produceren. Daarom is een goede training ook belangrijk.
De meeste lessen in C++ programmeren richten zich vooral op de kenmerken van de taal. Er wordt nauwelijks of geen aandacht besteed aan het goed ontwerpen van software terwijl dit zo belangrijk is voor de kwaliteit van de uiteindelijke software. Een goed ontwerp is het halve werk.
Om de kwaliteit van software te bepalen gebruiken we de volgende criteria:
- Begrijpelijkheid (Hoe makkelijk is de C++ code te begrijpen, te gebruiken en te veranderen?)
- Overdraagbaarheid (Draait de C++ code zonder problemen in andere software- en hardware omgevingen?)
- Herbruikbaarheid (Hoe goed zijn klassen in nieuwe toepassingen te gebruiken?)
- Robuustheid (Zijn klassen bestand tegen abnormale omstandigheden?)
- Uitwisselbaarheid (Zijn klassen makkelijk te koppelen aan andere klassen of applicaties?)
- Efficiency (Maakt de code optimaal gebruik van hardware of andere hulp bronnen?)
Om aan de bovenstaande kwaliteitscriteria te voldoen zijn diverse ontwerp technieken bedacht. Eén daarvan is de zogenaamde OMT techniek van Rumbaugh. Het blijkt dat voor grote projecten de OMT methode niet toereikend is. Het systeem moet opgedeeld worden in kleinere subsystemen die elk als een soort 'Blackbox' beschouwd worden met een aantal ingangen en uitgangen. Elk subsysteem kan dan weer verder verdeeld worden in subsystemen totdat het subsysteem klein genoeg is voor de OMT methode. Een bijkomend voordeel van subsystemen is dat je een aantal studenten een groot project kan geven die ieder een subsysteem uitwerken. Uiteindelijk vormen die subsystemen tezamen een werkend geheel.
Er zijn ook programmeer technieken ontworpen om de kwaliteit van software te verbeteren genaamd 'Design Patterns'. Het blijkt dat in software vaak twee totaal verschillende dingen een zelfde programmeer oplossing hebben. Het herkennen van die oplossing kan een hoop tijdwinst opleveren want je hebt het al eens een keer gedaan. Bovendien bevorderd 'Design Patterns' de communicatie tussen programmeurs en ontwerpers. Als de ontwerper zegt dat het probleem opgelost kan worden met dit 'pattern' dan weet de programmeur gelijk wat er bedoeld wordt.
Het blijkt dat het ontwerp één van de belangrijkste fasen is in een software project. Als het ontwerp goed is dan is het niet zoveel werk meer om dit te implementeren in C++. Helaas wordt er op scholen vaak niet genoeg aandacht besteed aan het ontwerp van software waardoor software projecten uitlopen op een brei van code waar niemand meer wat van begrijpt.

Doelgroep: