Inhaltsverzeichnis
Inhaltsverzeichnis I
Abbildungsverzeichnis II
Abk ürzungsverzeichnis II
1 Einleitung. 1
2 Grundlagen von Softwarearchitekturen. 1
2.1 Begriffsdefinitionen. 1
2.2 Motivation für Softwarearchitekturen 3
2.2.1 Qualität von Softwarearchitekturen 4
2.2.2 Einflussfaktoren von Softwarearchitekturen. 6
3 Modellierung von Softwarearchitekturen 10
3.1 Ziele. 10
3.2 Konzepte und Methoden 11
3.2.1 Sichtenkonzept 12
3.2.2 Architekturstrukturen 16
3.2.3 Architekturstile. 17
3.2.4 Referenzmodelle und Referenzarchitekturen. 18
3.2.5 Aktivitäten zur Modellierung. 19
3.2.6 Unified Modeling Language (UML) 21
3.2.6.1 Motivation 21
3.2.6.2 Entwicklung. 22
3.2.6.3 Ziele 23
3.2.6.4 Aufbau Konzepte. 26
4 Dokumentation von Softwarearchitekturen. 29
4.1 Ziele. 29
4.2 Konzepte und Methoden 30
4.2.1 Grundregeln 30
4.2.2 Sichtenkonzept 34
5 Fazit und Ausblick 35
Literaturverzeichnis 37
I
Abbildungsverzeichnis
Abbildung 2.1 - Die Softwarearchitektur im Kontext 2
Abbildung 2.2 - Einfluss der Stakeholder auf die Architektur 9
Abbildung 3.1 - Modellierung und Dokumentation im Kontext 10
Abbildung 3.2 - Konzepte und Methoden der Modellierung 12
Abbildung 3.3 - Das 4+1 Sichten Modell 13
Abbildung 3.4 - Beziehungen zwischen Architekturkonzepten 18
Abbildung 3.5 - Die Diagramme der UML gegliedert nach Sichten 26
Abbildung 3.6 - Die Diagramme der UML gegliedert nach Kategorien 27
Abkürzungsverzeichnis
ABC Architecture Business Cycle ADL Architecture Description Language IT Informationstechnik MDA Model Driven Architecture OMT Object-Modeling Technique OOSE Object-Oriented Software Engineering SOA Service-Oriented Architecture SDL Specification and Description Language UML Unified Modeling Language
1 Einleitung
Die Architektur zählt zu den wichtigsten Elementen eines Softwaresystems. Aus diesem Grund, gehören sowohl die Modellierung als auch die Dokumentation einer Softwarearchitektur, zu den wesentlichen Aktivitäten im Rahmen der Entwicklung von Software.
Die vorliegende Arbeit beschäftigt sich mit der Modellierung und Dokumentation von Softwarearchitekturen. Sie gliedert sich in drei Hauptteile. Jeder dieser Teile beginnt mit der Definition und Abgrenzung der zentralen Begriffe und setzt sich mit der jeweils zugrunde liegenden Motivation auseinander. Mit dem Teil „Grundlagen von
Softwarearchitekturen“ soll die grundlegende Bedeutung von Softwarearchitekturen herausgestellt werden. Hierbei stehen im besonderen die Frage, welche Faktoren Einfluss auf die Architektur haben sowie der Aspekt der Qualität im Mittelpunkt. Im Teil „Modellierung von Softwarearchitekturen“ geht es schwerpunktmäßig um eine Reihe zentraler Konzepte und Methoden, welche für die Modellierung verwendet werden können. Ein besonderer Fokus liegt hierbei auf der Modellierungssprache UML, da diese einen praktischen Ansatz zur Modellierung darstellt und die darüber hinaus sehr weit verbreitet ist. Der Teil „Dokumentation von Softwarearchitekturen“ befasst sich schließlich damit, warum die Dokumentation einer Softwarearchitektur notwendig ist, welche Ziele mit der Dokumentation verfolgt werden sowie welche Ansätze es gibt, um diese Ziele zu erreichen.
2 Grundlagen von Softwarearchitekturen
Um ein Verständnis für die Bedeutung der Modellierung und Dokumentation von Softwarearchitekturen zu erlangen, ist es zunächst wichtig deutlich zu machen, welche Rolle die Softwarearchitektur bei der Entwicklung eines Softwaresystems spielt. In diesem Abschnitt wird es daher, als Basis für die nachfolgenden Punkte, vor allem um grundsätzliche Aspekte in Bezug auf Softwarearchitekturen gehen.
2.1 Begriffsdefinitionen
Eine Softwarearchitektur kann definiert werden als die Struktur der Strukturen einer Software bzw. eines Softwaresystems (vgl. [BaCK2003, S.3]). Unter einer Struktur sind dabei Software Elemente und die Beziehungen zwischen diesen Elementen zu verstehen. Die Elemente enthalten ihrerseits öffentliche und
private Bereiche und werden durch unterschiedliche Personen bzw. Gruppen von Personen bearbeitet. Von den Details der Elemente wird bei einer Architektur abstrahiert (vgl. [BaCK2003, S.21f]). Im folgenden werden die Begriffe
Softwarearchitektur und Architektur, sofern nicht anders angegeben, synonym verwendet. Gleiches gilt für die Begriffe Software, Softwaresystem und System.
Legt man die oben genannte Definition zugrunde, so verfügt prinzipiell jedes Softwaresystem über eine Architektur. Im einfachsten Fall, wenn das System nur aus einem einzigen Element besteht [BaCK2003, S.22].
Allerdings existiert bis heute keine anerkannte, allgemeingültige Definition des Begriffs Softwarearchitektur. Die vorliegende Definition stellt somit eine unter zahlreichen Definitionen dar 1 . Jedoch besteht zwischen vielen der gängigen Definitionen eine starke inhaltliche Redundanz (vgl. [BaCK2003, S.23]).
Weiterhin ist im Bereich der Softwareentwicklung der Begriff des Stakeholders von Relevanz. Als Stakeholder werden in diesem Fall alle Personen und Gruppen von Personen bezeichnet, die an dem Prozess der Systementwicklung beteiligt sind (vgl.
1 Weitere Definitionen: http://www.sei.cmu.edu/architecture/definitions.html
[HaNe2001, S.248]) bzw. die ein Interesse an diesem Prozess haben (vgl. [BaCK2003, S.6]).
2.2 Motivation für Softwarearchitekturen
Der Architektur kommt in einem Softwaresystem eine Rolle zu, die vergleichbar ist mit der Rolle von Architekturen in anderen Kontexten, etwa beim Bau von Gebäuden. Die Architektur eines Softwaresystems stellt dessen Grundstruktur dar, so wie die Architektur eines Gebäudes dessen Grundstruktur beschreibt. Dementsprechend zählt die Modellierung der Architektur zu den wichtigsten Phasen im
Softwareentwicklungsprozess.
Die Bedeutung der Softwarearchitektur basiert dabei im wesentlichen auf drei Faktoren [BaCK2003, S.26ff]:
• Grundstruktur
Die Softwarearchitektur beschreibt die frühesten Entscheidungen, bezüglich des Designs und damit die Grundstruktur eines Systems. Das heißt auch, dass es sich bei den Entscheidungen, die sich in der Architektur ausdrücken, um die schwierigsten und die mit den weitest reichenden Konsequenzen verbundenen Entscheidungen handelt. Damit hat die Architektur auch maßgeblichen Einfluss darauf, wie die Implementierung des Systems erfolgt und wie die Struktur des Entwicklungsprozesses bzw. des Entwicklungsprojektes aussieht.
Darüber hinaus wirkt sich die Architektur darauf aus, inwieweit bestimmte Qualitätsaspekte vom System erfüllt werden können, auch wenn die Qualität eines Softwaresystems selbst, nicht von der Architektur determiniert wird.
• Kommunikation
Die Architektur dient als Mittel der Kommunikation zwischen den Stakeholdern. Die Stakeholder haben unterschiedliche, oftmals divergierende Interessen. Außerdem kommen sie zum Teil aus
unterschiedlichen Bereichen (z.B. Kunden, Projektmanager, Programmierer), weswegen es zu Problemen bei der Kommunikation oder Missverständnissen zwischen ihnen kommen kann. Daher ist es wichtig die Architektur eines Systems als gemeinsame, allen verständliche Sprache für die Stakeholder zu verstehen und zu verwenden.
• Abstraktion
Der Aspekt der Abstraktion ist im Hinblick auf Softwarearchitekturen von besonderer Bedeutung. Die Softwarearchitektur stellt ein Modell der Struktur eines Systems dar, bei dem die Details des Systems nicht betrachtet bzw. abgebildet werden. Es erfolgt demnach eine Abstraktion und damit eine Reduktion auf das wesentliche.
Dies hat zur Folge, dass sich eine Architektur auch auf Systeme mit vergleichbaren Anforderungen, in funktionaler und qualitativer Hinsicht, übertragen und so wiederverwenden lässt.
2.2.1 Qualität von Softwarearchitekturen
Aufgrund der Bedeutung die der Architektur eines Softwaresystems zukommt, hat die Qualität einer solchen Architektur entscheidenden Einfluss auf die Qualität der Software insgesamt. Der Aspekt der Qualität spielt demzufolge für die Modellierung einer Softwarearchitektur ebenfalls eine entscheidende Rolle, da im Rahmen der Modellierung Entscheidungen zu treffen sind, die großen Einfluss auf die spätere Erfüllung bestimmter Qualitätsmerkmale durch die Software haben. Eine Software muss über die reine Funktionalität hinaus gehende, so genannte nichtfunktionale Qualitätsanforderungen erfüllen. Dies sind nach [BaCK2003, S.74] die folgenden sechs Attribute, die eine Software in unterschiedlich starker Ausprägung realisiert:
• Verfügbarkeit
Gibt Auskunft darüber, in welchem Umfang die Software zur Bearbeitung einer gegebenen Aufgabe genutzt werden kann. Die Verfügbarkeit kann eingeschränkt werden sowohl durch Belastungen des Systems als auch durch Fehler (vgl. [MeLe2003, S.702]).
• Modifizierbarkeit
Gibt an inwieweit die Software an veränderte Anforderungen angepasst werden kann (vgl. [MeLe2003, S.604]).
• Performanz
Bezeichnet die Geschwindigkeit, mit der die Software eine Aufgabe bzw. eine Menge von Aufgaben verarbeitet (vgl. [MeLe2003, S.364]).
Arbeit zitieren:
Christian Kahl, 2005, Modellierung und Dokumentation von Softwarearchitekturen, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Christian Kahl's Text Modellierung und Dokumentation von Softwarearchitekturen ist nun auf dem Buchmarkt erhältlich
Christian Kahl hat den Text Modellierung und Dokumentation von Softwarearchitekturen veröffentlicht
Christian Kahl hat einen neuen Text hochgeladen
User Interface-orientierte Softwarearchitektur
Bauentwurfslehre für durchdach...
Paul Chlebek
Basiswissen Softwarearchitektur
Verstehen, entwerfen, wiederve...
Torsten Posch, Klaus Birken, Michael Gerdom
G Schenke
HdA Dokumente zur Architektur 21/22 position alltag
architecture in the context of...
Ellen Bareis, Gabu Heindl, Ernst Hubeli, Otto Kapfinger, Nils Norman, Marc Ries, Riklef Rambow, Markus Bogensberger, Susanne Baumann-Cox, Maria Nievoll, Drehli Robnik
0 Kommentare