# Strukturierte Analyse (Methode im Rahmen der Softwareentwicklung)

Die Strukturierte Analyse (SA) ist eine hauptsächlich von Tom DeMarco entwickelte Methode zur Erstellung einer formalen Systembeschreibung im Rahmen der Softwareentwicklung. Sie wird während der Analysephase eines Software-Projekts eingesetzt. Strukturiertes Design verfeinert die Ergebnisse der SA so weit, dass sie dann umgesetzt werden können. Sie ist eine Methode der Systemanalyse.
Das Ergebnis der Strukturierten Analyse ist ein hierarchisch gegliedertes Anforderungsdokument für Umfang und Inhalt der betrieblichen Anwendung, die in dem geplanten Softwaresystem realisiert werden soll. Die Strukturierte Analyse ist eine graphische Analysemethode, die mit Hilfe eines Top-Down-Vorgehens ein komplexes System in immer einfachere Funktionen bzw. Prozesse aufteilt und gleichzeitig eine Datenflussmodellierung durchführt. In ihrer Grundform ist die SA eine statische Analyse, die jedoch später um Methoden für dynamische Analysen erweitert wurde.

## Historische Entwicklung

Ab den 1960er-Jahren gab es Bemühungen, den Prozess der Systementwicklung zu systematisieren. 1974 etwa machte Jackson einen Vorschlag für eine grafische Darstellungsform für strukturierte Analyse. Tom DeMarco und andere begannen in den 1970er Jahren mit der Entwicklung der Strukturierten Analyse, die sie 1977 veröffentlichten.

## Strukturierte Analyse

In der Strukturierten Analyse werden folgende Elemente verwendet:
* Kontextdiagramm (englisch context diagram): Dieses Diagramm ist die Wurzel des Analyse-Baums. Es grenzt das System von seiner Umwelt ab und definiert damit, welche Aspekte von der Analyse betrachtet werden und welche nicht.
* Eine hierarchische Darstellung der Struktur der Anwendung in Form einer (einem Organigramm ähnlichen) „Baumstruktur“. Deren oberstes Diagramm ist o. g. Kontextdiagramm. Zu jedem tieferen Zweig der Baumstruktur gehört ein Datenflussdiagramm (s. u.). Zu jedem „Blatt“ der Baumstruktur (Endpunkt, der nicht weiter verfeinert wird) gehört als Beschreibung der darin enthaltenen Prozesse eine „Minispezifikation“ (s. u.).
* Datenflussdiagramm (englisch data flow diagram, kurz DFD): Ein DFD visualisiert in welche Teilprozesse sich der auf dem DFD dargestellte Prozess aufteilt und wie die Verwendung der Daten in diesem Prozess abläuft.
* Minispezifikation (englisch mini specification): Die Mini-Spec ist eine formale Beschreibung eines im Rahmen der Analyse nicht mehr weiter geteilten Elementarprozesses. Die Beschreibung erfolgt mit Hilfe eines Pseudocodes, der nicht genormt ist und im Regelfall von der später verwendeten Programmiersprache unabhängig ist, also die logischen Konstrukte der Strukturierten Programmierung verwendet. Weitere Möglichkeiten der Beschreibung sind Nassi-Shneiderman-Diagramme, Programmablaufpläne, Entscheidungstabellen und Entscheidungsbäume.
* Datenwörterbuch (englisch data dictionary, kurz DD): Eine Sammlung aller Datendefinitionen, die in der Analyse verwendet werden.
Die ersten beiden Diagramme verwenden folgende grafischen Elemente:
* Datenfluss, dargestellt als ein Pfeil
* Daten, Beschriftung am Pfeil
* Speicher, zwei parallele waagerechte Linien, dazwischen der Name des Speichers
* Teil- und Elementarprozesse, Kreis mit dem Namen und der Nummer des Teilprozesses in dem Kreis
* Externe Datenempfänger/sender (nur auf dem Kontextdiagramm), Viereck mit eingeschlossenem Namen

## Strukturierte Real-Time-Analyse (RT)

Die Strukturierte Real-Time-Analyse erweitert die normale strukturierte Analyse um eine Echtzeitkomponente. Erreicht wird dies durch die Festlegung des Verhaltens der Prozessschicht unter allen möglichen externen und internen Bedingungen und Betriebsarten. Entworfen wurde das System von Imtiaz A. Pirbhai und Derek J. Hatley.

## Dynamische Analyse

Neben den Definitionen der Statischen Analyse werden zusätzlich folgende Elemente definiert:
* Entscheidungstabelle (englisch decision table, kurz DT): Aus mehreren Eingangswerten wird in tabellarischer Form definiert wie der Ausgangswert gesetzt wird.
* Zustandsübergangsdiagramm (englisch state transition diagram, kurz STD): Zustände werden auf diesem Diagramm als Vierecke und Übergänge als Pfeile dargestellt. Das STD hat Eingangs- und Ausgangswerte, die in Abhängigkeit von den Übergängen und Zuständen gesetzt werden.
* Prozessaktivierungstabelle (englisch process activation table, kurz PAT): Die Tabelle beschreibt die Reihenfolge der Aktivierung der in der Tabelle aufgezählten Prozesse.
Ein DFD beinhaltet stets nur eine PAT und beliebig viele DT und STD. Alle drei neuen Elemente werden grafisch durch einen senkrechten Strich dargestellt. Pfeile von links sind die Eingangs-, Pfeile nach rechts die Ausgangsparameter.
* Kontrollflüsse (englisch control flow): Dargestellt als gestrichelter Pfeil werden über Kontrollflüsse nur Daten mit Boolescher Definition gesendet. Diese dienen der Ansteuerung der DT und STD und tragen selbst keine wahren Daten, sondern dienen nur der Modellierung des dynamischen Ablaufs.

## Verwendung in der Praxis

Eins der größten Softwareprojekte, die mit Hilfe der Strukturierten Analyse in Deutschland realisiert wurden, ist die Software für den Zentralrechner des Kampfflugzeugs Tornado.
Ansonsten ist die Strukturierte Analyse vielerorts durch die Objektorientierte Analyse (OOA) abgelöst, wird aber noch in vielen Projekten eingesetzt.