63 research outputs found
Softwarearchitektur eines User Interfaces fĂŒr ein digitales Filmarchiv
Neben der zuverlÀssigen und verlustlosen Lagerung bieten Systeme zur
digitalen Aufbewahrung von Filmen vor allem Vorteile fĂŒr die
Reproduzierbarkeit und die ZugÀnglichkeit des Filmmaterials. SÀmtliche
TĂ€tigkeiten, bei denen Personen auf ein digitales Filmarchiv zugreifen,
werden ĂŒber dessen User Interface abgewickelt. In dieser Arbeit wurde im
Rahmen des EDCine-Projektes der EuropÀischen Union am Fraunhofer IIS eine
Softwarearchitektur fĂŒr das User Interface des "Digitalen Filmarchivs"
entwickelt. Ziel war es, eine Architektur fĂŒr ein generisches und
skalierbares User Interface zu entwerfen, in dem sich bestehende Workflows
und Usability-Konzepte fĂŒr das User Interface des "Digitalen Filmarchivs"
umsetzen lassen. Im Architekturdesign wurden verschiedene Architekturstile,
-muster und Referenzarchitekturen auf mehreren Abstraktionsebenen
kombiniert. Wesentliche Organisationsprinzipien ergaben sich dabei aus dem
PAC-AMODEUS-Muster fĂŒr interaktive Systeme, der XML-Pipeline und
Plugin-Architekturen. Die Kommunikation zwischen Komponenten beruht auf
WebServices und Ajax-Technologie. An zentraler Stelle steht ein
XML-basiertes User-Interface-Modell, welches sich mit Hilfe von
XSL-Transformationen an AusgabemodalitÀten anpassen lÀsst. Mit Hilfe des
OpenLaszlo-Frameworks und des Adobe Flash Players wurde ein Demonstrator in
Form einer webbasierten GUI fĂŒr das DSpace-Archivsystem erstellt. Zusammenfassung:
Neben der zuverlĂ€ssigen und verlustlosen Lagerung bieten Systeme zur digitalen Aufbewahrung von Filmen vor allem Vorteile fĂŒr die Reproduzierbarkeit und die ZugĂ€nglichkeit des Filmmaterials. SĂ€mtliche TĂ€tigkeiten, bei denen Personen auf ein digitales Filmarchiv zugreifen, werden ĂŒber dessen User Interface abgewickelt. In dieser Arbeit wurde im Rahmen des EDCine-Projektes der EuropĂ€ischen Union am Fraunhofer IIS eine Softwarearchitektur fĂŒr das User Interface des "Digitalen Filmarchivs" entwickelt. Ziel war es, eine Architektur fĂŒr ein generisches und skalierbares User Interface zu entwerfen, in dem sich bestehende Workflows und Usability-Konzepte fĂŒr das User Interface des "Digitalen Filmarchivs" umsetzen lassen. Im Architekturdesign wurden verschiedene Architekturstile, -muster und Referenzarchitekturen auf mehreren Abstraktionsebenen kombiniert. Wesentliche Organisationsprinzipien ergaben sich dabei aus dem PAC-AMODEUS-Muster fĂŒr interaktive Systeme, der XML-Pipeline und Plugin-Architekturen. Die Kommunikation zwischen Komponenten beruht auf WebServices und Ajax-Technologie. An zentraler Stelle steht ein XML-basiertes User-Interface-Modell, welches sich mit Hilfe von XSL-Transformationen an AusgabemodalitĂ€ten anpassen lĂ€sst. Mit Hilfe des OpenLaszlo-Frameworks und des Adobe Flash Players wurde ein Demonstrator in Form einer webbasierten GUI fĂŒr das DSpace-Archivsystem erstellt.Ilmenau, Techn. Univ., Diplomarbeit, 200
Integrierte modell- und simulationsbasierte Entwicklung zur dynamischen Bewertung automobiler Elektrik/Elektronik-Architekturen
Die Automobilbranche befindet sich seit einigen Jahren im Wandel. Trends wie autonomes Fahren, KonnektivitĂ€t, smarte MobilitĂ€t sowie die Elektrifizierung fĂŒhren zu einer drastischen Erhöhung der FahrzeugkomplexitĂ€t. Diese KomplexitĂ€t muss durch die zugrunde liegende Elektrik/Elektronik-Architektur (E/E-Architektur) beherrscht werden und ruft unmittelbare neue Herausforderungen an den Entwicklungsprozess hervor.
Design-Entscheidungen der E/E-Architektur haben maĂgeblichen Einfluss auf das Verhalten von Fahrzeugfunktionen und umgekehrt. Daher mĂŒssen sie möglichst frĂŒhzeitig analysiert und evaluiert werden, um kostspielige Fehlerkorrekturen in spĂ€ten Entwicklungsphasen zu minimieren. Eine frĂŒhzeitige Einbindung von Simulationsmethoden ist dabei zentral. Die modellbasierte Architekturentwicklung und Simulation sind jedoch weitestgehend getrennt voneinander laufende Prozesse. Dies erschwert eine effiziente Analyse sowie Bewertung der bidirektionalen AbhĂ€ngigkeiten zwischen Architektur und Verhalten.
Um diese SchwĂ€chen zu adressieren, wird in dieser Arbeit eine integrierte Methodik zur modell- und simulationsbasierten Entwicklung von E/E-Architekturen vorgestellt, die sich in drei Teile gliedert. Es werden zunĂ€chst neue Methoden zur architekturzentrierten Verhaltensmodellierung eingefĂŒhrt. Eine nachfolgende Synthese generiert daraus ein Simulationsmodell, welches automatisiert mehrere Abstraktionsebenen der E/E-Architektur miteinander verknĂŒpft und so zu einer ganzheitlichen Betrachtung beitrĂ€gt. Mithilfe des integrierten Ansatzes wird zusĂ€tzlich ein Konzept entwickelt, das es gestattet, mehrere Architekturvarianten automatisiert bzgl. statischen und dynamischen Metriken gegenĂŒberzustellen. Die Konzepte werden in das in der Automobilindustrie etablierte E/E-Architekturwerkzeug PREEvisionÂź integriert, umgesetzt und anhand mehrerer AnwendungsfĂ€lle evaluiert
Automatische KompatibilitĂ€tsprĂŒfung Framework-basierter Anwendungen
Software-Frameworks als erweiterbare Software-Architekturbausteine bieten besondere Vorteile. Sie erlauben sowohl die Wiederverwendung der FunktionalitĂ€t als auch der durch das Framework vorgegebenen Software-Architektur. Beispiele sind Frameworks fĂŒr BenutzungsoberflĂ€chen oder fĂŒr die Anbindung von Datenbanken. Durch Implementierung anwendungsspezifischer Erweiterungen wird ein Framework fĂŒr den konkreten Anwendungsfall angepasst. Eine Anwendung, deren Software-Architektur ein Framework einsetzt, benutzt das Framework ĂŒber dessen Erweiterungspunkte.Im Laufe der Evolution einer solchen Anwendung entsteht hĂ€ufig die Situation, dass das Framework durch eine neuere Version aktualisiert werden soll. Die Aktualisierung enthĂ€lt das Risiko, dass InkompatibilitĂ€ten zwischen bestehender Anwendung und neuer Framework-Version auftreten, die wiederum zu aufwendigen Anpassungen fĂŒhren. Daher mĂŒssen mögliche InkompatibilitĂ€ten vor der Aktualisierung erkannt und bewertet werden. Nach aktuellem Stand der Technik ist dies nicht möglich, so dass es in der industriellen Praxis zu unvorhergesehenen Problemen verbunden mit hohen Kosten kommt.Wir stellen ein Verfahren zur automatischen KompatibilitĂ€tsanalyse Framework-basierter Anwendungen vor, mit dem das beschriebene Problem gelöst wird. Durch eine Kombination aus Codeanalyse und neuartiger Framework-Beschreibung lassen sich mögliche InkompatibilitĂ€ten vor DurchfĂŒhrung der Aktualisierung automatisch berechnen. Eine prototypische Implementierung des Verfahrens im Werkzeug »Companian« demonstriert die praktische Einsetzbarkeit unseres Verfahrens.Software frameworks as extensible building blocks have several advantages. They admit to reuse the framework's functionality and its software architecture. Examples are user interface or database connectivity frameworks. A framework is customized by implementing application specific extensions. An application uses a framework through its extension points.During the evolution of such an application the situation arises where the framework has to be updated to a newer version. An update contains the risk of incompatibilities between the existing application and the new framework version. This may result in high efforts for required adjustments. Thus, possible incompatibilities have to be recognized and evaluated before an update is performed. This is not possible in accordance with the current state-of-the-art and results in unforeseen problems accompanied by high consequential costs.We propose a process for an automatic compatibility analysis of framework-based applications that solves the problem. Combining code analysis and a novel framework description our process detects possible incompatibilities before an update is performed. A prototypical implementation in the »Companian« tool demonstrates the practical feasibility of our process.Tag der Verteidigung: 20.12.2012Paderborn, Univ., Diss., 201
Parametrisierung der Spezifikation von QualitÀtsannotationen in Software-Architekturmodellen
Um qualitativ hochwertige Softwaresysteme zu entwickeln, muss in einem Softwareentwicklungsprozess eine Vielzahl von QualitĂ€tsattributen berĂŒcksichtigt werden. Je höher die KomplexitĂ€t von Softwaresystemen wird, desto wichtiger wird es, die zu erwartende QualitĂ€t im Vorfeld zu beurteilen. Jedoch existiert eine Reihe von QualitĂ€tsattributen fĂŒr Softwaresysteme, welche erst aus den strukturellen Eigenschaften der Softwarekomponenten in diesem Softwaresystem bestimmt werden können. Diese QualitĂ€tsattribute werden in strukturierten und formalisierten EntscheidungsunterstĂŒtzungsprozessen zur Optimierung der Softwarearchitektur oft nicht genutzt. Einer der GrĂŒnde dafĂŒr ist, dass dieses Wissen um die QualitĂ€tsattribute einer Softwarekomponente in der Regel nur mit diesen Softwarekomponenten verknĂŒpft ist und nicht mit den strukturellen Eigenschaften eines komponentenbasierten Softwaresystems. So bleibt ein GroĂteil dieses Wissens unberĂŒcksichtigt und kann daher nicht fĂŒr Kompromissentscheidungen in automatisierten Softwarearchitektur-OptimierungsansĂ€tzen genutzt werden.
In dieser Masterarbeit wird ein Rahmenwerk definiert, um Regeln zu spezifizieren zum Transformieren der QualitĂ€tsattribute einer Softwarekomponente in Relation zu ihren strukturellen Eigenschaften in ihrem komponentenbasierten Softwaresystem. Mit diesem Ansatz kann architekturdefiniertes Wissen in AbhĂ€ngigkeit der Systemarchitektur parametrisiert werden. Hierdurch können die QualitĂ€tsattribute einer Softwarekomponente, welche erst aus den spezifischen Eigenschaften einer konkreten Softwarearchitektur abgeleitet werden können, spezifiziert und so auch ausgewertet werden. Durch diese verbesserten Auswertungen von strukturellen Eigenschaften sollen die Werkzeuge fĂŒr Softwarearchitekten verbessert werden, sodass diese bessere Entscheidungen in einem Softwareentwicklungsprozess treffen können.
FĂŒr die Validierung des Ansatzes werden zwei voneinander unabhĂ€ngige Fallstudien durchgefĂŒhrt, um dessen Anwendbarkeit und Nutzen zu zeigen. Zu diesem Zweck wird der Ansatz dieser Masterarbeit sowohl auf eine wissenschaftliche Fallstudie angewandt wie auch auf ein Beispiel, welches sich auf ein reales Industriesystem bezieht. Hiermit wird gezeigt, wie der Ansatz helfen kann, Kompromissentscheidungen ĂŒber die Softwarearchitektur zwischen mehreren QualitĂ€tsmerkmalen unter der BerĂŒcksichtigung der strukturellen Eigenschaften des Softwaresystems zu treffen
Generierung von grafischen ModellreprÀsentationen aus textuellen DomÀnenmodellen
Mit der zunehmenden KomplexitÀt von Computersystemen und den steigenden Anforderungen
an Software mĂŒssen die Verantwortlichen sich laufend an geĂ€nderte Umgebungsbedingungen
anpassen. Viele Hersteller sind mit den stÀndigen wechselnden Implementierungstechnologien
ĂŒberfordert. Einen Lösungsansatz stellt die modellgetriebene Softwareentwicklung dar, bei der
die Softwareerstellung in groĂen Teilen automatisiert ablĂ€uft. Durch den Einsatz von Modellen
wird eine Trennung zwischen der Beschreibung von fachlichen- und technischen Anforderungen
angestrebt. Dies ermöglicht eine leichtere Umstellung auf neue Technologien. Die Modelle
beschreiben dabei die Software auf abstrakter Ebene und werden mittels Generatoren in lauffÀhigen
Programmcode ĂŒberfĂŒhrt.
Ein modellgetriebener Softwareansatz wird bei den Wieland Werken AG in der fertigungsbegleitenden
Software WFS umgesetzt. Dabei verspricht man sich in erster Linie verkĂŒrzte Entwicklungszeiten
zu erreichen, aber auch die SoftwarequalitÀt steigern zu können. Weite Teile
der Anwendungssoftware werden durch textuelle Modelle beschrieben, dabei werden primÀr
fachliche Aspekte modelliert. Dadurch gewinnen die Modelle nicht nur fĂŒr den Entwickler an
Bedeutung, sondern auch fĂŒr Projektleiter und Businnes-Consultants. Ein Problem bereitet dabei
die textuelle Form der Modelle. Diese ist zum Teil fĂŒr Mitarbeiter, die keine IT-Experten sind
schwer verstÀndlich und oft zu umfangreich.
Ziel dieser Diplomarbeit ist es ein besseres VerstÀndnis von solchen textuellen Modellen im
Umfeld der WFS zu ermöglichen. Als Lösungsansatz wird ein Konzept vorgestellt, welches in
mehreren Schritten automatisch aus den textuellen Modellen grafische ReprÀsentationen erzeugt.
Dabei werden zunÀchst die vorhanden Modelle nach relevanten Informationen gefiltert.
AnschlieĂend wird eine Applikation zur grafischen Darstellung ausgewĂ€hlt und die dafĂŒr notwendigen
Eingangsdaten werden mithilfe eines Generators erzeugt. FĂŒr eine gute Ăbersicht
wird ein passendes Layout vorgeschlagen. SchlieĂlich wird eine Implementierung des Lösungskonzeptes
vorgestellt, welche in die WFS integriert ist
Dynamisch erweiterbares Trading mit heterogenen Softwarekomponenten
Universal Component Trading (UComT) ist ein neuer Ansatz zum Trading mit (objektorientierten) Softwarekomponenten. Component Trading steht fĂŒr die Anwendung des Trading-Ansatzes auf objektorientierte Komponentenmodelle (z.B. Java Beans/EJB, CORBA Components, COM, CLI/.NET). Der Begriff Universal in dem Namen bedeutet, dass die Trading-Architektur in der Lage ist, mit beliebigen Komponentenmodellen sowohl als Dienstanbieter (Exporter) als auch als Dienstnutzer (Importer) zusammenzuarbeiten. Ausgehend von einem Metamodell, das die Gemeinsamkeiten der objektorientierten Softwarekomponentenmodelle abbildet, wird mit der Simple XML-based Component Description Language (SXCDL) eine modellĂŒbergreifende Strukturbeschreibungssprache in XML-Form entwickelt, in die beliebige Dienstbeschreibungssprachen dynamisch zur Laufzeit integriert werden können. Eine einzelne Komponente kann zahlreiche Dienstbeschreibungen besitzen, die gleiche oder unterschiedliche Sprachen verwenden und von gleichen oder unterschiedlichen Autoren stammen. Der Trader im UComT-Modell bietet dem Importer ferner eine vielfĂ€ltige UnterstĂŒtzung fĂŒr die Nutzung der Komponenten. Zur Validierung der Forschungsergebnisse wird im Rahmen der Arbeit ein Prototyp fĂŒr den Trader-Server (in C#) und zwei Prototypen fĂŒr den Trader-Client (in C# und in Java) entwickelt, die die zentralen Konzepte des UComT-Modells realisiere
Visualisierungsdesign fĂŒr 3D-Benutzerschnittstellen unter Verwendung komponierter Darstellungsverfahren
Das computergrafische Abbildungsverfahren zur Verwirklichung von dreidimensionalen Darstellungen ist ein wichtiges Instrument fĂŒr die Gestaltung interaktiver 3D-Benutzerschnittstellen. Die Betrachtung von Projektionsverfahren abseits des bisher angestrebten Fotorealismus dokumentiert, dass durch nichtlineare und multiperspektivische Darstellungen spezifische Eigenschaften und Charakteristiken eines Datenbestandes vermittelt werden können. Dabei wird deutlich, dass konzeptionelle und methodische UnzulĂ€nglichkeiten den erfolgreichen Einsatz von unkonventionellen linearen sowie nichtlinearen Darstellungsformen in 3D-Anwendungen bisher einschrĂ€nken. In dieser Arbeit werden daher Darstellungstechniken analysiert und systematisiert, die durch den computergrafischen Projektionsvorgang erzeugt und fĂŒr die Verwirklichung von Visualisierungszielen eingesetzt werden können. Ferner werden fĂŒr den spezifischen Einsatz von komponierten Visualisierungsverfahren in 3D-Benutzerschnittstellen Gestaltungshinweise formuliert. Darauf aufbauend erfolgt die EinfĂŒhrung einer modellbasierten Vorgehensweise, durch welche die systematisierten Visualisierungsformen in einem methodischen und ferner entwurfsmustergestĂŒtzten Entwurfsprozess zur Entwicklung interaktiver 3D-Interfaces eingebunden und weiterhin in einer interaktiven 3D-Anwendung eingesetzt werden können
Task Allokation fĂŒr effiziente Edge Computing Systeme
Im Bereich von Edge Computing nimmt die Rechenleistung in direkter NĂ€he zu den Sensoren stetig zu. Infolgedessen gibt es immer mehr rechen- und datenintensive Anwendungen, die im Edge Bereich ausgefĂŒhrt werden können. Gleichzeitig befinden sie sich in einer sich stĂ€ndig verĂ€ndernden Systemumgebung.
Um Ausfallzeiten und lange Redesign-Schleifen zu reduzieren, werden SelbstanpassungsfĂ€higkeiten benötigt. Die automatische Reallokation der ausgefĂŒhrten Aufgaben auf die Rechenknoten ist eine mögliche SelbstanpassungsmaĂnahme. Die Reallokation sollte jedoch mit den verschiedenen Anforderungen, EinschrĂ€nkungen und Spezifikationen des Entwurfs konform sein. Dabei besteht eine groĂe Herausforderung darin, dass die Allokationsentscheidung schnell genug fĂŒr die Berechnung zur Laufzeit sein sollte. Der Fokus dieser Arbeit ist die Realisierung einer effizienten Allokation, die BedĂŒrfnisse in Form von Policies nutzt, um eine automatische Reallokation zur Laufzeit zu berechnen.
In dieser Arbeit wurde eine effiziente Allokationsmethode entwickelt, die eine kombinierte Betrachtung von RessourcenverfĂŒgbarkeit, Anwendungsbedarf und problemspezifischer Effizienzdefinition realisiert. Der Ansatz verfolgt eine modulare Beschreibung dieser Aspekte fĂŒr die Allokation in Form von komponentenspezifischen Policies. Ein besonderer Schwerpunkt liegt auf der Allokation aufgrund von VerĂ€nderungen im laufenden Betrieb. HierfĂŒr wird das Zuordnungsproblem zur Entwicklungszeit modelliert und die Informationen im Betrieb genutzt.
Mit diesem Konzept konnten zwei industrielle Anwendungen modelliert und unterschiedliche Zuordnungen berechnet werden. Die Skalierbarkeit des Konzepts wurde durch Messungen validiert. Die Reallokation zur Laufzeit wurde mit einem Container Framework implementiert. Darauf aufbauend wurde der Overhead der Allokationsberechnung zur Laufzeit gemessen und in den Kontext der Reallokationszeit gesetzt.
Die Berechnung einer effizienten Allokation trĂ€gt zur Autonomie von Recheninfrastrukturen bei. Dadurch erhöhen sich die FĂ€higkeiten zur Selbstadaption und die Resilienz dieser Rechennetze. Das spielt nicht nur im industriellen Edge-Cloud Kontext eine Rolle, sondern auch im Automobil, wenn zur Laufzeit ĂŒber dynamische Betriebsstrategien entschieden werden soll
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
Grundlagen des Autonomen Rechnens
Das vegetative Nervensystem (engl. autonomous nervous system) des Menschen kann das, wovon in der IT-Industrie noch getrĂ€umt wird. AbhĂ€ngig von der aktuellen Umgebung und TĂ€tigkeit reguliert das vegetative Nervensystem mandatorische Körperfunktionen wie Herzfrequenz und Atmung. Reflexe, die dem Selbstschutz dienen, werden automatisch ausgelöst. Verletzungen heilen von selbst, ohne dass man seine normalen TĂ€tigkeiten dafĂŒr unterbrechen mĂŒsste. Im Rahmen des Seminars âAutonomic Computingâ im Sommersemester 2003 am Institut fĂŒr Programmstrukturen und Datenorganisation der UniversitĂ€t Karlsruhe wurden Grundlagen dieses Autonomen Rechnens besprochen. Als Basis fĂŒr Selbstkonfiguration und Selbstoptimierung werden in âKontextbewusstsein: Ein Ăberblickâ Techniken zur Erfassung des physischen und sozialen Kontexts einer Anwendung erlĂ€utert. Die dienstorientierte Architektur und konkrete Implementierungen wie z.B. UPnP, Jini oder Bluetooth werden in âAktuelle Technologien zur Realisierung dienstorientierter Architekturenâ behandelt. Die Arbeit âService- Orientierung und das Semantic Webâ beschreibt, wie Semantic Web Technologien zur Beschreibung von Web Services verwendet werden können mit dem Ziel der automatischen Dienstfindung. Danach wird der Begriff âSelbstbewusstseinâ in bezug auf Software anhand zweier komplementĂ€rer Forschungsprojekte definiert. Technologien zur Ăberwachung des Laufzeitverhaltens von Rechnersystemen mit dem Ziel der selbststĂ€ndigen Optimierung sind Gegenstand der Arbeit âSelbst-Ăberwachung und Selbst-Optimierungâ. Der Artikel âSelbst-Schutzâ fasst die Sicherheitsanforderungen zusammen, die an ein autonomes Computersystem gestellt werden mĂŒssen und die Techniken, um solche Anforderungen zu erfĂŒllen. AnsĂ€tze aus dem Bereich wiederherstellungsorientiertes- und fehlertolerantes Rechnen werden in âSelbst-Heilungâ, âROC â Recovery Oriented Computingâ und âRecovery Oriented Computing: Modularisierung und Redundanzâ vorgestellt. Alle Ausarbeitungen und PrĂ€sentationen sind auch elektronisch auf der diesem Band beiliegenden CD oder unter www.autonomic-computing.org verfĂŒgbar
- âŠ