Architektur

Architekturbeschreibung Die Architektur eines Software-Systems kann aus unterschiedlichen Standpunkten bzw. Sichten beschrieben werden. Nach einer grundlegenden Einführung in diese Konzepte wird in diesem Kapitel zur Konkretisierung die standardisierte Notation der Unified Modeling Language (UML) mit Blick auf deren Möglichkeiten zur Architekturbeschreibung erläutert. Mit der Version 2 der UML sind mit den sogenannten Kompositionsstrukturdiagrammen auch Möglichkeiten zur Software-Architekturbeschreibung in die UML eingeflossen. Mit den UML-Verteilungsdiagrammen war bereits in älteren Versionen der UML eine (beschränkte) Möglichkeit zur Beschreibung von Systemarchitekturen gegeben. Ergänzend wird eine Übersicht über Architekturbeschreibungssprachen gegeben.

Vorgehen bei der Architektur- und Komponentenentwicklung Das Ziel ist die Beschreibung einer Architektur, der Prozess beschreibt den Weg dorthin. Die Entwicklung einer Architektur ist ein sehr komplexer Prozess, bei dem viele Tätigkeiten miteinander verwoben sind. Zahlreiche Aspekte greifen bei der Entscheidungsfindung ineinander, eine Reihe von Prinzipien ist gleichzeitig zu beachten. Dieses Kapitel führt in die grundlegenden Prinzipien und Zusammenhänge der Entscheidungsfindung im Prozess der Architekturbeschreibung ein. Dazu wird der Architekturentwicklungsprozess modellhaft beschrieben.

Modellgetriebene Software-Entwicklung Bei der modellgetriebenen Software-Entwicklung werden Software-Systeme aus Modellen (weitgehend) durch Transformationen generiert. Die modellgetriebene Entwicklung stellt somit eine Nutzung von Architekturmodellen dar. Dieser Ansatz trägt zum Nutzen einer expliziten Architekturmodellierung bei und beinflusst diese maßgeblich, weswegen dieses Kapitel in diesem Teil platziert ist. Dabei kann modellgetriebene Entwicklung auch als Wiederverwendungstechnik gesehen werden, da Metamodelle und Transformationen projektübergreifend wiederverwendet werden. 32 Teil I: Konstruktion von Architekturen Das vorliegende Kapitel wurde von den Mitgliedern des GI-Arbeitskreises MDA (http://sdqweb.ipd.uka.de/akmda/) erstellt und überarbeitet. Die ursprüngliche Version der ersten Auflage stammte von Axel Uhl.

Entwurf serviceorientierter Architekturen Der Entwurf serviceorientierter Architekturen ist geprägt von der Nutzung von Software-Services. Dabei verspricht die Nutzung von Software-Services (also von Software-Systemen, die durch Dienstleister betrieben werden) eine Verringerung der Betriebskosten und eine erhöhte Flexibilität durch einfachen Austausch von Diensten sowie eine einfache (Neu-)Komposition von Diensten. Dieses Kapitel gibt zunächst eine grundlegende Einführung in das Thema SOA und motiviert seine Relevanz. Die konzeptionellen Elemente von SOA werden im Detail erläutert, bevor der wissenschaftliche und wirtschaftliche Hintergrund von SOA beleuchtet sowie die Einführung und Umsetzung einer SOA in einem Unternehmen betrachtet wird.

Anwendungslandschaften serviceorientiert gestalten Zur Gestaltung einer Anwendungslandschaft greifen Software-Architekten auf eine Menge von Prinzipien und Methoden zurück, um die Architektur eines Systems zu erstellen. Quasar Enterprise beschreibt solche Prinzipien und Methoden, die sich auf das übergeordnete Konzept der Services abstützen. Ihr Einsatz führt zu einer serviceorientierten Architektur der Anwendungslandschaft. Bevor in diesem Kapitel die einzelnen Verfahrensbausteine von Quasar Enterprise erläutert werden, wird der Bezug zwischen der strukturierten Sicht auf Anwendungslandschaften und dem Thema der serviceorientierten Architekturen hergestellt. Anhand eines fiktiven, aber realistischen Szenarios werden die Verfahrensbausteine von Quasar Enterprise erläutert.