Aktuelle Forschungsprojekte am Lehrgebiet Programmiersysteme


Neu: DFG-Projekt "Sprachübergreifende, constraintbasierte Refaktorisierung von Programmen" (STE906/4-1)


Die aktuelle Projekttätigkeit ist in drei Gebiete eingeteilt:


Softwareentwicklungswerkzeuge zur Erhöhung der Programmiererproduktivität

Werkzeugentwicklung ist eines der Schwerpunktforschungsthemen am Lehrgebiet Programmiersysteme.

Cross-Language Refactoring: Grundlagen constraintbasierter, sprachübergreifender Refaktorisierung, zugleich Grundlage aller nachfolgend genannten Refaktorisierungsprojekte
ein Refaktorisierungswerkzeug zur automatischen Extraktion aus und Verwendung von Interfaces oder abstrakten Klassen in einem Programm
ein Builder zur Markierung unnötig spezifischer Typen in Deklarationen von Variablen und Methoden
ein Werkzeug, das es erlaubt, die Sichtbarkeit von Programmelementen ihrer tatsächlichen Benutzung entsprechend einzuschränken
ein Refaktorisierungswerkzeug zur Reduktion des durch Vererbung aufgeblähten Protokolls einer Klasse und zur Entfernung unerwünschten Subtypings
  • Infer Name
ein Werkzeug zur Analyse des konsistenten Gebrauchs von Variablennamen in Zuweisungsketten unter Berücksichtigung der Typen der Variablen
ein Werkzeug zur Darstellung von Paketabhängigkeiten und deren Invertierung durch Einführung und Verwendung maßgeschneiderter Interfaces
ein Refaktorisierungswerkzeug zur Verwendung des Role Object Patterns anstelle von Subklassen
eine Erweiterung von JUnit, die es erlaubt, fehlgeschlagene Testfälle wahrscheinlichen Defektursachen im Quelltext zuzuweisen
ein Test-Framework für die Entwicklung von Refaktorisierungswerkzeugen in Eclipse, das ein zu testendes Refaktorisierungswerkzeug auf alle möglichen Programmelemente eines Testprojekts anwendet und nach jeder Anwendung mittels vorhandener Testfälle prüft, ob das Programm immer noch dieselbe Bedeutung hat
ein Refaktorisierungswerkzeug, das ausgehend von einer zu testenden Klasse für alle weiteren Klassen, von denen eine Abhängigkeit besteht, das Gerüst für eine Mock-Klasse erzeugt
eine Testumgebung für JUnit-Tests. Durch Invertierung von Typ-Constraint werden Codeänderungen ("Mutanten") erzeugt, die das Programmverhalten mit hoher Wahrscheinlichkeit ändern. Erkennen JUnit-Tests diese Verhaltensänderung nicht, können Rückschlüsse auf mangelnde Testabdeckung gezogen werden.

Konzepte moderner Programmiersprachen

Konzepte moderner Programmiersprachen ist ein anderes Schwerpunktthema am Lehrgebiet Programmiersysteme.

  • Interface-Based Programming
Untersuchungen zur systematischen Verwendung von Interfaces in Java; eng gekoppelt an intoJ
Erweiterung der aspektorientierten Programmiersprache AspectJ um Typebenen; Vermeidung versehentlicher Rekursion
implizite Aufrufe mit impliziter Ankündigung für Java, gleichzeitig Erhalt von Klassen als Modulen unter aspektorientierter Programmierung
eine Programmiersprache mit der Möglichkeit zur Erweiterung ihrer eigenen Syntax direkt im Quellcode eines Programms.

Softwaremodellierung

Die Aktivitäten des Lehrgebiets im Bereich Softwaremodellierung ruhen zur Zeit. So ist derzeit nur ein Projekt definiert: Modeltalk.

  • Modeltalk
ein Werkzeug, das das für die Modellierung, was Smalltalk für die Programmierung ist

© 2011-2012 Fernuniversität in Hagen, Lehrgebiet Programmiersysteme, Friedrich Steimann