Wahyudin, D. S. F. (2008). Quality prediction and evaluation models for products and processes in distributed software development [Dissertation, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-25628
Die moderne Entwicklung großer Softwaresysteme erfolgt typischerweise in einem verteilten - häufig global ausgerichteten - Umfeld. Eine verteilte Softwareherstellung (Distributed Software Development, DSD) ist sowohl in traditionellen Unternehmen und Organisationen als auch verstärkt im Open Source Umfeld anzutreffen.<br />Speziell in DSD-Projekten benötigen Projekt- und Qualitätsleiter geeignete Methoden zur Evaluierung des aktuellen Projektfortschritts (beispielsweise die Qualität der bisher erstellten Produkte und durchgeführten Aktivitäten) und zuverlässige Modelle für die Einschätzung der zu erwartenden Produktqualität für neue Softwareversionen (Releases). Durch die globale Verteilung der Projektteams im DSD-Umfeld wird die Einschätzung des Projektfortschritts zunehmend komplexer und unzuverlässiger, da eine persönliche Abstimmung in Form von Meetings zur Überprüfung von (high-level) Schätzergebnissen, wie beispielsweise der Fertigstellungsgrad einer Softwareversion, aufgrund der räumlichen Trennung meist nur schwer realisierbar sind. Eine zentrale Frage für Projekt- und Qualitätsleiter im Rahmen der Projektsteuerung ist, ob eine vorliegende Softwareversion bereits freigegeben werden kann oder ob Teile des Produktes vor der Freigabe noch überarbeitet werden müssen. Zur Unterstützung dieser Entscheidung sind erforderlich: (1) Evaluierungs-Framework zur Einschätzung der Produktqualität (welche Daten müssen erhoben werden und wie können sie zu aussagekräftigen Metriken aggregiert werden) (2) Gültigkeitsprüfung der erhobenen Daten auf unterschiedlichen Granularitätsstufen.<br />(3) Schätzmethoden über die zukünftige Produktqualität einschließlich einer Rückkopplung über die Gültigkeit der Schätzergebnisse.<br />Die Fehlerfreiheit bzw. die Anzahl der im Produkt verbleibenden Fehler ist ein Hauptkriterium für die Feststellung der Qualität eines Softwareproduktes im Rahmen dieser Arbeit. Ein Fehler ist dabei definiert als eine Abweichung der Lösung von definierten Anforderungen (sowohl funktionale Anforderungen aber auch nicht-funktionale Anforderungen, wie Zuverlässigkeit, Sicherheit, Wartbarkeit oder Benutzerfreundlichkeit). Da Fehler in einem Softwareprodukt den realen Wert für den Anwender reduzieren, sind Fehleraufzeichnungen und Fehlervorhersagen für künftige Releases zentrale Kenn- und Steuergrößen für die Qualität eines Produktes bzw. für die Planung neuer Produkte und Releases.<br />Fehlerzählungen und Datensammlungen aus Qualitätsverbesserungsinitiativen sind zentrale Elemente zur Feststellung der Produktqualität (beispielsweise Fehlerkorrektur im Rahmen eines Entwicklungsprozesses). Aufbauend auf historischen Projekt- und Fehlerdaten wird ein Vorhersagemodell erstellt, das die Basis für Fehlerschätzungen zukünftiger Releases bildet. In der industriellen Praxis werden Frameworks für die Evaluierung der Produkt- und Prozessqualität für traditionelle Softwarekennzahlen eingesetzt. Diese Frameworks unterstützen jedoch keine verteilte Entwicklung im DSD-Umfeld, wie sie im Rahmen der Entwicklung von verteilten Open Source Software Produkten (OSS) erforderlich ist. Die Ergebnisse einer systematischen Literaturanalyse zeigten folgende Einschränkungen bei Vorhersagemodellen in einem verteilten Entwicklungsumfeld: (1) Unsystematische Planung von Qualitätsvorhersagen.<br />(2) Modelle, die ausschließlich auf Produktmetriken aufgebaut werden, sind zwar an sich ausreichend, weisen aber eine zu geringe Zuverlässigkeit in der Fehlerschätzung bzw. Vorhersage auf. Dieser Nachteil wirkt sich speziell bei Projekten mit kurzen Entwicklungszeiten, wie es in zahlreichen OSS Projekten üblich ist, aus.<br />(3) Unzureichende Qualität der erhobenen Daten aus unterschiedlichen und heterogenen Datenquellen.<br />Zentrale Forschungsfragen dieser Arbeit sind a) eines systematische Untersuchung großer OSS Projekte im Hinblick auf wichtige Projektergebnisse und Prozessattribute, die zur Einschätzung der Produktqualität und des Projektfortschrittes verwendet werden können und b) die Untersuchung der Angemessenheit und Zuverlässigkeit fortgeschrittener Modelle für objektive Vorhersage der Produktqualität im DSD Umfeld.<br />Zentrale Forschungsbeiträge dieser Arbeit:<br />1. Prozess-Qualitäts-Metriken, so genannte "Project health indicators", erfassen Entwicklungsaktivitäten im Rahmen der Produktverbesserung und ermöglichen die Evaluierung dieser Indikatoren in DSD-Projekten.<br />2. Qualitätsindikatoren für Softwareprodukte, die einen Wahrscheinlichkeitsbereich zur Verfügung stellen statt eines fixen Wertes ohne Berücksichtigung von Datenschwankungen. 3. Forschungs-Roadmap für die Software Fehlervorhersage basierend auf einem systematischen Literaturreview.<br />4. Strukturiertes Framework für Qualitätsvorhersage für Verteilte Softwareentwicklungen.<br />5. Verbesserte Modelle zur Qualitätsvorhersage basierend auf Produkt- und Prozessmetriken, die aus heterogenen Projekt-Repositories gewonnen werden können (z.B. Issue Tracker, Source Code Management).<br />6. Empirische Evaluierung im Rahmen von realen Softwareprodukten in einem realen Umfeld: Fallstudien unterschiedlicher OSS Projekte.<br />Der vorgestellte Forschungsansatz basiert auf den folgenden Annahmen: In einem ausreichend stabilen Prozessumfeld können durch eine Reihe von Beobachtungen der Produktqualität im jeweiligen Kontext a) signifikante Kontextparameter identifiziert und b) die Produktqualität zu einem bestimmten Zeitpunkt basierend auf den gemessenen Kontextparametern vorhergesagt werden. Dieser Ansatz wird am Beispiel von DSD (OSS) Projektumfeld vorgestellt. Eine weitere mögliche Anwendung, die nicht im Fokus dieser Arbeit steht, umfasst die Evaluierung und Vorhersage von Qualitätsattributen in kommerziellen (nicht OSS) Projekten.<br />
de
Modern large-scale software development is typically organized in distributed, often globally dispersed, environments. Distributed Software Development (DSD) projects occur both in traditional organizations and increasingly sophisticated open source development initiatives. Leading roles in DSD, such as the project manager and the quality manager, need to evaluate the actual project progress (e.g., quality of products produced and activities conducted) and trustworthy models for the prediction of future product quality such as release candidates. However, in a DSD context the human reporting of progress becomes increasingly complex and the reliability can become questionable, particularly if face-to-face meetings are not possible that allow to personally checking the validity of high-level estimates such as the readiness of a software version for release.<br />For steering the project, e.g., by deciding to release a current software version or to wait and re-work parts of the software, project managers need 1. a quality evaluation framework that defines what data to collect and convert into meaningful numbers on a higher level; 2. an approach to check data for validity on all levels; 3. an approach to predict the quality of future products with feedback on the likely accuracy of the prediction result. In this work we focus on absence of defects as the major quality criterion of a software product, where defects are deviations from requirements that need to be repaired. The focus on defect counting and defect prediction are particularly important as defects decease value for users, and other quality criteria (e.g. reliability, security, maintainability, usability) can be formulated as requirements and thus defects can also cover these criteria. Hence, the terms of quality evaluation in our context is focus on counting defects and collect data that is related to quality improvement (e.g., development processes that related to defect removal activities). While quality prediction consists of collecting historical data from project data sources to construct prediction models that can be used to estimate number of defects or defective work products prior to release. Unfortunately, while there are quality evaluation frameworks in traditional software metrics, to our knowledge there is no appropriate framework available that can be calibrated to modern DSD environments such as Open Source Software (OSS) environments. Moreover, our systematical literature review found that prediction models in distributed development settings have to cope with the following limitations such as a) unsystematic quality prediction planning, b) models based on product metrics alone shown sufficient accuracy but poor reliability in particular for projects with short development cycle such as in many OSS projects c) insufficient quality of collected data originated from heterogeneous project data sources. Key research questions of this thesis are a) to investigate for large OSS projects the most important development artifact and process attributes that can indicate software product quality for project progress evaluation and b) to investigate the accuracy and reliability of advanced models for objective quality prediction in the context of DSD projects. Main research contributions of this work are:<br />1. Process quality metrics, so-called project "health indicators", which capture correlated development activities in product quality improvement, and propose ways to evaluate such "health indicators" in DSD projects. 2. Quality indicators for software products that provide a range for the likely value of the indicators rather than a fixed value without indication of data volatility. 3. Research roadmap for software defect prediction based on systematical literature review 4. Structured framework for quality prediction in distributed software development settings 5. Improved quality prediction methods based on product and process metrics that can be collected from heterogeneous project repositories (e.g. issue tracker, source code management tool).<br />6. Empirical evaluation in a range of real-world distributed software engineering environments: case studies from different contexts OSS projects. The general approach is based on the following assumption: in a sufficiently stable process context a sequence of observations on product quality and context parameters allow a) identifying significant context parameters and b) prediction of product quality at a point in time based on the measured context parameters. We use this approach in the context of DSD (OSS) projects; however, there are many other potential application areas such as quality evaluation and prediction for operational software systems.<br />