Strukturierte Analyse

Strukturierte Analyse

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 soweit, 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.

Inhaltsverzeichnis

Historische Entwicklung

  • 1960er-Jahre Bemühungen, den Prozess der Systementwicklung zu systematisieren
  • 1974 Vorschlag von JACKSON für eine grafische Darstellungsform für strukturierte Analyse
  • 1970er-Jahre Entwicklung der SA von Tom DeMarco und anderen
  • 1977 Veröffentlichung der SA von Tom DeMarco und anderen

Strukturierte Analyse

In der Strukturierten Analyse werden folgenden Elemente verwendet:

  • Kontextdiagramm (engl. 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 (engl. 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 (engl. 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 (engl. 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 (engl. Decision Table, kurz DT): Aus mehreren Eingangswerten wird in tabellarischer Form definiert wie der Ausgangswert gesetzt wird.
  • Zustandsübergangsdiagramm (engl. 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 (engl. 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 (engl. 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.

Literatur

  • Edward Yourdon: Modern Structured Analysis, Prentice Hall, 1988, ISBN 0135986249
  • Keith Edwards: Real-Time Structured Methods, System Analysis, Wiley, 1993, ISBN 0-471-93415-1
  • Derek J. Hatley, Imtiaz A. Pirbhai: Strategies for Real Time System Specification, John Wiley and Sons Ltd, 1988, ISBN 0932633048
  • Stephen J. Mellor und Paul T. Ward: Structured Development for Real-Time Systems: Implementation Modeling Techniques: 003, Prentice Hall, 1986, ISBN 013854803X
  • Tom DeMarco: Structured Analysis and System Specification. Prentice Hall, 1979, ISBN 0138543801

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Anwendungsentwicklung — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-Engineering — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-Entwicklung — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-Life-Cycle — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-Technik — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-life-cycle — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software Engineering — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Softwareengineering — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Softwareentwicklung — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Softwareentwurf — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”