Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 1 Strukturierter Entwurf Übersicht Anforderungen an Module Modular Design (MD):

Ähnliche Präsentationen


Präsentation zum Thema: "DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 1 Strukturierter Entwurf Übersicht Anforderungen an Module Modular Design (MD):"—  Präsentation transkript:

1 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 1 Strukturierter Entwurf Übersicht Anforderungen an Module Modular Design (MD): – Structure Chart – Cohesion – Coupling Bewertung des Entwurfs – Wartbarkeit Komplexität Lesbarkeit und Verständlichkeit Errorhandling Von SA zu MD

2 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 2 Ein (Software-)Modul ist ein abgeschlossener Teil eines Software-programms, bestehend aus einer Folge von Verarbeitungsschritten und Datenstrukturen mit folgenden Eigenschaften (David Parnas): Information hiding: Kapselung (encapsulation) durch die Trennung von Schnittstelle und Implementierung Module sind separat bearbeitbar, testbar, kompilierbar und eindeutig einer(!) Person zugeordnet Modulaufrufe sind hierarchisch strukturiert Ein guter Modulentwurf ist gekennzeichnet durch: – Geringe Komplexität – Starke Bindung untereinander (strong cohesion) – Lose Kopplung zu anderen Modulen (loose coupling) Strukturierter Entwurf Anforderungen an Module Kosten Wachsende Anzahl/geringere Größe Kosten = f(Anzahl) Kosten = f(Größe) Kosten

3 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 3 Ein Modul X benutzt einen Modul Y, wenn eine Funktion von X eine Funktion von Y aufruft. Strukturierter Entwurf Aufrufhierarchie bei Modulen Die Benutzt-Hierarchie ist keine strenge und auch keine Baumhierachie, d.h. Sprünge über Hierarchie- Ebenen sind erlaubt Mehr als ein Vater ist erlaubt Strenge Hierarchie Baumhierarchie

4 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 4 Strukturierter Entwurf Modular Design (MD): Structure Chart Alle Module mit ihrer Hierarchie sind sichtbar Jedes Modul als Rechteck gezeichnet hat einen sprechenden Namen Der Aufruf wird durch einen Pfeil repräsentiert An den Pfeilen können die Aufrufparameter (data couples) eingegeben werden Das Strukturbild zeigt nicht, ob ein Modul aufgerufen wird, die Reihenfolge der Aufrufe und die Inhalte der Module Data Item Control Item Modul X Modul Y Die Aufruf-Hierarchie von Modulen wird in einem Structure Chart (Strukturbild) dargestellt:

5 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 5 Strukturierter Entwurf MD: Structure Chart Funktionsmodul /Steuermodul (kein Unterschied in der Darstellung) Datenmodul (enth. keinen Code, nur Daten Bibliotheksmodul (gut dokumentiert, ausreichend getestet, i.d.R. nicht selbst erstellt) Objektmodul (ADT=abstrakter Datenyp) mit lokalem Speicher (Daten und Code) Es gibt folgende Modultypen:

6 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 6 Strukturierter Entwurf MD: Cohesion (Zusammenhalt) Zu empfehlen sind Modulstrukturen, deren Funktionen folgendermaßen zusammen gehalten werden: Funktional: alle arbeiten an derselben Aufgabe Informationsbezogen: alle arbeiten auf derselben Datenstruktur Sequentiell: Der Output der einen ist der Input der anderen Kommunikativ: sie erzeugen oder benutzen dieselbe Datenstruktur Nicht zu empfehlen sind Modulstrukturen, deren Funktionen folgendermaßen zusammen gehalten werden: Temporär: werden häufig nacheinander aufgerufen Logisch: Sammlung von ähnlichen Funktionen, z.B. eine mathematische Bibliothek Decision Split ist zu vermeiden! Bedingungsausdruck (IF-Statement) und zugehörige Maßnahmen (THEN- und ELSE- Statement) gehören in dasselbe Modul.

7 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 7 Strukturierter Entwurf MD: Coupling (Bindung untereinander) Zu empfehlen sind Strukturen, bei denen die Module folgendermaßen untereinander gekoppelt sind: Datenbindung (data): Aufruf mit Übergabe der direkten Parameter Datenstrukturbindung (stamp): Aufruf mit Übergabe indirekter Parameter Kontrollbindung (control): Aufruf mit Übergabe von Parametern die zur Steuerung der Programme verwendet werden Nicht zu empfehlen sind Strukturen, bei denen die Module folgendermaßen untereinander gekoppelt sind: Inhaltsbindung (content): unkontrollierter Sprung in einen Code-Abschnitt Gemeinschaftsbindung (common): Kopplung über einen COMMON-Bereich, der allen Modulen zur Verfügung steht

8 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 8 Strukturierter Entwurf MD: Coupling (Bindung untereinander) DatenbindungDatenstrukturbindung

9 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 9 Strukturierter Entwurf MD: Coupling (Bindung untereinander) DatenbindungDatenstrukturbindung Was ist besser, was ist schlechter?

10 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 10 Strukturierter Entwurf MD: Coupling (Bindung untereinander) Kontrollbindung Ein Modul beeinflusst die Ablaufsteuerung des anderen Moduls.

11 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 11 Ein System ist umso leichter wartbar, wenn es lesbar ist, wenig komplex, modular aufgebaut, durchgängig beschrieben, möglichst selbsterklärend und allgemein verständlich. Insbesondere führt die funktionale oder auch strukturelle Komplexität zu einer kognitiven Komplexität und somit zu erhöhten Schwierigkeiten beim Software-Entwurf, d.h. Fehleranfälligkeit als externes Qualitätsmaß steigt. Komplexitätsmetriken dienen dazu, die Wartbarkeit eines IT-Systems quantitativ zu bewerten, wobei im wesentlichen interne und externe Beziehungen zwischen Komponenten (Klassen, Module, Statements) gemessen werden. Strukturierter Entwurf Bewertung (Evaluierung) Nach Abschluss des strukturierten Entwurfs wird in der Regel die Wartbarkeit bewertet! Und gute Wartbarkeit erreicht man, indem man: die Komplexität verringert und die Lesbarkeit und Verständlichkeit erhöht

12 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 12 Größe oder auch Anzahl der Komponenten – Anzahl der aufgerufenen Module, fan out (max 7) – Anzahl von Dateizugriffen pro Modul (max 1 Datei) – Anzahl von Aufrufparametern (max. 10) – Anzahl von Zeichen pro Zeile (max. 80) – Anzahl von Codezeilen in einem Modul (max. 500) Boolesche Ausdrücke – Default ist TRUE – Schachtelungstiefe (max. 4) Abhängigkeiten Schachtelungstiefe, DIT (depth of inheritance tree) Zyklomatische Zahl (nach McCabe) Cohesion Coupling, CBO (coupling between objects) Strukturierter Entwurf Wartbarkeit: Komplexität verringern

13 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 13 Beispiele: Anzahl der Parameterübergabe Art der Parameterübergabe (direkt, indirekt, unüblich, global) Schachtelungstiefe für Distance = SQRT ((Y1 - Y0)2 + (X1 - X0)2) Strukturierter Entwurf Wartbarkeit: Komplexität verringern Call SQRT (X) Call SQRT (X,Y) Call SQRT (X,Y,Z) Call Distance ( X0, Y0, X1, Y1, DSTNC) Call Distance ( SOURCE, TARGET, DSTNC) Call Distance ( XKOOR, YKOOR, DSTNC) Call Distance Distance = SQRT(SUM(SQ(DIFF(Y1,Y0)),SQ(DIFF(X1,X0)))) Hohe Komplexität

14 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 14 Übung: Berechnen Sie die McCabe Komplexität dieses Programm- beispiels: Strukturierter Entwurf Wartbarkeit: Komplexität verringern Metric of McCabe: Cyclomatic Number v(G) is the maximum number of independent paths in a flowgraph G: v(G) = e - n + 2p e - number of edges in G n - number of nodes in G p - number of connected components (if you have subprograms, p=1 in a single program) IF a>b THEN IF b>c THEN p(a,b) ELSE p(b,c); Print(a,b,c); v(G) = *1 = 3

15 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 15 Namenskonventionen – Einheitliche Konventionen, z.B. Consonant Notation (Bsp. nwddrss) oder Writing Notation (Bsp. newAddress) – Modulnamen beginnen mit einem Großbuchstaben – Konstante bestehen aus Großbuchstaben, Ziffern und Unterstrichen Einheitlicher Modulheader – Titel und Zugehörigkeit zum Gesamtsystem – Funktionelle Kurzbeschreibung – Versionsangabe mit Datum und Historie – Verantwortlichkeit Einsatz von Kommentaren (DC = Kommentardichte = 0,25) – Jede Variable – Jeder Absatz Zentralisierung und Vereinheitlichung des Errorhandlings, der Autorisierung, des Reportings, … Strukturierter Entwurf Wartbarkeit: Verständlichkeit erhöhen

16 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 16 Strukturierter Entwurf Errorhandling Beim Errorhandling unterscheiden wir drei Arten von Moduln: (Detection-)Modul, das den Fehler entdeckt (Examine-)Modul, das den Fehler bewertet und Gegenmaßnahmen initiiert (Output-)Modul, das die Fehlermeldung ausgibt Regeln beim zentralen Errorhandling: Fehlermeldungen möglichst nicht durch das System tragen Output-Modul vom Examine- Modul aufrufen, nicht vom Detection-Modul Mit Fehlernummern statt mit Fehlertexten die Fehler identifizieren DM EM DM EM OM

17 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 17 From data flow diagrams to a hierarchical modular structure identify central transformation by tracking the input and output data flows if any process not suitable for central transformation, add new module called central transformation create hierarchy chose module names related to its functionality add modules for writing and reading add modules for initialization and termination the application system check if library modules are available add flags for controlling tasks add error handling if necessary divide modules in separate (sub)modules (factorizing) Strukturierter Entwurf Von SA zu MD (modular design)

18 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 18 Strukturierter Entwurf Anhang Lösung der Übung auf Seite 14 (Metric of McCabe) Z1 Z3Z6 Z2 Z9 Z13 Z0.. v(G) = *1 = 4


Herunterladen ppt "DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.2 Okt 2010 Seite 1 Strukturierter Entwurf Übersicht Anforderungen an Module Modular Design (MD):"

Ähnliche Präsentationen


Google-Anzeigen