Instrumentation von Android Anwendungen mit ExplorViz

Größe: px
Ab Seite anzeigen:

Download "Instrumentation von Android Anwendungen mit ExplorViz"

Transkript

1 Instrumentation von Android Anwendungen mit ExplorViz Jan Witzany 28. September 2016 Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

2 Gliederung 1. Motivation 2. Ziele 3. Grundlagen 4. Entwurf 5. Implementierung 6. Evaluation 7. Ausblick Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

3 Motivation Monitoring Android Motivation Android Marktanteil: >85% Viele Applikationen Mangelhafte o. fehlende Dokumentation Programmiersprache: Java 2,000 1,500 1, Abbildung: Anzahl von Apps im Play Store Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

4 Ziele Ziele Instrumentierung von Android Anwendungen Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

5 Ziele Ziele Instrumentierung von Android Anwendungen Sourcecode Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

6 Ziele Ziele Instrumentierung von Android Anwendungen Sourcecode APK Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

7 Ziele Ziele Instrumentierung von Android Anwendungen Sourcecode APK Monitoring mit ExplorViz Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

8 Ziele Ziele Instrumentierung von Android Anwendungen Sourcecode APK Monitoring mit ExplorViz Android Apps in Java kein JavaScript/HTML kein C/C++ Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

9 Grundlagen ExplorViz Grundlagen Live Trace Visualisierung von Programmen Packages und Klassen in einer 3D-Softwarestadtmetapher Java Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

10 Grundlagen ExplorViz II Grundlagen Abbildung: Live Trace Visualization for System and Program Comprehension in Large Software Landscapes, Fittkau, F. (2015) Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

11 Grundlagen ExplorViz III Grundlagen Abbildung: Live Trace Visualization for System and Program Comprehension in Large Software Landscapes, Fittkau, F. (2015) Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

12 Grundlagen Android Grundlagen Java als Programmiersprache Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

13 Grundlagen Android Grundlagen Java als Programmiersprache Dalvik VM/ART Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

14 Grundlagen Android Grundlagen Java als Programmiersprache Dalvik VM/ART Anroid Versionen Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

15 Grundlagen Android Grundlagen Java als Programmiersprache Dalvik VM/ART Anroid Versionen Berechtigungen Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

16 Grundlagen Android Grundlagen Java als Programmiersprache Dalvik VM/ART Anroid Versionen Berechtigungen kein Netzwerkverbindung im Main Thread Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

17 Grundlagen Android Grundlagen Java als Programmiersprache Dalvik VM/ART Anroid Versionen Berechtigungen kein Netzwerkverbindung im Main Thread ProGuard Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

18 Grundlagen Aspektorientierte Programmierung public class Aspect ( " execution ( * * (.. ) &&! w i t h i n ( e x p l o r v i z. * * ) " ) public void methodexecution ( ) { ( " p o i n t c u t ( ) " ) public Object aroundadvice ( ProceedingJoinPoint jp ) throws Throwable { / / code before execution of method jp. proceed ( ) } } / / code a f t e r execution of method Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September / 19

19 Entwurf Instrumentierung Entwurf Build-Prozess Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

20 Entwurf ExplorViz Entwurf Android Flag Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

21 Entwurf ExplorViz Entwurf Android Flag TCP im separaten Thread Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

22 Entwurf ExplorViz Entwurf Android Flag TCP im separaten Thread Überprüfen der Module auf Kompatibilität Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

23 Implementierung Instrumentierung Implementierung APK: jadx, APK-Tool Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

24 Implementierung Instrumentierung Implementierung APK: jadx, APK-Tool Post-Compile-Weaving Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

25 Implementierung Instrumentierung Implementierung APK: jadx, APK-Tool Post-Compile-Weaving Gradle-Plugin für AspectJ Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

26 Implementierung ExplorViz: Aspekt Implementierung Length Id ObjectId Classname Implemented Interface Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

27 Implementierung ExplorViz: Aspekt Implementierung Length Id ObjectId Classname Implemented Interface dynamische Pointcuts Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

28 Implementierung ExplorViz: System-Monitoring Implementierung Aktueller Ansatz nicht in Android möglich Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

29 Implementierung ExplorViz: System-Monitoring Implementierung Aktueller Ansatz nicht in Android möglich CPU-Auslastung: /proc/stat Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

30 Implementierung ExplorViz: BuildProzess Implementierung Java Version 1.7 Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

31 Implementierung ExplorViz: BuildProzess Implementierung Java Version 1.7 AspectJ Compiler Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

32 Implementierung ExplorViz: BuildProzess Implementierung Java Version 1.7 AspectJ Compiler Entfernen nicht kompatibler Programmbibliotheken Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

33 Evaluation Live Demo Evaluation "Babsi", 2013 Applikation zur Aufnahme von Patientendaten API Level 19 Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

34 Ausblick Ausblick Erweiterung für dynamische Pointcuts Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

35 Ausblick Ausblick Erweiterung für dynamische Pointcuts Optimierung für APK-Instrumentierung Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

36 Ausblick Ausblick Erweiterung für dynamische Pointcuts Optimierung für APK-Instrumentierung Performance von Datenbankoperationen Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

37 Ausblick Ausblick Erweiterung für dynamische Pointcuts Optimierung für APK-Instrumentierung Performance von Datenbankoperationen Anpassung an zukünftige Android Versionen Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

38 Zusammenfassung Fazit Android Instrumentierung Sourcecode: PCW mit AspectJ APK: Dekompilieren ExplorViz Keine Netzwerkkommunikation im Main-Thread Anpassen des Build-Skriptes Anpassen des System-Monitorings Dynamische Pointcuts Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

39 Referenzen F. Fittkau, Live Trace Visualization for System and Program Comprehension in Large Software Landscapes (Doktorarbeit/PhD), Faculty of Engineering, Kiel University, Kiel,(2015). gradle_plugin_android_aspectjx, Kiczales, Gregor, et al. Aspect-oriented programming. European conference on object-oriented programming. Springer Berlin Heidelberg, Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz28. September / 19

Kollaboratives Erkunden von Software mithilfe virtueller Realität 28. September in ExplorViz / 33

Kollaboratives Erkunden von Software mithilfe virtueller Realität 28. September in ExplorViz / 33 Kollaboratives Erkunden von Software mithilfe virtueller Realität in ExplorViz 28. September 2017 Kollaboratives Erkunden von Software mithilfe virtueller Realität 28. September in ExplorViz 2017 1 / 33

Mehr

Vulnerability Recognition by Execution Trace Differentiation

Vulnerability Recognition by Execution Trace Differentiation Vulnerability Recognition by Execution Trace Differentiation Fabien Patrick Viertel, Oliver Karras and Kurt Schneider Software Engineering Group, Leibniz Universität Hannover, Germany Symposium on Software

Mehr

Quellcode-unterstützte Musterdefinition für Systemabhängigkeitsgraphen

Quellcode-unterstützte Musterdefinition für Systemabhängigkeitsgraphen Quellcode-unterstützte Musterdefinition für Systemabhängigkeitsgraphen Master-Abschlussvortrag 12. Dezember 2016 12. Dezember 2016 1 / 26 Kontext/Motivation Ansatz von Wulf Kontext/Motivation S2 Legend:

Mehr

1 Motivation und Einleitung

1 Motivation und Einleitung AspectJ - AOP für Java Georg Blaschke (georg.blaschke@stud.informatik.uni-erlangen.de) Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Betriebssysteme und Verteilte Systeme 3. Mai 2003

Mehr

Instrumentierung von Android Anwendungen in ExplorViz

Instrumentierung von Android Anwendungen in ExplorViz Instrumentierung von Android Anwendungen in ExplorViz Bachelorarbeit Jan Witzany 30. September 2016 Christian-Albrechts-Universität zu Kiel Institut für Informatik Arbeitsgruppe Software Engineering Betreut

Mehr

spectj AOP mit Java, Konzepte und Beispiele

spectj AOP mit Java, Konzepte und Beispiele A spectj AOP mit Java, Konzepte und Beispiele AspectJ Ist eine Erweiterung von Java Ist eine aspektorientierte Sprache (wie Java eine objektorientierte Sprache ist) Ist frei verfügbar der Compiler ist

Mehr

Build Management Tool?

Build Management Tool? Build Management Tool? Funktionen Dependency Management Kompiliert den Sourcecode in Binaries Führt automatisierte Tests aus Installiert Software oder Lädt sie in Repositories Erstellt eine Dokumentation

Mehr

Build Management Tool

Build Management Tool Build Management Tool Build-Prozess? Source Code 3rd Party libraries Veröffentlichung Download all 3rd Party libs by hand Compile your sources: javac -sourcepath./src1;./src2 Byte Code -cp lib1.jar;lib2.jar

Mehr

Bytecode-Manipulation leicht gemacht. Christian Kumpe, JavaLand 14. März 2018

Bytecode-Manipulation leicht gemacht. Christian Kumpe, JavaLand 14. März 2018 Bytecode-Manipulation leicht gemacht Christian Kumpe, JavaLand 14. März 2018 Agenda Referent Einführung Motivation Werkzeuge Javassist & ClassFileTransformer Fazit Copyright 2018 diva-e Digital Value Excellence

Mehr

Bytecode-Manipulation leicht gemacht. Christian Kumpe, Entwicklertag Karlsruhe 20. Juni 2018

Bytecode-Manipulation leicht gemacht. Christian Kumpe, Entwicklertag Karlsruhe 20. Juni 2018 Bytecode-Manipulation leicht gemacht Christian Kumpe, Entwicklertag Karlsruhe 20. Juni 2018 Agenda Referent Einführung Motivation Werkzeuge Javassist & ClassFileTransformer Fazit Copyright 2018 diva-e

Mehr

Fehlertoleranz durch aspektorientierte Programmierung

Fehlertoleranz durch aspektorientierte Programmierung Fehlertoleranz durch aspektorientierte Programmierung Max Günther Technische Universität Dortmund 5. März 2013 1 / 34 Motivation Fehlertoleranz ist wichtig aber mühselig in Software einzubauen Abhilfe

Mehr

Android Testautomatisierung mit dem Framework Robotium

Android Testautomatisierung mit dem Framework Robotium Android Testautomatisierung mit dem Framework Robotium Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat

Mehr

Profiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32

Profiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32 Profiling in Python Seminar: Effiziente Programmierung Jan Pohlmann November 2017 Jan Pohlmann Profiling in Python November 2017 1 / 32 Gliederung 1 Grundlagen Profiling Was ist das Ziele und Herausforderungen

Mehr

Build Management Tool?

Build Management Tool? Build Management Tool? Funktionen Dependency Management Kompiliert den Sourcecode in Binaries Führt automatisierte Tests aus Installiert Software oder Lädt sie in Repositories Erstellt eine Dokumentation

Mehr

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG Mobile App development mit Xamarin Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG % der Bevölkerung mit Smartphone Smartphone Durchdringung >50% 34% 43% 54% DACH

Mehr

OOP. Tagesprogramm. Aspektorientierte Programmierung. Annotationen

OOP. Tagesprogramm. Aspektorientierte Programmierung. Annotationen 1 2014-12-03 Tagesprogramm Aspektorientierte Programmierung Annotationen 2 Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten

Mehr

Mobile Development in.net mit Xamarin

Mobile Development in.net mit Xamarin 1 Mobile Development in.net mit Xamarin Mobile Web (Hybrid) Apps Vorteil: Weniger Aufwand Multi-Plattform Web-Technologien Nachteil: UX Performance UI Design Gerätefunktionen 2 Plattform abstrahieren 3

Mehr

Android-Testautomatisierung mit Robotium

Android-Testautomatisierung mit Robotium Android-Testautomatisierung mit Robotium Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen technischen

Mehr

Aspektorientierte Programmierung

Aspektorientierte Programmierung Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten das mehrere Klassen betrifft Objektorientierte Programmiertechniken: Aspektorientiertheit,

Mehr

SW-Archäologie mit AspectJ

SW-Archäologie mit AspectJ SW-Archäologie mit AspectJ Ausgrabungen vergangener SW-Architekturen Java Forum Stuttgart 2015 oliver.boehm@aosd.de 1 Agenda. 1.0 2.0 3.0 4.0 5.0 Die klassische Herangehensweise Ein kleiner Ausflug mit

Mehr

Modellierung CORBA-basierter Anwendungssysteme mit der UML

Modellierung CORBA-basierter Anwendungssysteme mit der UML Verteidigung der Diplomarbeit über das Thema: Modellierung CORBA-basierter Anwendungssysteme mit der UML Andreas Mucha Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl

Mehr

CLICK TO EDIT MASTER TITLE STYLE

CLICK TO EDIT MASTER TITLE STYLE CLICK TO EDIT MASTER TITLE STYLE AUTOMATISCHE ERZEUGUNG VON BENUTZEROBERFLÄCHEN UND DATENHALTUNG FÜR DIE KONFIGURATION VON FELDGERÄTEN Diplomverteidigung Betreuer (Firma ubigrate): Dipl.-Inform. Falk Hartmann

Mehr

Android GUI Entwicklung

Android GUI Entwicklung Android GUI Entwicklung Aktuelle Technologien verteilter Java Anwendungen Referent: Stefan Haupt Hello World! Agenda Einführung & Motivation Android Applikationen UI-Komponenten Events Ressourcen Kommunikation

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Lehrstuhl 1 / Fakultät für Informatik. Haskell. Karsten Lettow

Lehrstuhl 1 / Fakultät für Informatik. Haskell. Karsten Lettow Lehrstuhl 1 / Haskell Jobausschreibung 2 Definition der Fibonacci Folge n Ν f(0) = 0 f(1) = 1 f(n) = f(n-1) + f(n-2) 3 Fibonacci Folge in Java implementiert public class fbonacci { public static void main(string[]

Mehr

Behutsame Modernisierung

Behutsame Modernisierung Software Evolution mit Legacy Systemen Forum Forschungsförderung / ViSEK Trends im Software Engineering Software Evolution mit Legacy Systemen Behutsame Modernisierung Jan Wloka

Mehr

Agile Testautomatisierung im XING Mobile Team

Agile Testautomatisierung im XING Mobile Team Agile Testautomatisierung im XING Mobile Team Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Team Lead Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen

Mehr

Hauptseminar AOSD. Design-by-Contract

Hauptseminar AOSD. Design-by-Contract Hauptseminar AOSD Seite 1 Entstehung Was ist das? Java Annotations und AOP ConceptJ Zusammenfassung Seite 2 Entstehung Entwickelt von Bertrand Meyer Heute Prof. an der ETH Zürich Erstmals in Programmiersprache

Mehr

Agile Testautomatisierung im XING Mobile Team

Agile Testautomatisierung im XING Mobile Team Agile Testautomatisierung im XING Mobile Team Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen technischen

Mehr

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung

Mehr

Aspektorientierte Programmierung mit.net

Aspektorientierte Programmierung mit.net Aspektorientierte Programmierung mit.net David Hahn & Viktor Steinwand 1 1. 2. 3. 4. 5. Vorgehen beim AOP 6. 7. durch AOP 8. 9. 10. 2 1. AOP ist ein mächtiges Werkzeug für den Entwickler-Werkzeugkoffer

Mehr

AOP Day 07. eine Veranstaltung der SIG AspectJ. organisiert vom AOP-Komitee. und der guten Fee. powered by. Oliver Böhm Darko Palic Ludger Solbach

AOP Day 07. eine Veranstaltung der SIG AspectJ. organisiert vom AOP-Komitee. und der guten Fee. powered by. Oliver Böhm Darko Palic Ludger Solbach AOP Day 07 eine Veranstaltung der SIG AspectJ organisiert vom AOP-Komitee Oliver Böhm Darko Palic Ludger Solbach und der guten Fee Bori Gerhardt powered by Historisches (1) Dez. 2005: AspectJ Winter Camp

Mehr

Mit Cloud Power werden Sie zum

Mit Cloud Power werden Sie zum Mit Cloud Power werden Sie zum Herzlich Willkommen! Christian Hassa Managing Partner TechTalk Software AG Agenda Mobile App Development mit Xamarin Pause Azure Mobile Services Q&A 9h00-10h30 10h30-10h50

Mehr

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP 3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg ARIS meets RUP Der ARIS Unified Information System Development Process Martin Plümicke Berufsakademie

Mehr

Rekonfiguration durch dynamische aspektorientierte Programmierung

Rekonfiguration durch dynamische aspektorientierte Programmierung Rekonfiguration durch dynamische aspektorientierte Programmierung Martin Gumbrecht 13. Juni 2014 Motivation Dynamische Rekonfiguration von Softwaresystemen Fehlerbehebung, Sicherheitsaktualisierungen,

Mehr

Bestandsaufnahme und Arbeit an einer Alpha-Version des Saros- Plugins für die IntelliJ-Plattform

Bestandsaufnahme und Arbeit an einer Alpha-Version des Saros- Plugins für die IntelliJ-Plattform Tobias Bouschen Institut für Informatik der Freien Universität Berlin, Arbeitsgruppe Software Engineering Bestandsaufnahme und Arbeit an einer Alpha-Version des Saros- Plugins für die IntelliJ-Plattform

Mehr

ASPECT-ORIENTED DESIGN PATTERNS

ASPECT-ORIENTED DESIGN PATTERNS ASPECT-ORIENTED DESIGN PATTERNS 1 Gliederung I. Entwurfsmuster Aufbau und Beschreibung II. Probleme objektorientierter Entwurfsmuster III. Entwicklung eines aspektorientierten Musters 2 Abschnitt I: Entwurfsmuster

Mehr

Application Frameworks

Application Frameworks Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung

Mehr

Klappe auf! Was macht die JVM denn da?

Klappe auf! Was macht die JVM denn da? Vortrag am 7.7.2016 auf dem Klappe auf! Was macht die JVM denn da? Tobias@Frech.info / @TobiasFrech Tobias Frech Geschäftsführer der Frech IT GmbH Java-Administration, Betrieb von Java-Anwendungen, Bereitschaft

Mehr

Intel Thread Checker

Intel Thread Checker Kurs 1: Ferienakademie 2009 26. September 2009 Gliederung Gliederung Was macht der Thread Checker und warum? Historisches Alternativen Was macht der Thread Checker und warum? Historisches Alternativen

Mehr

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi Projektgruppe Thomas Kühne Komponentenbasiertes Software Engineering mit OSGi Anforderungen der PG IDSE an ein Komponenten- Client Nativer Client Web Client Alternativen IDSE Nutzer Szenario Pipe IDSE

Mehr

Aspektorientierte Middleware Florian Wagner

Aspektorientierte Middleware Florian Wagner Anwendungen der Aspektorientierung (5) Übersicht Middleware? Middleware-Concerns Java 2 Enterprise Edition AO Implementierung AOP & JBoss 2 mid dle ware (mĭd'l-wâr') n. Software that serves as an intermediary

Mehr

AOP by Examples. JavaLand, 25. März 2015, Oliver Böhm. Photo from

AOP by Examples. JavaLand, 25. März 2015, Oliver Böhm. Photo from AOP by Examples JavaLand, 25. März 2015, Oliver Böhm Photo from http://www.ukaop.org.uk/ 1 Wie alles begann U.S. Army Photo 1960 1980 2000 Assembler 1960 1980 2000 FORTRAN COBOL C Assembler 1960 1980 2000

Mehr

EIN NEUER SMARTPHONE-BASIERTER ANSATZ ZUM LEHREN VON JAVA MIT EINEM LERNSPIEL. 14. Oktober 2016, Tobias Jordine

EIN NEUER SMARTPHONE-BASIERTER ANSATZ ZUM LEHREN VON JAVA MIT EINEM LERNSPIEL. 14. Oktober 2016, Tobias Jordine EIN NEUER SMARTPHONE-BASIERTER ANSATZ ZUM LEHREN VON JAVA MIT EINEM LERNSPIEL 14. Oktober 2016, Tobias Jordine AGENDA Einführung Existierende Ansätze Initiale Umfrage Ein neuer Ansatz Ergebnisse 2 EINFÜHRUNG

Mehr

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Überblick + Administratives Besprechung der Vorlesung

Mehr

JavaFX auf Mobile. von Stefan Barth und Stefan Heinze

JavaFX auf Mobile. von Stefan Barth und Stefan Heinze von Stefan Barth und Stefan Heinze JavaFX Was ist JavaFX? Desktopanwendungen für Java (Ablösung von Swing) Properties / Bindings Animationen Effekte MultiTouch Media, CSS FXML, CSS Webbrowser... Einsatzmöglichkeiten

Mehr

Olaf Seng Thomas Genßler Benedikt Schulz. Forschungszentrum Informatik, Karlsruhe

Olaf Seng Thomas Genßler Benedikt Schulz. Forschungszentrum Informatik, Karlsruhe Olaf Seng Thomas Genßler Benedikt Schulz Einführung Grundlagen Vorgehensweise Beispiel Zusammenfassung Übersicht 2 Einführung Szenario & Probleme Hinzufügen einer neuen Funktion zu einer Komponente Erfordert

Mehr

Schneller mit AspectJ

Schneller mit AspectJ November 2007 Performance Day @ JUGS Schneller mit AspectJ Oliver.Boehm@agentes.de Wir über uns Gründung 01.04.2004 Vorstand Olaf Ahl & Wolfgang Clauss Standorte Stuttgart (Firmensitz), Kassel, München

Mehr

Programmierkurs C++ Abstrakte Klassen und Methoden

Programmierkurs C++ Abstrakte Klassen und Methoden Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double

Mehr

ung AOP und AspectJ 2005 agentes AG

ung AOP und AspectJ 2005 agentes AG t ung 1 in AOP und AspectJ Inhalt von Assember bis AspectJ Das Architektur-Dilemma Freie Sicht auf die Businesslogik Do you speak Aschbegt-Dschei? Zusammenfassung 2 von Assembler bis AspectJ 3 AspectC++

Mehr

Automatisierung von SAM-FS Abläufen mit Python Python Binding für die SAM-FS API

Automatisierung von SAM-FS Abläufen mit Python Python Binding für die SAM-FS API Automatisierung von SAM-FS Abläufen mit Python Python Binding für die SAM-FS API Carsten Grzemba IT-Consultant Datentechnik GmbH Auf dem Steine 1 98693 Ilmenau http://www.-dt.de Wer sind wir? Systemhaus:

Mehr

Softwareprojekte mit Kultur

Softwareprojekte mit Kultur Maven Softwareprojekte mit Kultur Patrick Zeising Konfigurationsmanagement Motivation Projektaufbau unterschiedlich Abläufe zum Übersetzen und Deployen unterschiedlich Verwendete Tools, Prozesse, Skripte

Mehr

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team Modulare Anwendungen und die Lookup API Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team Die Notwendigkeit modularer Anwendungen Die Notwendigkeit modularer

Mehr

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig

Mehr

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke Quellcode-Repräsentation in Eclipse Seminarvortrag PG Reclipse Jan Rieke Gliederung Motivation Architektur von Eclipse Quelltext-Repräsentation in Eclipse Java-Modell Java DOM/AST Zusätzliche Konzepte

Mehr

Abacus Formula Compiler (AFC)

Abacus Formula Compiler (AFC) Abacus Formula Compiler (AFC) Alle kennen Excel - jetzt sogar Ihre Java- Applikation! Bringt Tabellenkalkulationen auf die JVM http://formulacompiler.org/ Peter Arrenbrecht für Abacus Research AG http://abacus.ch/

Mehr

App-Entwicklung mit Titanium

App-Entwicklung mit Titanium Masterstudienarbeit Betreuung Prof. Dr. M. von Schwerin 1 Gliederung 1.Motivation 2.Aufgabenstellung 3.Projektbeschreibung 4.Projektstatusbericht 5.Fazit und Ausblick 2 1.Motivation Verbreitung von Smartphones

Mehr

Maven 2 Softwareprojekte mit Kultur

Maven 2 Softwareprojekte mit Kultur Maven 2 Softwareprojekte mit Kultur Patrick Zeising 28.05.2010 Motivation Projekte unterscheiden sich stark im Aufbau Abläufe beim Übersetzen und Deployen unterscheiden sich stark

Mehr

Configurable Embedded Systems

Configurable Embedded Systems Configurable Embedded Systems Prof. Dr. Sven-Hendrik Voß Wintersemester 2017 Technische Informatik (Master), Semester 2 Termin 3, 23.10.2017 Seite 2 Zynq Design Flow Configurable Embedded Systems Wintersemester

Mehr

Objektorientiertes Programmieren

Objektorientiertes Programmieren JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist

Mehr

Einführung in Google Web Toolkit

Einführung in Google Web Toolkit Einführung in Google Web Toolkit Lars Pfannenschmidt Tobias Ullrich Software Freedom Day 2009 Lars Pfannenschmidt, Tobias Ullrich () Einführung in Google Web Toolkit Software Freedom Day 2009 1 / 24 Aus

Mehr

Informatik II (D-ITET)

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Ueberblick + Administratives Besprechung der Vorlesung Einfuehrungsthemen: Eclipse, JUnit, Serienabgabe

Mehr

Dynamisches Aspektweben in C und C++: DAO C++ und µdyner

Dynamisches Aspektweben in C und C++: DAO C++ und µdyner Aspektorientierte Programmierung Dynamisches Aspektweben in C und C++: DAO C++ und µdyner Referent: André Zweschke Referent: André Zweschke 1 Inhalt 1. Motivation: Web-Caches 2. Dynamic Aspect Oriented

Mehr

Mixed Language Programming POLINA RAJKO - MIXED LANGUAGE PROGRAMMING 1/35

Mixed Language Programming POLINA RAJKO - MIXED LANGUAGE PROGRAMMING 1/35 Mixed Language Programming PROSEMINAR EFFIZIENTE PROGRAMMIERUNG SOSE 2018 POLINA RAJKO POLINA RAJKO - MIXED LANGUAGE PROGRAMMING 1/35 Einführung Java public class Main { public static int quadrat(int i)

Mehr

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten Masterarbeit @ PRIP-Preis Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten Michael Rauter Pattern Recognition and Image Processing Group Institute of Computer Aided

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks

Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks AKWI 2015 Luzern Marco Richter (marco.richter@mnd.thm.de) Melanie Vanderpuye (melanie.vanderpuye@zdh.thm.de)

Mehr

CiAO (CiAO is Aspect-Oriented)

CiAO (CiAO is Aspect-Oriented) CiAO (CiAO is Aspect-Oriented) Eine aspektorientiert entworfene Betriebssystemfamilie Daniel Lohmann Olaf Spinczyk Wolfgang Schröder-Preikschat Lehrstuhl für Informatik IV Verteilte Systeme und Betriebssysteme

Mehr

Bessere Software durch AOP? Achim Demelt OOP 2008

Bessere Software durch AOP? Achim Demelt OOP 2008 Bessere Software durch AOP? Achim Demelt OOP 2008 Agenda Motivation Konzepte der Aspektorientierung Aspektorientierung in der Praxis Bessere Software? Die Zukunft von AOP 2 Motivation Software wird immer

Mehr

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) 1 Application Eng. Domain

Mehr

Memory Models Frederik Zipp

Memory Models Frederik Zipp Memory Models Frederik Zipp Seminar: Programmiersprachen für Parallele Programmierung (SS 2010) Fakultät für Informatik - IPD SNELTING LEHRSTUHL PROGRAMMIERPARADIGMEN 1

Mehr

NetBSD Projekt Jahresbericht 2001

NetBSD Projekt Jahresbericht 2001 NetBSD Projekt Jahresbericht 2001 - Hubert Feyrer - Intro Open Source wurde 2001 durch Linux weiter bekannt Open Source ist nicht nur Linux! NetBSD: Open Source Operating System Projekt

Mehr

Endlich! Mission Control und Flight Recorder für Hotspot

Endlich! Mission Control und Flight Recorder für Hotspot Endlich! Mission Control und Flight Recorder für Hotspot Es war einmal Es war einmal Es war einmal Mark Reinhold, 2010 HotRockit Marcus Hirt, Java One 2011 Mission Control Marcus Hirt, Java One 2013 Mission

Mehr

Analyse der Verwendung des Eventlistener-Konzepts einer objektrelationalen Persistenzschicht

Analyse der Verwendung des Eventlistener-Konzepts einer objektrelationalen Persistenzschicht Analyse der Verwendung des Eventlistener-Konzepts einer objektrelationalen Persistenzschicht Julian Lebherz Betreuer: Thomas Büchner Christian Neubert Agenda Zielvorstellung Vergleich von Eventlistener-Systemen

Mehr

Anwendungsentwicklung mit Spring

Anwendungsentwicklung mit Spring Anwendungsentwicklung mit Spring Eberhard Wolff Managing Director Interface21 GmbH Interface21 - Spring from the Source Interface21 Produkte u.a. Spring Framework Spring from the Source Consulting, Training,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Usability-Test für mobile Java-Anwendungen

Usability-Test für mobile Java-Anwendungen Usability-Test für mobile Java-Anwendungen Problemstellung / Abgrenzung Usability Engineering / Patterns Usability Test Tool-Kette Fazit Roland Petrasch Usability-Test für mobile Java-Anwendungen Problemstellung

Mehr

<Insert Picture Here> Performance Tests in der Praxis am Beispiel von Oracle BPM/BPEL

<Insert Picture Here> Performance Tests in der Praxis am Beispiel von Oracle BPM/BPEL Performance Tests in der Praxis am Beispiel von Oracle BPM/BPEL Alexander Fox Senior Berater Agenda Dauer ca. 45 Minuten Begriffsbestimmung Software-Tests

Mehr

Sommersemester Implementierung I: Struktur

Sommersemester Implementierung I: Struktur Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.

Mehr

Mit dem Google-Web-Toolkit moderne Web-Anwendungen entwickeln

Mit dem Google-Web-Toolkit moderne Web-Anwendungen entwickeln Mit dem Google-Web-Toolkit moderne Web-Anwendungen entwickeln Ziel dieses Vortrags Ich möchte Sie davon überzeugen, dass das Google-Web-Toolkit (GWT) das aktuell beste Tool zur Erstellung von modernen

Mehr

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components

Mehr

App-Entwicklung für das iphone. Von der Idee bis in den App Store

App-Entwicklung für das iphone. Von der Idee bis in den App Store App-Entwicklung für das iphone Von der Idee bis in den App Store Ziel dieses Vortrags Wir wollen die Ausgangssituation im März 2010 aufzeigen die Einbindung der App in den Gesamtkontext ebanking demonstrieren

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht

Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools - ein Erfahrungsbericht Martin Mühlemann CSA Engineering AG, CH-4500 Solothurn Ausgangslage Embedded-Firmware testen für ein

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

SW-Archäologie mit AOP (Praxisbericht)

SW-Archäologie mit AOP (Praxisbericht) SW-Archäologie mit AOP (Praxisbericht) Ausgrabungen vergangener SW-Architekturen 9. Workshop SW-Reengineering Bad Honnef Mail 2007 Oliver.Boehm@agentes.de agentes AG 2006 Aktionäre Pironet NDH AG (Hauptaktionär)

Mehr

Modularisierung und Inversion of Control mit Spring done right

Modularisierung und Inversion of Control mit Spring done right Modularisierung und Inversion of Control mit Spring done right Fabian Knittel, David Burkhart andrena objects ag Entwicklertag Karlsruhe, 21. Mai 2014 1 Modularisierung https://www.flickr.com/photos/juhansonin/4734829999/

Mehr

Das a-kernel Projekt

Das a-kernel Projekt Das a-kernel Projekt Übersicht 1. Vorstellung a-kernel Projekt 1. Ziele 2. AspectC 2. Beispiel 1: Prefetching in FreeBSD v3.3 1. Zugriffsart normal 2. Zugriffsart sequential 3. Beispiel 2: NFS 1. Erweiterung

Mehr

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Normann Decker 1 Philip Gottschling 2 1 Institut für Softwaretechnik und Programmiersprachen Universität zu Lübeck decker@isp.uni-luebeck.de

Mehr

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.

Mehr

GraphHopper-Routing mit Maut-Erweiterung

GraphHopper-Routing mit Maut-Erweiterung Vorstellung der Thesis: GraphHopper-Routing mit Maut-Erweiterung Herr Robert Klemm M.Sc. Geodatenerfassung und visualisierung Robert.Klemm1988@googlemail.com Passau, 23.03.2017 Gliederung 1. Einleitung

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie

Mehr

Java Reflection. Andreas Lochbihler. 15. Mai Lehrstuhl Programmierparadigmen Universität Karlsruhe

Java Reflection. Andreas Lochbihler. 15. Mai Lehrstuhl Programmierparadigmen Universität Karlsruhe Java Reflection Andreas Lochbihler Lehrstuhl Programmierparadigmen Universität Karlsruhe 15. Mai 2008 Was ist Reflection? Ein Paket (package) von Interfaces und Klassen, die dem Programm zur Laufzeit Zugriff

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Kurzanleitung Eclipse

Kurzanleitung Eclipse Autor: Prof. Dr. Bernhard Humm, FB Informatik, FH Darmstadt Datum: 30. November 2005 1 Starten Für das Praktikum verwenden wir Eclipse Version 3.1 und JDK 1.5 Starten Eclipse: Doppelklick auf das Icon

Mehr

C++ Templates - eine kleine Einführung. Funktionstemplates. Fabian Scheler, Peter Ulbrich, Niko Böhm. 20. Oktober 2008

C++ Templates - eine kleine Einführung. Funktionstemplates. Fabian Scheler, Peter Ulbrich, Niko Böhm. 20. Oktober 2008 Überblick 1 Allgemein C++ Templates - eine kleine Einführung Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Technologische Analysen im Umfeld Sozialer Netzwerke

Technologische Analysen im Umfeld Sozialer Netzwerke Fakultät Informatik & IBM Lehrstuhl Rechnernetze & Centers for Solution Innovation :: Hamburg Technologische Analysen im Umfeld Sozialer Netzwerke Verteidigung der Diplomarbeit Dresden, 10.11.2008 peter@schnitzlers.de

Mehr

Fuzzing. Robert Buchholz, Kai Dietrich, Björn Lohrmann. 26. Januar Rechnersicherheit Praktikum WS Fuzzing

Fuzzing. Robert Buchholz, Kai Dietrich, Björn Lohrmann. 26. Januar Rechnersicherheit Praktikum WS Fuzzing Fuzzing Robert Buchholz, Kai Dietrich, Björn Lohrmann Rechnersicherheit Praktikum WS 2007 26. Januar 2008 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Mehr

Evaluation der Leistungsfähigkeit ausgewählter Mutationstestwerkzeuge

Evaluation der Leistungsfähigkeit ausgewählter Mutationstestwerkzeuge SKILL 2015 Lea Kristin Gerling Inhalt Gliederung 1. Einleitung 2. Grundlagen 3. Vorstellung der Mutationstestwerkzeuge 5. Fazit 30.09.15 01.10.2015 Lea Kristin Gerling 2 2 2 Inhalt Gliederung 1. Einleitung

Mehr