Het softwareontwerpproces omvat verschillende kernactiviteiten, die elk specifieke resultaten opleveren. Deze activiteiten zijn niet altijd strikt opeenvolgend; er is vaak sprake van iteratie en overlap. Een gemeenschappelijke weergave volgt echter deze fasen:
1. Verzameling en analyse van vereisten:
* Activiteit: De behoeften van de stakeholders (klanten, gebruikers, etc.) begrijpen en deze formeel documenteren. Dit omvat interviews, enquêtes, documentbeoordelingen en het creëren van use cases.
* Uitvoer: Eisenspecificatiedocument (SRS). Dit document definieert precies wat de software moet doen, niet hoe deze het moet doen. Het kan gebruiksscenario's, gebruikersverhalen, functionele vereisten, niet-functionele vereisten (prestaties, beveiliging, enz.) en beperkingen omvatten.
2. Systeemontwerp:
* Activiteit: Het definiëren van de algemene architectuur van het systeem. Dit omvat het identificeren van de belangrijkste componenten, hun interacties en hoe ze samenwerken om aan de vereisten te voldoen. Beslissingen over technologie, platforms en implementatie worden in deze fase genomen.
* Uitvoer: Systeemarchitectuurdocument. Dit omvat doorgaans diagrammen die de componenten van het systeem tonen, hun relaties (bijvoorbeeld UML-diagrammen zoals componentdiagrammen, implementatiediagrammen) en de gegevensstroom. Technologiekeuzes en ontwerpbeslissingen op hoog niveau worden ook gedocumenteerd.
3. Gedetailleerd ontwerp:
* Activiteit: Het systeem opsplitsen in kleinere, beter beheersbare modules en het interne ontwerp van elke module specificeren. Dit omvat het ontwerpen van algoritmen, datastructuren en interfaces. Deze fase richt zich op het ‘hoe’ – de implementatiedetails.
* Uitvoer: Gedetailleerd ontwerpdocument, dat modulespecificaties, klassediagrammen (bij gebruik van objectgeoriënteerd ontwerp), algoritmebeschrijvingen, datastructuurdefinities, databaseschema's (indien van toepassing), interfacespecificaties (API's) en mogelijk pseudocode of stroomdiagrammen omvat.
4. Databaseontwerp (indien van toepassing):
* Activiteit: Het ontwerpen van het databaseschema om de gegevens van de applicatie op te slaan en te beheren. Dit omvat het selecteren van een databasebeheersysteem (DBMS), het definiëren van tabellen, relaties tussen tabellen en gegevenstypen.
* Uitvoer: Databaseschema-ontwerpdocument, inclusief Entity-Relationship Diagrams (ERD's), tabeldefinities en gegevenswoordenboeken.
5. Ontwerp van gebruikersinterface (UI):
* Activiteit: Het ontwerpen van de gebruikersinterface om het systeem eenvoudig en intuïtief in gebruik te maken. Dit omvat wireframes, mockups en prototypes. Bruikbaarheidstesten maken vaak deel uit van deze fase.
* Uitvoer: UI-ontwerpspecificaties, inclusief wireframes, mockups, prototypes en UI-stijlgidsen. Er kunnen ook bruikbaarheidstestrapporten worden opgenomen.
6. Testen en valideren:
* Activiteit: Controleren of het ontwerp aan de eisen voldoet en eventuele gebreken signaleren. Dit kan het beoordelen van de ontwerpdocumenten inhouden, het uitvoeren van walkthroughs en het bouwen van prototypen om te testen.
* Uitvoer: Testplannen, testgevallen en testrapporten waarin de resultaten van de testactiviteiten worden beschreven. Hierdoor is het ontwerp robuust en voldoet het aan de gestelde eisen.
Het is belangrijk op te merken dat de resultaten van elke activiteit dienen als input voor volgende activiteiten. De specificatie van de eisen vormt bijvoorbeeld de basis voor het systeemontwerp, dat vervolgens het gedetailleerde ontwerp bepaalt. Het iteratieve karakter van softwareontwikkeling houdt vaak in dat eerdere fasen opnieuw worden bekeken op basis van feedback en veranderingen in latere fasen. |