Suchen

Strukturierte Entwicklung: Grafische Analyse beim Software Development

| Autor / Redakteur: Christian Rentrop / Stephan Augsten

Mithilfe der strukturierten Analyse lässt sich die Software-Entwicklung effizienter gestalten. Sie ermöglicht die grafische Darstellung der Anforderungen an die Software und sorgt für mehr Übersicht. Dadurch kann sie Zeit und Kosten sparen.

Firma zum Thema

Mithilfe von Diagrammen lässt sich die Komplexität eines Software-Projekts in eine einfache grafische Struktur überführen.
Mithilfe von Diagrammen lässt sich die Komplexität eines Software-Projekts in eine einfache grafische Struktur überführen.
(Bild: startupstockphotos.com / CC0 )

Vor der eigentlichen Programmierung eines Softwareprojekts steht die genaue Untersuchung der für die Anwendung notwendigen Funktionen. Gerade in komplexen Systemen kann es allerdings sehr schnell sehr unübersichtlich werden, weshalb es sinnvoll sein kann, in der Analysephase auf die sogenannte strukturierte Analyse zu setzen.

Dabei handelt es sich um ein vereinfachtes Strukturmodell der Funktionen, die in der Software vorhanden sein müssen und ihrer Interaktion miteinander in Form eines Diagramms. Der Vorteil der strukturierten Analyse legt auf der Hand: Wird sie mit der nötigen Sorgfalt durchgeführt, entsteht eine Art „Mindmap“ des Softwareprojekts, mit dessen Hilfe sich einzelne Funktionsschritte effizient überprüfen und nachhalten lassen.

Eine strukturierte Analyse erstellen

Die Idee hinter einer strukturierten Analyse ist die Überführung der Komplexität des Gesamtprojekts in eine einfache grafische Struktur. Mittels eines Top-Down-Modells werden dabei Funktionen und Interaktionen der Software mit anderen Objekten und Schnittstellen möglichst detailliert miteinander verknüpft und ihre Wirkungsweisen untereinander festgehalten. Eine strukturierte Analyse lässt sich auf die folgenden Arten darstellen:

  • Mittels Kontextdiagramm, vergleichbar mit einer Mind-Map oder einem Analysebaum: Hier wird ein zentraler Prozess oder eine zentrale Funktion im Zentrum mit allen Input- und Output-Zielen aufgezeichnet. Pfeile vom Zentrum zu den Zielen und der Ziele untereinander definieren die Richtung des Signals. Diese können zusätzlich beschriftet werden.
  • Als hierarchische Darstellung ähnliche einem Organigramm: Hier werden zusätzlich Hierarchieebenen eingepflegt. Anders als beim Kontextdiagramm werden hier auch Prioritäten vergeben. Auch hier wird die oberste Ebene in Form eines Kontextdiagramms in der Hierarchie nach unten weiter aufgeschlüsselt. Unterpunkte der hierarchischen Darstellung erhalten bei Bedarf eigene Kontextdiagramme oder können in Form von Minispezifikationen ebenfalls in der strukturierten Analyse einfließen.
  • Mit einem Datenfluss-Diagramm: Dieses zeigt zusätzlich an, welche Daten von wo nach wo fließen. Dieses kann separat eingesetzt werden, um die Analyse anschaulicher zu gestalten oder direkt in Kontext- oder Hierarchiedarstellung einfließen.
  • Weiterführende Minispezifikationen erlauben die weitere Aufschlüsselung kleinerer Anteile oder Einzelfunktionen, die auf separaten „Blättern“ erneut unterteilt werden können. Eine zu tiefe Aufschlüsselung ist allerdings nicht sinnvoll, da hier die eigentlich gewünschte Übersichtlichkeit leidet.
  • Zusätzlich muss ein Datenwörterbuch angelegt werden, das Datendefinitionen der Analyse enthält.

Je abstrakter, desto übersichtlicher

Grundsätzlich gilt: Je stärker die Strukturanalyse abstrahiert ist, umso weniger komplex und desto übersichtlicher ist später das Diagramm. Wie stark Einzelfunktionen zusätzlich analysiert werden müssen, hängt stark vom verwendeten System, bereits vorhandenen Objektlösungen und dem damit beschäftigten Entwicklerteam zusammen.

Wichtig ist, dass dabei gängige Standards eingehalten werden. So wird der zentrale Prozess immer kreisförmig dargestellt. Daten sendende und -empfangende Komponenten wie Schnittstellen, Sensoren oder Peripheriegeräte, aber auch andere Software-Komponenten, sind hingegen als Rechtecke zu kennzeichnen. Die Datenflüsse sind als beschriftete Pfeile festzuhalten, Speicher als zwei waagerechte Linien, in denen der Name des Speichers steht.

Zusätzliche Prozesse erhalten ebenfalls Kreise mit einer Nummer, die dann in Form zusätzlicher Kontextdiagramme oder Minispezifikationen weiter definiert werden. Auf diese Weise lässt sich eine übersichtliche Struktur der Funktionen einer Software samt aller involvierten Speicher und Schnittstellen erstellen.

Zunächst den Kontext aufschlüsseln

Um bei der Erstellung einer strukturierten Analyse nicht den Überblick zu verlieren, sollte zunächst versucht werden, ein grobes Raster der Funktionsweisen in Form eines Kontextdiagramms zu erstellen. So könnte bei der Entwicklung eines Online-Warenwirtschaftssystems der Innere Prozess zur Veranschaulichung zunächst als „Unsere Software“ bezeichnet werden.

Äußere Schnittstellen – etwa „Kunde“, „Lieferanten“, „Lager“, „Bezahlsystem“ und „Datenbank“ – können hier für eine erste Übersicht in Beziehung zueinander gesetzt werden. Die Fragestellung muss lauten: Was kommt rein, was geht raus – und wie stehen die einzelnen Komponenten in Beziehung zueinander?

Strukturiert entwickeln

Erst in einem zweiten Schritt sollte die detaillierte Aufschlüsselung in Form des strukturierten Designs einzelner Funktionen in Form eines essentiellen Diagramms erfolgen, das die Beziehungen einzelner Prozesse und Komponenten untereinander aufzeigt und gegebenenfalls die genauen Datenflüsse festhält. Dieses komplexere Diagramm kann mit Unterdiagrammen und algorithmischer Darstellung anhand des Datenkatalogs sehr detailliert erfolgen.

Zu guter Letzt kann dieses Modell wieder vereinfacht werden, um einen erleichterten, aber konkreten Gesamtüberblick über das Softwareprojekt zu erhalten. Die einzelnen Entwicklerteams können bei Bedarf auf die detaillieren Modell zurückgreifen und so genaue überprüfen, ob alle gewünschten Funktionen und Unterfunktionen korrekt implementiert werden können.

Mehr Übersicht spart Kosten

Durch die grafische Darstellung bei der strukturierten Analyse lässt sich schon vor Beginn der eigentlichen Umsetzung dafür Sorge tragen, dass ein übersichtlicher Leitfaden für die Funktionen der Software entsteht. Dieser kann jederzeit von den Entwicklern überprüft werden. Das erlaubt es, bereits im Vorfeld vorhandene und neu zu schaffende Lösungen zu ermitteln, Fehlentwicklungen zu vermeiden und damit Kosten zu sparen.

Dieser Beitrag erschien zuerst auf unserem Partnerportal Dev-Insider.de.

(ID:44993026)

Über den Autor

 Christian Rentrop

Christian Rentrop

IT-Fachautor