Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke."—  Präsentation transkript:

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

2 Forschungszentrum 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

3 Forschungszentrum Informatik, Karlsruhe 3 Objektorientierte Systeme unter der Lupe Einführung In großen Systemen ist gute Systemstruktur unentbehrlich Grund: 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

4 Forschungszentrum Informatik, Karlsruhe 4 Objektorientierte Systeme unter der Lupe Vorgehensweise Analyse des Quellcodes und Aufbau einer Design-Datenbank Visualisierungen der Design-Datenbank Anfragen an Design-Datenbank zur Suche nach Strukturproblemen Manipulation der Design-Datenbank zur Abstraktion von Implementierungsdetails und zur Informationsreduktion

5 Forschungszentrum Informatik, Karlsruhe 5 Objektorientierte Systeme unter der Lupe Werkzeugunterstützung Werkzeugsammlung GOOSE

6 Forschungszentrum Informatik, Karlsruhe 6 Objektorientierte Systeme unter der Lupe Anfragen und Heuristiken % Base classes should not have knowledge about % their descendants knowsOfDerived (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)

7 Forschungszentrum Informatik, Karlsruhe 7 Objektorientierte Systeme unter der Lupe Ein CORBA-System...

8 Forschungszentrum 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 Stub Skel Client Impl. ORB Client Server CORBA call Am Beispiel CORBA:

9 Forschungszentrum Informatik, Karlsruhe 9 Objektorientierte Systeme unter der Lupe...nach Abstraktion

10 Forschungszentrum 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

11 Forschungszentrum 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!

12 Forschungszentrum 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

13 Forschungszentrum 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

14 Forschungszentrum 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

15 Forschungszentrum 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

16 Forschungszentrum Informatik, Karlsruhe 16 Objektorientierte Systeme unter der Lupe Zusammenfassung Problemidentifikation: regelmäßige, werkzeuggestützte Untersuchung der Strukturen eines Systems Einzig zuverlässige Quelle: Quellcode Aber: 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


Herunterladen ppt "Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke."

Ähnliche Präsentationen


Google-Anzeigen