1. Startseite
  2. Wissen kompakt
  3. Softwareentwurf

Softwareentwurf

Wissen kompakt: Der Softwareentwurf bestimmt Infrastruktur, Architektur, Teilsysteme sowie Komponenten, Module und Klassen für eine zu entwickelnde Software.

Softwareentwurf – Der Bauplan zur Entwicklung einer Software

Die erfolgreiche Entwicklung von Software erfordert ein ineinandergreifendes Vorgehen, das verschiedene Phasen, Informationen und Entscheidungen miteinander verbindet. Der Softwareentwurf beschreibt dabei einen Bauplan, der sich mit der Realisierung von definierten Anforderungen durch die Definition

  • der Infrastruktur als technische Basis,
  • der Softwarearchitektur und
  • dem Entwurf von Teilsystemen, Komponenten, Modulen und Klassen beschäftigt.

Laut IEEE 1990 bezeichnet der Softwareentwurf den Prozess der Definition der Architektur, Komponenten, Schnittstellen und anderer Merkmale eines Software(teil)systems.¹ Und der Leitfaden der Softwaretechnik SWEBOK (Software Engineering Body of Knowledge), der 15 Wissensgebiete des Software Engineerings benennt, verordnet den Softwareentwurf implizit im Software Design. Dort werden Grundlagen und Schlüsselthemen, Struktur und Architektur der Software, Design der Benutzeroberfläche, Design-Notationen sowie Strategien und Methoden festgelegt.²

Softwareentwurf und Vorgehensmodelle

In verschiedenen Publikationen ist zu lesen, dass der Softwareentwurf auf den Ergebnissen der Anforderungsanalyse basiert. Die Anforderungsanalyse ist ein Teil des Requirements Engineerings, das als systematisches Vorgehen beim Spezifizieren und Verwalten von Anforderungen an ein System, ein Produkt oder eine Software verstanden wird. Implizit führt dieser Gedanke zu sequenziellen Vorgehensmodellen mit in sich geschlossenen Phasen, die bspw. die Analyse, den Entwurf, die Programmierung, das Testen, die Abnahme und den Betrieb bzw. die Wartung voneinander trennen.

Interessanterweise gibt es aber auch Ansätze wie das Twin Peaks Model, die eine Wechselwirkung von Anforderungen und Architektur von Anfang an akzeptieren. Solche iterativen Ansätze nutzen die Erkenntnisse, die im Laufe einer Entwicklung entstehen, so dass bspw. in jeder Iteration an ausgewählten Aspekten bzw. mit kleineren Entwürfen gearbeitet wird.

Und es gibt es auch Ansätze, die ein kombiniertes Vorgehen ermöglichen. Beispiel: V-Modell XT. Das V-Modell XT ist ein phasenbasiertes Vorgehensmodell. Es definiert unter anderem Projektdurchführungsstrategien für die inkrementelle Systementwicklung und verwendet zur Ablaufsteuerung sogenannte Entscheidungspunkte. Entscheidungspunkte markieren Qualitätsmesspunkte, an denen mithilfe von definierten Produkten (z.B. Entwurfsdokumenten) über die Freigabe weiterer Projektphasen entschieden wird. Mitarbeiter können jedoch flexibel für andere Phasen “vorarbeiten”, denn lediglich die Entscheidungspunkte müssen entsprechend der Ablaufregeln sequenziell durchlaufen werden.

Inhalte im Softwareentwurf

Der Softwareentwurf ist ein Hilfsmittel und Bauplan für Programmierer. Er umfasst häufig Informationen über

  • die Infrastruktur mit Hardware, Tools und Services (bspw. Entwicklungsumgebungen, Software Development Kits, Programmiersprachen, Bibliotheken), die von den Anwendern benutzt werden, um die Software zu entwickeln,
  • die Softwarearchitektur (bspw. Client-Server-Architektur, Web-Architektur oder service-orientierte Architektur) und zu verwendende Betriebssysteme, Netzwerkprotokolle, Datenbanksysteme, etc.
  • Teilsysteme sowie die Spezifikation der Schnittstellen,
  • Komponenten, Module und Klassen und deren Beziehungen untereinander.

Beim Softwareentwurf geht es also darum, eine gemeinsame Basis für die Softwareentwicklung und wichtige technische Zusammenhänge zu identifizieren und festzulegen. Ziel ist es, eine Grundlage zu definieren, die leicht zu verstehen, zu ändern, zu erweitern und zu warten ist. Die Kunst der Entwicklung liegt nachfolgend darin, eine stabile Lösung zu etablieren, die dennoch so flexibel ist, dass sie spätere Variabilität erlaubt.

Softwareentwurf - der Bauplan zur Entwicklung einer Software

Was macht t2informatik?

Was macht t2informatik? Kleiner Tipp: Es hat etwas mit Softwareentwicklung zu tun!

Impuls zum Diskutieren:

Während des Softwareentwurfs stehen Entwickler häufig vor wiederkehrenden Problemen, für die es sogenannte Entwurfsmuster gibt. Wie wichtig ist das Know-how der Entwickler bei der Anwendung dieser Muster?

Hinweise:

Unsere Softwarearchitekten unterstützen Sie sehr gerne beim Entwurf Ihrer Software.

Die Inhalte auf dieser Seite dürfen Sie gerne teilen oder verlinken.

[1] IEEE Standard Glossary of Software Engineering Terminology
[2] SWEBOK

Hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt:

Wissen kompakt: Welche Diagramme bietet die UML?

Welche Diagramme bietet die UML?

Wissen kompakt: Welche Prinzipien unterstützen die Clean Code Entwicklung?

Welche Prinzipien unterstützen die Clean Code Entwicklung?