Structured Design Ziele des Designs Konstruktion des Sytems

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Identifizierung und Ausbildung von Führungskräften
Integrations- und Funktionstests im Rahmen des V-Modelles
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
On the Criteria to Be Used in Decomposing Systems into Modules
Vorteile der Online-Produkte
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
SAP R/3 - Speichermanagement
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
On a Buzzword: Hierachical Structure David Parnas.
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Modularisierungstechniken
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Betreuerin: Kathleen Jerchel
Prüfkriterien für objektorientierte Systeme
AC Analyse.
Access 2000 Datenbanken.
Schieferdeckarten Dach.ppt
DVG Klassen und Objekte
Flache Datenstrukturen in der Operationsdokumentation.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele
Kakuro Regeln und Strategien
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
Gebäudeverschneidung 4
20:00.
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Selbsttest zum Modul 2 Informationstechnik
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Was soll und kann eine fachdidaktische Vorlesung leisten? Maximilian Selinka.
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
So einfach kann das Leben sein ...
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
UML-Kurzüberblick Peter Brusten.
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Symmetrische Blockchiffren DES – der Data Encryption Standard
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Großer Altersunterschied bei Paaren fällt nicht auf!
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle Tidekennwertanalysen des Schwebstofftransportes.
Pigmentierte Läsionen der Haut
PHP: Operatoren und Kontrollstrukturen
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Software Engineering Grundlagen
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Es war einmal ein Haus
Analyse der Laufzeit von Algorithmen
Software Engineering Strukturierte Analyse
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
Das IT - Informationssystem
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Monatsbericht Ausgleichsenergiemarkt Gas – November
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
 Präsentation transkript:

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

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

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

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)

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

Structured Design Symbole für Structure Charts

Structured Design Symbole für Structure Charts

Structured Design Symbole für Structure Charts

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

Structured Design Beispiel für einen Modulaufruf

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

Structured Design Beispiel für ein Structure Chart

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.

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

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)

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

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.

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)

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

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.

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

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

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

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

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

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

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

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.

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

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

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

Structured Design Software-Architektur

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

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

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

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)

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

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.

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

Structured Design Beschreibung des Problems als Datenflußdiagramm

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

Structured Design First-Level Faktorisierung

Structured Design Faktorisierung der Zweige

Structured Design Beispiel für grafische Oberflächen

Structured Design Structure Chart für grafische Oberflächen

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