Vorlesung Software Engineering I Dynamische Basiskonzepte 2 Kontrollstrukturen
Vorlesung Software Engineering I Dynamische Basiskonzepte 2 Kontrollstrukturen Aktivitätsdiagramme Sequenzdiagramme Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 1
Systemsichten und Modellierung Statik Dynamik Logik Funktionen Kontrollstrukturen Abhängigkeiten Daten Zustände Entscheidungstabellen Datenstrukturen Prozesse Mathematik Architektur Zeitliches Verhalten Regeln Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert. Beschreiben das Verhalten und die Veränderungen während der Laufzeit. Beschreiben die Programmfunktion logisch und mathematisch Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 2
Modellierung von Dynamik Beschreibung von Abläufen Algorithmische Modelle Zustandsmodelle Aktionsstrukturen Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 3
Algorithmisches Problemlösen 1. 2. 3. Zerlegung des vorgegebenen Problems in • Teilprobleme und • die Beziehungen zwischen diesen Teilproblemen ( Schnittstellen) Wiederholung von Schritt 1, angewendet auf die Teilprobleme, bis man „kleinste“ Teilprobleme hat, die ohne weitere Zerlegung gelöst werden können. Zur Lösung dieser kleinsten Teilprobleme sind nur eine geringe Zahl unterschiedlicher Grundstrukturen nötig. Zusammensetzung der Teilproblemlösungen führt zur Lösung des Ausgangsproblems Diese Vorgehensweise wird oft Strukturierte Programmentwicklung oder Top – Down – Entwicklung oder Prinzip der schrittweisen Verfeinerung genannt. Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 4
Strukturierte Programmentwicklung …resultiert in folgendermaßen aufgebauten Programmen (siehe auch SA/SD): Prozedur 1 Daten Code Daten 1 Daten 2 Daten 3 Prozedur 2 Daten 4 Daten Code Daten 5 Prozedur 3 Daten Code Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 H A U P T P R O G R A M M Dozenten: Markus Rentschler Andreas Stuckert 5
Modellierung von Algorithmen Verwendung von Kontrollflussdiagramm Aktivitätsdiagramm Struktogramm „Kontrollflussgraphen“ Balzert S. 228 ff Programmablaufpläne (PAPs), auch Flussdiagramme genannt, genormt in DIN 66001 Aktivitätsdiagramm, genormt in der UML: Fluss-Notation vs. Knoten-Notation Struktogramm (Nassi-Shneiderman-Diagramm), genormt in DIN 66261. Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 6
Struktogramme: Grundstrukturen I Einfache Anweisung . . . Sequenz von Anweisungen . . . Prozeduraufruf Einseitige Bedingungsanweisung Zweiseitige Bedingungsanweisung Version . . . wahr Bool. Ausdruck falsch Software Engineering I VE 11: Dynamische Basiskonzepte 2 IF Boolscher Ausdruck {. . . } ELSE {. . . } Dozenten: Markus Rentschler Andreas Stuckert 7
Struktogramme: Grundstrukturen II Mehrseitige Bedingungsanweisung Wiederholung mit Anfangsbedingung Ausdruck w 1 w 2 w 3 Solange <boolscher Ausdruck> wdh. Wiederholung mit Endbedingung wdh. bis <boolscher Ausdruck> Wiederholung mit Zähler Von. . . bis. . . wdh. Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 SWITCH Ausdruck { case w 1: . . case w 2: . . case w 3: . . } WHILE (bool. Ausdruck) {. . . } DO {. . . } WHILE (bool. Ausdruck) FOR (i = 1; i < 3, i = i+1) {. . . } Dozenten: Markus Rentschler Andreas Stuckert 8
Struktogramme: Bewertung ü Struktogramme bzw. Nassi-Shneiderman-Diagramme stellen den Ablauf eines Programms bzw. einer Funktion dar. - Bei Betrachtung von einfacheren Problemen sind Struktogramme oft überdimensioniert, in der Regel reicht hier meist Pseudocode. Bei komplexen Problemen sind Struktogramme schnell unübersichtlich und schwierig wartbar. Struktogramme sind eher geeignet für die formale Beschreibung von Algorithmen als zur Modellierung im Entwicklungszyklus. Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 9
UML 2: Taxonomie der Diagrammarten Verhaltensdiagramme Diagrammübersicht: http: //www. oose. de/uml http: //www. uml-diagrams. org/uml-24 -diagrams. html Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 10
UML 2: Verhaltensdiagramme • Anwendungsfalldiagramm (Use Case Diagram) (stellt Beziehungen zwischen Akteuren und Anwendungsfällen dar) • Aktivitätsdiagramm (Activity Diagram) (beschreibt Abläufe, die aus einzelnen Aktivitäten bestehen) • Zustandsdiagramm (Statechart Diagram) (beschreibt endliche Zustandsautomaten für ein Objekt oder System) • Sequenzdiagramm (Sequence Diagram) (wichtigstes Interaktionsdiagramm: beschreibt den zeitlichen Ablauf von Nachrichten zwischen Objekten) • Kommunikationsdiagramm (Communication Diagram, ehem. Kollaborationsdiagramm) (Interaktionsdiagramm, zeigt Beziehungen und Interaktionen zwischen Objekten) • Zeitverlaufsdiagramm (Timing Diagram) (Interaktionsdiagramm mit Zeitverlaufskurven von Zuständen) • Interaktionsübersichtsdiagramm (Interaction Overview Diagram) (Interaktionsdiagramm zur Übersicht über Abfolgen von Interaktionen, ähnlich Aktivitätsdiagramm) Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 11
Beispiel Aktivitätsdiagramm (Spezifikation eines Anwendungfalls) Informale Anforderungsbeschreibung: Wenn im Online-Shop eine Bestellung eintrifft, wird jede Bestellposition überprüft, um zu sehen, ob der Lagerbestand reicht. Falls das so ist, werden die Waren der Bestellung zugeordnet. Wenn durch diese Zuordnung der minimale Lagerbestand unterschritten wird, dann wird eine Nachbestellung veranlaßt. Währenddessen wird die Zahlung überprüft. Wenn die Zahlung OK ist und genügend Waren vorhanden sind, wird geliefert. Wenn für die Lieferung auf nachzubestellende Waren gewartet werden muss, bleibt die Bestellung offen. Wenn die Zahlung nicht OK ist, wird die Bestellung abgewiesen. Identifikation der Akteure: – Besteller = Kunde Bestelleingang Identifikation der Anwendungsfälle: – Bestellung – Zahlung – Lieferung Version Online-Shop Zahlung Kunde Software Engineering I VE 11: Dynamische Basiskonzepte 2 Lieferung Dozenten: Markus Rentschler Andreas Stuckert 12
Beispiel Aktivitätsdiagramm (Beispiel zur Spezifikation des Anwendungsfalles „Bestelleingang“) Bestellung Erhalte Lieferung Bestellung erhalten Identifiziere ausstehende, bestellte Artikel * Bestellung abweisen Prüfe Zahlung [OK] Für jede Bestellposition Prüfe Verfügbarkeit einer Bestellposition [verfügbar] Ordere ankommende Waren den Bestellungen zu Zuordnung zur Bestellung Nachbestellungsartikel [nachzubest. ] [Waren für alle Bestellpositionen verfügbar und Zahlung OK] Für jeden identifizierten, * bestellten Artikel Alle offenen Bestellungen berücksichtigt Rest ins Lager Veranlasse Lieferung Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 13
Beispiel Aktivitätsdiagramm (Beispiel zur vertikalen Abgrenzung) Finanzen Bestellungsverarbeitung Erhalte Lieferung Bestellung erhalten Prüfe Zahlung [nicht OK] [Waren für alle Bestellpositionen verfügbar und Zahlung OK] Version Bestellung abweisen Identifiziere ausstehende, bestellte Artikel Für jede Bestellposition Für jeden identifizierten, * * bestellten Artikel Prüfe Verfügbarkeit Ordere ankommende Waren einer Bestellposition den Bestellungen zu [verfügbar] Lager. Manager Warenwirtschaft Zuordnung zur Bestellung Nachbestellungsartikel [nachzubest. ] Alle offenen Bestellungen berücksichtigt Rest ins Lager Veranlasse Lieferung Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 14
Beispiel Aktivitätsdiagramm (Strukturierung) Aktivitäten können verfeinert werden (passende Abstraktionsebenen für unterschiedliche Zwecke) Prüfe Zahlung Beispiel: Verfeinerung der Aktivität „prüfe Zahlung“ Bestimme Zahlungstyp Nicht OK [nicht OK] Prüfe Kreditkarte Scheck Rechnung Normaler Kunde? Prüfe Scheck [nein] [Ja] Prüfe Zahlungsgeschichte [OK] Bestellwert > 100 Euro? [OK] Vorkasse anfordern Kreditwürdigkeit prüfen [OK] [nicht erhalten] Nicht OK Eröffne Kundenkonto OK Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 15
Systemanalyse und -design mit der UML Design Pattern: Wie kann man die UML anwenden ? http: //www. microconsult. de/includes/downloads/kurzvortraege/ESE 2010_von-der-idee-zum-modell. zip http: //www. microconsult. de/includes/downloads/kurzvortraege/UML-Robotersteuerung. pdf Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 16
Übung UML Design Pattern Praxisprojekt • Erstellen Sie Ihre Systemmodellierung mit einem Design Pattern in UML • Benutzen Sie dazu ein CASE-Tool – – – Starten Sie mit einem Use-Case-Diagramm Fügen Sie jedem Use-Case ein Aktivitätsdiagramm hinzu Extrahieren Sie die Objekte des Systems Modellieren Sie die Objektinteraktionen mit Sequenzdiagrammen Leiten Sie aus den Objekten Klassen ab Modellieren Sie die Systemarchitektur mit einem Component/Deployment Diagram – Fügen Sie jeder Komponente/Klasse ein State Diagramm hinzu – etc. Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 17
Übung Sequenzdiagramm Ziel: Sequenzdiagramm mit Erweiterungen erstellen Gegeben ist das folgende Java-Programm. Die Operation do. More() wird von einem Objekt mit der Bezeichnung ein. Objekt aktiviert wird. class Class. B { public void do. Something {. . . } public void work (int w) {. . . } } class Class. C { public void do. Something. Else() {. . . } } class Class. A { private Class. B b; private Class. C c; public void do. Less(int param) { b. work(param); } public int calculate. P(int param) { int p = 2 * param; return p; } public void do. More(int data) { b = new Class. B(); c = new Class. C(); for (int j = 1; j <= 5; j++) do. Less (j); int p = ca. Iculate. P (data); if (p <1){ b. do. Something(); b. work(p); } else c. do. Something. Else(); } } Version Software Engineering I VE 11: Dynamische Basiskonzepte 2 Dozenten: Markus Rentschler Andreas Stuckert 18
- Slides: 18