Omniscient Debugging und Slicing für Java

Slides:



Advertisements
Ähnliche Präsentationen
Arbeitsablauf basierte Grid Anwendungen
Advertisements

Blue J.
E-Commerce Shop System
Algorithmentheorie 08 – Dynamische Programmierung (1)
Prof. Dr. Liggesmeyer, 1 Software Engineering: Dependability Prof. Dr.-Ing. Peter Liggesmeyer.
Wissensanalyse von Aufgaben mit TKS Eine Methode zur Problemlösung
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Objektorientierte Programmierung
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Einführung in die Entwicklungsumgebung
Seminar Software-Engineering für softwareintensive Systeme
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Einführung Blue J.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
1 Computergestützte Verifikation Probleme bei der Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen.
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
K-Modeler Engineering
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Deklaratives Debugging (Seminar Software Engineering) Tim Sender Deklaratives Debugging Seminar Software Engineering.
1 KM-Modul: Knowledge Wizard Personalisierte Verknüpfung von Wissensprozessen und Geschäftsprozessen auf Basis von Metainformationen Dr. Marc Diefenbruch.
PinK Plattform für intelligente Kollaborationsportale Dr. Joachim Quantz, e.V. Berlin, 13. September 2005.
Seminar Modellgetriebene Softwareentwicklung Einführung Seminar modellgetriebene Softwareentwicklung WS 05/06 Dipl.-Inf. Nadine Fröhlich Prof. Dr.-Ing.
Grundlegende Analysen & Zwischendarstellungen
Semantische Fehler Seminar im Grundstudium WS2002/2003:
Vortrag 11: Reengineering - Refactoring
Explizite und editierbare Metainformationen für Software Muster.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Fighting State Explosion
Werkzeugunterstützte Softwareadaption mit Inject/J
Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke.
Plattformunabhängige Programmiersprache
Zusammenfassung der Vorlesung
Dienstattribute für service-orientierte Workflows
Eignung der Aktivierungskanäle NFC und 2D QR-Code in Verbindung mit Arten der Erstellung von nutzergeneriertem Inhalt auf mobilen.
Softwaretechnik und Informationssysteme (Gebiet und Modul II.1.1, Module III.1.x) Dozenten der Softwaretechnik.
Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 André Hunke.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Innovator Die Komponenten.
SPODAT - Blick nach vorn
Jürgen Müller Internet Service Jürgen Müller (April 1997) pro.vider.de Internetagentur GmbH (April 2000) Dipl.-Ing (FH): Fachhochschule Lübeck Master of.
Java Programmierung.
Eclipse-Entwicklungsumgebung
Oliver Lietz – Mobile Software Mobile Software Ausgewählte Themen Software (ATS) Beuth-Hochschule SS 2010 Oliver Lietz Dipl.-Ing.
AK Simulationswerkzeuge für das RE R. Schmid / Folie 1 Evaluation von simulationsfähigen RE-Werkzeugen Reto Schmid Institut für Informatik,
Knowledge Management-Portal XML Topic Maps Von der Information zum Wissen Ronald Melster Gefördert vom.
Web-basierter Unterricht in der Computergraphik: Konzepte und Realisierung von interaktiven Online-Kursen Reinhard Klein, Frank Hanisch Wilhelm-Schickard.
Computergestützte Verifikation
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Möglichkeiten der Visualisierung
Vortrag - Diplomarbeiten (HS I)
Eingereicht von:Michael Schrank Betreuung:o.Univ.-Prof. Dr. Hanspeter Mössenböck Mitbetreuung:Dipl.-Ing. Wolfgang Beer CyberStudent A Multiuser Awareness.
JavaScript Geschichte : Netscape entwickelt LiveScript (Syntax angelehnt an Java) - Umbenennung von Live Script in JavaScript - Mircrosoft.
Datenbanken im Web 1.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Application Service Providing „Jetzt kann jeder an unserem Erfolg teilhaben“
© WZL/Fraunhofer IPT Entwicklung einer Profilbörse für Konfigurationen von Smartphones Vortrag der Seminararbeit von Patrick Posor Aachen, den
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
 Präsentation transkript:

Omniscient Debugging und Slicing für Java

Überblick das Fachgebiet Softwaretechnik Probleme beim Debugging "Debugging rückwärts" mit Omniscient Debugging statisches und dynamisches Slicing Fehlersuche mit Omniscient Slicing Zusammenfassung

Das Fachgebiet Softwaretechnik "teile und herrsche" als Konstruktionsprinzip modulare und entkoppelte Softwarearchitekturen aspektorientierte und komponentenorientierte Softwareentwicklung service-orientierte Softwarearchitekturen und Produktlinien dynamisch anpassbare Software zwei komplementäre Wege zur Beherrschung der Softwarekomplexität intelligente Konstruktionswerkzeuge intelligentes Wissensmanagement und -Retrieval für Entwicklungsumgebungen integrierte erweiterbare statische Analyseplattformen Softwareexploration und -visualisierung für leichtere Wartung und Re-Engineering noch ein paar Zahlen… 2001 gegründet, derzeit 14 Mitarbeiter Grundgedanke unserer Arbeit: der Komplexität von Software Herr werden! # Weg 1: dem grundlegenden Prinzip der Modularität (im Prinzip allseits anerkannt) neue Wege erschließen das heißt auch, bekannte Paradigmen in Frage zu stellen und an neuen zu arbeiten ➔ Entwicklung neuer Sprachen insonderheit AOSE als neuartige Sicht auf Modularität # Weg 2: Werkzeuge für die Arbeit mit und an Software Unterstützung von Entwicklern beim Verständnis-Erwerb und bei der Anwendung von Wissen

Aktuelle Aktivitäten neue Programmiersprachen inklusive geeigneter Laufzeit- und Entwicklungsumgebungen Schwerpunkt: aspektorientierte Programmierung Anwendung der neuen Programmiersprachen Software-Produktlinien modulare Komponenten-Middleware aspektorientierte Web-Service-Komposition modellbasierte Entwicklung mobiler Anwendungen Entwicklungsumgebungen als Plattformen für Software Knowledge/Information Engineering Exploration, Visualisierung, Analyse Programmiersprachen: CaesarJ, CJDT, Steamloom Anwendung: etwa AO4BPEL IDEs: Magellan

"Traditionelles" Debugging Breakpoints: Markierung potenziell interessanter Stellen Ausführung der Anwendung bis zum Breakpoint Untersuchung des Zustands, (ggf. schrittweise) Weiterausführung nicht (oder nur schwer) beantwortbare Fragen "Woher kommt diese null-Referenz?" "Welche Methode wurde vor dieser aufgerufen?" "Wie wirkt sich diese Zuweisung im weiteren Verlauf aus?" main() abc() foo() foo() Beispiel… über einer Zeitachse aufgetragen die Ausführung diverser Methoden einer Anwendung wenn wir nun so etwas wie einen stack trace zu sehen bekommen (und im Debugger landen), wissen wir auf Anhieb, # welche Teile der Anwendung unmittelbar zu diesem stack trace beigetragen haben # diese Teile können wir uns unmittelbar erschließen # aber spätestens wenn wir sehen wollen, was diese Teile getan haben, wirds kompliziert und jetzt stellen wir uns mal vor, wir wollten die o.g. Fragen mit diesen Hilfsmitteln beantworten… xyz() bar() abc() baz() baz() baz() Zeit

Omniscient Debugging "debugging backwards in time" Navigation vorgestellt von Bil Lewis, 2002 erlaubt Navigation durch komplette Ausführungsvergangenheit Punkte in der Ausführung (samt Zuständen) werden aufgezeichnet Navigation ODB erlaubt schrittweise Suche nach Fehlerquellen erwünscht: unmittelbare Übersicht aller möglichen Fehlerquellen Zukunft der Ausführung vorausschauendes Debugging ist im ODB nicht möglich erwünscht: Übersicht möglicher Einflüsse bestimmter Zustände etwas die Bedienung erklären Bildrechte bei Bil Lewis

Slicing Slice: die Menge der Anweisungen, statisches Slicing die den Zustand an dieser Anweisung beeinflussen (backward slice) deren Zustand von dieser Anweisung beeinflusst wird (forward slice) statisches Slicing basiert auf statischer Programmanalyse Slices enthalten potenziell beeinflussende / beeinflusste Anweisungen ➔ Slices sind größer als nötig dynamisches Slicing basiert auf einem konkreten (terminierten) Programmlauf Slices enthalten tatsächlich beeinflussende / beeinflusste Anweisungen Quellcode Kontrollfluss

Omniscient Slicing – Backtrac Kombination von Omniscient Debugging mit Slicing Anwendungslauf generiert vollständigen Trace erreicht durch Instrumentation zur Ladezeit keine Interaktion mit laufender Anwendung: Retro-Debugging Backtrac realisiert als Eclipse-Plugin OD-ähnliche Navigation über die Ausführungszeit zusätzliche Möglichkeit, dynamische Slices zu berechnen

Eigenschaften von Backtrac (Speicherverbrauch, Grenzen)

Zusammenfassung (Zusammenfassung, Zustand, Ausblick)