5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design...

74
Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik Kontakt: [email protected] Studiengang WiBac 4 (Stand: 15.03.2014) © Prof. Dr. A. Metzner, Hochschule Augsburg, 2014

Transcript of 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design...

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. Metzner9

2. Notationen

� Notationen - Historie

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. Metzner

2. Notationen

1. Strukturdiagramme

2. Verhaltensdiagramme

11

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. Metzner14

2. Notationen

� Klassendiagrammelemente am Beispiel

Prof. Dr. A. Metzner15

2. Notationen

� Strukturdiagramme� Klassendiagramme

� Die wichtigsten Beziehungselemente

Prof. Dr. A. Metzner16

2. Notaionen

� Strukturdiagramme � Klassendiagramme

� Begriffsmodell

Prof. Dr. A. Metzner17

2. Notationen

� Abstrakte Klasse

Prof. Dr. A. Metzner18

2. Notationen

� Aggregation, Komposition

(Skript Stork)

Prof. Dr. A. Metzner

2. Notationen

1. Strukturdiagramme

2. Verhaltensdiagramme

19

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. Metzner25

2. Notationen

� Verhaltensdiagramme� Aktivitätsdiagramm

� wohlgeformt

Prof. Dr. A. Metzner26

2. Notationen

� Verhaltensdiagramme � Aktivitätsdiagramm

� Einige Notations-elemente

(www.oose.de/uml)

Prof. Dr. A. Metzner27

2. Notationen

� Kontrollknotenüberblick - Aktivitätsdiagramm

(Skript Stork)

Prof. Dr. A. Metzner28

2. Notationen

� Ein-/Ausgabeparameter

(Skript Stork)

Prof. Dr. A. Metzner29

2. Notationen

� Exception-Handling

Prof. Dr. A. Metzner30

2. Notationen

� Partitionen(Swimlines)

Prof. Dr. A. Metzner31

2. Notationen

� Partitionen

Prof. Dr. A. Metzner32

2. Notationen

� Parallelisierung

Prof. Dr. A. Metzner33

2. Notationen

� Das Prinzip der Token

Prof. Dr. A. Metzner34

2. Notationen

� Das Prinzip der Token

Prof. Dr. A. Metzner35

2. Notationen

� Das Prinzip der Token

Prof. Dr. A. Metzner36

2. Notationen

� Das Prinzip der Token

Prof. Dr. A. Metzner37

2. Notationen

� Verbindung mit Use Case

Türen schließen

Zugführer

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. Metzner40

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

Prof. Dr. A. Metzner41

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

Prof. Dr. A. Metzner42

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

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. Metzner45

3. Architekturen

� Was ist Architektur?

(T. Gurzki, Portal, 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. Metzner47

3. Architekturen

� Was ist Architektur?

(.NET, Wikipedia, 2009)

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. Metzner52

3. Architekturen

� Subsysteme und Komponenten

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. Metzner63

3. Architekturen

� Design-Pattern: Kategorie-Übersicht� Gang of Four

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

Prof. Dr. A. Metzner74

Lernziel� 1. Welche Diagrammtypen gibt es grundsätzlich um SW

Design auszudrücken?

� 2. Was ist der Unterschied zwischen Makroarchitektur und Mikroarchitektur?

� 3. Nennen Sie Beispiele wann Sie Pipes oder Filter in einer Architektur vorschlagen würden