Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Software Engineering
5) SW Design
Prof. Dr. Anja MetznerHochschule Augsburg, Fakultät für Informatik
Kontakt: [email protected]
Studiengang WiBac 4 (Stand: 15.03.2014)
© Prof. Dr. A. Metzner, Hochschule Augsburg, 2014
Prof. Dr. A. Metzner2
Gliederung
SW Design
1. Überblick SW Design
2. Notationen
3. Architekturen
4. Strategien und Methoden
5. SW Wiederverwendung
Prof. Dr. A. Metzner3
1. Überblick SW Design
� SW Design ist � „der Prozess die SW Architektur, Komponenten,
Schnittstellen und andere Merkmale eines Systems oder einer Komponente zu definieren“
� „das Ergebnis dieses Prozesses“
[IEEE Std 610.12-1990 (R2002), Standard Glossary of Software Engineering Terminology, 1990]
Prof. Dr. A. Metzner4
1. Überblick SW Design
� Prozesssicht:� SE Lebenzyklus Aktivität in der die Anforderungen analisiert
werden um die interne Struktur der SW zu produzieren
� Ergebnissicht:� Beschreibung der SW Architektur: Wie SW zerlegt wird, in
Komponenten organisiert wird und wie die Schnittstellen zwischen den Komponenten sind
Prof. Dr. A. Metzner5
1. Überblick SW Design � Aufgaben
� Wichtige Phase bei der SW Herstellung� Definition der Vorgehensweise
� Modellbildung� SW Ingenieure produzieren eine Vielzahl an
unterschiedlichen Modellen� Die Modelle bilden einen Plan wie die Lösung implementiert
werden kann� Die Modelle werden analysiert und evaluiert ob sie die
Anforderungen (erstellt in der Definitionsphase) erfüllen
� Alternative Lösungen und deren Zielkonflikte werden diskutiert
� Die resultierende Modellierung dient als Startpunkt für die Implementierung und als Vorlage für die Testphase
Prof. Dr. A. Metzner6
1. Überblick SW Design � Aktivitäten
1. Erstellung der SW Architektur (Makroarchitektur)
� Top-Level Design: Beschreibung der Software auf hohem Abstraktionsniveau und deren Organisation
� Identifikation der SW Komponenten
2. Erstellung des Detailkonzepts (Mikroarchitektur)
� Detaillierte Beschreibung jeder Einzelkomponente um die Implementierung zu ermöglichen
Prof. Dr. A. Metzner7
1. Überblick SW Design
� Ergebnis� Pflichtenheft u. evtl. erweitertes Entwurfsdokument
� Inhalt: Vielzahl von Modellen für jede Komponente der SW
� Frage die beantwortet wird: WIE soll die SW entwickelt werden
� Beteiligte� Systemanalytiker
� SW-Entwickler
Prof. Dr. A. Metzner8
2. Notationen � Notationen dienen dazu SW Design Artefacte zu
repräsentieren� Sie helfen dabei eine einheitliche „Sprache“ zu
bilden beim SW Design� Häufig durch graphische Darstellungen
repräsentiert, aber auch andere Darstellungsformen sind manchmal sinnvoll
� Einsatz� Manche Notationen eigenen sich mehr zur Darstellung der
Makroarchitektur, andere eher zur Darstellung der Mikroarchitektur
� Manche Notationen können in der SW Definitions- und in der SW Design Phasen eingesetzt werden
Prof. Dr. A. Metzner10
2. Notationen
� Überblick UML� Diagrammarten
(aktuelle Version: V2.0 -> V2.1)
UML-Diagramme
Strukturdiagramme
Klassen-diagramme
Objekt-diagramme
Komponenten-diagramme
Kompositionsstruktur-diagramme
Paket-diagramme
Verteilungs-diagramme
Use Case-diagramme
Aktivitäts-diagramme
Zustands-diagramme
Verhaltensdiagramme
Interaktionsdiagramme
Kommunikations-diagramme
Sequenz-diagramme
Zeit-diagramme
Interaktions-übersicht
Prof. Dr. A. Metzner12
2. Notationen
� Strukturdiagramme� Klassendiagramme
� Verwendung um eine Menge von Klassen (und Objekte) darzustellen und deren Beziehungen zueinander
Fachliches Konzept
TechnischesKonzept
Prof. Dr. A. Metzner13
2. Notationen
� Strukturdiagramme � Klassendiagramme
� Einige Notationselemente
� Klasse KlassennameAttributeMethoden(parameter)
Sichtbarkeiten:+ public- private# protected
Kreis
-radius {radius>0}-mittelpunkt: Point = (10,10)
+anzeigen()+entfernen()+setPosition (pos:Point)+setRadius (int neuerRadius)
Klassenname
Attributname
Attributtyp
Operationen
Zusicherung
Initialwert
Parameter
Prof. Dr. A. Metzner15
2. Notationen
� Strukturdiagramme� Klassendiagramme
� Die wichtigsten Beziehungselemente
Prof. Dr. A. Metzner
2. Notationen
20
…und zunächst ein Ausflug in die Vergangenheit:
Struktogramme als Lernobjekte wie gute SW-Architektur modelliert werden kann…
Prof. Dr. A. Metzner21
2. Notationen
� Verhaltensdiagramme (dynamische Views)� Struktogramme
� Nasi-Shneidermann Diagramm
� DIN 66261
(1972/73 I. Nassi, B. Shneidermann)
zeitl. Ablauf
Eingabe Formulardaten
Formulardaten ok?
Fehlermeldung 1 ausgeben Partner mit Formulardaten suchen
Partner vorhanden?
FehlerMldg 2 ausgeben
Partnerliste ausgeben
nein ja
nein ja
Prof. Dr. A. Metzner22
2. Notationen
� Verhaltensdiagramme (dynamische Views)� Struktogramme
� Notationselemente
Abweisende Schleife
Auswahl
Fallunterscheidung
Mehrfachauswahl
Annehmende Schleife
Prof. Dr. A. Metzner
2. Notationen
23
…und wie wird heute Software modelliert?:
UML-Aktivitätsdiagramme
Prof. Dr. A. Metzner24
2. Notationen
� Verhaltensdiagramme (dynamische Views)� Aktivitätsdiagramm
� Verwendung zur Darstellung des Kontrollflusses einer Aktivität
� Es zeigt das schrittweise Abarbeiten eines Vorgangs
zeitl. Ablauf
[ja]
Prof. Dr. A. Metzner26
2. Notationen
� Verhaltensdiagramme � Aktivitätsdiagramm
� Einige Notations-elemente
(www.oose.de/uml)
Prof. Dr. A. Metzner38
2. Notationen
� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm
� Verwendung zur Darstellung von Interaktionen zwischen Objekten und Objektgruppen
� Betonung auf der zeitlichen Reihenfolge von Messages die zwischen den Objekten versendet werden
Prof. Dr. A. Metzner39
2. Notationen
� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm
� Notationselemente
(www.oose.de/uml)
Prof. Dr. A. Metzner43
2. Notationen
� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm
� Nachrichten
Prof. Dr. A. Metzner44
3. Architekturen
� Was ist Architektur?
(DataWarehouse Referenzarchitektur, Wikipedia, 2009)
Prof. Dr. A. Metzner46
SAP-Interaktions-Modell
MaierName
Bahnhofstrasse 3Strasse
AugsburgOrt
SuchenAnwender
allg
Benutzer-Schnittstelle Input
(Daten + Befehle)Output (Daten)
Präsentationslogik
Datenhaltungslogik
Anwendungslogik
Tabelle Yadresse...
...Maier | Bahnhofstrasse 3 | Augsburg
Code-Deklaration
Ereignis i
Code-Aufruf zu Ereignis i
Ablauflogik-Schnittstelle
Datenbank-Schnittstelle
Ablaufsteuerung
Datenbeschreibungs-Definition
Name | CHAR | 20Strasse | CHAR | 20Ort | CHAR | 20Telnr | INT4 | 15
Prioritäten
Anw
ende
r
Ent
wic
kler
1
2
3
2
1
3
1
1
ppt: Bild-Kap03-02.wmf
Ebene
1
2
3
4
Prof. Dr. A. Metzner48
3. Architekturen
� Was ist Architektur?
Modell für „Größter gemeinsamer Teiler“
Prof. Dr. A. Metzner49
3. Architekturen
(M.Foegen, J.Battenfeld, Rolle der Architektur, Informatik-Spektrum, 2001)
Prof. Dr. A. Metzner50
3. Architekturen
� Eine Softwarearchitektur ist eine Beschreibung der Subsysteme und Komponenten eines SW Systems und der Beziehungen dazwischen
� Beinhaltet� Makroarchitektur: High-Level Architektur
� z.B. Web Systeme basieren auf verteilten Architekturen
� Mikroarchitektur: Softwarestruktur� z.B. Programmstruktur, Low-Level Modelle und Design
Pattern
Prof. Dr. A. Metzner51
3. Architekturen
Beispiele:
SOA –Service orientierte Architekturen
Makroarch.:Client-Server
Mikroarch.:Design Pattern z.B. Singelton
Prof. Dr. A. Metzner53
3. Architekturen
� Unterschied Subsysteme und Komponenten?
(M.Foegen, J.Battenfeld, Rolle der Architektur, Informatik-Spektrum, 2001)
Prof. Dr. A. Metzner54
3. Architekturen
� Kommunikation zwischen Komponenten
(M.Foegen, J.Battenfeld, Rolle der Architektur, Informatik-Spektrum, 2001)
Prof. Dr. A. Metzner55
3. Architekturen
� Makroarchitektur
� Generelle Architekturen� Schichten
� Beispiel: ISO-OSI 7-Schichtenmodell
� Pipes: FIFO Konstrukte� Beispiel: Message Queues, allgemeine Warteschlangen
� Filter� Beispiel: Spamfilter
� Blackboards� Architekturmodell: Expertengruppe, Zusammenarbeit,
Lösungen in hierarchisch organisierter Form ablegen
Prof. Dr. A. Metzner56
3. Architekturen
� Makroarchitektur
� verteilte Architekturen� Three-tier Architekturen
� Client-Server Architekturen
Benutzeroberfläche
Applikationsserver
Datenbankserver
Operation anfordern
Daten anfordern
Auf Daten warten
Daten zurückgeben
Ergebnis zurückgeben
Auf Ergebnis warten
t
Client Server
Applikations Server
Datenbank Server
Prof. Dr. A. Metzner57
3. Architekturen
� Makroarchitektur
� verteilte Architekturen� Broker Architektur:
� Beispiel: Request Broker (Vermittler-Komponenten)
Client Anwendung
Client-sideProxy
Server Anwendung
Server-sideProxy
Request Broker
Logische Kommunikation
physische Kommunikation
Prof. Dr. A. Metzner58
3. Architekturen
� Makroarchitektur
� Interaktive Systeme� Modell-View-Controller
� Presentation-Abstraction-Control: Präsentationsschicht, Businessschicht, Datenpersistenzschicht, Datenschicht
Business-LogikPräsentations-Logik
Prof. Dr. A. Metzner59
3. Architekturen
� Makroarchitektur
� Adaptive Systeme (deu: anpassungsfähig)� Mikrokernel:
� Reflektion: Zur Laufzeit (per Programm) nachsehen welche Funktionen ein Assembly anbietet
Client Prozess
Server Prozess
MikrokernelSpeicher
Interprozesskommunikation
Prof. Dr. A. Metzner60
3. Architekturen
� Makroarchitektur
� Andere Architekturen� Batch Prozesse
� Interpreter
� Prozess Kontrolle
� Regel-basierte Systeme
� ...
Prof. Dr. A. Metzner61
3. Architekturen� Mikroarchitektur
� Design Pattern
� Was ist das?� Entwurfsmuster
� Warum?� „Each Pattern describes a problem which occurs over
and over again in our environment, and then describesthe core of solution to that problem, in such a way thatyou can use this solution a million times over, withoutdoing it the same way twice“
� „Best Practice“ Vorschläge für SW Design Probleme
(C.Alexander, GoF)
Prof. Dr. A. Metzner62
3. Architekturen� Die fünf wichtigsten Bestandteile eines Design Patterns
� Name� Name des Patterns eindeutig und beschreibend
� Somit wird ein höherer Abstraktionslevel erreicht
� Problem� Beschreibung des zu lösenden Problems und seines Kontexts
� Manchmal Aufzählung möglicher Designfehler
� Lösung� Elemente die das Design ausmachen und deren Beziehungen
� Verantwortlichkeiten und Kollaboration
� Konsequenzen� Zeit- und Platzabstimmungen
� Evtl. sprachabhängige und implementationsabhängige Bedenken
Prof. Dr. A. Metzner64
3. Architekturen� Mikroarchitektur
� Design Pattern� Erzeugung: Singelton, Factory, Prototype, Builder
� Beispiel: Singelton (deu: Das Einzelstück)
� erzeugt und verwaltet das einzige Objekt der Klasse� bietet globalen Zugriff auf dieses Objekt über eine
Instanzoperation (getInstance(); )� die Instanzoperation ist eine Klassenmethode, das heißt
statisch gefunden� das private Attribut „Instanz“ (instance) ist ein
Klassenattribut, das heißt ein statisches Attribut
Prof. Dr. A. Metzner65
3. Architekturen
� Mikroarchitektur
� Design Pattern� Struktur: Facade, Adapter, Bridge, Composite,
Decorator, Flyweight, Proxy
� Beispiel: Fassade
� Bietet eine vereinfachte Schnittstelle zu einer Menge von Schnittstellen in einem Subsystem
� Vereinfachung des Gebrauchs des Subsystems
� Die komplizierten Schnittstellen des Subsystems werden „gewrapped“
Facade
+Do_it()
Complx_Facade
Subsystem
Client
Prof. Dr. A. Metzner66
3. Architekturen
� Mikroarchitektur
� Design Pattern� Verhalten: Command, Interpreter, Iterator, Mediator,
Memento, Observer, State, Strategy, Template, Visitor
� Beispiel: Observer� Weitergabe von Änderungen an einem Objekt an von
diesem Objekt abhängige Strukturen
Prof. Dr. A. Metzner67
4. Strategien und Methoden � Funktions-orientiertes Design
� Klassische Methode
� Dekomposition� Identifizieren der wichtigsten Funktionen zuerst
� Top-Down Vorgehen� Bearbeiten und Verfeinern
� Verwendung von Diagrammtypen wie� Structured Analysis� Strukturcharts
main
f1() f2()
f3() f4()
Prof. Dr. A. Metzner68
4. Strategien und Methoden � Objekt-orientiertes Design
� Simpler Anfang Objekte zu identifizieren� Noun = object� Verb = method� Adjective = attribute
� Vorgehensmöglichkeiten� Komponenten-basiertes Vorgehen
� Vererbung und Polymorphismus identifizieren
� Daten-orientiertes Vorgehen� Datenabstraktion
� Zuständigkeits-orientiertes Vorgehen� Responsibilities identifizieren
� Meta-Informationen sammeln� gewinnen und anwenden durch z.B. Reflektion
� Verwendung von allen UML Diagrammtypen� Wiederverwendung steht im Vordergrund
Prof. Dr. A. Metzner69
4. Strategien und Methoden � Datenstruktur-orientiertes Design
� Beispiel: Entity-RelationshipDiagramme, HIPO Diagramm
� SW Ingenieur beginnt zuerst Inputs und Outputs zu beschreiben
� Kontrollstruktur wird aufgrund der entstandenen Datenstrukturen entworfen
� Häufig werden Heuristiken eingesetzt � Beispiel: wenn ein Versatz zwischen Input- und Outputdaten
vorkommt
(Wikipedia, ERM in modifizierter Chen-Notation)
Prof. Dr. A. Metzner70
4. Strategien und Methoden
� Komponenten-orientiertes Design
� Komponente: unabhängige Einheit
� Schnittstellen definieren
� Abhängigkeiten abschätzen� Unabhängigkeit der Komponenten fördern wenn möglich
� Anbieten, entwickeln und integrieren von Komponenten
� Wiederverwendung stärken wo möglich
Prof. Dr. A. Metzner71
4. Strategien und Methoden
� Andere Methoden
� Formale Methoden
� Transformationsmethoden
� Transaktionsmethoden
� ...
Prof. Dr. A. Metzner72
5. SW Wiederverwendung
� Englischer Begriff: Reuse
� Produktlinien� Identifizieren von gemeinsamen Eigenschaften von
Teilnehmern und Gründung einer Produktfamilie
Prof. Dr. A. Metzner73
5. SW Wiederverwendung
� Englischer Begriff: Reuse
� Frameworks: � Ein teilweise fertiges SW System, dass vom SW Entwickler
erweitert werden kann � oft OO � oft werden spezielle Plug-ins instanziiert
� Beispiel: Microsoft .NET Framework� Common Language Infrastructure (CLI)� Common Language Runtime (CLR) ist die Virtual Machine von
.NET � Client-PC benötigt zur Ausführung das installierte
.NET Framework� Veröffentlichter Code unter Microsoft Reference License;
Es ist jedoch nicht erlaubt, den Quellcode zu modifizieren