5) SW Designgori/sue/5_SEuUE_WiBac4_Design_prof... · 2016-06-19 · Prof. Dr. A. Metzner 3 1....

53
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 Designgori/sue/5_SEuUE_WiBac4_Design_prof... · 2016-06-19 · Prof. Dr. A. Metzner 3 1....

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

Prof. Dr. A. Metzner 2

Gliederung

SW Design

1. Überblick SW Design

2. Notationen

3. Architekturen

4. Strategien und Methoden

5. SW Wiederverwendung

Prof. Dr. A. Metzner 3

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

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

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

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

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

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

2. Notationen

Notationen - Historie

Prof. Dr. A. Metzner 10

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

2. Notationen

Strukturdiagramme

Klassendiagramme

Verwendung um eine Menge von Klassen (und Objekte) darzustellen und deren Beziehungen zueinander

Fachliches Konzept

Technisches Konzept

Prof. Dr. A. Metzner 13

2. Notationen

Aggregation, Komposition

(Skript Stork)

Prof. Dr. A. Metzner

2. Notationen

1. Strukturdiagramme

2. Verhaltensdiagramme

14

Prof. Dr. A. Metzner

2. Notationen

15

…und zunächst ein Ausflug in die Vergangenheit:

Struktogramme als Lernobjekte wie gute SW-Architektur modelliert werden kann…

Prof. Dr. A. Metzner 16

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

2. Notationen

17

…und wie wird heute Software modelliert?:

UML-Aktivitätsdiagramme

Prof. Dr. A. Metzner 18

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

2. Notationen

Verhaltensdiagramme

Aktivitätsdiagramm

wohlgeformt

Prof. Dr. A. Metzner 20

2. Notationen

Verhaltensdiagramme

Aktivitätsdiagramm

Einige Notations- elemente

(www.oose.de/uml)

Prof. Dr. A. Metzner 21

2. Notationen

Kontrollknotenüberblick - Aktivitätsdiagramm

(Skript Stork)

Prof. Dr. A. Metzner 22

2. Notationen

Ein-/Ausgabeparameter

(Skript Stork)

Prof. Dr. A. Metzner 23

2. Notationen

Verbindung mit Use Case

Türen schließen

Zugführer

Prof. Dr. A. Metzner 24

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

2. Notationen

Verhaltensdiagramme (dynamische Views)

Sequenzdiagramm

Notationselemente

(www.oose.de/uml)

Prof. Dr. A. Metzner 26

3. Architekturen

Was ist Architektur?

(DataWarehouse Referenzarchitektur, Wikipedia, 2009)

Prof. Dr. A. Metzner 27

3. Architekturen

Was ist Architektur?

(T. Gurzki, Portal, Wikipedia, 2009)

Prof. Dr. A. Metzner 28

SAP-Interaktions-Modell

Maier Name

Bahnhofstrasse 3 Strasse

Augsburg Ort

Suchen

Anwender

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 | 20

Strasse | CHAR | 20

Ort | CHAR | 20

Telnr | INT4 | 15

Prioritäten

An

we

nd

er

En

twic

kle

r

1

2

3

2

1

3

1

1

ppt: Bild-Kap03-02.wmf

Ebene

1

2

3

4

Prof. Dr. A. Metzner 29

3. Architekturen

Was ist Architektur?

(.NET, Wikipedia, 2009)

Prof. Dr. A. Metzner 30

3. Architekturen

Was ist Architektur?

Modell für „Größter gemeinsamer Teiler“

Prof. Dr. A. Metzner 31

3. Architekturen

(M.Foegen, J.Battenfeld, Rolle der Architektur, Informatik-Spektrum, 2001)

Prof. Dr. A. Metzner 32

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

3. Architekturen

Beispiele:

SOA – Service orientierte Architekturen Makroarch.: Client-Server

Mikroarch.: Design Pattern z.B. Singelton

Prof. Dr. A. Metzner 34

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

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

3. Architekturen

Makroarchitektur

verteilte Architekturen

Broker Architektur:

Beispiel: Request Broker (Vermittler-Komponenten)

Client Anwendung

Client-side Proxy

Server Anwendung

Server-side Proxy

Request Broker

Logische Kommunikation

physische Kommunikation

Prof. Dr. A. Metzner 37

3. Architekturen

Makroarchitektur

Interaktive Systeme

Modell-View-Controller

Presentation-Abstraction-Control: Präsentationsschicht, Businessschicht, Datenpersistenzschicht, Datenschicht

Business-Logik Präsentations-Logik

Prof. Dr. A. Metzner 38

3. Architekturen

Makroarchitektur

Adaptive Systeme (deu: anpassungsfähig)

Mikrokernel:

Reflektion: Zur Laufzeit (per Programm) nachsehen welche Funktionen ein Assembly anbietet

Client Prozess

Server Prozess

Mikrokernel

Speicher

Interprozesskommunikation

Prof. Dr. A. Metzner 39

3. Architekturen

Makroarchitektur

Andere Architekturen

Batch Prozesse

Interpreter

Prozess Kontrolle

Regel-basierte Systeme

...

Prof. Dr. A. Metzner 40

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 describes the core of solution to that problem, in such a way that you can use this solution a million times over, without doing it the same way twice“

„Best Practice“ Vorschläge für SW Design Probleme

(C.Alexander, GoF)

Prof. Dr. A. Metzner 41

3. Architekturen

Die vier 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. Metzner 42

3. Architekturen

Design-Pattern: Kategorie-Übersicht Gang of Four

Prof. Dr. A. Metzner 43

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

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

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

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

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

4. Strategien und Methoden

Datenstruktur-orientiertes Design

Beispiel: Entity-Relationship

Diagramme, 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. Metzner 49

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

4. Strategien und Methoden

Andere Methoden

Formale Methoden

Transformationsmethoden

Transaktionsmethoden

...

Prof. Dr. A. Metzner 51

5. SW Wiederverwendung

Englischer Begriff: Reuse

Produktlinien

Identifizieren von gemeinsamen Eigenschaften von Teilnehmern und Gründung einer Produktfamilie

Prof. Dr. A. Metzner 52

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

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