Komponentenbasierte Architektur mit Schichten
Dieser Typ von Architektur baut auf Komponenten auf und ist unter Konzept: Komponente
beschrieben. Weil die Komponentenarchitektur auf unabhängigen, austauschbaren, modularen Komponenten basiert,
vereinfacht sie die Wiederverwendung und Verwaltung dieser Komponenten.
Anwendungsfälle von Rational Unified Process (RUP) steuern zwar einen gesamten Lebenszyklus, aber die
Konstruktionsvorgänge sind um die Systemarchitektur und, bei software-intensiven Systemen, um die Softwarearchitektur
angeordnet. Das Hauptaugenmerk in einem frühen Stadium der Prozessiterationen in der Ausarbeitungsphase liegt in der
Erstellung und Validierung einer Softwarearchitektur, die zu Beginn der Entwicklung innerhalb des
architektonischen Prototyps das Format einer ausführbaren Funktion aufweist und sich erst im Verlauf weiterer
Iterationen zum endgültigen System entwickelt.
Der Begriff der ausführbaren Architektur bedeutet für uns eine teilweise Implementierung des Systems, um bestimmte
Systemfunktionen und -eigenschaften zu demonstrieren. Das gilt insbesondere für die Eigenschaften, die auch die nicht
funktionalen Anforderungen erfüllen. Der Zweck der ausführbaren Architektur ist es, Risiken in den Bereichen Leistung,
Durchsatz, Kapazität, Zuverlässigkeit etc. zu mindern, damit das vollständige Funktionsspektrum des Systems in der Konstruktionsphase auf einer soliden Basis steht, und es nicht zu einem
Systemzusammenbruch kommt.
Eine Einführung in den Begriff Softwarearchitektur und Informationen darüber, warum dieser Begriff so wichtig ist,
finden Sie unter Konzept:
Softwarearchitektur.
RUP gibt Ihnen ein methodisches und systematisch strukturiertes Werkzeug für den Entwurf, die Entwicklung und die
Prüfung einer Architektur an die Hand. Dazu gehören Vorlagen für die Beschreibung von Konzepten, die sich einerseits
auf Architektursichten und andererseits auf das Erfassen des Architekturstils, der Designregeln und möglicher
Einschränkungen beziehen. Unter Analyse und Design finden Sie spezielle Aktivitäten, mit denen
architektonischen Einschränkungen und die für die Architektur signifikanten Elemente identifiziert werden; es wird
erläutert, wie Entscheidungen getroffen werden. Der Verwaltungsprozess zeigt, wie beim Planen der frühen
Iterationsschritte das Design einer Architektur berücksichtigt und auf die Lösung größerer technischer Probleme
eingegangen wird. Klicken Sie auf Projektmanagement, wo Sie weitere Informationen zu den Aktivitäten
des Softwarearchitekten finden.
Architektur ist aus verschiedenen Gründen außerordentlich wichtig:
-
Sie erlaubt es Ihnen, intellektuelle Kontrolle über Projekte zu halten, sie in ihrer Komplexität zu verwalten und
die Systemintegrität zu wahren.
Ein komplexes System ist mehr als die Summe seiner Teile und weitaus mehr als die Folge unwichtiger, unabhängiger
Entscheidungen. Eine kohärente Struktur ist erforderlich, um die Einzelteile systematisch strukturieren und
vereinheitlichen zu können. Diese Struktur muss genaue Regeln aufstellen, wie das System wachsen kann, ohne dass
seine Komplexität in unvorstellbare Dimensionen ausufert.
Die Architektur dient im Verlauf des gesamten Projekts als Grundlage für eine verbesserte Kommunikation und fördert
das Verständnis, weil sie ein einheitliches Vokabular definiert, so dass Designfragen diskutiert werden können.
-
Sie dient als effektive Basis für die Wiederverwendung von Teilen.
Wenn Sie die Hauptkomponenten sowie die kritischen Schnittstellen genau definieren, dient diese Architektur als
Grundlage für Überlegungen, was die Wiederverwendung betrifft. Bei der internen Wiederverwendung geht es um die
Identifizierung gemeinsam benutzter Teile, die externe Wiederverwendung bezieht sich auf die Nutzung
gebrauchsfertig eingekaufte Standardkomponenten. Natürlich ist auch die Wiederverwendung in kleinerem Rahmen
möglich. So könnte die Architektur selbst im Kontext einer Produktreihe erneut eingesetzt werden, die verschiedene
Leistungsmerkmale in einer gemeinsamen Domäne anspricht.
-
Sie dient als Basis für das Projektmanagement.
Planung und Mitarbeitereinsatz werden im Einklang mit den Hauptkomponenten organisiert. Fundamentale strukturelle
Entscheidungen werden von einem kleinen, miteinander vertrauten Team an einem Ort getroffen. Die Entwicklung ist
auf mehrere kleine Gruppen verteilt; dabei ist jede für einen bestimmten Teil des Systems verantwortlich.
Die komponentenbasierte Entwicklung ist eine Unterart der Anwendungsentwicklung. Für sie gilt:
-
Die Anwendung wird aus einzelnen ausführbaren Funktionen erstellt, die unabhängig voneinander
entwickelt wurden, eventuell sogar von verschiedenen Teams. Dies sind die so genannten
"RUP-Bausteinkomponenten". Weitere Informationen finden Sie unter Konzept:
Komponente.
-
Die Anwendung kann in kleinen Schritten aufgerüstet werden, indem nur jeweils einige ihrer
Bausteinkomponenten aufgerüstet werden.
-
Bausteinkomponenten können von mehreren Anwendungen gemeinsam genutzt werden; daraus ergeben sich einerseits
eine gute Wiederverwendbarkeit, aber andererseits auch projektübergreifende Abhängigkeiten.
-
Obwohl sie nicht unbedingt auf Komponenten basieren müssen, sind komponentenbasierte Anwendungen normalerweise
verteilt.
Bausteinkomponenten können wie folgt entstehen:
-
Wenn Sie eine modular ausgerichtete Architektur definieren, identifizieren Sie bestimmte Komponenten, um Sie zu
entwerfen, in einem korrekten Format zu entwickeln und dann zu testen. Diese Komponenten können vor der
schrittweisen Integration in das Gesamtsystem einzeln getestet werden.
-
Einige der Komponente können als wieder verwendbar definiert werden. Das gilt insbesondere für die Komponenten, die
allgemeine Lösungen für häufig auftretende Probleme zur Verfügung stellen. Diese wieder verwendbaren Komponenten
sind evtl. umfangreicher als Sammlungen von Dienstprogrammen oder Klassenbibliotheken und bilden die Basis dessen,
was innerhalb eines Unternehmens immer wieder eingesetzt werden kann; so wird die Qualität und die Produktivität
der Software gesteigert.
-
In der letzten Zeit werden immer häufiger kommerziell erfolgreiche komponentenbasierte Infrastrukturen angeboten
(wie z. B. CORBA, das Internet, ActiveX, JavaBeans, .NET und J2EE), die als Sprungbrett für eine Industrie dienen,
die gebrauchsfertige Komponenten für unterschiedliche Domänen anbieten. Für Sie bedeutet das, dass Sie Komponenten
immer häufiger kaufen und in Ihrem System integrieren werden, statt sie wie bisher intern entwickeln zu müssen.
Der erste Punkt der oben aufgeführten Liste bezieht sich auf die alte Definition von Modularität und Kapselung und
bringt diese Konzepte objektorientierter Technologie einen Schritte nach vorn. Bei den letzten beiden Punkten der Liste
verschiebt sich der Fokus der Softwareentwicklung vom Programmieren von jeweils einer Zeile zum Komponieren von
Software durch Zusammensetzen verschiedener Komponenten.
RUP unterstützt die
komponentenbasierte Entwicklung:
-
Die iterative Methode erlaubt es Ihnen, Komponenten stufenweise zu identifizieren, und dann zu entscheiden, welche
entwickelt, welche wieder verwendet und welche gekauft werden sollen.
-
Wenn die Softwarearchitektur im Mittelpunkt steht, haben Sie Einfluss auf die Struktur, also die einzelnen
Komponenten und die Art, wie sie miteinander agieren. Dazu gehören grundlegende Mechanismen und Muster, über die
sich die ausgewählten Komponenten austauschen. Dadurch werden die für das Projektmanagement wichtigen
Planungsaspekte klarer, weil Abhängigkeiten einzelner Komponenten voneinander bei der Entscheidung berücksichtigt
werden können. Es wird ersichtlich, welche Komponenten gleichzeitig und welche nacheinander entwickelt werden
sollten.
-
Konzepte wie Pakete, Subsysteme und Schichten werden bei Analyse & Design berücksichtigt, um Komponenten zu
ordnen und Schnittstellenzu definieren.
-
Zunächst werden Komponenten einzeln getestet, danach werden die Tesaktivitäten auf größere Gruppen integrierter
Komponenten ausgeweitet.
Weitere Informationen finden Sie unter Konzept: Komponente.
|