direkt zum Inhalt springen

direkt zum Hauptnavigationsmenü

Sie sind hier

TU Berlin

Inhalt des Dokuments

Dipl.-Ing. Marcus Mews

Email:  m.mews(AT)tu-berlin.de

Raum: TEL 1205
Telefon: ++49 30 314 - 24330
Fax: ++49 30 314 - 73488

Sprechstunde: Freitag 16 - 17 Uhr

Forschung • Abschlussarbeiten • Publikationen • Lehre

Forschungsschwerpunkt

Software-Entwickler müssen regelmäßig ihre Programme umgestalten. Grund dafür sind notwendige Änderungen, die durch die Pflege oder das Erweitern von Software entstehen. Für diese Quellumgestaltungen (engl. Refactorings) werden überlicherweise Funktionen in den Entwicklungsumgebungen genutzt. Leider unterstützen etablierte Entwicklungsumgebungen wie Eclipse, IntelliJ, NetBean oder MS Visual Studio einige Quellumgestaltungen kaum oder nur fehlerhaft.

Abbildung 1: Führt Eclipse diese Umgestaltung korrekt durch?
Lupe [1]

Abb. 1 zeigt die Umgestaltung Variable Einfügen (engl. Inline-Temp). Wird Variable Einfügen auf Zeile 2 im Beispiel angewendet, soll die Variable ‚x‘ an alle Stellen kopiert werden, wo die Variable ‚y‘ verwendet wird. Allerdings entsteht durch das einfache Einsetzen von ‚x‘ für ‚y‘ in Zeile 3 ein Fehler: Der Ausdruck ändert sein Ergebnis, denn ‚z = x++ + x‘ hat das Ergebnis z = 3 und nicht mehr z = 2 wie zuvor. Leider verhalten sich hier alle etablierten Entwicklungsumgebungen fehlerhaft und ersetzen einfach ‚x‘ durch ‚y‘. Hierdurch ändert sich das Programmverhalten und Fehler können unbeabsichtigt entstehen.

(MP4, 12,1 MB) [2]
Korrekte Umgestaltungen von Programmen mit CodeShaker.
Lupe [3]

Ich entwickle einen Ansatz, um Umgestaltungen wie Variable Einfügen automatisch, schnell und fehlerfrei durchzuführen. Der Ansatz ist sprachunabhängig, erweiterbar und unterstützt Programmiersprachen wie Java und C#. Das Video (rechts) zeigt den Stand der Forschungsarbeit von Oktober 2014: Nach einer Einführung in die Problematik der Quellumgestaltungen wird kurz gezeigt, welche Fehler bekannte Werkzeuge wie Eclipse begehen. Anschließend wird für verschiedene Umgestaltungen am Beispiel von Java gezeigt, wie sich der entwickelte Ansatz im Prototyp CodeShaker bewährt. Zur Zeit kann CodeShaker nur an bestimmten Beispielen eingesetzt werden. Die Entwicklung von CodeShaker konzentriert sich daher aktuell darauf, die Umgestaltungen auf beliebige Beispiele zu verallgemeinern. Dazu müssen eine Alias-Analyse implementiert, weitere Abhängigkeiten von Java-Anweisungen (wie try/catch) beachtet und das Change-Method-Signature-Refactoring vervollständigt werden.

Nach oben

Offene Abschlussarbeiten:

  • (aktuell keine)

Nach oben

Publikationen

Mews, M. and Helke, S. (2012). Towards Static Modular Software Verification [7]. Software Engineering 2012 - Workshopband, Fachtagung des GI-Fachbereichs Softwaretechnik. GI, 147-153.


Mews, M. and Svacina, J. and Weissleder, S. (2012). From AUTOSAR Models to Co-simulation for MiL-Testing in the Automotive Domain [8]. Proc. of the International Conference on Software Testing, Verification, and Validation. IEEE Computer Society, 519-528.


Projekte

  • VirtuOS [9]

Lehre

Softwaretechnik-Master-Projekt
 
WiSe 2011/12 [10]
Programmieren II für Wirtschaftsinformatiker (PROG 2)

 
SoSe 2012 [11] • SoSe 2013 [12] • SoSe 2014 [13]
MPGI3–Praktikum / Programmierpraktikum

WiSe 2012/13 [14] • WiSe 2013/14 [15] • WiSe 2014/15 [16]

Nach oben

Kontakt

Marcus Mews
314 - 24330
Sprechstunde: Fr 16 - 17 Uhr
Raum TEL 1205
E-Mail-Anfrage [17]

Anschrift

Technische Universität Berlin
Fakultät IV
Softwaretechnik
Sekr. MAR 3-3
Raum MAR 6.030 A
Marchstr. 23
10587 Berlin
------ Links: ------

Zusatzinformationen / Extras

Direktzugang

Schnellnavigation zur Seite über Nummerneingabe

Copyright TU Berlin 2008