Top Banner
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
74

5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

May 08, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 2: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner2

Gliederung

SW Design

1. Überblick SW Design

2. Notationen

3. Architekturen

4. Strategien und Methoden

5. SW Wiederverwendung

Page 3: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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]

Page 4: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 5: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 6: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 7: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 8: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 9: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner9

2. Notationen

� Notationen - Historie

Page 10: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 11: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner

2. Notationen

1. Strukturdiagramme

2. Verhaltensdiagramme

11

Page 12: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner12

2. Notationen

� Strukturdiagramme� Klassendiagramme

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

Fachliches Konzept

TechnischesKonzept

Page 13: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 14: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner14

2. Notationen

� Klassendiagrammelemente am Beispiel

Page 15: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner15

2. Notationen

� Strukturdiagramme� Klassendiagramme

� Die wichtigsten Beziehungselemente

Page 16: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner16

2. Notaionen

� Strukturdiagramme � Klassendiagramme

� Begriffsmodell

Page 17: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner17

2. Notationen

� Abstrakte Klasse

Page 18: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner18

2. Notationen

� Aggregation, Komposition

(Skript Stork)

Page 19: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner

2. Notationen

1. Strukturdiagramme

2. Verhaltensdiagramme

19

Page 20: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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…

Page 21: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 22: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner22

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Struktogramme

� Notationselemente

Abweisende Schleife

Auswahl

Fallunterscheidung

Mehrfachauswahl

Annehmende Schleife

Page 23: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner

2. Notationen

23

…und wie wird heute Software modelliert?:

UML-Aktivitätsdiagramme

Page 24: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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]

Page 25: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner25

2. Notationen

� Verhaltensdiagramme� Aktivitätsdiagramm

� wohlgeformt

Page 26: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner26

2. Notationen

� Verhaltensdiagramme � Aktivitätsdiagramm

� Einige Notations-elemente

(www.oose.de/uml)

Page 27: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner27

2. Notationen

� Kontrollknotenüberblick - Aktivitätsdiagramm

(Skript Stork)

Page 28: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner28

2. Notationen

� Ein-/Ausgabeparameter

(Skript Stork)

Page 29: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner29

2. Notationen

� Exception-Handling

Page 30: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner30

2. Notationen

� Partitionen(Swimlines)

Page 31: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner31

2. Notationen

� Partitionen

Page 32: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner32

2. Notationen

� Parallelisierung

Page 33: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner33

2. Notationen

� Das Prinzip der Token

Page 34: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner34

2. Notationen

� Das Prinzip der Token

Page 35: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner35

2. Notationen

� Das Prinzip der Token

Page 36: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner36

2. Notationen

� Das Prinzip der Token

Page 37: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner37

2. Notationen

� Verbindung mit Use Case

Türen schließen

Zugführer

Page 38: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 39: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner39

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

� Notationselemente

(www.oose.de/uml)

Page 40: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner40

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

Page 41: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner41

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

Page 42: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner42

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

Page 43: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner43

2. Notationen

� Verhaltensdiagramme (dynamische Views)� Sequenzdiagramm

� Nachrichten

Page 44: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner44

3. Architekturen

� Was ist Architektur?

(DataWarehouse Referenzarchitektur, Wikipedia, 2009)

Page 45: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner45

3. Architekturen

� Was ist Architektur?

(T. Gurzki, Portal, Wikipedia, 2009)

Page 46: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 47: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner47

3. Architekturen

� Was ist Architektur?

(.NET, Wikipedia, 2009)

Page 48: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner48

3. Architekturen

� Was ist Architektur?

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

Page 49: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner49

3. Architekturen

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

Page 50: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 51: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner51

3. Architekturen

Beispiele:

SOA –Service orientierte Architekturen

Makroarch.:Client-Server

Mikroarch.:Design Pattern z.B. Singelton

Page 52: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner52

3. Architekturen

� Subsysteme und Komponenten

Page 53: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner53

3. Architekturen

� Unterschied Subsysteme und Komponenten?

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

Page 54: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner54

3. Architekturen

� Kommunikation zwischen Komponenten

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

Page 55: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 56: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 57: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 58: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner58

3. Architekturen

� Makroarchitektur

� Interaktive Systeme� Modell-View-Controller

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

Business-LogikPräsentations-Logik

Page 59: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 60: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner60

3. Architekturen

� Makroarchitektur

� Andere Architekturen� Batch Prozesse

� Interpreter

� Prozess Kontrolle

� Regel-basierte Systeme

� ...

Page 61: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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)

Page 62: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 63: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner63

3. Architekturen

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

Page 64: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 65: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 66: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 67: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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()

Page 68: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 69: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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)

Page 70: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 71: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner71

4. Strategien und Methoden

� Andere Methoden

� Formale Methoden

� Transformationsmethoden

� Transaktionsmethoden

� ...

Page 72: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

Prof. Dr. A. Metzner72

5. SW Wiederverwendung

� Englischer Begriff: Reuse

� Produktlinien� Identifizieren von gemeinsamen Eigenschaften von

Teilnehmern und Gründung einer Produktfamilie

Page 73: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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

Page 74: 5) SW Design - HS Augsburggori/sue/5_SEuUE_WiBac4_Design... · Software Engineering 5) SW Design Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik ... Top-Level

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