Softwareontwerpen
Softwareontwerpen is het onderdeel van softwareengineering waarin de structuur, de componenten en de interfaces van een software-systeem worden gespecificeerd om aan de gestelde eisen te voldoen. Het ontwerp ligt tussen de vereistenfase en de implementatiefase en vertaalt wat er gebouwd moet worden naar concrete bouwstenen en relaties. Het richt zich op modulariteit, uitbreidbaarheid, onderhoudbaarheid en betrouwbaarheid, en onderscheidt zich van programmeren door de nadruk op abstractie en ontwerpkeuzes.
Bij softwareontwerpen worden meestal twee niveaus onderscheiden: architectuurniveau en detaillering. Het architectuurontwerp bepaalt op hoog niveau
Tijdens het ontwerp worden modellen en beschrijvingen gemaakt, vaak met diagrammen zoals klasse-, sequentie- en componentdiagrammen.
Softwareontwerp heeft een nauwe relatie met vereisten, testen en onderhoud. Het ontwerp moet traceerbaar zijn naar