Strukturierter Entwurf (und Realisierung) Structured Design (SD) Software-Architektur Funktionale Abstraktion Strukturdiagramme Realisierung
Phasen der Softwareentwicklung Anforderungen & Planung Analyse & Definition Entwicklungsrichtung Entwurf Realisierung & Modultest Integrations- & Systemtest Entwicklungsrichtung Auslieferung & Installation Wartung
Ziele und Aufgaben des Software-Entwurfs Entwurf einer Software-Architektur Beschreibung der Struktur des Software- Systems mit Systemkomponenten und Beziehungen Beispiele prozedural: Funktionen objektorientiert: Klassen
Beispiel: Software-Architektur Stammdaten- verwaltung Systemkomponenten Einkauf Verkauf
Schichten-Architektur Komponenten der Benutzeroberfläche Anwendungskomponenten Komponenten der Datenhaltung
Beispiel Warenwirtschaftssystem (Ausschnitt) Dialog Hintergrund Auftragsverwaltung Kunden Aufträge Lieferanten
Hauptaufgaben des Software-Entwurfs Entwerfen einer Software-Architektur Zerlegung Strukturierung Beziehungen zwischen den Systemkomponenten Ergebnisse: Software-Architektur Spezifikation jeder Systemkomponente
Funktionalen Abstraktion Schema Eingabe Ausgabe WAS WIE
Funktionale Abstraktion Beispiel Kapital Zinssatz Zeit Zins Zinsberechnung C++ Funktionsaufruf
Spezifikation der funktionalen Abstraktion Aufgabenbeschreibung (WIE) Eingabeparameter mit Datentyp Ausgabeparameter mit Datentyp und Abhängigkeiten von den Eingabeparametern Voraussetzungen und Vorbedingungen Bedingungen nach der Abstraktion Verhalten bei Fehlern Leistungsmerkmale
Strukturdiagramme grafische Darstellung der Software-Architektur funktionale Abstraktion Aufrufstruktur der Systemkomponenten Datenflüsse zwischen
Basisnotation für Strukturdiagramme Funktion (Rechteck) Datenbereich (Sechseck) Parameter für Funktionsübergabe (Pfeil) Parameter für Funktionsrückgabe (Doppelpfeil) Datenparameter (Pfeilbeginn: leerer Kreis) Kontrollparameter (Pfeilbeginn: gefüllter Kreis) Hybridparameter (Pfeilbeginn: Kreis mit Punkt)
Strukturdiagramm eines Bibliotheksverwaltungssystems
Software-Realisierung Aufgaben Konzeption von Datenstrukturen und Algorithmen Strukturierung des Programms Dokumentation des Quellcodes Umsetzung der Entwurfskonzepte in Syntaxkonstrukte Angaben zu Zeit- und Speicherbedarf des Programms Test der entwickelten Systemkomponenten (Testplanung und Testfallerstellung)
Struktogramm (Mehrfachauswahl) Ausdruck default Anweisung(en) Fall 1 Fall 2 Anw. 1 Anw. 3 Anw. 2 Fall 3 Ausnahme- Anweisungen