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

Slides:



Advertisements
Ähnliche Präsentationen
Forschungszentrum Informatik
Advertisements

Objektrelationales Mapping mit JPA
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Prüfung objektorientierter Programme -1
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Kohonennetze für Information Retrieval mit User Feedback
Konzepte objektorientierter Systeme
IT-Projektmanagement
Inhaltlich orientierter Zugriff auf unstrukturierte Daten
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Design Patterns- Entwurfsmuster
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Threads Richard Göbel.
Seminar zum pi-Kalkül betreut von Andreas Rossberg
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
Datenbanken vs. Markup Manfred Thaller WS 2009/2010 Humanities Computing Linda Scholz.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
Grundlegende Analysen & Zwischendarstellungen
JAVA RMI.
Prüfkriterien für objektorientierte Systeme
Experimente in Medizin, Psychologie und Informatik im Stilvergleich
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
Remote Methode Invocation (RMI)
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Entwurfsmuster EDV Entwurfsmuster.
Smalltalk für Quereinsteiger
Visual FoxPro Objektorientierte Programmierung. © 1999 TMN-Systemberatung GmbH Grundbegriffe n Objekte n Eigenschaften n Methoden n Objektnamen n Klasse.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Werkzeugunterstützte Softwareadaption mit Inject/J
Entitäten Extraktion Einführung
Spezifikation von Anforderungen
Plattformunabhängige Programmiersprache
Entwurf und Realisierung einer digitalen Bibliothek zur Verwaltung von Notenhandschriften Dipl.-Ing. Temenushka Ignatova Datenbank- und Informationssysteme,
EXCEL PROFESSIONAL KURS
Objektorientierte Programmierung
1 Semiautomatische Medienresonanz- und Diffusions-Analyse Waltraud Wiedermann, GF APA-DeFacto und APA-MediaWatch Michael Granitzer, Know-Center.
Institut für Informatik III, Universität Bonn, c/o 2001, Präsentation Agenten, Objekte, Komponenten - Agenten, Objekte, Komponenten - ein Paradigma-Vergleich.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientiertes Design
LV-Programm der BBWL „Wirtschaftsinformatik“
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Allgemeines zu Datenbanken
Präsentiert Management Lösungen Value Added Software GmbH, Carl-Schurz-Str. 7, Neuss
Vom Geschäftsprozess zum Quellcode
Verbundprojekt OUTSHORE Studie und Methodikentwicklung zur Beurteilung der Erfolgsfaktoren bei der Vergabe von Softwareprojekten an Niedriglohnländer.
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
EPROG Tutorium #4 Philipp Effenberger
The EventCollector Concept Präsentation der Diplomarbeit von Thomas Moser und Lukas Karrer Distributed System Group,
Software Engineering Grundlagen
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vortrag - Diplomarbeiten (HS I)
Omniscient Debugging und Slicing für Java
Geoinformation I Lutz Plümer
PERL Eike Busse2 Gliederung 1.Einleitung 2.Geschichte 3.Eigenschaften/Merkmale von Perl 4.HTTP Server und Perl 5.Sicherheit 6.Perl programmieren.
Java-Kurs Übung Besprechung der Hausaufgabe
Prof. Dr. Ludwig Nastansky University of Paderborn Wirtschaftsinformatik 2 – FB 5 Prof. Dr. Ludwig Nastansky Warburger Straße 100, Paderborn Tel.:
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
DaimlerChrysler Workshop Architektur HyperbolicModeler  Notes Client  Notes native Java Klassen  Mehr Informationen über Design  Zugriff auf Dokumente.
Folie 1 Jan-Peter Schmidt Matthias Teske -Fernstudium Informatik- -Matrikel LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster:
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Comprehensive Information Base (CIB) – ein Prototyp zur semantischen Datenintegration Stefan Arts
Objektorientierte Programmierung Was ist das eigentlich ?
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
 Präsentation transkript:

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

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

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

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

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

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)

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

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:

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

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

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!

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

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

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

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

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