Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke:...

24
Frameworks Frameworks B. Sc. Tim Lüecke Seminar Software-Entwurf FG Software Engineering

Transcript of Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke:...

Page 1: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

FrameworksFrameworks

B. Sc. Tim LüeckeSeminar Software-EntwurfFG Software Engineering

Page 2: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

2Tim Lüecke: Frameworks

GliederungGliederung

1. Motivation u. Definition2. Charakteristiken von Frameworks3. Beispiele4. Frameworks aus

– Nutzersicht– Entwicklersicht

5. Literatur6. Fazit

Probleme und Erfahrungen

Page 3: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

3Tim Lüecke: Frameworks

MotivationMotivation

• Ziel der Software-Entwicklung: Wiederverwendung– OO: Vererbung und Polymorphismus– Design Patterns: abstrakte Problemlösungen– Komponenten / Klassenbibliotheken: Lösungen für spezifische Ziele

Eingeschränkte Wiederverwendung

• Wunsch: Skelett einer Anwendung, das nur noch zurechtgeschneidert werden muss

Frameworksseit ca. 1980 (erstes Framework: MVC in Smalltalk-80)

Page 4: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

4Tim Lüecke: Frameworks

Benutzung eines FrameworksBenutzung eines Frameworks

1. Anforderung der Anwendung werden spezifiziert2. Gemäß den Anforderungen wird Framework

ausgesucht3. Framework wird erlernt4. Framework wird an den gewünschten Stellen (hot

spots) angepasst5. Ergebnis: Wesentliche Verkürzung der

Entwicklungszeit- und Kosten

Page 5: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

5Tim Lüecke: Frameworks

Definition u. StrukturDefinition u. Struktur

wieder verwendbarer Entwurf einer Anwendung beschrieben durch:– Abstrakte Klassen– Kollaboration der Instanzen

Anwendungsbereich (domain)

Framework-Domain

Page 6: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

6Tim Lüecke: Frameworks

Benutzung eines FrameworksBenutzung eines Frameworks

1. Anforderung der Anwendung werden spezifiziert2. Gemäß den Anforderungen wird Framework ausgesucht3. Framework wird erlernt4. Framework wird an den gewünschten Stellen (hot spots)

angepasst– Subklassen von Framework-Klassen werden erstellt– Verhaltenssteuerende Methoden werden überschrieben (hooks)– zu nutzende Komponenten werden erstellt– etc.

5. Ergebnis: Wesentliche Verkürzung der Entwicklungszeit-und Kosten

Page 7: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

7Tim Lüecke: Frameworks

Charakteristiken von FrameworksCharakteristiken von Frameworks

• Reuse of analysis– Erfolgreiche Betrachtung eines bestimmten Anwendungsbereiches

• Reuse of design– „fast“ kompletter Software-Entwurf

• Reuse of code– âtomarer Bestandteil: Abstrakte Klassen– hook methods

• Inversion of Control (IoC)

Framework

Application

Page 8: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

8Tim Lüecke: Frameworks

Blackbox vs. Whitebox FrameworksBlackbox vs. Whitebox Frameworks

• Whitebox Frameworks setzen Kenntnis der inneren Struktur des Frameworks voraus– Vererbung– Überschreiben von hook-

Methoden– die meisten Frameworks sind am

Anfang Whitebox• Blackbox Frameworks sind

ausgereifter und werden über Komponenten konfiguriert– Definition der Komponenten-

Schnittstellen– Integration über Patterns wie

Strategy

White-Box Framework

Black-Box Framework

Page 9: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

9Tim Lüecke: Frameworks

Einordnung aus NutzersichtEinordnung aus Nutzersicht

Frameworks

Anti-Patterns

Design Patterns

UML

Metriken

OOP

Software-EntwurfOOAD

Architektur

n-Schichten

J2EE .NET DCOM

benutzt

Pet Shop Pet Store

Page 10: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

10Tim Lüecke: Frameworks

EinordnungEinordnung aus Entwicklersichtaus Entwicklersicht

Applikationsebene

Frameworks

HilfsmittelAnti-Patterns

Design Patterns

UML

Metriken

OOP

Software-EntwurfOOAD

Architektur

n-Schichten

J2EE .NET DCOM

Pet Shop Pet Store

Page 11: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

11Tim Lüecke: Frameworks

Beispiel: Struts (MVC Framework)Beispiel: Struts (MVC Framework)

• Framework für MVC Web Applikation• Controller

– zentrales Servlet– steuert sog. Action-Klassen Geschäftslogik

• View– z.B. JSPs aber auch andere Präsentationstechniken– liefert Funktionalität für Web-Designer– Datenaustausch zwischen View/Controller über sog. ActionForms

• Model– keine Vorgaben (z.B. JavaBeans, EJBs, etc.)

• Controller wird zentral über XML-Datei konfiguriert

Page 12: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

12Tim Lüecke: Frameworks

Beispiel: Struts (MVC Framework)Beispiel: Struts (MVC Framework)

Page 13: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

13Tim Lüecke: Frameworks

Domain Framework zur VerkaufsfDomain Framework zur Verkaufsföörderungrderung

• oft wiederkehrender Anwendungsfall: Verkaufsförderung• tritt in vielen Geschäftsbereichen auf• daher: Framework für unterstützende Applikationen

– zeitliche Planung von Promotion Events– Auswertung der Ergebnisse– etc.

• wurde durchgeführt– mit komplexer Anforderungs-Erhebung– iteratives Verfahren um die Kern-Elemente zu abstrahieren

Page 14: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

14Tim Lüecke: Frameworks

Domain Framework zur VerkaufsfDomain Framework zur Verkaufsföörderungrderung

entnommen aus [2]

Page 15: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

15Tim Lüecke: Frameworks

GliederungGliederung

1. Motivation u. Definition2. Charakteristiken von Frameworks3. Beispiele4. Frameworks aus

– Nutzersicht– Entwicklersicht

5. Literatur6. Fazit

Probleme und Erfahrungen

Page 16: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

16Tim Lüecke: Frameworks

Frameworks auswFrameworks auswäählenhlen

• Frameworks müssen in vier Anforderungs-Dimensionen einer Anwendung entsprechen:

• Die Kosten einer Fehleinschätzung sind hoch!

Interoperabilität

nicht-funktional funktional

Hardware

Page 17: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

17Tim Lüecke: Frameworks

AuswahlAuswahl--KriterienKriterien

• Lizenz• Komplexität

– Modularisierung betrachten

• Dokumentation– Katalog / Feature-Liste– „Koch-Rezept“– Design Dokumentation– road maps– Source code

• Support– Wer stellt Support bereit?– Wie ist das Prozedere?– Was sind die Kosten?– Experten oder Aushilfen?– Self-support?

• Verwendung von Standards– Wiederverwendung!– quasi wie Interfaces im

Design

Page 18: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

18Tim Lüecke: Frameworks

Probleme bei der BenutzungProbleme bei der Benutzung

• Erlernen des Frameworks!– Einarbeitungsdauer von ca. 6-12

Monaten– Mentoring

• erfahrener Mitarbeiter wird jedoch meist woanders benötigt

– Training• basierend auf Beispielen• von einfachen zu schweren,

speziellen Beispielen

• Management des Entwicklungsprozesses– anders als die ausgereiften Prozessmodelle– zumeist wird ad hoc entwickelt (Stand: 1999)

Zeit

Lernfortschritt

Page 19: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

19Tim Lüecke: Frameworks

Probleme bei der BenutzungProbleme bei der Benutzung

• Abschätzung der Anwendungs-Entwicklung– meist schwer durchführbar– 90 Prozent / 10 Prozent-Regel

• Verifikation der Anwendungs-Komponenten– zwei Aspekte:

• Testen der Funktionalität• Testen der Konformität zu dem Framework

– Debugging ist zumeist äußerst schwierig (IoC)

t

Fortschritt

Page 20: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

20Tim Lüecke: Frameworks

Framework EntwicklungFramework Entwicklung

Domain analysis

Framework-Enwicklung

DomainModel

Anwendungs-Entwicklung

Anwendung

Framework

AnwendungAnwendung

Anwendung1

Page 21: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

21Tim Lüecke: Frameworks

Probleme bei der EntwicklungProbleme bei der Entwicklung

• Domain scope– es kann zuviel oder zuwenig mit einbezogen werden– besser sind zunächst kleinere Frameworks– Menschen neigen jedoch die andere Richtung zu wählen!

• Framework Dokumentation– wichtig: Darstellung der Framework-Struktur und der daraus folgenden

Regeln – kein Standard vorhanden, am besten verschiedene Methoden

verwenden– Dokumentation kostet! Vor allem bei Frameworks!

Page 22: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

22Tim Lüecke: Frameworks

Probleme bei der EntwicklungProbleme bei der Entwicklung

• Verifizierung von abstrakten Verhalten– normal: Erstellung einer Test-Applikation, die getestet wird– Vielseitigkeit kann schwer getestet werden

• Framework Release Problem– Framework muss wieder verwendbar sein– stabil sein gegenüber Änderungen im Anwendungsbereich– sehr gut dokumentiert sein– keine Standard-Kriterien vorhanden!– aber unreife Veröffentlichung hat verheerende Auswirkungen

Page 23: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

23Tim Lüecke: Frameworks

LiteraturLiteratur

[1] M.E. Fayad, D.C. Schmidt, R.E. Johnson, "Building ApplicationFrameworks", Wiley 1999

[2] M.E. Fayad, D.C. Schmidt, R.E. Johnson, "Implementing ApplicationFrameworks", Wiley 1999

[3] M. Nash, “Java Frameworks and Components”, Cambridge University Press 2003

[4] R.E. Johnson, B. Foote, "Designing reusable classes", Object-Oriented Programming 1, 5 (June/July 1988), 22–35.

[5] R.E. Johnson, „Frameworks=(Components+Patterns)“, CACM October1997/Vol. 40, No. 10

Page 24: Frameworks - se.uni-hannover.de · J2EE .NET DCOM benutzt Pet Shop Pet Store. Tim Lüecke: Frameworks 10 Einordnung aus Entwicklersicht Applikationsebene Frameworks Hilfsmittel Anti-Patterns

24Tim Lüecke: Frameworks

FazitFazit

• Frameworks im Idealfall eines der besten Wiederverwendungsmöglichkeiten im großen Maßstab

• aber:– Eigenentwicklung sollte genau bedacht werden!

• immense Kosten und Zeitbedarf!• sehr schwierig!• Dokumentation nicht unterschätzen!

– Bei Verwendung an Lernkurve denken!Respekt haben!

Vielen Dank für die Aufmerksamkeit!