Agentenbasierte Simulationsmodelle zur Unterstützung der Qualitätsüberwachung von Softwareprojekten

Agentenbasierte Simulationsmodelle zur Unterstützung der Qualitätsüberwachung von Softwareprojekten

Im Projekt sollen Aussagen über die zu erwartende Qualität einer zu entwickelnden oder sich in der Entwicklung befindender Software mittels Simulation gewonnen werden. Diese Aussagen werden Projektmanager bei Managemententscheidungen bzgl. des weiteren Projektverlaufs unterstützen. Dabei wird es möglich sein, durch das Ändern verschiedener Parameter unterschiedliche Projektverläufe zu simulieren und die Simulationen bezüglich der Softwarequalität (z.B. zu erwartende Fehleranzahl oder Wartungsqualität) auszuwerten. Durch die iterative Anpassung der Parameter (z.B. Anzahl der Entwickler) kann eine optimale Konstellation für das Projekt ermittelt werden. Die dadurch entstehende Feedback-Schleife ist in Abbildung 1 illustriert.

Motivation und technischer Hintergrund

Gebotene Hilfestellungen für einen Projektmanager berücksichtigen zum Beispiel die Vorhersage von fehleranfälligen Bereichen im Quellcode. Ein Manager könnte durch intensiveres Testen problematischer Bereiche im Vorhinein auf mögliche Probleme reagieren. Eine weitere Anwendung dieses Ansatzes ist die Identifizierung von potentiell komplexen Quellcodebereichen, die Kandidaten für ein Refactoring sind. Die Anwendung von Refactorings führt dann zur Verbesserung der Wartbarkeit. Auch der notwendige Aufwand zur Anwendung von Refactorings kann mit Hilfe des zu entwickelnden Simulationswerkzeugs abgeschätzt werden. 

Unabdingbar für eine realistische Simulation von Softwareprozessen ist ein tiefes Verständnis von Softwareevolution. Die Analyse der Evolution von Open-Source-Projekten dient in diesem Projekt als Schätzung für die notwendigen Simulationsparameter. Die Nachsimulation bereits beendeter bzw. sich in der Weiterentwicklung befindender Open-Source-Projekte wird zur Validierung des Ansatzes durchgeführt.

Als Simulationsmethode wird in diesem Projekt agentenbasierte Simulation verwendet. Entwickler werden als aktive Agenten modelliert, die Softwareartefakte (modelliert als passive Agenten) bearbeiten und verändern. Das Verhalten der Entwickler wird dabei durch Regeln beschrieben, nach denen die aktiven Agenten während der Simulation handeln. Die Machbarkeit des Ansatzes wurde bereits in dem SWZ-Projekt 11.4.2 gezeigt.

Zu untersuchende Phänomene

Bisherige Simulationsmodelle spiegeln bisher nur sehr allgemeine Aspekte wie Wachstum, Change-Coupling (Abhängigkeit durch das zeitgleiche Ändern von Dateien) und Lebensspanne von Bugs wider. Es sollen in diesem Projekt konkretere Aspekte wie z.B. Änderungsmuster (z.B. zur Simulation des Effekts von Refactorings) und Entwicklererfahrung (z.B. zur Modellierung der Änderung des Entwicklerverhaltens über die Zeit) berücksichtigt werden, die sehr konkrete Aussagen über die zu erwartende Entwicklung von Softwareprojekten erlauben. 

Für die Bewertung der Simulationsergebnisse wird das im SWZ-Projekt verwendete CRF-basierte Verfahren angepasst, verbessert und verfeinert werden. 

Eine technische Limitierung des im SWZ-Projekt 11.4.2 verfolgten Ansatzes besteht darin, dass große Projekte nur langsam simuliert werden konnten und dass verschiedene Verhaltensaspekte von Softwareentwicklern (z.B. Zielorientiertheit und Kommunikation zwischen den Entwicklern) nicht modelliert und simuliert werden konnten. Diese Probleme sollen hier durch die Verwendung und Weiterentwicklung der skalierbaren Simulationsplattform "MASeRaTi" bearbeitet werden. MASeRaTi wird an der TU Clausthal im Rahmen des SWZ-Projekts DeSim entwickelt.

AgentenbasierteQualitaetsueberwachung.gif

Abbildung 1: Feedback-Schleife für Projektmanager.