Strukturiertes Design (SD) ist ein Entwurfsmuster in der Softwaretechnik nach Edward Yourdon und Larry Constantine, welches modulares Design unterstützt, um neben der reinen Funktionshierarchie auch die Wechselwirkungen von übergeordneten Modulen zu beschreiben. SD wird mit der Strukturierten Analyse (SA) in der Softwaretechnik verwendet.
Ansatz
Das Strukturierte Design schlägt eine Brücke zwischen der technologieneutralen Analyse und der eigentlichen Implementierung. Im Strukturierten Design werden technische Randbedingungen eingebracht und die Grobstruktur des Systems aus technischer Sicht festgelegt. Es stellt damit die inhaltliche Planung der Implementierung dar.
Die Methodik stellt mittels Strukturdiagrammen funktionale Module hierarchisch dar und zeigt dadurch die einzelnen Aufrufhierarchien der Module untereinander. Ein funktionales Modul besteht aus einer oder mehreren funktionalen Abstraktionen. Diese wiederum stellt eine der ersten Abstraktionsmechanismen dar und gruppiert mehrere zusammengehörende Programmbefehle zu Einheiten (Funktionen). Ein Beispiel wäre die Berechnung der Quadratwurzel sqrt(x). Der Benutzer muss keine Details über die Implementierung wissen, sondern wendet die Funktion nur an. Dafür benötigt er eine entsprechende Schnittstellenbeschreibung, die ebenso zum Strukturierten Entwurf gehört wie das Erstellen der Modulhierarchie. Ein Funktionales Modul besitzt kein internes Gedächtnis, das heißt, es beinhaltet keine Daten (private Daten), die nur im Modul sichtbar sind. Es kann nur in globalen Daten Informationen hinterlegen (beispielsweise bei der Berechnung einer Zufallszahl). Spätere darauf aufbauende Methoden, wie das Modulare Design (MD), führen abstrakte Datentypen und Datenobjekte ein.
Verwendung
Objektorientierte Analyse und Design haben strukturierte Methoden in vielen Bereichen verdrängt. Bei Banken, Versicherungen und im Embedded-Bereich finden noch viele Systementwicklungen mit strukturierten Methoden statt. Insbesondere im Bereich des Mobile-Business werden oft Rechnersysteme verwendet, die über limitierte Ressourcen verfügen, für die eine objektorientierte Realisierung mit ihrem Overhead zu teuer ist. Weiterhin sind im Rahmen der Integration von bestehenden Anwendungen im Bereich von EAI oft Teilsysteme zu realisieren, die nicht mit objektorientierten Sprachen umgesetzt werden können. Daher würden objektorientierte Analyse und Design, die ansonsten weltweit sehr große Verbreitung gefunden haben, falsche Implementierungsvorbereitungen darstellen.
Funktionsorientierte Methode
Aufgaben werden zunächst top-down in Teilaufgaben zerlegt. Anschließend werden diese Teilaufgaben auf die Module abgebildet (Prinzip der Modularisierung).
Beschreibungsmittel sind Strukturdiagramme, in denen die Module und die Verbindungen zwischen den Modulen dargestellt werden.
Beispiel
Menü Kundenverwaltung wird unterteilt in Formular Kunde und Bericht Kunde.
Formular Kunde wird erneut unterteilt in Aktualisieren und Umsatzrabatt, Bericht Kunde in Seitenansicht und Drucken.