mitglied der fachhochschule ostschweiz fho 1 © fhs st.gallen software engineering ood – object...
Post on 05-Apr-2015
105 Views
Preview:
TRANSCRIPT
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
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.
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)
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)
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
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 ...
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
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
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
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)
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
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
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
Mitglied der Fachhochschule Ostschweiz FHO 17www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
MVC-Implementation im Java-Umfeld
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
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)
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
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
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)
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:
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
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
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)
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)
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
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
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
top related