Modellierung und effiziente Ausführung von Softwareentwicklungsprozessen

Modeling and efficient enactment of software development processes

Please always quote using this URN: urn:nbn:de:bvb:29-opus4-82628
  • Für die Bewältigung komplexer Aufgaben, wie die Entwicklung umfangreicher und qualitativ hochwertiger Software, ist eine methodische und kontrollierte Herangehensweise in der Regel der einzig erfolgversprechende Lösungsweg. Neben der wachsenden Komplexität der Softwareprodukte steigen in der Softwarebranche die Anforderungen an die Entwicklung hinsichtlich Qualität, Nachverfolgbarkeit, Entwicklungsgeschwindigkeit und Kosten zudem stetig an. Dies macht effektive Maßnahmen zur Projektsteuerung, für Qualitäts- und Risikomanagement, und zur Koordination und Synchronisation der Projektbeteiligten umso wichtiger. Um solche Maßnahmen in der Softwareentwicklung umzusetzen und gleichzeitigFür die Bewältigung komplexer Aufgaben, wie die Entwicklung umfangreicher und qualitativ hochwertiger Software, ist eine methodische und kontrollierte Herangehensweise in der Regel der einzig erfolgversprechende Lösungsweg. Neben der wachsenden Komplexität der Softwareprodukte steigen in der Softwarebranche die Anforderungen an die Entwicklung hinsichtlich Qualität, Nachverfolgbarkeit, Entwicklungsgeschwindigkeit und Kosten zudem stetig an. Dies macht effektive Maßnahmen zur Projektsteuerung, für Qualitäts- und Risikomanagement, und zur Koordination und Synchronisation der Projektbeteiligten umso wichtiger. Um solche Maßnahmen in der Softwareentwicklung umzusetzen und gleichzeitig den Mitarbeitern im Projekt ein gemeinsames Verständnis für deren Aufgaben und den gewünschten Verlauf des Projekts zu vermitteln, hat sich der Einsatz von definierten Softwareentwicklungsprozessmodellen für die Projektdurchführung in der Software-Engineering-Praxis bewährt. Viele dieser Softwareentwicklungsprozessmodelle sind hauptsächlich in natürlicher Sprache dokumentiert, was ihren Einsatz oftmals erschwert, da auf die darin enthaltene Information nur umständlich durch manuelle Suche zugegriffen werden kann. Ein möglicher Lösungsweg, mit dem eine deutlich verbesserte Unterstützung der Prozessbeteiligten erreicht werden kann, ist die (teilweise) Formalisierung eines Softwareentwicklungsprozessmodells und dessen werkzeuggestützte Ausführung durch eine so genannte Prozessausführungsmaschine. Durch die Formalisierung wird die Information eines Softwareentwicklungsprozessmodells strukturiert und kann automatisch gefiltert, geprüft und aufbereitet werden. Durch die werkzeuggestützte Ausführung können die Prozessbeteiligten angeleitet und ihnen kontextsensitiv Informationen zu ihren momentanen Aufgaben bereitgestellt werden. Auch kann der gesamte Prozessablauf automatisch nachvollziehbar dokumentiert und auf die Einhaltung von Regeln geprüft werden. Für die Modellierung von Softwareentwicklungsprozessen wurden in den letzten Jahrzehnten bereits eine Reihe von Modellierungssprachen und auch Prozessausführungsmaschinen entwickelt. Diese Ansätze werden untersucht und hinsichtlich ihrer Eignung für die Modellierung und effiziente, werkzeugunterstützte Ausführung von Softwareentwicklungsprozessen bewertet. Dazu werden zunächst Anforderungen an eine Modellierungssprache und eine Prozessausführungsmaschine definiert. Da keiner der existierenden Ansätze eine durchgängige Lösung für die Modellierung und Ausführung von Softwareentwicklungsprozessen bietet, die allen gestellten Anforderungen gerecht werden kann, wird in dieser Arbeit die Modellierungssprache eSPEM definiert. eSPEM erweitert das SPEM (Software & Systems Process Engineering Metamodel) um Konzepte für die Verhaltensmodellierung, Modellvalidierung, Projektplanung und das organisations- und projektspezifische Zuschneiden von Prozessmodellen. Dabei wird auf bekannte und eingängige Notationen zurückgegriffen, um den Modellierungsformalismus möglichst einfach zu halten. Ergänzt wird eSPEM durch eine erweiterbare Prozessausführungsmaschine. Diese ist in der Lage ein Prozessmodell zu interpretieren und mit den Prozessbeteiligten in einem realistischen, verteilten Projektumfeld zu interagieren, sie anzuleiten, und zu unterstützen. Dabei kann sie auch Abweichungen vom modellierten Prozessablauf tolerieren, und kann somit die in der Praxis vorkommenden Ausnahmen in einem Entwicklungsprozess abbilden. Durch die Prozessausführungsmaschine kann der Prozess nach definierten Regeln automatisch geprüft werden. Regelverletzungen werden den Prozessbeteiligten umgehend gemeldet und können auch proaktiv verhindert werden. Die in dieser Arbeit vorgestellten Konzepte werden prototypisch in einer integrierten Prozessmodellierungs- und -ausführungsumgebung umgesetzt, die für die Evaluierung der Arbeit, anhand von drei ausgesuchten, praxisrelevanten Softwareentwicklungsprozessmodellen, verwendet wird. Alle drei Softwareentwicklungsprozessmodelle werden mit eSPEM in der Prozessmodellierungsumgebung modelliert, wobei insbesondere die in eSPEM neu eingeführten Modellierungskonzepte Anwendung finden. Für die Evaluation der Prozessausführungsmaschine werden die drei Prozessmodelle in simulierten Entwicklungsprojekten unterschiedlicher Größe eingesetzt. Durch die Simulation wird gezeigt, dass die Prozessausführungsmaschine in der Lage ist, die erstellten Prozessmodelle zu interpretieren und eine realistische Menge von (simulierten) Benutzern durch einen Prozess zu führen, ohne dass sie spezielles Wissen über das Prozessmodell benötigen. Die gemessenen Ausführungszeiten zeigen, dass die Prozessausführungsmaschine auch bei sehr hoher Last in der Lage ist, adäquat auf Benutzereingaben zu reagieren. Das umgesetzte Konzept der verteilten Ausführung und Benutzerinteraktion skaliert auch für umfangreiche Prozessmodelle in großen, langlaufenden Projekten. Die Modellierung von real eingesetzten Entwicklungsprozessen und ihre Ausführung in simulierten Projekten zeigen, dass eSPEM und die zugehörige Prozessausführungsmaschine alle in der industriellen Praxis beobachteten und in dieser Arbeit präsentierten Anforderungen erfüllt.show moreshow less
  • Mastering complex tasks requires a methodic and controlled approach. This is especially true for creating substantial and high-quality software systems. Besides a growing complexity of products, software industry faces ever increasing requirements regarding software quality, time-to-market, and cost. This makes effective measures for project management, software quality, risk management, and coordination and synchronization of project personnel even more important. In order to implement such measures, and to give all project personnel a common understanding of the different tasks, their expected outcome, and the course of action during a project, the application ofMastering complex tasks requires a methodic and controlled approach. This is especially true for creating substantial and high-quality software systems. Besides a growing complexity of products, software industry faces ever increasing requirements regarding software quality, time-to-market, and cost. This makes effective measures for project management, software quality, risk management, and coordination and synchronization of project personnel even more important. In order to implement such measures, and to give all project personnel a common understanding of the different tasks, their expected outcome, and the course of action during a project, the application of well-defined development process models has been proven to be useful in software engineering practice. Many software development process models are documented using natural language. This complicates their application in a project because one has to search for required information manually. An approach to overcome this problem and to provide a much better support for the project personnel is to formalize a software development process model and to execute this model using a so called process execution machine. Such a formalized software development process model contains structured information and can automatically be filtered, validated and processed. When executing a software development process model, the project personnel can be guided through the process and information about their tasks can be provided in a context-sensitive manner. The course of the executed development process is automatically documented and can be checked for certain rules. Many approaches for modeling and executing software development processes have been proposed in the past decades. In this work, requirements for modelling and efficient, tool-supported execution of software development processes are motivated and defined. Relevant existing approaches that are based on graphical high-level languages are compared regarding these requirements. Since none of the existing approaches provides an integrated solution for modeling and executing software processes that fulfills all of these requirements, this work presents the modeling language eSPEM. On top of SPEM (Software & Systems Process Engineering Metamodel), eSPEM adds concepts for behavior modeling, model validation, project planning, and tailoring process to project- or organization-specific needs. To keep the modeling formalism simple, eSPEM reuses existing, well-known notations. eSPEM is complemented by an extensible execution machine. The execution machine is able to execute a process model, to interact with project personnel in a realistic, distributed project environment and to guide and support them. The execution machine can tolerate deviations from the modeled process, and can handle real-world exceptions in the process execution. It is also able to check automatically if the process conforms to certain rules. Violations of these rules are immediately reported and may also be prevented proactively. The concepts presented in this work are implemented in an integrated process modelling and execution environment. It is used to evaluate this work using three selected, industry-relevant software development process models. eSPEM is used to formalize these development process models using its novel concepts. In order to evaluate the process execution machine, the three development process models are used to execute simulated projects of different size. The simulation shows that the process execution machine is able to interpret these process models and to guide a realistic amount of simulated users through a process. Hereby, the users do not require any special knowledge about the process model. The measured results show that the process execution machine is able to react upon user input within an adequate timeframe even if it is under heavy load. The implemented concept for a distributed execution scales up to comprehensive process models executed in large, long-running projects. The modeling of real-world development processes and their execution in simulated projects demonstrates that eSPEM and its associated process execution machine adequately fulfill the requirements gathered in industrial practice and presented in this work.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar Statistics
Metadaten
Author:Ralf Ellner
URN:urn:nbn:de:bvb:29-opus4-82628
Referee:Detlef Kips
Document Type:Doctoral Thesis
Language:German
Year of Completion:2017
Embargo Date:2017/02/22
Publishing Institution:Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU)
Granting Institution:Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Technische Fakultät
Date of final exam:2017/02/08
Release Date:2017/03/06
Tag:SPEM
SWD-Keyword:Softwareproduktionsumgebung; Vorgehensmodell; Modellierung; Ausführung
Institutes:Technische Fakultät
CCS-Classification:D. Software / D.2 SOFTWARE ENGINEERING (K.6.3) / D.2.9 Management (K.6.3, K.6.4) / Software process models (e.g., CMM, ISO, PSP) (NEW)
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
open_access (DINI-Set):open_access
Licence (German):Creative Commons - CC BY-ND - Namensnennung - Keine Bearbeitungen 3.0