Mitglied der Fachhochschule Ostschweiz FHO 1 © FHS St.Gallen Software Engineering OOD – Object...

27
Mitglied der Fachhochschule Ostschweiz FHO 1 g.ch © FHS St.Gallen Software Engineering Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns Prototyping

Transcript of Mitglied der Fachhochschule Ostschweiz FHO 1 © FHS St.Gallen Software Engineering OOD – Object...

Page 1: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 1www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

S

oft

war

e E

ng

inee

rin

g

OOD – Object Oriented Design I

Design-Prozess

Design-Patterns

Prototyping

Page 2: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 2www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Lernziele

Sie können ...– die wesentlichen Design-Prinzipien erläutern.– die wichtigsten Design-Patterns darlegen und anwenden.– die wesentlichen Funktionen und Möglichkeiten des Prototyping darlegen.

Page 3: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 3www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Literatur

Applikationen objektorientiert konzipieren– Kapitel 6

Lehrbuch der Objektmodellierung– LE 14 (Entwurfsmuster)

Page 4: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 4www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Design - Entwurf

Analyse-Modell• Implementationsunabhängig

Überführung in

Design-Modelle (Entwurfs-Modelle):• GUI-Interaktionsmodell meist Design-Prototyp• Komponentenmodell• Persistenzmodell (meist Datenbankmodell)

– Design• 1:1-Modell der Implementation (des Codes)

Page 5: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 5www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Entwurfsproblemkreise

Benutzerinteraktion/GUI

Sitzungsverwaltung

Workflowgestaltung

Anwendungslogik

Persistenz (Datenhaltung)• Datenzugriff• Datenhaltung

Page 6: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 6www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

OOP COP

OOP – Object Oriented Programming

COP – Component Oriented Programming• Komponentenmodelle (z.B. J2EE)• Komponenten laufen in Container• Mehrere Klassen werden zu einer Komponente zusammengefasst• Container übernehmen zusätzliche Dienste:

– Session-Handling– Security– Persistence ...

Page 7: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 7www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Heuristiken

«Best Practices»

Regeln, Konzepte die sich in der Praxis bewährt haben:• Geheimnisprinzip realisieren

Page 8: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 8www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Designprinzipien

Kapselung• Interne Logik wird «versteckt»• Information Hiding, Geheimnisprinzip realisieren• Zugriff erfolgt über definierte und kontrollierte Schnittstellen

Lose Koppelung• Möglichst wenig Abhängigkeiten zwischen Klassen bzw. Komponenten

Hohe Kohäsion• Möglichst hoher logischer innerer Zusammenhalt in einer Klasse bzw.

Komponente

Page 9: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 9www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Separation of Concerns

Zuständigkeiten sauber separiert • Je Modell, Subsystem, Komponente

Möglichst keine Überschneidung im Fokus

Beispiele der Trennung von:– Schichtenarchitektur

– Front-End – Middle Tier – Back-End– Subsysteme je Geschäftslogikeinheit

– Kunde, Artikel, Auftrag, …– Geschäftslogik und technikabhängige Komponenten

– Geschäftskomponente Kundenauftrag– Datenzugriffskomponente Kundenauftragsdaten

– Funktionslogische Trennung– Schnittstelle, Steuerung und Implementation

Page 10: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 13www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Design by Contract

Ziel: zuverlässige Software

Bei Schnittstellen wird ein Kontrakt (Abmachung, Vertrag) festgelegt:• Vorbedingungen (precondition)• Nachbedingungen (postcondition)• Modellierung mittels

OCL (Object Constraint Language)• Bei «Vertragsbruch»:

– «Raising» (werfen) einer bestimmten Exception (Ausnahmebehandlung)

Page 11: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 14www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Muster - Patterns

Beschreiben allgemeine Lösungen zu häufig wiederkehrenden Problemstellungen

Ebenen von Muster:– Problemorientierte Seite:

– Analysemuster– Lösungsorientierte Seite (abhängig von Granularität):

– Architekturmuster» Grobkörniger» Siehe auch Musterarchitekturen in

Kapitel Softwarearchitektur!– Entwurfsmuster

» Feinkörniger

Page 12: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 15www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Schichtenmuster (Layer Pattern)

Architekturmuster

Schnittstellen nur zwischen angrenzenden Layers

Höhere Layer haben die Kontrolle und ist von unterem Layer abhängig

Unterer Layer ist von oberen Layer unabhängig

Page 13: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 16www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

MVC – Model View Control

Architekturmuster

Model– enthält Business Logik und Daten

View– Präsentation der Daten

Control– Steuerung durch

Benutzerinteraktion

Page 14: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 17www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

MVC-Implementation im Java-Umfeld

Page 15: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 18www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Entwurfsmuster (Design Patterns)

Die Dokumentation enthält:• Kontext• Problembeschreibung• Lösung• Auswirkungen

Bekannte Musterkataloge:

• GoF – Gang of Four

• J2EE-Patternshttp://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

Page 16: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 19www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

GoF – Design Patterns

Erzeugungsmuster (creational patterns)• Fabrikmethode (factory method)• Singleton

Strukturmuster (structural patterns)• Adapter• Proxy• Fassade (facade)• Kompositum (composite)

Verhaltensmuster (behavioral patterns)• Beobachter (observer)• Schablonenmethode (template method)

Page 17: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 20www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Fabrikmethode

GoF Erzeugungsmuster– Virtueller Konstruktor, bietet eine Schnittstelle zum Erzeugen eines

Objektes, wobei die Unterklasse entscheidet von welcher Klasse es sein soll.

Allg. Framework

spezifischeImplementation

Page 18: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 21www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Singleton

GoF Erzeugungsmuster– Stellt sicher, dass von einer Klasse nur genau ein Objekt erzeugt wird.

• z.B. ein Steuerobjekt

Objektreferenz

Page 19: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 22www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Adapter

GoF Strukturmuster– Passt Schnittstelle an die Erwartungen des Klienten an.

• Wenn z.B. Client nicht geändert werden kann.

Target.Request(gewünschte Schnittstelle)

Page 20: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 23www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Proxy

GoF Strukturmuster– Surrogat, Stellvertreter-Objektes (Proxy)

• Ermöglicht: Zugriffsschutz, Ortstransparenz

Objektdiagramm:

Page 21: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 24www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Fassade

GoF Strukturmuster – Einfache Schnittstelle zu einem Paket mit einer Menge von Komponenten

(oder Klassen)

Implementierung

Page 22: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 25www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Kompositum

GoF Strukturmuster– Setzte Objekte zu Baumstrukturen zusammen.

• Bsp.: Grafik, aus Linien, Rechtecke, Text und Bilder

Objektdiagramm:

Einzelobjekte

Containerobjekte

Page 23: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 26www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Beobachter

GoF Verhaltensmuster– Bei Änderung eines Objektes werden alle davon abhängigen Objekte

benachrichtigt.

Datenpool(Subject)

Tabellenanzeige(Observer-1)

Diagrammanzeige(Observer-2)

Page 24: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 28www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Kontrollmuster

Fork-Interaction:• Ein Steuerobjekt kontrolliert alle Aufrufe

Stair-Interaction:• Die Kontrolle ist dezentral bei den Fachkomponenten• GoF Verhaltensmuster:

– Zuständigkeitskette(Chain of Responsability)

Page 25: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 29www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Literaturhinweis

Patterns kompakt• Eilebrecht, Starke• ISBN: 3-8274-1591-8 • Spektrum Verlag• www.patterns-kompakt.de

Page 26: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 30www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Prototyping

Analyseprototyp weiterführen– abhängig von eingesetztem Tool

Explorativer Prototyp• Verifizierung der Machbarkeit von Lösungsideen• „Spike“ Prototyp zur Überprüfung von Architekturentscheiden

(High-Fidelity) Design-Prototyp• Anwenderinteraktion• partizipatives Prototyping

(d.h. Anwender wird miteinbezogen)• Bildschirmlayout• direkt in Implementation weiterverwenden

Page 27: Mitglied der Fachhochschule Ostschweiz FHO 1  © FHS St.Gallen Software Engineering OOD – Object Oriented Design I Design-Prozess Design-Patterns.

Mitglied der Fachhochschule Ostschweiz FHO 31www.fhsg.ch © FHS St.Gallen

So

ftw

are

En

gin

eeri

ng

Übungen

UML-Übungen• Übung 7

Fallstudie• Auftrag 6• Auftrag 7