Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Structured Design Ziele des Designs Konstruktion des Sytems

Ähnliche Präsentationen


Präsentation zum Thema: "Structured Design Ziele des Designs Konstruktion des Sytems"—  Präsentation transkript:

1 Structured Design Ziele des Designs Konstruktion des Sytems
Prozessorgrenzen festlegen Implementierungstechnologie festlegen Nachvollziehbare Abbildung vom Analysemodell zum Designmodell

2 Structured Design Design behandelt die Aspekte Machbarkeit
Typen von HW- und SW-Umgebung Kapazität Kosten für Beschaffung und Betrieb

3 Structured Design Begriffe Modul
Sammlung von Programmanweisungen bzw. elementaren Funktionen Er hat einen Namen, aus dem hervorgeht was er tut er ist aufrufbar kann Daten übernehmen kann Daten zurückgeben

4 Structured Design Begriffe Information-Hiding Funktion Modularisierung
Die innere Sicht, interne Funktionalität und interne Daten hält ein Modul verborgen Funktion Eine Funktion ist die kleinste Gruppe von Anweisungen, die sich als Einheit ansprechen läßt Ein Modul besteht aus ein oder mehreren Funktionen Modularisierung Gliederung eines Systems in überschaubare und pflegbare Teile. Vermeidung von Coderedundanz Mehrfachverwendbarkeit von Modulen (besser noch von einer Reihe zusammenarbeitender Module)

5 Structured Design Structure Charts zeigen zeigen nicht
Die äußere Sicht der Module Beziehungen der Module untereinander zeigen nicht die innere Sicht der Module wann und wie oft ein Modul von einem anderen gerufen wird in welcher Reihenfolge ein Modul andere ruft

6 Structured Design Symbole für Structure Charts

7 Structured Design Symbole für Structure Charts

8 Structured Design Symbole für Structure Charts

9 Structured Design Namensvergabe in Structure Charts
Namen für Module und Daten müssen die Bedeutung (Semantik) für den Leser sofort verständlich machen Bei Modulnamen ist darauf zu achten, daß ein Modul auch die Leistung aller von ihm gerufenen Module enthält, die also im Namen ebenfalls berücksichtigt werden müssen Namen von Daten müssen im Datenkatalog definiert sein

10 Structured Design Beispiel für einen Modulaufruf

11 Structured Design Ordnung im Structure Chart
Eingabe-Moduln (Daten nach oben) soweit wie möglich links Ausgabe-Moduln (Daten nach unten) soweit wie möglich rechts Quellen und Senken (Lesen und Ausgaben von Daten) als Blätter

12 Structured Design Beispiel für ein Structure Chart

13 Structured Design Die Modulspezifikation
Spezifikation der inneren Sicht in Modulköpfen Pseudocode, formale und/oder grafische Spezifikation Kontrollstrukturen Entscheidungstabellen Bei klarer Zuordnung zwischen den Mini-Spezifikationen der SA und den Modulen der SD reicht Kopie oder Verweis.

14 Structured Design Qualitätsbewertung eines Designs
Modulkopplung ( Coupling) Grad der Abhängigkeit von Modulen lose Kopplung, geringe gegenseitige Beeinflussung Austauschbarkeit von Modulen mit gleicher Schnittstelle ein Modul muß keine internen Details anderer Module kennen Modulbindung ( Cohesion) Grad der Zusammengehörigkeit der Funktionen große Bindung, löst genau eine Aufgabe

15 Structured Design Qualitätsbewertung eines Designs
Kopplung und Bindung stehen in Beziehung zueinander Module hoher Bindung besitzen lose Kopplung lose Kopplung ist nur bei starker Bindung möglich Überschaubarkeit quantitativ (Anzahl Statements) qualitativen (Anzahl von Algorithmen oder Daten)

16 Structured Design Kopplung drei Arten der normalen Kopplung
Datenkopplung (Data Coupling) Datenstrukturkopplung (Stamp Coupling) Kontrollkopplung (Control Coupling) globale Kopplung Inhaltskopplung

17 Structured Design Normale Kopplung Modul 1 ruft Modul 2 auf
Modul 2 gibt nach Abschluß seiner Aktionen die Kontrolle an Modul 1 zurück die Kommunikation zwischen Modul 1 und Modul 2 findet über explizit festgelegte Aufrufparameter statt.

18 Structured Design normale Kopplung Datenkopplung (Data Coupling)
Übergabeparameter sind elementare Strukturen (Felder oder homogene Tabellen) keine Daten übergeben, die nicht gebraucht werden Anzahl der Parameter begrenzen Gefahr von Tramp Data (vagabundierende Daten)

19 Structured Design normale Kopplung Datenstrukturkopplung (Stamp Coupling) Übergabeparameter sind komplexere Datenstrukturen Gefahr der Übergabe von Daten, die nicht benutzt werden Datenstruktur sollte nur benutzte Felder enthalten

20 Structured Design normale Kopplung Kontrollkopplung (Control Coupling)
Parameter werden übergeben, die den Ablauf des anderen Moduls beeinflussen, d.h. die Parameter haben den Charakter von Schaltern, mit denen Einfluß auf den anderen Modul ausgeübt wird.

21 Structured Design globale Kopplung (Global or Common Coupling)
Module kommunizieren über einen gemeinsamen Speicherbereich Ein Fehler eines Moduls kann sich über den Speicher auf die anderen Module auswirken Diese Kopplungsart ist zu vermeiden, da Wissen um andere Module erforderlich (wie werden die Datenfelder genutzt?) Info-Cluster einführen

22 Structured Design Inhaltskopplung (Content Coupling)
ein Modul adressiert das Innere eines anderen Moduls (z.B. in Assembler möglich) Diese Kopplungsart muß verboten sein keine Darstellung vorgesehen

23 Structured Design Bindung normale Bindungsarten prozedurale Bindung
funktionale Bindung sequentielle Bindung kommunikative Bindung prozedurale Bindung zeitliche Bindung logische Bindung zufällige Bindung

24 Structured Design normale Bindung
Modul enthält inhaltlich eng zusammengehörige Funktionen die auf gemeinsamen Daten operieren die entweder als Parameter übergeben werden oder lokal definiert sind

25 Structured Design normale Bindung funktionale Bindung (Functional Cohesion) die Gesamtheit der Funktionen eines Moduls dienen einer einzigen, geschlossenen Aufgabe

26 Structured Design normale Bindung Sequentielle Bindung (Sequential Cohesion) Die Funktionen des Moduls bilden eine zusammenhängende Folge von Aktivitäten die Ausgabedaten einer Funktion sind die Eingabedaten der nächsten Funktion

27 Structured Design normale Bindung Kommukative Bindung (Communicatial Cohesion) die Funktionen eines Moduls nutzen dieselben Eingabe- oder Ausgabedaten in Module mit funktionaler Bindung zerlegbar

28 Structured Design Prozedurale Bindung ( Procedural Cohesion)
völlig unabhängige Funktionen, die lediglich die Gemeinsamkeit haben, daß zur selben Zeit oder zu einem bestimmten Zeitpunkt in einer festen Reihenfolge ablaufen (z.B. Initialisierung) Zeitliche Bindung ( Temporal Cohesion) der Modul besteht aus völlig unabhängigen Funktionen, die nur die Gemeinsamkeit haben, daß sie nacheinander ablaufen.

29 Structured Design Logische Bindung ( Logical Cohesion)
Funktionen des Moduls sind programmstrukturell miteinander verflochten und ihre Ausführung wird beim Aufruf über ein Flag gesteuert Zufällige Bindung ( Coincidental Cohesion) die Funktionen des Moduls haben keine sinnvolle Beziehung; z.B. willkürliche Aufteilung aufgrund von Platzproblemen

30 Structured Design Faktorisierung
logische Zerteilung eines Modells nach den Kriterien Kopplung und Bindung Ergebnis wird ein System mit minimaler Coderedundanz sein sollten Module zu klein werden oder sollten Performanceprobleme auftreten, so können Module als in-line-Code verwendet werden oder die Faktorisierung wird rückgängig gemacht

31 Structured Design Software-Architektur
eine Funktion vollständig in einem Architekturblock einer Software-Architektur anzusiedeln bei der Schichtenbildung ist dafür zu sorgen, daß die eigentlichen Verarbeitungsfunktionen nur noch mit Daten arbeiten bei denen keine physikalischen Aspekte zu berücksichtigen sind

32 Structured Design Software-Architektur

33 Structured Design Decision Split vermeiden
Entscheidung hat einen Erkennungsteil (Bedingung) und einen Ausführungsteil (Aktionen). Beim Dicision Split werden diese beiden Teile auf verschiedene Moduln verteilt. Auslagerung der Alternative in einen jeweils direkt aufgerufenen Modul ist jedoch vertretbar

34 Structured Design Fehlerbehandlung und Prüfungen
Structured Analysis betrachtet keine Fehlerbehandlung Fehlerreaktionen einschließlich des Administrationsringes (Prüfarbeit) festlegen Grundsätze: vollständige Fallunterscheidungen programmieren Anstoß einer Meldungsausgabe möglichst durch den Fehler erkennenden Modul Fehlermeldungen über einen Meldungsmodul mit zentraler Haltung der Fehlermeldungen

35 Structured Design Fehlerbehandlung und Prüfungen
Prüfung von Daten nach Übernahme in das System so früh wie möglich durchführen Reihenfolge: Zeichenprüfung Feldprüfung Prüfung von Kombination von Feldern Plausibilitätsprüfungen gegen Datenbestände Module sollten Eingabeparameter gegen die Bedingungen prüfen, die zu einem Programmabbruch führen könnten

36 Structured Design Weitere Grundsätze
Static Variablen dürfen nur sehr bewußt eingesetzt werden, denn dieses „interne Gedächtnis" kann dazu führen, daß ein Modul sein Verhalten von einem Aufruf zum nächsten ändert Initialisierungen, speziell von Zählern und Schleifenvariablen, erst vor der tatsächlichen Nutzung, da sonst Code schwerer verständlich ist (wo ist der Initialisierungsmodul ?) Initialisierung so spät wie möglich und Terminierung so früh wie möglich (besonders bei der Belegung von Betriebsmitteln) auch nach schweren Programmfehlern muß eine ordnungsgemäße Terminierung und Freigabe aller Betriebsmittel sichergestellt sein (zum Glück leisten das heute die meisten Betriebssysteme)

37 Structured Design Wiederverwendbarkeit
keine Restriktionen wie z.B. Dimensionierungsgrenzen Konstanten über Includes zur Compile-Zeit Parameter aus Dateien heraus zur Laufzeit Erreichung von Wiederverwendbarkeit um jeden Preis, auch wenn sie gar nicht erforderlich ist, kostet uns unnötig Geld und hat zu unterbleiben

38 Structued Design Meßlatten Höhe und Breite eines Systems
Anzahl der Ebenen der Aurufhierarchie maximale Anzahl von Moduln in der Ebene Höhe = Breite gilt als ausgewogen (abhängig von Aufgabenstellung) Fan-Out und Fan-In eines Moduls Fan-In gibt die Anzahl der Module an, die einen Modul rufen. Großer Fan-In bedeutet großer Wiederverwenbarkeit. Erhöhung von Fan-In ist häufig durch weitere Faktorisierung möglich. Fan-Out ist die Anzahl direkt gerufener Module eines betrachteten Moduls. Bei mehr als 7 +/- 2 leidet die Übersichtlichkeit des Structure Charts. Bei zu hohem Fan-Out schaltet man Manager-Module zwischen.

39 Structured Design Wie kommt man von Analyse zum Design ?
Strategie von Yourdon, Constantine transform analysis oder transform-centered design Beschreibung des Problems als Datenflußdiagramm Identifizierung der logischen und der physikalischen Datenelemente und ihrer Umsetzungen First-Level Faktorisierung Faktorisierung der Zweige Daten physikalisch nach logisch Verarbeitung Daten logisch nach physikalisch

40 Structured Design Beschreibung des Problems als Datenflußdiagramm

41 Structured Design Identifizierung der logischen und der physikalischen Datenelemente und ihrer Umsetzungen

42 Structured Design First-Level Faktorisierung

43 Structured Design Faktorisierung der Zweige

44 Structured Design Beispiel für grafische Oberflächen

45 Structured Design Structure Chart für grafische Oberflächen

46 Structured Design Wie geht`s weiter?
Komponentenspezifikation, Codierung, Test Todsünde Design und ggf. auch die Analyseergebnisse werden nicht mehr aktualisiert. Dokumentation und fertiges System haben nur noch vereinzelte Ähnlichkeit. Abhilfe Einsatz von Case-Tools CASE/4/0 von microtool INOVATOR von MID


Herunterladen ppt "Structured Design Ziele des Designs Konstruktion des Sytems"

Ähnliche Präsentationen


Google-Anzeigen