Heindl, M. (2008). Managing dependencies in complex global software development projects [Dissertation, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-28170
E188 - Institut für Softwaretechnik und Interaktive Systeme
-
Date (published):
2008
-
Number of Pages:
184
-
Keywords:
dependency management; global software development; requirements tracing; collaboration
de
Abstract:
Global verteilte Softwareentwicklungsprojekte (GSD Projekte) sind komplex aufgrund zahlreicher Faktoren, wie z.B. einer üblicherweise hohen Anzahl von Anforderungen, der Verteiltheit der Projektteilnehmer, und der Unmenge an Abhängigkeiten in Arbeitsergebnissen (Anforderungsbeschreibungen, Testfallspezifikationen, Source Code).<br />Eine wesentliche Herausforderung in solchen Projekten besteht darin, all diese Arbeitsergebnisse konsistent zu halten. Dies ist wichtig, um sicher zu stellen, dass die Dokumentation durchgängig und aussagekräftig bleibt und um Fehler in der Software aufgrund von fehlerhafter Dokumentation zu vermeiden. Die Konsistenz zu erhalten ist sehr schwierig wenn Änderungen nur punktuell in Dokumenten vorgenommen werden und nicht auch in anderen verwandten Dokumenten nachgezogen werden. Das Erfassen und Verwalten von Abhängigkeiten zwischen Arbeitsergebnissen (Dependency Management) ist entscheidend, Konsistenz in den Arbeitsergebnissen zu wahren. Allerdings haben bestehende Dependency-Management-Ansätze folgende Schwachstellen:<br />* Sie beinhalten keinen Planungsschritt, der dabei unterstützt abzuschätzen, wie viel Aufwand für das Dependency Management (DM) im Projekt notwendig sein wird. Das führt dann oft zu unsystematischem, schwer nachvollziehbarem DM, das noch dazu mit Mehrkosten verbunden ist.<br /> * Sie behandeln alle existierenden Abhängigkeiten als gleich wichtig; die Unterscheidung in wichtige, wertvolle Abhängigkeiten und solche, die nicht wertvoll sind, wird nicht in nachvollziehbarer Weise gemacht.<br />* Das Erfassen von Abhängigkeiten ist teuer und eine fehlerbehaftete Tätigkeit. Das Erfassen von Abhängigkeiten zwischen Arbeitsergebnissen, die in unterschiedlichen Tools verwaltet werden, wird nicht ausreichend unterstützt (aufgrund mangelhafter Toolintegrationen).<br />Moderne high-quality Ansätze für DM sollen folgende Kriterien erfüllen:<br />sie sollen (a) einen entsprechenden Planungsschritt beinhalten, (b) Abhängigkeiten entsprechend ihres Wertes behandeln (um Aufwände für das Verwalten von unwichtigen Abhängigkeiten zu vermeiden), und (c) einfaches und billiges Erfassen und Warten von Abhängigkeiten auch über Toolgrenzen hinweg unterstützen. In dieser Arbeit behandle ich die folgenden Forschungsthemen, um die genannten Kriterien zu erreichen:<br />1) Planung des Dependency Managements: Diese Arbeit beinhaltet ein "Tracing Activity Framework (TAF), das einen Projektleiter dabei unterstützt, unterschiedliche DM Ansätze für sein Projekt vorab zu berechnen, um Aufschlüsse über anfallende Aufwände für das DM zu bekommen und den günstigsten Ansatz zu wählen.<br />2) Erfassung und Verwaltung von Abhängigkeiten: Diese Arbeit beinhaltet einen wert-orientieren Ansatz für DM, um auf high-value Abhängigkeiten fokussieren zu können. Ausserdem beinhaltet sie eine prototypische Implementierung eines integrierten DM Ansatzes, der DM über Toolgrenzen hinweg unterstützt (zwischen einem Anforderungsmanagement-Tool und einer Entwicklungsumgebung).<br />3) Anwendung von erfassten Abhängigkeiten: Diese Arbeit beinhaltet ein Konzept für ein auf erfassten Abhängigkeiten basierendes Notifikationssystem, das die zielgerichtete, zeitgerechte Kommunikation zwischen verteilten Projektteilnehmern unterstützt. Diese Beiträge sollen das Kosten-Nutzen-Verhältnis von DM Ansätzen verbessern. Zur Evaluierung meiner Ansätze habe ich empirische Studien im industriellen Kontext gewählt.<br />
de
Global software development (GSD) projects are complex due to the high number of requirements, global distribution of project participants, and high number of dependencies between artefacts (e.g., relationships between requirements, or between requirements and test cases). A key challenge in GSD projects is to cope with requirement and artifact changes that occur concurrently along the life cycle. Often changes done only punctiform in certain artefacts threaten the consistency among artefacts. Managing dependencies is crucial for implementing changes consistently. Current approaches for dependency management, e.g. manual requirements tracing approaches or automated trace generation approaches, have the following shortcomings:<br />* These approaches focus mainly on how dependencies can be captured (e.g., requirements tracing) and they lack a planning step that (a) defines which dependencies should be captured by which tools and when, and (b) allows to compare dependency management alternatives in terms of expected effort and quality. This leads to unplanned, unsystematic (ad hoc) dependency management that often overruns the available budget and makes it hard to reproduce why some traces are captured and others not, and make keeping the overview in a complex GSD project much harder.<br />* Current approaches for capturing dependencies, e.g., requirements tracing, treat all requirements and their dependencies as equally important. The determination which dependencies are important and valuable is not supported by these approaches.<br />* Capturing dependencies is still an expensive and error-prone activity despite of the approaches reported in practice. Especially traceability across tool borders is an open issue (due to tool integration limitations). Up-to-date high-quality approaches for dependency management should meet the following criteria: (a) availability of dependency management planning support, (b) management of dependencies according to their value, and (c) cheap (feasible) capture of dependencies (also across tool borders).<br />In this work I provide research contributions in the following areas:<br />1) Planning dependency management: This work provides a tracing activity framework (TAF) that supports a project manager in (a) defining which dependencies should be managed and (b) comparing dependency management approaches in advance (before dependency management starts in the project) to find the most cost-effective approach.<br />2) Capturing dependencies explicitly, systematically, and consistently:<br />This work provides a value-based requirements tracing approach to focus dependency management efforts on high-value dependencies. Furthermore, I provide a prototype implementation of a tool integration that supports capturing dependencies across tool borders (between a requirements management tool and a development environment).<br />3) Application of explicit dependencies (traces): This work provides a concept for a dependency-based notification system that supports communication and in-time notification of GSD project team members. These research contributions significantly improve the cost-benefit of available dependency management approaches. As evaluation concept for these contributions I used empirical case studies and report their results.<br />