Softwaretechnik für den Entwurf - Institute for Software Systems

Werbung
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
Herunterladen