Software Engineering Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Gliederung Einführung Grundelemente Modulhierarchie Unterprogramme Entwurf und SA Entwurf und Programmierung Vorgehensweise Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Einführung Zielsetzung beim Softwareentwurf ist die Sicherstellung der Korrektheit, Zweckmäßigkeit, Effizienz, Testbarkeit, Änderbarkeit, Erweiterbarkeit, etc. der zu erstellenden Software. Modularisierung hat das Ziel ein System in in sich abgeschlossene Einheiten zu zerlegen. Diese Einheiten sollen einzeln entwickelt, ausgetauscht, verändert, hinzugefügt, ... werden können, ohne dass andere Teile des Gesamtsystems dadurch beeinflusst werden! Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Modul Ein Modul ist eine Sammlung von Algorithmen und Daten bzw. Datenstrukturen zur Bearbeitung einer in sich abgeschlossenen Aufgabe. Die Verwendung des Moduls (d.h. seine Integration in ein Programm-System) erfordert keine Kenntnis seines inneren Aufbaus und der konkreten Realisierung. Seine Korrektheit ist ohne Kenntnis seiner Einbettung in ein bestimmtes Programmsystem nachprüfbar. Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Modul Ein Modul wird anhand folgender Kriterien gebildet: - Abgeschlossenheit (Aufgabe), - Geheimnisprinzip, - Datenabstraktion, Kapselung, - Schnittstellenspezifikation, - Schnittstellenminimalität, - Überschaubarkeit, Testbarkeit, etc. Programmiersprachen bieten zur Implementierung von Modulen unterschiedliche Konzepte: Paket, Unterprogramm, Funktion, Tasks, Unit usw. . Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Strukturierter Entwurf Methoden für die implementationsnahe Beschreibung von Softwaresystemen. Zielstellung ist die Definition der Programmstruktur und das Abgrenzen von Modulen. Eine weit verbreitete Technik ist das structured chart. Es ist zweckmäßig, die Funktionen der letzten Ebenen der SA als Module strukturiert zu modellieren. Modul Folge AB A B C D E Wiederholung von C Auswahl DE Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Grundelemente A A A B A C A B C A B B Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Sequenz A B C D function A() { print (“B“); print (“C“); print (“D“); } Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Alternative E F B if ( bedingung = wahr ) print (“E“); else print (“F“); Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Wiederholung D G while ( anzahl < 2 ) { print (“G“); anzahl=anzahl+1; } Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Modulhierarchie A B C D E F B G D Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Modulhierarchie A B C D E F G Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Modulhierarchie C F E G A B C D E F G anzahl < 2 bedingung Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Modulhierarchie A B C D E F G function A() { if ( bedingung = wahr ) print (“E“); else print (“F“); print (“C“); while ( anzahl < 2 ) { print (“G“); anzahl=anzahl+1; } } C F E G anzahl < 2 bedingung Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Modulhierarchie die 2. Unterprogramme A B C D E F B G D Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Unterprogramme A B C D E F B G D Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Unterprogramme G D E F B A B C D function D() { while ( anzahl < 2 ) { print (“G“); anzahl=anzahl+1; } } function B() { if ( bedingung = wahr ) print (“E“); else print (“F“); } function A() { B(); print (“G“); D(); } G D E F B A B C D Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
SA und Entwurf Funktion: ermittle Kundenumsatz Kundennummer Umsatz Rechnung Blatt- funktion 3.2 Funktion: ermittle Kundenumsatz IN: Kundennummer (Datenfluss) OUT: Umsatz (Datenfluss) Minispezifikation: suche Rechnungen für Kundennummer wiederhole für jede Rechnung lese Rechnungssumme aus Rechnung wenn Rechnung bezahlt Umsatz=Umsatz+Rechnungssumme gebe Umsatz auf Bildschirm aus Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
SA und Entwurf Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt ermittle Kunden- umsatz Kundennummer Umsatz Rechnung Blatt- funktion 3.2 Funktion: ermittle Kundenumsatz IN: Kundennummer (Datenfluss) OUT: Umsatz (Datenfluss) Minispezifikation: suche Rechnungen für Kundennummer wiederhole für jede Rechnung lese Rechnungssumme aus Rechnung wenn Rechnung bezahlt Umsatz=Umsatz+Rechnungssumme gebe Umsatz auf Bildschirm aus deinit Tabelle Rechnungen gebe Umsatz auf BS aus ermittle Kundenumsatz init Tabelle für jeden Datensatz Umsatz=0 open Rechnungen Satzzeiger auf 1 lese Datensatz wenn Kundennummer gleich und bezahlt Umsatz=Umsatz+1 Satzzeiger +1 Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Der Weg zum Quellcode Drag & Drop generiert Strukturierter Entwurf main init BS Aufbau Eingabeaufforderung Menüauswahl Ausleihe Rückgabe Statistik Stammdaten ende deinit 1 2 3 4 5 generiert Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Die Strukturierte Programmierung main init BS Aufbau Eingabeaufforderung Menüauswahl Ausleihe Rückgabe Statistik Stammdaten ende deinit 1 2 3 4 5 Mit F8 generiert Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt
Vorgehensweise Strukturierte Analyse Blattfunktionen mit Minispezifikationen Entwurf der Blattfunktionen als getrennte Module Entwurf der Anwendungsarchitektur / Hauptmodul Integration der einzelnen Module als Unterprogramme in das Hauptmodul Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt