4 research outputs found
Entwicklung eines rationalen Entscheidungsprozesses für Architekturentscheidungen
AbstractIt is one of the critical tasks to make the right design- and
architectural-decisions in huge and complex developing or reengineering
projects. Such decisions have different types. On the one hand there are
decisions with minimal effects on the architecture and the software system.
On the other hand there are more strategic decisions which effect the
architecture widely and change the central characteristics of the software
system. Particularly the strategic decisions are very complex, risky and
include many uncertain facts about hidden dependencies. The complexity and
risks rise if such decisions have to be made in huge projects with 50 or
more developers. The decisionmaker, mostly the project manager or the
client, is confronted with various factors, assumptions and constraints.
Typical examples are competing objectives, alternative solutions and
incomplete information about external third-party systems. If such complex
decisions have to be made in an unsystematic way, they will lead to
uncalculatable risks with enormous bad consequences for the software system
and the development project. Examples are changed or missed deadlines,
risen development costs or monetary losses due to an outage of a business
critical system.However, the specific characteristics of architectural
decisions are not considered by existing methods and concepts to support
decision making. They are too detailed, focussed on source code and require
information in a formal quality and completeness. These information can not
be gathered within such huge projects because of the high effort, time
pressure and lacking resources. Therefore an architectural decision process
is missing to structure the various information, assumptions and subjective
estimations and so you can make such complex and risky decisions in a
systematic and focussed way.The main objective of the following
dissertation is to reduce the complexity, uncertainty and risks of
architectural decisions in order to avoid additional changes and
adjustments as well as to achieve the desired objectives. An architectural
decision process with four phases is developed on the basis of the generic
proceeding of the decision theory. This process includes methods and
concepts in order to establish alternative solutions on the basis of the
objectives, conditions and the model of the existing architecture. The
various alternative solutions are evaluated through a systematic proceeding
in order to identify and select the best solution. The developed process
includes the specific characteristics of software architectures:Besides
incomplete information and uncertainties, it is possible to observe hidden
dependencies through scenario-based analysis methods, establishted by the
concepts of the Architecture-Level-Modifiability-Analysis (ALMA).Due to the
complexity and risks, huge architectural changes have to be separated into
smaller tasks. This is supported by a stepped planning, from abtract
analysis to more detailed planning.To achieve a reasonable relation between
the analysis effort and the benefis from the analysis in terms of reduced
risks, complexity and uncertainty, the depths of the analysis can be
adjusted flexibly by clear objectives. Two practical applications show, how
to make architectural decisions in a systematic way by using the decision
process. Afterwards, the assumptions and expectations, which have been used
for the decision making, are evaluated by comparing with the consequences
of the real implementation. Due to the results of the comparison it can be
described clearly, which advantages and disadvantages the application of
the decision process has.In Softwareentwicklungsprozessen müssen permanent die richtigen
Design- und Architekturentscheidungen getroffen werden, damit die mit dem
Entwicklungs- oder Reengineeringprojekt verbundenen Ziele in vollem Umfang
erfüllt werden können. Diese Entscheidungen können dabei von
unterschiedlicher Natur sein. So werden einerseits Entscheidungen
getroffen, die nur geringe Auswirkungen auf das Softwaresystem haben. Auf
der anderen Seite existieren Entscheidungen mit strategischem Charakter,
die sich auf große Teile der Architektur und auf zentrale
Systemeigenschaften auswirken. Gerade die strategischen
Architekturentscheidungen sind in Großprojekten mit 50 oder mehr
Entwicklern von hoher kombinatorischer Komplexität und beinhalten große
Unsicherheiten über versteckte Abhängigkeiten. Der Entscheidungsträger,
meist der Architekt oder der Projektleiter, ist mit einer Vielzahl
unterschiedlicher Faktoren und Bedingungen konfrontiert. Hierzu zählen
konkurrierende Ziele oder alternative Lösungsansätze, für die meist nur
unvollständige Informationen vorliegen. Unter diesen Voraussetzungen führen
unsystematische Entscheidungen zu unkalkulierbaren Risiken mit gravierenden
Folgen für das Softwaresystem und das Entwicklungsprojekt, wie z. B. eine
deutliche Erhöhung der Entwicklungskosten oder zeitliche Verzögerungen. Die
bereits existierenden Methoden zur Entscheidungsunterstützung
berücksichtigen die spezifischen Eigenschaften von Softwarearchitekturen zu
wenig. Sie sind zu feingranular, codeorientiert und benötigen Informationen
in einer formalen Genauigkeit und Vollständigkeit, die bei
Architekturentscheidungen in Großprojekten aus Aufwandsgründen nicht
erhoben werden können. Somit fehlt eine Unterstützung des
Entscheidungsträgers, um die Vielzahl an Einzelinformationen und
subjektiven Einschätzungen zu strukturieren sowie die Entscheidungsfindung
systematisch und fokussiert durchzuführen. Mit der vorliegenden
Dissertation wird das Ziel verfolgt, die Komplexität, Unsicherheiten und
Risiken bei Architekturentscheidungen zu reduzieren, um aufwandsintensive
Korrekturen zu vermeiden und die Architekturziele in vollem Umfang zu
erfüllen. Auf der Grundlage des in der Entscheidungstheorie beschriebenen
generischen Vorgehens zur Entscheidungsfindung wird ein
Vier-Phasen-Entscheidungsprozess entwickelt. Dieser Prozess beinhaltet
Methoden und Konzepte, um ausgehend von den Zielen, Rahmenbedingungen und
der existierenden Architektur systematisch alternative Lösungsansätze zu
entwickeln. Im Anschluss werden die Lösungsansätze nach rationalen
Gesichtspunkten im Hinblick auf die Zielerreichung bewertet, um eine
ausgewogene Entscheidung zu treffen. Der entwickelte Entscheidungsprozess
berücksichtigt dabei die speziellen Eigenschaften von
Softwarearchitekturen: Trotz unvollständiger Informationen und
Unsicherheiten können versteckte Abhängigkeiten mit einem szenariobasierten
Analyse- und Bewertungsansatz, auf der Grundlage der
Architecture-Level-Modifiability-Analysis (ALMA), sichtbar gemacht werden.
Die systematische Aufteilung komplexer Entscheidungen in handhabbare
Einzelentscheidungen wird durch die Anwendung eines gestuften Verfahrens
mit Grob- und Feinplanung erreicht.Um ein ökonomisch sinnvolles Verhältnis
zwischen dem Aufwand zur Entscheidungsfindung und dem Nutzen in Form von
reduzierten Risiken, Unsicherheiten und einer geringeren Komplexität zu
ermöglichen, kann die Detailtiefe der Analysen anhand eindeutiger Kriterien
flexibel angepasst werden.Zwei praktische prototypische Anwendungen des
Entscheidungsprozesses zeigen auf, wie eine Architekturentscheidung
systematisch und nach rationalen Gesichtspunkten durchgeführt werden kann.
Die während der Entscheidungsfindung getroffenen Annahmen und Erwartungen
werden im Anschluss mit den Ergebnissen der realen Implementierung
verglichen. Anhand des Vergleichs wird klar erkennbar, welche versteckten
Abhängigkeiten durch den Einsatz des Entscheidungsprozesses bereits
frühzeitig erkannt wurden sowie welche Vorteile die richtige
Entscheidungsfindung für das Softwaresystem und das Entwicklungsprojekt
hat
Arbeitsbericht Nr. 2008-02, April 2008
Ilmenauer Beiträge zur Wirtschaftsinformatik Nr. 2008-02 / Technische Universität Ilmenau, Fakultät für Wirtschaftswissenschaften, Institut für Wirtschaftsinformatik,
ISSN 1861-9223
ISBN 978-3-938940-20-