Modellierung von Architekturen



Ähnliche Dokumente
Übungen zu Softwaretechnik

Architektur und Architekturmanagement. Modellierung von Architekturen und Architekturmanagement in der Software- Organisation

Übungen zur Softwaretechnik

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Java Enterprise Architekturen Willkommen in der Realität

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Grundlagen Software Engineering

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Lizenzen auschecken. Was ist zu tun?

Installation der SAS Foundation Software auf Windows

Guide DynDNS und Portforwarding

Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank

Firewalls für Lexware Info Service konfigurieren

Was versteht man unter Softwaredokumentation?

1 Mathematische Grundlagen

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

SharePoint Demonstration

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Cloud Architektur Workshop

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Was ist Software-Architektur?

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

white sheep GmbH Unternehmensberatung Schnittstellen Framework

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Requirements Engineering für IT Systeme

Vgl. Oestereich Kap 2.7 Seiten

Online Banking System

Lizenzierung von System Center 2012

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

Firewalls für Lexware Info Service konfigurieren

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Agile Software Verteilung

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

ICS-Addin. Benutzerhandbuch. Version: 1.0

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Dieses Dokument beschreibt die Installation des Governikus Add-In for Microsoft Office (Governikus Add-In) auf Ihrem Arbeitsplatz.

lohmeyer White Paper Use Cases II UX+Prozessanalyse

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Barrierefreie Webseiten erstellen mit TYPO3

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

FTP-Leitfaden RZ. Benutzerleitfaden

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

ANYWHERE Zugriff von externen Arbeitsplätzen

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Übung: Verwendung von Java-Threads

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Use Cases. Use Cases

OP-LOG

Workflow, Business Process Management, 4.Teil

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

SWE5 Übungen zu Software-Engineering

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Software Engineering Klassendiagramme Assoziationen

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

SDD System Design Document

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Professionelle Seminare im Bereich MS-Office

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

Tips, Tricks und HOWTOs Virtualisierung für Profis und Einsteiger Serverkonsolidierung, Testumgebung, mobile Demo

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Der Kopf ist rund, damit das Denken die Richtung

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Windows Server 2012 R2 Essentials & Hyper-V

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Anforderungen an die HIS

Systemvoraussetzungen

Systemvoraussetzungen

DER BESSER INFORMIERTE GEWINNT!

Hochschule Darmstadt Fachbereich Informatik

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

HTBVIEWER INBETRIEBNAHME

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

eduroam mit SecureW2 unter Windows 7 Stand: 27. Januar 2015

Zusatzmodul Lagerverwaltung

Windows 8 Lizenzierung in Szenarien

Transkript:

Modellierung von Architekturen Malte Foegen, Patrick Atamaniuk wibas GmbH, Otto-Hesse-Str. 19 / T5, 64293 Darmstadt {malte.foegen, patrick.atamaniuk}@wibas.de Abstract: This paper is based on our experience with medium and large software projects. It defines the term architecture and shows its relevance in software engineering. In its main part this paper describes the elements of an architecture and defines the work products produced during a software development project in order to model an architecture. 1 Grundlagen 1.1 Begriff der Architektur In diesem Beitrag werden unter Architektur die Dinge verstanden, welche die (Grund-) Struktur eines Systems definieren. Mit Struktur sind dabei nicht nur die statischen Aspekte eines Systems wie z.b. Komponenten, ihre Schnittstellen und Beziehungen untereinander gemeint, sondern auch dynamische Aspekte wie etwa die Kommunikation zwischen den Komponenten. Die Struktur eines Systems ergibt sich aus einer Reihe von sich ergänzenden und überlagernden Teilstrukturen (beispielsweise die physische Komponentenstruktur, die logische Paketstruktur oder die Verteilungsstruktur). Sie wird folglich aus einer Reihe von Sichten d.h. einzelnen Arbeitsprodukten beschrieben, die zusammen die Architektur definieren (vgl. die ähnliche in [BK99], [BCK98], [CN99]) Mit der der Arbeitsprodukte, die zur Darstellung einer DV-Architektur verwendet werden, wird erstmals eine durchgängige, ausreichende und getestete Modellierung für Architekturen vorgeschlagen. Die Arbeitsprodukte werden im 4. Abschnitt näher betrachtet und anschließend in den Phasenprozess eingeordnet. Eine ausführliche Darstellung der Rolle der Architektur in den Anwendungsentwicklung findet sich in [FB01]. 1.2 Ziele einer Architektur Das Ziel einer Architektur ist es sicherzustellen, dass das spätere System die Anforderungen erfüllt (utilitas), robust gegenüber Änderungen ist (firmitas) und eine gewisse Schönheit besitzt (venustas). Mit Schönheit ist dabei gemeint, dass ein System seine Funktion durch seine Form kommuniziert. Diese allgemeine von Architektur in der Encyclopaedia Britannica [EB78] ist auch für die Softwaretechnik unverändert gültig (zur Robustheit siehe z.b. [SD00]). Die Begriffe utilitas, firmitas und venustas fassen die drei wichtigsten Fragen zusammen, der sich eine Architektur täglich stellen 119

muss: Wird das System damit die Anforderungen erfüllen? Wird es robust gegenüber möglichen Änderungen sein? Werden die Anwendungsentwickler die Architektur und die Anwender das System intuitiv nutzen können? 1.3 Einfluss der Architektur auf das System Eine Architektur bestimmt die Struktur eines Systems auf zwei Ebenen. Zum einen legt die Architektur das Modell des späteren Systems in einem gewissen Umfang fest und definiert damit die Gegenstandsebene, u.a. durch die Strukturierung des Systems in bestimmte Subsysteme und durch die Entwicklung von Basiskomponenten wie z.b. einem Persistenzframework. Zum anderen definiert sie Regeln, die bei der Entwicklung des Systems einzuhalten sind. Damit definiert sie die Metaebene der Entwicklung, z.b. durch Programmierrichtlinien oder Muster. Diesen Sachverhalt stellt Bild 1 näher dar. Bild 1: Einfluss der Architektur auf die Anwendungsentwicklung (die Pfeile lehnen sich an die UML Notation an) Modell der Metaebene Modell der Gegenstandsebene Architekturbereich Modellierungs- und Gestaltungsregeln keine rekursiv abhängigen Komponenten nicht ok ok wendet an der Komponenten und ihrer Beziehungen (Grey Box) und Implementierung der Basiskomponenten/ Frameworks (White Box) Anwendungsentwicklungsbereich wendet an Anwendung der Modellierungsregeln Spezialisierung Nutzung der Basiskomponenten (als Black Box) Die Anwendungsentwicklung darf die Grundstruktur des Systems (wie durch die Architektur definiert) nicht ändern, füllt sie aber weiter aus. Implementierung der Subsysteme (White Box) 2 Abgrenzung Der Begriff Architektur wird für eine Vielzahl von Systemen verwendet. Grundsätzlich können wir zwischen der Architektur von DV-Systemen (mit Hard- und Software) und 120

sozialen Systemen (mit Organisationen, Prozessen und Ressourcen) unterscheiden. Im Kontext der Entwicklung von DV-Systemen sind vier Architekturen von Bedeutung: Die Geschäftsarchitektur legt die Grundstrukturen des Geschäfts durch die von Geschäftszielen, Prozessen, Organisationsstrukturen und Ressourcen fest. Für die Erstellung von betrieblichen Informations- und Unterstützungssystemen ist sie eine zentrale Informationsquelle. Die Projektarchitektur definiert die Prozesse, Organisation und Ressourcen des Projekts. Sie ist Voraussetzung für das reibungslose Funktionieren des Projekts. Die Systemarchitektur definiert die Hard- und Software des zukünftigen technischen Systems (das zur Unterstützung der Abläufe im Geschäft beschrieben durch die Geschäftsarchitektur verwendet wird). Die Entwicklungsarchitektur definiert die Hard- und Software der Entwicklungsumgebung, also des Systems, mit dem das Zielsystem erstellt wird. Ggf. tritt hierzu noch die Architektur für das Testsystem. Die im folgenden vorgestellten Arbeitsprodukte dienen der Beschreibung der Architektur eines technischen Systems, d.h. sie können zur der System- und Entwicklungsarchitektur verwendet werden (zur Modellierung der Architektur von sozialen Systemen siehe z.b. [MD99]). 3 Arbeitsprodukte zur Beschreibung der Architektur von DV-Systemen Die beiden zentralen Teile einer Architektur eines DV-Systems sind die softwaretechnische Architektur und die Infrastrukturarchitektur. Die Infrastrukturarchitektur erfasst die holistische, operationale Sicht auf das System. Hierzu zählen unter anderem das technische System (mit Hardware, Plattformen, Lokationen, Verbindungen), die Platzierung der Softwarekomponenten in Rahmen des technischen Systems, die Konfiguration und das des Systems (Kapazitätsplanung, Softwareverteilung, Datensicherung und Wiederanlauf). Die softwaretechnische Architektur erfasst die Softwarekomponenten, die auf den Hardwarekomponenten ausgeführt werden, d.h. die funktionale Sicht auf das System. Hierzu gehören unter anderem die Struktur und Aufteilung der Softwarekomponenten, die Schnittstellen der Komponenten, die Beziehungen zwischen den Komponenten und die Zusammenarbeit der Komponenten miteinander. Bild 2 stellt die Arbeitsprodukte im Überblick dar, die in den Bereich der Systemarchitektur fallen. Arbeitsprodukte definieren die fassbaren (Teil-)Ergebnisse, d.h. was für eine Architektur getan werden muss unabhängig vom zeitlichen wann (zur Bedeutung von Arbeitsprodukten siehe [IBM97]). Die Auswahl dieser Arbeitsprodukte zur einer Architektur beruht auf den praktischen Erfahrungen, die in vielen Projekten gemacht wurden und die sich in mehreren Schritten herauskristallisiert haben (siehe z.b. die Entwicklungsmethoden der IBM in [IBM00], [Yo99], [IBM97]). Im Folgenden werden die wichtigsten Pakete von Arbeitsprodukten dargestellt, und anschließend wird jedes einzelne Arbeitsprodukt näher erläutert. Um eine einheitliche Bezeichnung der 121

Arbeitsprodukte zu gewährleisten, wird im folgenden immer auch der englische Name verwendet. Bild 2: Arbeitsprodukte zur einer Systemarchitektur. Jedes dieser Arbeitsprodukte wird im Text näher erläutert. Die Pfeile zwischen den Arbeitsprodukten (oder Paketen von Arbeitsprodukten) stellen wichtige Einflüsse dar, sind aber nicht formal gedacht. Domain Model System Context Use Case Model Usability Requirements Non- Functional Requirements Anforderungen Change Cases Current IT Environment Current IT Standards Reference Architecture Fit/Gap Analysis gesamter Systemarchitekturbereich Architecture Overview Diagram Systemarchitektur (Gegenstands- und Metaebene) Systemarchitektur (Gegenstandsebene) Service Level Characteristic Analysis Architectural Templates Component Model Softwaretechnische Architektur (Funktionale Aspekte) Deployment Units Operational Model Software Distribution Plan Infrastruktur- Architektur (Operationale Aspekte) Technical Prototype Viability Assessment Architectural Decisions Das in Bild 3 mit Architektur DV-System (Gegenstandsebene) bezeichnete Paket enthält die Elemente der Architektur, welche die Gegenstandsebene betreffen (zur Gegenstandsebene siehe Bild 1). Im Wesentlichen sind dies das Komponentenmodell (component model) der Softwaretechnischen Architektur und das Operationale Modell (operational model) der Infrastrukturarchitektur. Zum Komponentenmodell gehören auch Architekturkomponenten, die der Anwendungsentwicklung zur Verfügung gestellt werden z.b. gekaufte Komponenten oder von der Architekturgruppe entwickelte (Framework-)Komponenten. Die Architekturskizze (architecture overview diagram) entspricht dem mit Gegenstandsebene bezeichneten Paket in einem frühen Stadium. Architekturmuster (architectural templates) stellen Anleitungen auf der Metaebene dar; 122

sie bilden zusammen mit dem inneren Paket Gegenstandsebene die Architektur des DV-Systems. Eine Architektur muss insgesamt die Anforderungen erfüllen, die durch eine Reihe von Arbeitsprodukten im Paket Anforderungen festgehalten werden (utilitas). Bei der einer Architektur ist es sinnvoll, auf bewährte Konzepte zurückzugreifen die gezielte Auswahl von Referenzarchitekturen ist daher ein eigenes Arbeitsprodukt (reference architecture fit/gap analysis). Schließlich muss eine Architektur überprüft werden. Einzelne Fragestellungen können ggf. durch Prototypen beantwortet werden. Darüber hinaus ist aber eine Überprüfung der Architektur hinsichtlich der qualitativen Anforderungen notwendig (service level characteristic analysis), wie auch gegenüber den Anforderungen insgesamt (viability assessment). Die zentralen Arbeitsprodukte werden im folgenden durch ein Beispiel näher erläutert. Dieses basiert auf einem Online-Shop-System. Über dessen Komponenten gibt das Architecture Overview Diagram in Bild 3 eine Übersicht. Bild 3: Ein Architecture Overview Diagram für ein Online-Shop-System. Es stellt sowohl operationale Aspekte als auch ausgewählte Komponenten (funktionale Aspekte) dar. Client Presentation and Formatting Integration and Application Server Legacy Web Server Browser HTML Page Delivery HTML Page Formatter HTML Page State Application Inventory Legacy System JVM Java Applet JVM Java Servlet Transaction Integration Bookkeeping Legacy System Credit Authorization Static HTML pages Java Applets Java Servlets transaction state application state matadata for backend workflow 3.1 Softwaretechnische Architektur Die softwaretechnische Architektur, die den funktionalen Aspekt erfasst, gliedert das System in Komponenten. Dies sind funktionale Einheiten, die eine Schnittstelle, ein Verhalten und einen internen Zustand haben. Komponenten können miteinander in Beziehung stehen; solche Beziehungen sind die Nutzung oder Spezialisierung anderer Komponenten. Komponenten können wiederum andere Komponenten enthalten. Diese lehnt sich an die eines Objekts an, und Objekte sind die Blätter einer solchen Komponentenstruktur. Damit können zur Beschreibung der softwaretechnischen Architektur in Form eines Komponentenmodell (component model) die bekannten Diagramme der UML verwendet werden (Klassendiagramm und Kollaborations- bzw. Interaktionsdiagramme siehe Bilder 4 und 6). Der Vorteil dieser liegt darin, dass Komponenten eine klare Semantik haben und dass bestehende Notationen zur Darstellung eines Komponentenmodells verwendet werden können. 123

Bild 4: Komponentenmodell eines Online-Shop-Systems. Dieses Komponentenmodell ist ein Ausschnitt der Verfeinerung der Application Komponente aus dem Architecture Overview Diagram. Die Pfeile stellen nutzt Beziehungen dar (UML Klassendiagramm-Notation); sie sind für die Anwendungsentwickler verbindlich. Customer Address Customer Contact History Account Credit Account Statement Payment Order Order Manufacturer Book Order Item Pricing Delivery Catalog Task Info Packing Manager Scheduler Catalog 124

Die ermöglicht es, Komponenten auf unterschiedlichen Abstraktionsebenen zu handhaben (Bild 5). Jede Abstraktionsebene ist für sich lesbar und verbirgt die darunter liegenden Details. So kennt z.b. das Modell auf der Entwurfsebene Geschäftsobjekte, die als Klassen modelliert werden. Auf der Implementierungsebene wird die Funktionalität eines solchen Geschäftsobjekts dann durch eine Menge von Klassen, d.h. durch eine Komponente realisiert. Dadurch besitzen die Modelle einerseits einen sinnvollen Abstraktionsgrad und bleiben aussagefähig, indem sie nicht durch (immer wiederkehrende) Implementierungsdetails überfrachtet werden. Andererseits existiert eine klare Umsetzung des Modells auf eine Implementierung, und die Modelle haben eine klare Bedeutung. Insbesondere bei großen Projekten bzw. bei umfangreichen Systemen ist die durchgängige Erstellung eines Modells auf der Implementierungsebene zu umfangreich, zu detailliert und nicht lesbar. Ohne die Nutzung des obigen Komponentenkonzepts und der Verwendung von unterschiedlichen Abstraktionsebenen in der Modellierung besteht die Gefahr, dass entweder die Modelle zu detailliert und umfangreich sind (wenn jede Klasse im Modell mit einer Klasse im Code korrespondiert) oder dass die Modelle keinen Bezug zur Implementierung haben und damit eine rein akademische Übung bleiben. Bild 5: Unterschiedliche Abstraktionsebenen von Komponenten Komponenten Geschäftsobjekt- Komponenten aus Architecture Overview Diagram Ausschnitt aus Component Model Ausschnitt aus Component Model zur Umsetzung siehe Architectural Template Order Book <<BusinessObject>> - 1..* Application <<BusinessObject>> Category Manufacturer... 0..* Catalog Pricing- <<BusinessObject>> Feature Eine solche Umsetzung von Objekten der Modellierungsebene auf Komponenten der Implementierungsebene setzt voraus, dass klare Umsetzungsregeln definiert sind. Die solcher Umsetzungs- und Modellierungsregeln ist eine Aufgabe der Architektur. Die Regeln werden in der Form von Architekturschablonen bzw. Architekturmustern (architectural templates) formuliert. Sie stellen Anleitungen für den Anwendungsentwickler dar, wie bestimmte Aspekte zu lösen bzw. zu implementieren sind (Metaebene, 125

vgl. Bild 1). Die Notation der Architekturmuster erfolgt analog zu Patterns (wie z.b. in den Büchern [Ga96], [Bu96], [Co00]). Bild 6: Beispiel für ein Interaktionsdiagramm zwischen Komponenten. Die Interaktionen im Komponentenmodell stellen nicht eine Nachricht, sondern ein Bündel von Nachrichten dar. commitorder Order capture Customer Data Customer capture Address Address logcustomercontact capturedetails Contact History Order Item lookup determineprice Pricing Bild 7: Ausschnitt aus einem Architekturmuster, das festlegt, wie Geschäftsobjekte implementiert werden. Dieser Anleitung muss ein Entwickler bei der Umsetzung der Klasse folgen. Architekturmuster werden wie normale Muster aufgeschrieben (Name, Problem, Kontext, verwandte Muster, Lösung). Architekturmuster: Geschäftsobjekt-Implementierung Problem: Realisierung eines Geschäftsobjekts der Modellierung in der Implementierung Lösung: Aus jedem Geschäftsobjekt wird bei der Implementierung eine Komponente, welche die folgenden Klassen bzw.... Kontext: wird umgesetzt <<BusinessObject>> auf Customer CustomerComponent <<Interface>> Customer <<Factory>> CustomerFactory Dieses Interface enthält alle Operationen des Geschäftsobjekts Diese Klasse enthält die Implementierung aller fachlichen Funktionen Diese Klasse enthält die Einbindung aller technischen Funktionen (Code, der ggf. generiert werden kann) Das Framework enthält die Realisierung der technischen Basisfunktionalität implementiert <<BOImpl>> CustomerBOImpl erbt BasisFramework Persistenz- Implementierung... erzeugt <<TImpl>> CustomerTImpl nutzt Integration nutzt 126

Zusätzlich zu den Architekturmustern müssen ggf. technische Basiskomponenten bzw. Frameworks (z.b. solche für die Persistenz oder Verteilung), auf denen die Umsetzung beruht und deren Schnittstellen von den Anwendungskomponenten genutzt werden, definiert und implementiert werden (Gegenstandsebene). Bild 7 stellt dies ausschnittsweise dar. Die Umsetzung der Architekturmuster kann ggf. durch Werkzeuge unterstützt werden (Prüfung auf Einhaltung der Regeln, automatische Umsetzung der Objekte der höheren Abstraktionsebene auf Objekte der Implementierungsebene). Diese Werkzeuge müssen dann im Rahmen der Architekturarbeit erstellt bzw. gekauft werden. 3.2 Infrastrukturarchitektur Das Operationale Modell (operational model) bildet den Kern der Infrastrukturarchitektur. Zum Operationalen Modell gehören Diagramme, welche die Topologie und geographische Verteilung des Systems darstellen (siehe Bild 8). Außerdem werden die Knoten, Netzwerkverbindungen und Anwender des Systems spezifiziert, indem die Funktionalität (und später die Services) des Knotens beschrieben werden (z.b. in Form einer Tabelle). Später wird das Operationale Modell um eine Festlegung konkreter (Middleware-)Produkte erweitert, und bei den Netzverbindungen sind die entsprechenden Protokolle anzugeben. Zusätzlich kann die Vollständigkeit des Operationalen Modells durch Szenarien (Walkthroughs) überprüft werden. Solche Szenarien (in Textform oder als Interaktionsdiagramm) zeigen den Fluss einer Aktion eines UseCases vom Anwender durch das System zum Anwender zurück. Bild 8: Ein operationales Modell auf der logischen Ebene. Eingezeichnete logische Knoten können auf einer physischen Ebene durch Bündel (vertikale Skalierung) realisiert und ggf. logische Komponenten auf einem physischen Rechner platziert werden. Jeder der eingezeichneten Knoten wird durch eine detaillierte Beschreibung näher spezifiziert. Domain Name Server Public Key Infrastructure Internet Web Server Außenwelt HTTP/ HTTPS OC12/STM4 622 MBit/s leased line HTTP/ HTTPS Modem 54-1000 KBit/s Client Firewall Dimilitarized Zone (DMZ) Web Server (Informational) HTTP 1000 MBit/s HTTPS 1000 Web Server MBit/s (Transational) IP Knoten-Beschreibung Nichtfunktionale Anforderungen Präsentations-Funktion Prozessierungs-Funktion Daten Präsentations-Services Prozessierungs-Services Daten-Services Hardware Betriebssystem Verbindungen Middleware Komponenten Internal Network 1000 MBit/s LAN IP Firewall Clearing Partner Application Server Integration Server Authentication Server State and Transaction 100 MBit/s LAN D64S2 leased line Inventory System Bookkeeping System 100 MBit/s LAN Firewall Firewall 100 MBit/s LAN HTTPS HTTPS HTTPS Credit Authorization 127

Indem die Komponenten auf den Knoten des Operationalen Modells platziert werden, wird die Verbindung zwischen dem Komponentenmodell und dem Operationalen Modell hergestellt. Die auf einem Knoten platzierten Komponenten erfüllen dann mit ihren Leistungen die Services, wie sie im operationalen Modell definiert wurden. Die Angabe, welche Komponenten auf welchen Knoten liegen, erfolgt im operationalen Modell. Komponentenpakete (deployment units) gruppieren dabei die Komponenten, die zusammen ausgeliefert und auf einem Knoten platziert werden. Das Operationale Modell wird durch einen Plan zur Softwareverteilung (software distribution plan) ergänzt. Dieser beschreibt, wie die Deployment Units auf die Knoten verteilt werden. Ebenfalls eng mit dem Operationalen Modell verbunden ist der Plan zum System. Er stellt dar, welche Knoten verwaltet werden müssen und durch welche Prinzipien, Prozesse, Werkzeuge und Rollen dies bewerkstelligt wird. 3.3 Überprüfung der Architektur Da die Architektur eine zentrale Rolle spielt, sollte in mehreren Schritten überprüft werden, ob sie die Anforderungen erfüllen kann. Während der Architekturentwicklung können Prototypen (technical prototypes) zur Klärung einzelner technischer Aspekte genutzt werden. Später muss gezielt kontrolliert werden, ob die in den Nicht-Funktionalen Anforderungen festgelegten Qualitätsanforderungen durch eine Anwendung auf Basis der konzipierten Architektur erreicht werden können (service level characteristic analysis). Schließlich ist zum Ende hin die Tragfähigkeit der ganzen Architektur bezüglich der gesamten Anforderungen zu überprüfen (viability assessment). Neben statischen Überprüfungen wie z.b. Reviews kommen hierfür wiederum Prototypen in Frage. Durch eine prototypische Implementierung einer Anwendungskomponente (oder bei größeren Systemen durch eine Anwendung) können sowohl einzelne Qualitätsmerkmale (Durchsatz) als auch die Tragfähigkeit des gesamten Architekturkonzepts überprüft werden (vgl. [Ba98], [BCK98]). 3.4 Eingehende Arbeitsprodukte Neben den funktionalen und nicht-funktionalen Anforderungen (use cases, usability requirements, nonfunctional requirements) sowie der der Systemgrenze (system context) stellen insbesondere die derzeitige Infrastruktur (current IT environment) und die im Unternehmen (oder bei angebundenen Partnern) geltenden Standards (current IT standards) wichtige Anforderungen dar, die im Rahmen der Architektur berücksicht werden müssen. Standards und aktuelle Infrastruktur sind oftmals bereits beschrieben, so dass diese Arbeitsprodukte nicht im Projekt erstellt, wohl aber als Anforderungen betrachtet werden müssen. Obwohl mögliche zukünftige Änderungen, die explizit nicht Gegenstand des aktuellen Projektauftrags sind, ihrer nach keine Anforderungen darstellen, sollten diese potentiellen Änderungen dennoch festgehalten werden (change cases). Bei der Entwicklung der Architektur sind häufig Entscheidungen zu treffen, die vom Implementierungsaufwand bzw. von den Kosten her identisch sind. In solchen Fällen kann die Kenntnis solcher möglichen zukünftigen Änderungen als Entscheidungshilfe dienen. 128

3.5 Referenzarchitektur Eine Referenzarchitektur ist ein Muster für eine Architektur und umfasst die funktionalen wie operationalen Aspekte einer Architektur für eine bestimmte Klasse von Anwendungen. Konkrete Ausprägungen der Referenzarchitektur sind in einer Reihe von Projekten erfolgreich eingesetzt worden. Die Referenzarchitektur ist dann als eine generische Zusammenfassung der projektspezifischen Lösungen entstanden. Eine solche Referenzarchitektur (beispielsweise für e-shop-anwendungen) besitzt einen hohen Wert für ein Projekt: sie ist ein Muster für eine gesamte Architektur, die sich in konkreten Projekten bewährt hat. Die explizite Suche nach Referenzarchitekturen und deren Evaluierung (reference architecture fit/gap analysis) sollte daher am Anfang einer Architekturentwicklung stehen. 3.6 Dokumentation von Architekturentscheidungen Häufig vernachlässigt aber wichtig ist die Dokumentation zentraler Architekturentscheidungen (architectural decisions). Dies kann eine Datenbank oder ein Textdokument sein, in dem Entscheidungen und Prinzipien in Form eines Formulars abgelegt werden (für jede Entscheidung werden u.a. Problem, Entscheidung, Alternativen mit ihren Konsequenzen und Entscheidungshintergründe erfasst). Dieses Dokument ist nicht nur für die Dokumentation der Entscheidungen wichtig, sondern es hilft auch, die Architektur später zu verstehen und zu vertreten. Es stellt den Leitfaden für das Architekturteam und die Anwendungsentwickler dar. Nicht zuletzt kann dadurch vermieden werden, dass schon adressierte Probleme immer wieder diskutiert werden. Wichtig ist es jedoch, nicht einfach alle, sondern nur die wenigen zentralen (Grundsatz-)Entscheidungen zu dokumentieren. 4 Fazit Eine Architektur bestimmt die Struktur eines Systems. Die explizite einer Architektur ist unerlässlich, um die Systemstruktur nicht dem Zufall zu überlassen, sondern um sie gezielt zu gestalten. Aufgabe einer Architektur ist es, die Grundlagen für ein System (bzw. für eine unternehmensweite Systemfamilie) so zu legen, dass es die Anforderungen erfüllt, robust gegenüber Änderungen und verständlich ist. Die in diesem Artikel vorgestellten Arbeitsprodukte sind geeignet, eine Systemarchitektur umfassend bis hinunter auf Detailebene zu modellieren. Diese Arbeitsprodukte werden von Architekten erstellt und müssen von den Anwendungsentwicklern als Nutzer der Architektur verstanden werden. Für ein konkretes Projekt ist es meist nicht erforderlich, alle vorgestellten Arbeitsprodukte als jeweils einzelne Dokumente zu erstellen, aber das Komponentenmodell, das Operationale Modell und die Architekturmuster sollten auf keinen Fall fehlen Literaturverzeichnis [Ba98] M. R. Barbacci et. al: Steps in an Architecture Tradeoff Analysis Method: Quality Attribute Models and Analysis, Software Engineering Institute, Technical Report CMU/SEI-97-TR-029/ESC-TR-97-029, Pittsburgh 1998. 129

[BCK98] [BK99] [Bu96] [CN99] [Co00] [EB78] [FB01] [Ga96] [MD99] [IBM97] [IBM00] [SD00] [Yo99] L. Bass, P. Clements, R. Kazman: Software Architecture in Practice, Addisson-Wesley Publishing Company, Reading 1998 L. Bass, R. Kazman: Architecture-Based Development, Carnegie Mellon University, Software Engineering Institute, Technical Report CMU/SEI-99-TR-007/ESC-TR-99-007, Pittsburgh 1999 F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal: Pattern Oriented Software Architecture, Wiley & Sons, Chichester 1996 P. C. Clements, L. M. Northrop: Software Architecture: An Executive Overview, Carnegie Mellon University, Software Engineering Institute, Technical Report CMU/SEI-96-TR-003/ESC-TR-96-003, Pittsburgh 1999 J. Coplien, J. Vlissides, R. Martin, N. Harrison: Pattern Languages of Program Design, Volumne 1-4, Addison-Wesley, Reading 1995-2000 Encyclopaedia Britannica Inc. (Hrsg.): The New Encyclopaedia Britannica, Macropaedia, Volume1, Stichwort Architecture, Seiten: 1088-1115, Encyclopaedia Britannica Inc, Chicago 1978 M. Foegen, J. Battenfeld: Die Rolle der Architektur in der Anwendungsentwicklung, Informatik Spektrum, 24(2001), S. 290-301. E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns, Addison-Wesley, Reading 1996 D. W. McDavid: A standard for business architecture description, IBM Systems Journal, 38(1999) 1, S. 12ff. IBM, Developing Object Oriented Software, An Experience-Based Approach, Prentice Hall, Upper Saddle River 1997 IBM: IBM Global Services Method 3.0, Familie von Vorgehensweisen für Serviceprojekte, IBM internes Dokument, Dokument-Nummer ZZ81-0045-00, 2000 J. Siedersleben, E. Denert: Wie baut man Informationssysteme? Überlegungen zur Standardarchitektur, Informatik Spektrum, 23(2000), S, 247ff. R. Youngs, D. Redmond-Pyle, P. Spaas, and E. Kahan: A standard for architecture description, IBM Systems Journal, 38(1999) 1, S. 32ff. 130