main page

staff

teaching

theses

research

publications

books

press

jobs

download


TU-BS

FB Informatik
TU Braunschweig

Diplom-/Masterarbeit

Automatische Analyse der Evolution von Softwareprojekten

Große Softwareprojekte werden heutzutage von vielen Entwicklern parallel implementiert. Dieses trifft insbesondere auf Open-Source-Projekte zu, deren Entwicklung inkrementell fortschreitet. Die dabei verwendeten Evolutionstechniken sind interessant zu untersuchen, dabei jedoch nur die Veränderungen zwischen einzelnen, stabilen Versionsschritten zu betrachten, wird dem agilen Charakter der Entwicklung nicht gerecht. Vielmehr erscheint es sinnvoll, jede einzelne Veränderung am Quellcode zu betrachten und so ein wesentlich fein-granulareres Bild der Entwicklung aufzuzeichnen.

In dieser Arbeit soll ein System entworfen werden, das die Evolution eines Softwareprodukts anhand des entstandenen Quellcodes nachvollziehbar macht. Die einzelnen Versionen sollen automatisch über eine Versionsverwaltungssoftware (CVS) bezogen werden und auf einem Client-Rechner in einen kompilierbaren Zustand versetzt werden, um sie dann zu analysieren.

In der Analysephase sollen automatische Verfahren eingesetzt werden, um die Evolution des Projekts zu verfolgen und eventuell grafisch aufzubereiten. Dabei können zum einen Verfahren eingesetzt werden, die Kenngrößen zu jeder Programmversion bestimmen und deren Verlauf über das Projekt darstellen. Dafür eignen sich besonders Codemetriken wie die „lines of code“ oder Verfahren, die spezifisch für eine Programmiersprache sind, wie z.B. die Anzahl bestimmter erwünschter bzw. unerwünschter Programmkonstrukte. Zum anderen gibt es Analysemöglichkeiten, wie die automatische Identifikation von so genannten Refactoring-Schritten (vgl. Martin Fowler, Refactoring, Addison-Wesley, 1999), die sich direkt aus dem Vergleich verschiedener Programmversionen ergeben.

Vorkenntnisse: Java, CVS-Grundkenntnisse
Betreuer und Aufgabensteller: Holger Krahn, IZ 503
Beurteilung: Prof. Dr. Bernhard Rumpe