Softwaredesign umfasst die Konzeption und Planung einer Softwarelösung und dient als Vorgabe für die technische Implementierung.


In diesem Prozess werden die zuvor definierten Anforderungen in eine Form gebracht, sodass sie direkt als Vorgabe für die technische Umsetzung verwendet werden können. Dieser Prozess umfasst vor allem folgende Schritte:

In der Planung der Softwarearchitektur werden die bestehenden Softwareteile und ihre Beziehungen beschrieben. Dies umfasst auch die Beschreibung aller Umsysteme und deren Schnittstellen.

Systemarchitektur
Beispiel Systemarchitektur


In der Datenmodellierung werden alle (durch die Software zu verwaltenden) Objekte, deren Attribute und deren Beziehungen beschrieben. Dieser Schritt umfasst die Erstellung eines Entity-Relationsship-Modells welches später meistens für die Umsetzung in einer relationalen Datenbank verwendet wird.


Entity Relationship Diagram

Beispiel Datenmodellierung anhand eines Entity Relationship Diagramms


Im detailierten funktionalen Design wird  das gewünschte  Programmverhalten genau  beschrieben. Hier kann  z.B. UML (Unified  Modeling  Language)  oder Pseudocode  zum Einsatz kommen.