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.…
- 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.…
Author: | Ralf Ellner |
---|---|
Persistent identifiers - URN: | urn:nbn:de:bvb:29-opus4-82628 |
Referee: | Detlef Kips |
Document Type: | Doctoral Thesis |
Language: | German |
Year of publication: | 2017 |
Date of online publication (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 |
Acceptance date of the thesis: | 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): | ![]() |