Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Projektseminar RIKA Softwaretechnik für den Entwurf Wintersemester 1999/2000 18.11.1999 Holm Wegner, Florian Matthes Entwurfsphase: Einordnung Planungsphase Lastenheft Definitionsphase Pflichtenheft • Pflichtenheft • Produktmodell, z.B. OOA • Konzept Benutzungsoberfläche • Benutzerhandbuch + Hilfekonzept Entwurfsphase Produktentwurf Implementierungsphase Produkt, Komponenten Entwurfsprozeß • Softwarearchitektur • Spezifikation der Systemkomponenten • Struktur • Verhalten Abnahme und Einführung Installiertes Produkt Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 2 1 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Entwurf Analyse Entwurf WAS? konzeptuelles Klassendiagramm, System-Interaktionsdiagramme WIE? Entwurfs-Klassendiagramme Einsatzdiagramme ... Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 3 Aufgabe des Entwurfs ❏ Aus den gegebenen Anforderungen an ein Software-Produkt eine softwaretechnische Lösung im Sinne einer Softwarearchitektur entwickeln. ❏ Auch „Programmieren im Großen“ genannt. ❏ Ausgangspunkt: • Ergebnisse der Definitionsphase (Systemanalyse) ❏ Ergebnis: • Softwarearchitektur (Systemarchitektur) • Spezifikation der Systemkomponenten Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 4 2 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Entwurfsentscheidungen Grundsatzentscheidungen bzgl. ❏ Betriebssystem ❏ Hardwareplattform(en) ❏ Programmiersprache ❏ Datenhaltung (Persistenz) ❏ Verteilung ❏ Benutzungsoberfläche (GUI) ❏ Hilfesystem ➨ Architekturentwurf Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 5 Beschreibungsmittel in UML In UML vorhandene Beschreibungsmittel ❏ für Architekturentwurf: • logische Strukturen (Pakete, Paketdiagramme, Subsysteme, Schnittstellen) • physische Strukturen (Komponenten, Komponentendiagramme, Knoten, Einsatzdiagramme) ❏ für den Strukturentwurf: • Klassendiagramme, Klassen ❏ für den Verhaltensentwurf: • Interaktionsdiagramme, Zustandsdiagramme, Zustandsautomaten Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 6 3 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Aufgabe des Architekturentwurfs Ein Architekturmodell (Strukturmodell) ist ein Model eines Datenverarbeitungssystems, das die statische Struktur der Komponenten eines Systems beschreibt. Beispiele: ❏ Netzwerktopologie (Hardware) ❏ Blockschaltbild (Hardware) ❏ Funktionsbaum (Software) ❏ Einsatzdiagramm, Paketdiagramm (Software) ❏ Moduldiagramm (Hard/Software) ❏ Organigramm in einem Unternehmensmodell Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 7 Verteilungsalternativen für Client/Server-Konzept Benutzungsoberfläche Client Benutzungsoberfläche Benutzungsoberfläche Anwendung Teil 1 Datenhaltung eigentliche Anwendung Anwendung Teil 2 Datenhaltung Datenhaltung Server eigentliche Anwendung Entfernte Datenhaltung Entfernte Benutzungsoberfläche Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf Kooperative Verarbeitung 8 4 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Paketdiagramm Ein Paketdiagramm zeigt den Zusammenhang (Abhängigkeiten) zwischen verschiedenen Paketen des Systems. Paket Abhängigkeit Paket A Paket C Paket B Klient Lieferant Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 9 Pakete (1) Ein Paket ist ein genereller Mechanismus zum Gruppieren von Modell-Elementen (z.B. Diagrammen, Klassen, ...). Pakete können (rekursiv) in Pakete geschachtelt sein. Jedes Element ist in genau einem Paket enthalten (➜ Baum). Ein Paket definiert einen Namensraum für die in ihm enthaltenen Elemente. Das Gesamtsystem kann als ein Paket betrachtet werden. Spezielle Arten von Paketen sind: System, Subsystem. Kennzeichnung durch das Stereotyp «subsystem». Stereotyp Name (alternativ) «subsystem» «subsystem» Vertrieb Auftragsannahme Paketname Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 10 5 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Pakete (2) Möglichkeiten zur Darstellung des Inhalts von Paketen sind: ❏ Aggregation Unterpaket ❏ Schachtelung «subsystem» ❏ Namenslisten Vertrieb Auftragsystem Klasse Kunde «subsystem» Auftragsannahme Klassen «subsystem» Vertrieb + Auftrag + Kunde - Position Sichtbarkeiten Auftrag Kunde Position Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 11 Beispiel: Pakete in Java Import von Paketen durch Benutzer (Klienten): import mypackage.*; Client import mypackage.mysubpackage.Class5; import java.util.Vector; class Client {...} java.util Vector Deklaration von Paketen in Java: package mypackage; mypackage public class Class1 { ... } Class1 package mypackage.mysubpackage; mysubpackage Class5 public class Class5 { ... } Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 12 6 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Subsysteme Problem: Wie breche ich ein großes System in kleinere Systeme herunter? funktionale Dekomposition OO Pakete Abbildung des Gesamtsystems auf Funktionen und Unterfunktionen, beginnend beim Anwendungsfall • Zusammenfassung von Klassen zu Subsystemen • Schichtung von Subsystemen • Abstraktion: Konzentration auf das Wesentliche, Verdrängen des Unwesentlichen. • Lokalität: Physische Zusammenfassung von Zusammengehörigem (Daten und Algorithmen). • Verdecken: Beschränkung der Sichtbarkeit von Details auf diejenigen Teile eines Systems, die benötigt werden. Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 13 Nutzen von Paketen und Paketdiagrammen Problem: Typischerweise wächst die Komplexität eines Systems ➨✝100(0)e von Klassen Pakete erlauben: ❏ Kontrolle der Komplexität: • Ein Klassendiagramm sollte auf eine A4 Seite passen. • Ein Entwickler kann etwa 7 (+/– 2) Klassen auf einmal erfassen. ❏ Einschränkung der Namensräume ❏ Kontrolle der Propagierung von Änderungen ❏ Bau von geschachtelten Klassenhierarchien ❏ Bau von geschichteten Architekturen ❏ Sichtbarmachen von Abhängigkeiten auf höheren Abstraktionsniveau ❏ Aufteilung der Entwicklungsarbeit im Team ❏ Spezifikation von Schnittstellen zwischen Gruppen von Klassen (Subsystemen) Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 14 7 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Schnittstellen Eine Schnittstelle ist eine benannte Menge von Operationen, die das nach außen sichtbare Verhalten z.B. einer Klasse, Komponente oder eines Pakets definiert. Schnittstellen haben keine Implementierung, keine Attribute und keine Beziehungen. Schnittstellen können in Generalisierungsbeziehungen zueinander stehen. Klasse oder Komponente, die die Schnittstelle erfüllt Stereotyp «interface» «interface» Türöffner Benutzt-Beziehung Türöffner öffne() schließe() status() Klient alternative Form ohne Operationen Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 15 Einsatzdiagramm Ein Einsatzdiagramm zeigt die Konfiguration von Knoten zur Laufzeit sowie die Komponenten (Instanzen) und Objekte, die sich darauf befinden. Komponenten, die nicht als Laufzeitobjekt (Instanz) existieren, sollen nur im Komponentendiagramm erscheinen. server :Host «database» meetingDB Objekt reservation :Scheduler Knoten «direct channel» Komponente client :PC :Planer Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 16 8 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Komponentendiagramm Ein Komponentendiagramm beschreibt die Organisation und die Abhängigkeiten zwischen Komponenten eines Systems. Reservierung Servlet Schnittstellenbenutzung update Applet Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 17 Knoten Ein Knoten (node) ist physikalisches Objekt, das zur Laufzeit existiert und Bearbeitungsressourcen repräsentiert, die Speicher und Berechnungskapazität haben. Auf einem Knoten können Objekte und Komponenten angesiedelt sein. Knoten können Rechner, aber auch Menschen oder (mechanische) Geräte oder Maschinen sein´(wichtig für Geschäftsmodelle). workstation mainServer k:KundenDB «become» hw :Kunde hw :Kunde migriertes Objekt Knoten Komponente auf Knoten Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf Objekt auf Knoten 18 9 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Methodisches Vorgehen 1) Identifiziere und benenne Subsysteme. 2) Lege Sichtbarkeiten für Klassen innerhalb jedes Subsystems fest. 3) Definiere und überprüfe Abhängigkeiten zwischen Paketen und den Klassen- und Interaktionsdiagrammen. 4) Falls erforderlich, definiere Schnittstellen, die in separaten, gemeinsam genutzten Paketen gespeichert werden. Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 19 Klassen: Drei Sichten in der OO-Modellierung ❏ Konzeptuelle Sicht (frühe Analyse) • Klassen repräsentieren die fachlichen Konzepte • sprach- und systemunabhängig • wenige Klassen, paßt auf wenige Diagramme ❏ Entwurfssicht (späte Analyse, früher Entwurf) • Klassen repräsentieren SW-Schnittstellen • beschreibt die Lösung schwieriger Probleme der Implementierung (Risikominimierung) • Gliederung des Systems in Schichten, Subsysteme und Pakete ❏ Implementierungssicht (Entwurf und Programmierung) • zeigt die tatsächlich in der Programmiersprache verwendeten Klassen • wird direkt auf die Implementierung abgebildet • Beispiel: Abbildung von Assoziationen Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 20 10 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Sichten: Tips ❏ Sichten sind kein Bestandteil von UML, aber des Unified Process. ! ❏ Sichten sind bei der Modellierung und Modellrevision wichtig. ❏ Jedes Diagramme muß eindeutig genau einer Sicht zugeordnet sein. ❏ Beim Lesen von Diagrammen muß man die Sicht des Zeichnenden kennen. ❏ Die Implementierungssicht wird häufig verwendet, aber die anderen sind mindestens genauso wichtig! Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 21 Attribute Attributname Klassenname Attributyp Initialwert Sichtbarkeit Test # isVisible :Boolean = false + points [2..*] : Point {addOnly} – owner : Person {db-constraint=unique} + count : Int = 0 Attribute Multiplizität Klassenattribut Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf Eigenschaft 22 11 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Operationen Name der Operation Argumentliste Rückgabetyp Stereotyp Test «query» + suche(in name :String) :Person gesamtgehalt() :Float {isQuery} Klassenoperation Operationen Eigenschaft ➨ Verträge! Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 23 Vererbung Mitarbeiter konkrete Operation einstellen() suchen() abstrakte Klasse abstrakte Operation konkrete Klasse konkrete (überschriebene) Operation Freier Mitarbeiter Fester Mitarbeiter einstellen() abstrakte Klasse Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf alternative Darstellung Mitarbeiter {abstract} einstellen() {abstract} suchen() 24 12 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Assoziationen Gruppe Navigation Benutzer 1 Sichtbarkeit * Besitzer + Mitglied * Benutzer * Paßwort 1 - Schlüssel * Paßwort Firma Person Job Einstellungsdatum Gehalt Assoziationsklasse Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 25 Aggregation & Komposition Universität 1 1..* Komposition Aggregat Teil Arbeitsbereich 1..* Aggregation 1..* Lehrkraft Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 26 13 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes OO-Entwurf: Vorgehen und Konzepte Relevante Konzepte Tätigkeiten und Ziele 1) Beim Entwurf von Klassen werden konzeptuelle Klassen präzisiert und neue identifiziert. ❏ Attribute ❏ Operationen ❏ Multiplizität • Verträge 2) Entwurf von Beziehungen zwischen Klassen ❏ abstrakte Klassen ❏ Abhängigkeiten ❏ Entwurf von Schnittstellen ❏ Realisierung • Abhängigkeiten minimieren, „schmale“ Schnittstellen ❏ Parametrisierung, Instantiierung • Wiederverwendung von Code ❏ Verfeinern der konzeptuellen semantischen Beziehungen und Identifikation neuer Beziehungen. ❏ Assoziationen ❏ Aggregation ❏ Generalisierung Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 27 Zustandsautomaten Ereignis mit Parameter Bedingung (guard) Zustandsübergang login(user) [AnzahlUser < max] / begrüße(user) ausschalten Login Aktiv Passiv Selbsttransition Aktion login(user) [AnzahlUser = max] / lehneAb(user) Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf Zustand 28 14 Projektseminar Realisierung eines I+K Anwendungssystems WS 1999/2000 © Holm Wegner, Florian Matthes Status Analyse 1 2 3 4 Entwurf 5 6 7 8 Implementierung 9 10 11 12 13 Heute Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf 29 Aufgabe: Entwurf Tätigkeiten ❏ Technologie und ihre Konsequenzen verstehen ❏ Architekturentwurf unter Berücksichtigung der Kundenanforderungen (Effizienz, Sicherheit, ...) ❏ Definition von Arbeitspaketen für die Implementierung Ergebnisse bis 2.12.1999: ❏ Systemarchitektur ❏ Entwurfs-Klassendiagramme ❏ Protokolle für verteilte Systeme (Szenarien, Zustandsdiagramme, Interaktionsdiagramme) ❏ Projektplan für Rest des Semesters (Aufwandsschätzung!) Realisierung eines I+K Anwendungssystems: Softwaretechnik für den Entwurf Softwaretechnik für den Entwurf 30 15