Software-ontwerp¶
Je ontwerpt een (web)applicatie op basis van requirements en acceptatiecriteria. Je past standaardmethodes en algoritmes toe voor het ontwerpen van onderhoudbare software en legt je ontwerpkeuzes vast, bijvoorbeeld in diagrammen of beschrijvingen. Dit product past bij de leeruitkomst Software.
Een software-ontwerp beschrijft hoe je de applicatie gaat bouwen voordat je alles codeert: welke componenten, welke lagen, welke datastromen, en welke patronen of methodes je gebruikt. Het helpt om onderhoudbaar en gestructureerd te werken en om met je team op รฉรฉn lijn te zitten. Het ontwerp kan worden bijgewerkt wanneer requirements of inzichten veranderen.
Kwaliteitsindicatoren¶
Bij het waarderen van dit product zal er worden gekeken naar de volgende kwaliteitsindicatoren:
- Het ontwerp is een op zichzelf staand document met een duidelijke koppeling naar requirements of acceptatiecriteria.
- De belangrijkste onderdelen van de applicatie (modules, lagen, componenten) zijn beschreven.
- Er is gebruik gemaakt van standaardmethodes of -patronen (bijv. OOP, MVC, repository) en dit is toegelicht.
- Er is een visuele weergave (diagram) van (delen van) het ontwerp waar dat verduidelijkt.
- Er is aandacht voor onderhoudbaarheid (leesbaarheid, uitbreidbaarheid, scheiding van verantwoordelijkheden).
- Er zijn verwijzingen naar de code in GitLab waar het ontwerp is gerealiseerd.
- Het ontwerp sluit aan bij de opdracht en de gebruikte technieken.
Template¶
Om een software-ontwerp te documenteren, kan je gebruik maken van de volgende template:
# Software-ontwerp: [applicatie / onderdeel]
Korte introductie: wat is het doel van de applicatie en op welke requirements is het ontwerp gebaseerd?
## Requirements en acceptatiecriteria (samenvatting)
Welke eisen en acceptatiecriteria zijn leidend voor dit ontwerp?
## Overzicht ontwerp
Hoe is de applicatie opgebouwd? Beschrijf de hoofdlijnen: lagen, modules, verantwoordelijkheden.
## Diagram(men)
Voeg een of meer diagrammen toe (bijv. componentendiagram, sequentiediagram, klassendiagram) die het ontwerp verduidelijken.
## Gebruikte methodes en patronen
Welke standaardmethodes of design patterns gebruik je en waarom? (bijv. OOP, MVC, repository)
## Onderhoudbaarheid
Hoe zorg je ervoor dat de code onderhoudbaar blijft? (structuur, naming, documentatie)
## Implementatie
Korte verwijzing naar waar het ontwerp in GitLab is terug te vinden.