Tool-Supported Project Prediction

Abstract

Dealing with an increasing complexity of software, and thus, software projects, managing those projects become more and more difficult. While monitoring a software project is a necessary task to identify potential failures or quality loss, often projects managers can only react. On the other hand, predicting the project?s progress can help project managers to avoid certain pitfalls. For this purpose, they often rely on their experience. In order to support unexperienced managers or help in new situations, a tool-based prediction using historical project data were proposed.
To the best of our knowledge, all proposed prediction methods deal with metrics such as lines of code, number of defects, etc. As project managers are usually more interested in metrics such as CPI and SPI, in this thesis, we contribute with a framework that facilitates prediction for all kinds of metrics. This framework uses data mining methods to gain knowledge from past projects, and with that, predict the progress for an ongoing project. Moreover, we implemented a prediction tool that forecasts CPI and SPI values, and evaluates and visualizes the prediction results.
We evaluated the prediction tool with the historical data of ITERGO. The evaluation shows promising results. Moreover, the framework is designed for adaptability and extendability. Each knowledge discovering step is encapsulated in a single component with a clear API. Moreover, the visualization as well as the data mining library are loosely-coupled and can be easily replaced. Thus, enabling the framework to be used in different problem domains.

Downloads

Thesis PDF
Slides PDF

Hintergrund

Der Bedarf an Softwaresystemen ist in vielen Wirtschaftsbereichen sehr hoch. Dies resultierte darin, dass sich die Softwareentwicklung zu einem neuen Industriezweig entwickelte. Verschiedene Rahmenbedingungen, unter anderem hoher Termindruck und Budgetrestriktionen, haben starken Einfluss auf Projekterfolge. Um pontentiellem Misserfolg oder Qualitätsverlust vorzubeugen, muss der Entwicklungsprozess ständig überwacht werden. Dabei sollen kritische qualitative und quantitative Komponente identifiziert und anschlieend analysiert werden. Üblicherweise wird die Softwareproduktentwicklung auf verschiedene Phase aufgeteilt. Die Qualität von Softwarekomponenten in jeder Phase wird mit Hilfe von Software-Metriken bewertet [1, 2].

Forschungslücke

Prognosen von Projektverlauf und Aufwand werden auf Basis von Daten und Erfahrungen aus bisherigen Projekten erstellt. Hierfür nutzt man Informationen aus anderen Projekten um die Einflussfaktoren zu erkennen und zu analysieren. Man muss dabei zwischen produktbezogene Einflussfaktoren (Quantität, Qualität und Komplexität) und prozessbezogene Einflussfaktoren (Projektdauer, Personalqualität und Entwicklungsumgebung) unterscheiden [5].

Aus verschiedenen Metriken werden Informationen zu unterschiedlichen Zeitpunkten des Projektverlaufs gesammelt und analysiert. Während dieser Analyse müssen die Informationen gemäß bestimmter Kriterien für eine weitere Verarbeitung differenziert bzw. klassifiziert werden. Zu diesem Zweck wird ein Clustering-Algorithmus zur Gruppierung der gesammelten Metriken eingesetzt. Herbold et. Al. nutzen den Expectation-Maximization-Algorithmus (kurz EM-Algorithmus) als Clustering Methode, um eine retrospektive Analyse von Projektphasen anhand von Metriken durchzuführen [4]. Dabei werden die Cluster auf Projektphasen abgebildet. Die Autoren geben an, dass der vorgeschlagene Ansatz sich nur für die letzte Phase bewährt hat. Bei den früheren Phasen wurden die Probleme bei der Anwendung des Algorithmus identifiziert.

Dieses Beispiel dient zur Verdeutlichung, dass eine Reihe von Clusterung-Verfahren zur Projektanalyse und -prognose existiert [3]. Diese Ansätze haben ihre Schwächen und Stärken gezeigt. In Rahmen dieser Masterarbeit werden verschiedene Verfahren und Fallstudien untersucht und analysiert. Gemäß der Ergebnisse dieser Recherche wird eine Auswahl des eingesetzten Clustering-Verfahren getroffen.

Aufgaben

Ziel dieser Arbeit ist die Entwicklung eines Werkzeuges auf Basis der EMI Referenz Architektur, dass eine Entwicklungsprognose für ein Softwareprojekt auf Basis von gegebenen diskreten und kontinuierlichen Projektdaten (z.B. Tickets oder Budgetreports) und verschiedenen Software-Metriken berechnen kann. Dabei steht ein lernendes System mittels Data-Mining im Mittelpunkt. Spezifische Data-Mining-Algorithmen sollen dabei den Rechenkern des Tools darstellen. Das Prognosewerkzeug soll es ermöglichen, die Rohdaten zu normalisieren und in Form von Zeitreihen auszugeben. Danach werden die Zeitreihen z.B. mittels Clustering-Algorithmus sinnvoll gruppiert und für die weitere Analyse an eine Visualisierungskomponente weitergeleitet.

Im ersten Schritt müssen die potenziellen Anwender des entwickelten Werkzeuges und deren Interessen ermittelt werden. Im Voraus wird angenommen, dass alle Anwender innerhalb eines Unternehmens in drei primäre Rollen aufgeteilt werden können. Unter dieser Annahme wird zwischen Projektleiter, Prozess-Experten und Manager unterschieden. Der Projektleiter konzentriert sich auf die direkten Metrikergebnisse und nutzt diese Ergebnisse um eine Projektprognose zu berechnen. Die Prozess-Experten organisieren den Entwicklungsprozess von mehreren Projekten, wobei deren Projektcharakteristiken eine große Bedeutung haben. Die Aufgabe eines Managers besteht in der Überwachung des Risikos von laufenden und anstehenden Projekten. Manager benötigen daher viele verschiedene Information über laufende Projekte.

Zusätzlich zu den definierten Anwendern müssen Anwendungszenarien für jede Rolle ausgearbeitet werden. Diese Aufgabe beinhaltet die Definition von Anforderungen und Use Cases. Als nächstes muss eine praxisorientierte Recherche durchgeführt werden. Dabei soll festgestellt werden, ob schon ein ähnliches ?best-practice? Verfahren zum sinnvollen Clustering von Projektzeitreihen existiert. Weiterhin soll untersucht werden, welche Clustering-Algorithmen für die Rechenkerne des Prognose-Werkzeuges gewählt werden können. Der zentrale Punkt dieser Überlegung ist die sinnvolle Wahl des abstandsmaßes des Clusters um ähnliche Projekte zu identifizieren.

Das Prognosewerkzeug soll es dem Benutzer darüber hinaus ermöglichen, verschiedene Rechenkerne auf verschiedene Zeitreihen anzuwenden. Desweiteren soll die Architektur des Prognosewerkzeuges sowie ein Datenadapter zum Datenexport aus der Erfahrungsdatenbank des Unternehmens Intergo entworfen und implementiert werden.

Literatur

[1] Thanh Vi Bach, Entwurf prognostischer Softwareprozessmetriken auf Basis iterativen Clusterings. Masterarbeit, 7. Februar, 2014.
[2] Holger Blau, Stefan Eicker, Thorsten Spies, Reifegradüberwachnug von Software. ICBResearch Report No.20, ISSN 1860-2770, August, 2007.
[3] Jiawei Han, Micheline Kamber, Data Mining: Concepts and Techniques, Book, Simon Fraser University, ISBN 1-55860-489-8, 2001.
[4] Steffen Herbold, Jens Grabowski, Stephan Waack. Retrospective Project Analysis Using the Expectation-Maximization Clustering Algorithm. Institute of Computer Science, University of Göttingen, Germany, 2011.
[5] Methoden und Verfahren der Aufwandsch¨atzung im Vergleich, Fallstudie. Accessed: 11. August 2014, http://winfwiki.wi-fom.de/index.php/Methoden_und_Verfahren_der_Aufwandschtzung_im_Vergleich.