forschungszentrum informatik, karlsruhe objektorientierte systeme unter der lupe markus bauer oliver...

16
Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

Upload: marlene-stocker

Post on 05-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

Forschungszentrum Informatik, Karlsruhe

Objektorientierte Systeme unter der Lupe

Markus Bauer

Oliver Ciupke

Page 2: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

2

Objektorientierte Systeme unter der Lupe

Übersicht

• Einführung

• Methode und Werkzeug zur automatische Suche nach Strukturproblemen– Erzeugen einer Design-Datenbank auf Basis des

Quellcodes des Systems– Abstraktion– Suche nach Strukturproblemen mit Hilfe von Heuristiken

• Typische Heuristiken

• Fallstudie

• Zusammenfassung

Page 3: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

3

Objektorientierte Systeme unter der Lupe

Einführung

• In großen Systemen ist gute Systemstruktur unentbehrlichGrund: Systemstruktur beeinflusst Entwicklungs- und Wartungsaufwand maßgeblich

• Evolution und lange Entwicklungszeiten führen oft zu verwässerten Strukturen Zerwartung

• Abhilfe: Methoden und Werkzeuge zur automatischen Untersuchung von Systemen auf Strukturprobleme auf Basis des Quellcodes

Page 4: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

4

Objektorientierte Systeme unter der Lupe

Vorgehensweise

• Analyse des Quellcodesund Aufbau einer Design-Datenbank

• Visualisierungen derDesign-Datenbank

• Anfragen an Design-Datenbank zur Suche nach Strukturproblemen

• Manipulation der Design-Datenbank zur Abstraktion von Implementierungsdetails und zur Informationsreduktion

Class

InheritanceDefinition

Method Attribute

Access

Invocation

subclass

superclass

belongsToClass

accessedIn accesses

invokedBy

belongsToClass

Figure 2: The Core Model

candidates

Page 5: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

5

Objektorientierte Systeme unter der Lupe

Werkzeugunterstützung

Sourcecode

Sourcecode Design

informationDesign

information

Foo

Bar

...

Query language

Query language

% Base classes should not have knowledge about% their descendantsknowsOfDerived (Class, DerivedClass) :-

...

...

Query

Transfor-mationParsing Analysis

Problem structure

Sourcecode

Sourcecode Design

informationDesign

information

Foo

Bar

...

Query language

Query language

% Base classes should not have knowledge about% their descendantsknowsOfDerived (Class, DerivedClass) :-

...

...

Query

Transfor-mationParsing Analysis

Problem structure

Abstraction

Sourcecode

Sourcecode Design

informationDesign

information

Foo

Bar

...

Foo

Bar

...

Query language

Query language

% Base classes should not have knowledge about% their descendantsknowsOfDerived (Class, DerivedClass) :-

...

...

Query

Transfor-mationParsing Analysis

Problem structure

Sourcecode

Sourcecode Design

informationDesign

information

Foo

Bar

...

Foo

Bar

...

Query language

Query language

% Base classes should not have knowledge about% their descendantsknowsOfDerived (Class, DerivedClass) :-

...

...

Query

Transfor-mationParsing Analysis

Problem structure

Abstraction

WerkzeugsammlungGOOSE

Page 6: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

6

Objektorientierte Systeme unter der Lupe

Anfragen und Heuristiken

% Base classes should not have knowledge about% their descendantsknowsOfDerived (Class, DerivedClass) :-

% Both Class and DerivedClass must be classes class (Class), class (DerivedClass),

% DerivedClass is a direct or transitive % descendant of Class trans (inheritsFrom, DerivedClass, Class),

% The base class knows its heir knows (Class, DerivedClass).

”Derived classes must have knowledge of their base class by definition, but base classes should not know anything about their derived classes.” (Heuristic 5.2 in Riel 1996)

Page 7: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

7

Objektorientierte Systeme unter der Lupe

Ein CORBA-System...

Page 8: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

8

Objektorientierte Systeme unter der Lupe

Abstraktion von Implementierungsdetails

• In Komponentenarchitekturen werden viele Abhängigkeiten durch Infrastruktur realisiert

• Gewinnung von Strukturinformationen durch Abstraktion

StubStub SkelSkel

ClientClient Impl.Impl.

ORBORB

ClientClient ServerServerCORBA

call

Am Beispiel CORBA:

Page 9: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

9

Objektorientierte Systeme unter der Lupe

...nach Abstraktion

Page 10: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

10

Objektorientierte Systeme unter der Lupe

Typische Heuristiken

• Klassifizierung

– Objekt-orientierte Heuristiken

– Heuristiken für Subsysteme

– Technik- und projektspezifische Heuristiken

• Probleme

– Vielzahl und Widersprüchlichkeit existierender Heuristiken

– Interessante Phänomene oft nicht abgedeckt

• Erfahrung:

– Projekterfahrung bringt neue Heuristiken hervor

– Kritische Stellen werden oft durch mehrere Heuristiken erfasst

Page 11: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

11

Objektorientierte Systeme unter der Lupe

Objektorientierte Heuristiken

• Klassen sollen nicht von Unterklassen abhängen

• Vererbung soll nur eingesetzt werden, wenn polymorphe Struktur vorliegt

• Vermeide überflüssige Abstraktionen

• Keine Flaschenhalsklassen

• Keine Gottklassen

Bemerkung: Für viele Heuristiken nur abschätzende Berechnung möglich!

Page 12: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

12

Objektorientierte Systeme unter der Lupe

Heuristiken für Subsysteme

• Schlanke, explizite Schnittstellen

• Keine fragilen Klassen in Schnittstellen

• Klassen in Schnittstellen sollen möglichst wenig von Klassen in anderen Subsystemen abhängen

• Entkopplung von Subsystemen

• Keine zyklische Vererbung zwischen Subsystemen

Page 13: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

13

Objektorientierte Systeme unter der Lupe

Technologie- und projektspezifische Heuristiken

• EJB-Systeme:

– Klare Trennung von Entitäten und Aktivitäten

– Entitäten dürfen nicht von Aktivitäten abhängen

– Zugriff auf Entitäten nur über Zwischenschicht (Editierer)

• Trennung von Framework- und Anwendungscode

– Abhängigkeiten nur von Anwendung zu Framework erlaubt!

– Einhalten einer geschichteten Architektur

Page 14: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

14

Objektorientierte Systeme unter der Lupe

Fallstudie

• Modernes EJB-System zum Vertragsmanagement von Versicherungen

• Identifikation von Strukturproblemen, um Ansatzpunkte für Restrukturierungen zu finden

• Ergebnis: Report mit potenziellen Strukturproblemen

70 Subsysteme

600 Geschäftsobjekte

6000 Klassen und EJBs= 1 Mio LOC

...

Page 15: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

15

Objektorientierte Systeme unter der Lupe

Fallstudie – Ergebnisse

• Methode und Werkzeuge für größere OO-Systeme der industriellen Praxis geeignet

• Abstraktion unverzichtbar

– Informationsreduktion

– Integration infrastrukturspezifischer Abhängigkeiten

• Ergebnisse untermauern Entwickler-Intuition

• Gutes Design: Kompromiss Einfachheit - Flexibilität

• Heuristiken müssen noch erweitert werden

Page 16: Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke

08.05.01Forschungszentrum Informatik, Karlsruhe

16

Objektorientierte Systeme unter der Lupe

Zusammenfassung

• Problemidentifikation: regelmäßige, werkzeuggestützte Untersuchung der Strukturen eines Systems

• Einzig zuverlässige Quelle: QuellcodeAber: Abstraktion zur Aufbereitung der Information erforderlich

• Für moderne Systeme:Allgemeine Heuristiken (OO, Subsysteme) + technologie- und projektspezifische

• Ableiten von Restrukturierungsmaßnahmen

• Abfragetechnik auch für Verbesserung des Systemverständnisses nützlich