• Keine Ergebnisse gefunden

„Eine Softwarearchitektur besteht aus einer Menge von Komponenten und ihren Beziehungen

N/A
N/A
Protected

Academic year: 2021

Aktie "„Eine Softwarearchitektur besteht aus einer Menge von Komponenten und ihren Beziehungen "

Copied!
48
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung Wintersemester 2005 / 06 Technische Universität München Institut für Informatik

Lehrstuhl von Prof. Dr. Manfred Broy

Dr. Klaus Bergner, Prof. Dr. Manfred Broy, Dr. Marc Sihling

Softwarearchitektur

2. Ziele und Ergebnisse des Architekturentwurfs

(2)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

ƒ Zusammenfassung und Ausblick

(3)

Kurze Wiederholung:

die 2 Bedeutungen des Begriffs „Softwarearchitektur“

1.

„Eine Softwarearchitektur besteht aus einer Menge von Komponenten und ihren Beziehungen

untereinander.“

2.

„Die Disziplin Softwarearchitektur wird als Teil des Software-Engineerings verstanden und definiert

Methoden, Techniken und Werkzeuge zur effizienten Entwicklung qualitativ hochwertiger

Softwarearchitekturen.“

(4)

Ein Beispiel:

wie kommt man zur Softwarearchitektur?

ƒ Ein gängiger Weg, um die Komponenten einer Architektur zu ermitteln besteht in der Betrachtung der Abhängigkeiten

(5)

Ein Beispiel:

wie kommt man zur Softwarearchitektur?

ƒ Ein gängiger Weg, um die Komponenten einer Architektur zu ermitteln besteht in der Betrachtung von Abhängigkeiten

ƒ Komponenten „gruppieren“ Elemente mit starker Abhängigkeit

A B

C

(6)

Ein Beispiel:

wie kommt man zur Softwarearchitektur?

ƒ Ein gängiger Weg, um die Komponenten einer Architektur zu ermitteln besteht in der Betrachtung von Abhängigkeiten

ƒ Komponenten „gruppieren“ Elemente mit starker Abhängigkeit

ƒ Abhängigkeiten zwischen Komponenten werden zu Schnittstellen

ƒ Ist die Architektur einmal festgelegt, gibt sie Richtlinien vor für die Einführung neuer Abhängigkeiten (hier: keine Verbindung zwischen den Komponenten A und C)

A B

C

A

B

C

(7)

Begrifflichkeiten

ƒ Ähnlich dem Begriff der Softwarearchitektur gibt es eine Fülle teils sehr unterschiedlicher Vorstellungen über den Begriff

„Komponente“

ƒ Um präzise über Komponenten reden zu können, definieren wir in der nächsten Stunde ein Systemmodell, das die beteiligten

Konzepte formal beschreibt und zueinander in Beziehung setzt

ƒ Bis dahin halten wir fest:

ƒ Eine Komponente ist ein Baustein des Systems

ƒ Eine Komponente kapselt ihr Inneres und kommuniziert mit anderen Komponenten über Schnittstellen

ƒ Komponenten können, müssen aber nicht tatsächlichen Modulen der Implementierung entsprechen. Insbesondere kann man auch

Komponenten definieren, wenn es in der Implementierung kein entsprechendes Konzept hierfür gibt.

(8)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

ƒ Zusammenfassung und Ausblick

(9)

Spannungsfeld Architekturentwurf

Softwarearchitekt

Endbenutzer Kunde

Management

Administrator Marketing

mehr Funktionalität als die Konkur- renz, kurze Entwicklungsdauer,...

hohe Effektivität, Auslastung, Wachstum,...

einfacher Betrieb, einfache Wartung,...

Funktionalität, Performanz, Stabilität, Sicherheit,...

geringe Kosten, hohe Qualität, Termintreue,...

Implementierungs- richtlinien, Design,...

Einhaltung von Standards für Dokumentation, Vorgehen,...

Organisation

Einhaltung von Betriebs- vereinbarungen, Richtlinien,...

(10)

Ziel des Architekturentwurfs

ƒ Eine Softwarearchitektur besteht aus einer Menge von Komponenten und deren Beziehungen untereinander.

ƒ Ziel des Architekturentwurfs ist:

ƒ Den Bauplan des Systems zu erstellen, nach dem sich dann Erstellung, Wartung, Pflege und Weiterentwicklung ausrichten

ƒ Eine vollständige und prägnante Architekturbeschreibung erstellen

ƒ Dabei die geforderten funktionalen und nicht funktionalen Anforderungen gewährleisten

ƒ Die Architekturbeschreibung dient als

ƒ Kommunikations- und Diskussionsplattform

ƒ Design- und Implementierungsplan

(11)

Architekturbeschreibung:

Kommunikations- und Diskussionsplattform

ƒ Abstrakte Beschreibung des Systems

ƒ Beherrschbarkeit der Komplexität (divide et impera)

ƒ Zuordnen, Priorisieren und Reflektieren von funktionalen und nicht funktionalen Anforderungen

ƒ Integration von existierenden Lösungen und Systemen

ƒ Abgleich mit den Anforderungen an Systemarchitektur und Hardware

ƒ Erarbeiten, Evaluieren und Bewerten von alternativen Lösungsansätzen

Softwarearchitekt

Endbenutzer Kunde

Management Marketing

Organisation Softwarearchitekt

Endbenutzer Endbenutzer Kunde

Kunde

Management Management Marketing

Marketing

Organisation Organisation

(12)

Architekturbeschreibung:

Design- und Implementierungsplan

ƒ Festlegung der Komponenten des Systems sowie deren Schnittstellen und

Interaktionsmuster

ƒ Integration von neuen Technologien und innovativen Lösungsansätzen

ƒ Erarbeitung, Einführung, Schulung und Überprüfung von Programmierrichtlinien

ƒ Erstellung von Prototypen und exemplarischen Teillösungen

ƒ Wiederverwendung von existierenden

Implementierungen und Teilimplementierungen

ƒ Rahmen für die Projektorganisation und -planung

Softwarearchitekt

Methodiker Entwickler

Administrator

Softwarearchitekt

Methodiker Methodiker Entwickler

Entwickler Administrator

Administrator

(13)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

(14)

Architekturentwurf im Kontext der SW-Entwicklung

Anforderungs- analyse, Domänenanalyse

Entwurf der Softwarearchitektur

Entwurf der Systemarchitektur,

Auswahl der Hardware

Feindesign, Programmierung, Integration, Testen,

Auslieferung

(15)

Entwurf der Softwarearchitektur

Entwurf der Softwarearchitektur

Architektur- modellierung

Architektur- validierung Architekturanalyse

(16)

File - FileName : String

P - X : int - Y : int Fo - Name : String - Style : int - Size : int

Di - Height : int - Width : int

Line +$ STRAIGHT : LineStyle +$ SNAPPED : LineStyle +$ SLANTED : LineStyle +$ LOOP : LineStyle

<<Enum>>

Automa +$ IMPLEMENTATION : AutomatonKind +$ CLASSSPEC : AutomatonKind +$ TYPESPEC : AutomatonKind

<<Enum>>

Dire +$ IN : Direction +$ OUT : Direction

<<Enum>>

Tran - Name : String - Input : String - Output : String - PreCondition : String - PostCondition : String - Action : String - IsOuter : boolean - ControlPointOne : Point - ControlPointTwo : Point Par

- Name : String Rep

S

Inte - Name : String - Condition : String - Direction : int - Location : Point

* 1

+OutSegment

* +SourcePoint 1

* 1

+InSegment

* +DestinationPoint 1 Com

- Name : String - OEFStream : String - OEFAnnotation : String

* 1

* 1 Re - Name : String

1 1

1 1

Proj

Chan - Name : String - Type : String - DisplayFont : Font - DrawType : int - TextBoxSize : Dimension - TextBoxLocation : Point

Stat - Name : String - Predicate : String - EntryAction : String - ExitAction : String - IsHistory : boolean - IsInitial : boolean - Location : Point - Size : Dimension - Border : int

* 0..10..1

*

1

* 1

* Proj

- Name : String - OEFStream : String

* 1

* 1 1

* 1

*

0..1

* +SuperProject

0..1

+SubProject

*

1 1

1 1

S

Attr - Name : String - Type : String

Port - Name : String - Direction : Direction = -1 - Type : String - Location : Point

# DisplayFont : Font - ShowName : boolean

0..1 1

+OutChannel 0..1 +SourcePort

1

0..1 1

+InChannel 0..1 +DestinationPort

1 Co - Name : String

1

* 1

*

Auto - Name : String - Kind : int - ClassName : String

0..1

* 0..1

* 1

* 1

*

Com - Name : String - Location : Point - Size : Dimension - Border : int - DisplayFont : Font - TextBoxLocation : Point - TextBoxSize : Dimension 0..10..1 ** 1

* +SuperComponent 1

+SubComponent

*

1

* 1

* 1

* 1

* 0..1

1 0..1

1

0..1

0..1

0..1

0..1 Te - Line : String 1 1..*1 1..*

Architekturmodellierung

top-downbottom-up

fachlich technisch

Architekturmodell

Wiederverwendung

Applikationsserver, Datenbanken, Transaktionsmonitore existierende

Komponenten &

Systeme fachliche Anforderungen

Systemarchitektur, Hardware

Architekturanalyse

(17)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

(18)

Ausgangsprodukttypen des Entwurfs: Anforderungen

ƒ Anforderungskategorien

ƒ Funktionale Anforderungen: Verwaltung von Kunden, Verwaltung von Verträgen, etc.

ƒ Nicht funktionale Anforderungen

- Qualitätsanforderungen (IEEE 1061): Benutzbarkeit, Stabilität, Wartbarkeit, Erweiterbarkeit, Performanz, etc.

- Randbedingungen

- System / Produkt: Vorgaben zur Verteilung, physikalische

Anforderungen, Umweltanforderungen, Materialanforderungen, etc.

- Technologie: Vorgaben zur Hardware, Vorgaben zur Software, Vorgaben zu Standardtechnologie, etc.

- Prozess: Vorgaben zum Vorgehensmodell, Anforderungen bzgl.

Einführung und Migration, etc.

- Organisation / Management: Vorgaben bzgl. Zeit und Budget, Vorgaben bzgl. Personal, Vorgaben bzgl. Ressourcen

(19)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

(20)

Ergebnistypen der Architekturanalyse

ƒ Beschreibung der Architekturanforderungen

ƒ Identifizieren, Einordnen und Beschreiben der Anforderungen

ƒ Charakterisierung der Anforderungen bzgl. Flexibilität und Änderbarkeit

ƒ Auswirkungsanalyse von Anforderungsänderungen

ƒ Beschreibung der Architekturtreiber

ƒ Identifizieren der zentralen Architekturtreiber und zuordnen von Anforderungen

ƒ Entwicklung von (alternativen) (Teil-) Lösungen und Strategien bzw. Strategiebausteinen

ƒ Identifizieren von Strategien und Lösungen die in Beziehung stehen

(21)

Beschreibung der Architekturanforderungen

<Name der Anforderung>

Kategorie: <Kategorie der Anforderung: funktionale Anforderung, nicht funktionale Anforderung (Qualitätsanforderung), Rahmen- bedingung System/Produkt, usw.; Gegenebenenfalls Verweis auf das Anforderungsanalyse- bzw. Domänenanalyse-

dokument>

Beschreibung: <Kurze Beschreibung der Anforderung>

Flexibilität und Änderbarkeit:

<Beschreibung der Flexibilität der Anforderung, d.h. in wie weit akzeptiert der Anforderungsträger, dass diese Anforderung verändert werden.

Beschreibung der Änderbarkeit der Anforderung, d.h. in wie weit sind Änderungen dieser Anforderung durch den

Anforderungsträger abzusehen.>

Auswirkungen: <Auswirkungen auf andere Anforderungen und auf die Priorität: <muss | soll | kann>

(22)

Beschreibung der Architekturtreiber

<Name des Architekturtreibers>

Beschreibung: <Kurze Beschreibung des Architekturtreibers>

Anforderungen: <Liste der Anforderungen, die der Architekturtreiber adressiert.>

N. Testszenario: <dito>

1. Testszenario: <Beschreibung eines Anwendungsszenarios um eine korrekte Realisierung des Architekturtreibers zu überprüfen.>

Lösung: <Kurze Lösungsbeschreibung>

1. Strategiebaustein: <Beschreibung eines Strategiebausteins. Mehrere Strategiebausteine können sowohl alternativ als auch kombiniert verwendet werden.>

N. Strategiebaustein: <dito>

Verwandte Strategien: <Liste anderer Architekturtreiber bzw. Strategiebausteinen, die in Bezug zu diesem Architekturtreiber stehen>

(23)

Anwendungsbeispiel: eVersicherung 2000

ƒ Neues Informationssystem „eVersicherung 2000“ der

„Versicherungs AG“

ƒ Produkte der Versicherungs AG

ƒ Lebensversicherungen

ƒ Rentenversicherungen

ƒ Unfallversicherungen

ƒ Funktionalität der eVersicherung 2000

ƒ Versicherungsangebote verwalten

ƒ Versicherungsverträge verwalten

ƒ Versicherungspolicen verwalten

ƒ Anwender des Systems sind Endkunden, Makler und Mitarbeiter der Versicherungs AG

(24)

Beispiel einer Architekturanforderungsbeschreibung

A1: Verwaltung von Kundendaten

Kategorie: funktionale Anforderung

Beschreibung: Das System ermöglicht Benutzern Kunden zu erzeugen, deren Daten (Name, Adresse, etc.) zu bearbeiten, zu suchen und zu löschen.

Priorität: muss

Auswirkungen: Die nachträgliche Integration externern Kundendatenbanken kann große Auswirkungen auf die Architektur und somit auch auf das System haben sowie die damit verbundenen

Entwicklungssaufwände haben.

Flexibilität und Änderbarkeit:

Externe Kundendatenbanken müssen in zukünftigen Versionen des Systems eingebunden werden können.

A2: Verwaltung von Vertragsdaten

Kategorie: funktionale Anforderung

...

(25)

Beispiel einer Architekturanforderungsbeschreibung

A3: Gleichzeitiges Arbeiten mehrer Benutzer

Kategorie: Qualitätsanforderung

A4: Internet-basiertes System mit grafischer Oberfläche

Kategorie: Qualitätsanforderung

A5: Benutzer haben Zugriff auf aktuelle Daten

Kategorie: Qualitätsanforderung

A6: Time-to-market ist zwei Jahre

Kategorie: Rahmenbedingung System/Produkt

A7: Anforderungen sind priorisiert

Kategorie: Rahmenbedingung Prozess

A8: Release-Zyklus wichtiger als Funktionalität

Kategorie: Rahmenbedingung Management

(26)

Beispiel einer Architekturtreiberbeschreibung

Aktuelle, konsistente, mehrbenutzerfähige Datenbearbeitung

Beschreibung: Mehrere Benutzer müssen gleichzeitig mit dem System die Daten bearbeiten und auf aktuelle und konsistente Daten zugreifen können. Auf Datenänderungen anderer Benutzer muss ein möglichst zeitnaher Zugriff möglich sein.

Anforderungen: A3, A4, A5, A6, A8, A1, A2

2. Testszenario: Benutzer A bearbeitet die Daten eines Kunden. Ein anderer Benutzer B ermittelt gleichzeitig ein Liste mit Kunden deren Versicherungsvolumen ein bestimmtes Limit übertrifft. In dieser Kundenliste taucht auch der Name des Kunden auf, der

gerade von Benutzer A bearbeitet wird.

1. Testszenario: Das System stellt dem Benutzer eine Kundenliste zur

Verfügung. Der Benutzer wählt einen Kunden zur Bearbeitung aus und ändert den Namen des Kunden. Mit der Bestätigung der Namensänderung, ändert sich auch der Name in der dargestellten Kundenliste.

Lösung: ????

(27)

Beispiel einer Architekturtreiberbeschreibung

Lösung: Kombination von Model/View/Controller Muster und

Transaktionsmechanismus. Zuerst eine Kombination aus dem 1. und dem 6. Strategiebaustein. Dann von dem 1. zum 2. und später zum 3. Strategiebaustein erweitern, entsprechend dem Architekturtreiber „Kurze Entwicklungszyklen“.

1. Strategiebaustein: Benutzer kann die Aktualisierung der Daten auf Knopfdruck aktivieren.

2. Strategiebaustein: In bestimmten Zeitintervallen werden die angezeigten Daten aktualisiert.

3. Strategiebaustein: Nach einer Datenänderung werden die Daten anderer Benutzer automatisch aktualisiert.

4. Strategiebaustein: Eine Transaktion pro Benutzer

5. Strategiebaustein: Eine Transaktion pro Dialog / Fenster 6. Strategiebaustein: Eine Transaktion pro Anwendungsfall

Verwandte Architekturtreiber: Kurze Entwicklungszyklen; 1. Strategie:

(28)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

ƒ Zusammenfassung und Ausblick

(29)

Modelle und Softwarearchitektur

ƒ Modelle sind vereinfachte Abbildungen der Realität, die es erlauben Aussagen im Modell so darzustellen, dass sie von allen Beteiligten gleich interpretiert werden.

ƒ Ein Architekturmodell besteht aus:

ƒ Menge von elementaren Komponenten

ƒ Export- und Import-Schnittstellen der Komponenten

ƒ Komposition der Bausteine zu einer geeigneten Software- architektur

ƒ Ein Architekturmodell soll präzise und vollständig sein:

ƒ Interaktion und Kommunikation

ƒ Verbindungen und Strukturen

ƒ Zustandsraum und Datenstrukturen

ƒ Trotzdem innere Struktur der Bausteine verbergen!

(30)

Ergebnistyp der Architekturmodellierung:

Architekturbeschreibung bzw. Architekturspezifikation

ƒ Eine Architekturbeschreibung bzw. Architektur-

spezifikation beschreibt ein Architekturmodell (meist in Form eines Softwarearchitekturdokumentes)

ƒ Ein Softwarearchitekturdokument sollte enthalten:

ƒ Entwurfsziele, Richtlinien und Muster der Architektur

ƒ Abstrakte, grafische Beschreibung mit verschiedenen Sichten

ƒ Zusätzlicher, erklärender Text

ƒ Entwurfsentscheidungen und Alternativlösungen

ƒ Funktionale und nicht funktionale Testfälle

ƒ Erweiterungsmöglichkeiten

ƒ Ein Softwarearchitekturdokument sollte so einfach wie möglich sein, aber so umfangreich wie notwendig.

ƒ “You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away.”

(31)

Techniken für den Architekturentwurf

ƒ Ziel des Architekturentwurfs

ƒ Komponenten identifizieren

ƒ Schnittstellen der Komponenten beschreiben

ƒ Komposition der Komponenten beschreiben

ƒ Techniken

ƒ Anwendung von Heuristiken zur Komponentenidentifikation - Hauptwörter in Anforderungen werden zu Entitäten und Verben

werden zu Aktivitäten

- Bündelung von Aktivitäten und Entitäten in Komponenten

ƒ Von Szenarien zu vollständigen Modellen

- Von UML-Sequenzdiagrammen zu UML Klassendiagrammen - Class Responsibilities Collaborations Workshop, CRC-Karten

ƒ Wiederverwendung von bewährten Architekturen (vgl. Kapitel

(32)

Erfolgsfaktoren des Architekturentwurfs

ƒ In minimalen Schnittstellen und Komponenten denken

ƒ Syntax und Verhalten von Schnittstellen und Komponenten beschreiben

ƒ Komposition der Komponenten zu einer Architektur getrennt beschreiben

ƒ Modularität

ƒ Lose Kopplung

ƒ Abhängigkeiten sichtbar machen

ƒ Zuerst fachliche Sichten, dann technische

ƒ Geeignete Kombination von bottom-up und top-down

(33)

Beispiel: Von Szenarien zu vollständigen Modellen

ƒ 3. Strategiebaustein von Folie 2.22:

Nach einer Datenänderung werden die Daten anderer Benutzer automatisch aktualisiert.

(34)

Beispiel: Von Szenarien zu vollständigen Modellen

(35)

Beispiel: Von Szenarien zu vollständigen Modellen

(36)

Beispiel: Von Szenarien zu vollständigen Modellen

(37)

Beispielgliederung eines Softwarearchitektur- dokumentes

ƒ Einleitung und Überblick

ƒ Motivation und Rahmenbedingen

ƒ Ziele

ƒ Anforderungen

ƒ Architekturtreiber

ƒ Grobarchitektur

ƒ Überblick über alle Komponenten und deren Beziehungen

ƒ Beschreibung der Interaktion zwischen den Komponenten

ƒ Beschreibung ausgewählter Sichten und Aspekte

ƒ Verteilung

ƒ Fehlermanagement

ƒ Transaktionsmanagement

ƒ ...

(38)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

ƒ Zusammenfassung und Ausblick

(39)

Ergebnistypen der Architekturvalidierung

ƒ Reviews

ƒ Modellgetriebene Validierung und Verifikation

ƒ exemplarische „Ausführung“ der Modelle

ƒ Modelchecking

ƒ Beweisen bestimmter Eigenschaften (Theorembeweiser)

ƒ Prototyping

ƒ experimentelle Prototypen

ƒ explorative Prototypen

ƒ evolutionäre Prototypen

ƒ Tests

ƒ funktionale Tests

ƒ Lasttests

ƒ Performance-Tests

ƒ Messungen mit Metriken (siehe [Gil02])

(40)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

ƒ Zusammenfassung und Ausblick

(41)

Der Architekt als Programmierer

ƒ Evaluierung von Entwurfsalternativen mit Hilfe von experimentellen Prototypen

ƒ Einführung und Verbreitung der Softwarearchitektur im Entwicklerteam durch evolutionären Prototypen

ƒ Evaluierung und Einführung von neuen innovativen Technologien und Konzepten

ƒ Mitarbeit im Entwicklerteam als Programmierer u. Tester

ƒ Trainer und Berater des Entwicklungsteams

ƒ Koordination und Moderation der Schnittstellen-

festlegung während Feindesign und Implementierung

ƒ Initiierung und Etablierung des Dialogs zwischen den

(42)

Der Architekt als Analyst

ƒ Maßgebliche inhaltliche Gestaltung der Systemvision:

Festlegung der übergreifenden Ziele, Anforderungen und Rahmenbedingungen des Systems und Architektur

ƒ Abstimmung der Systemanforderungen durch explorative Prototypen

ƒ Wirkungsanalyse, Abstimmung und Review von Anforderungen an das System

ƒ Integration von technischen und konzeptionellen Innovationen in die gemeinsame Systemvision

ƒ Verbreitung und Akzeptanz der Systemvision unter allen Beteiligten: Endbenutzer, Kunde, Entwicklungsteam, etc.

(43)

Der Architekt als technischer Projektleiter

ƒ Entscheidungskompetenz für alle wesentlichen Entwurfs- entscheidungen und Veränderungen: Entscheidungen so spät wie möglich und so früh wie nötig treffen!

ƒ Auswahl und Beurteilung der technischen Fähigkeiten von Bewerbern und Mitarbeitern

ƒ Auswahl und Festlegung von Schulungen, Werkzeugen und Technologie

ƒ Schulung und Einführung der Softwarearchitektur im Entwicklerteam

ƒ Motivation, Begeisterung und Integration des Entwicklerteams bzgl. des Architekturentwurfs

ƒ Organisation des Entwicklerteams entsprechend dem

(44)

Der Architekt als technischer Projektleiter

ƒ Zuordnen der konkreten Implementierungsaufgaben zu den Entwicklern

ƒ Delegieren von „lokalen“ Entwurfsentscheidungen an Spezialisten und an das Entwicklungsteam

ƒ Verfolgung und Überprüfung der implementierungs- spezifischen Projektmeilensteine

ƒ Verfolgung und Überprüfung der Qualität des Feindesigns der Implementierung

ƒ Überprüfung der Integrität und korrekten Realisierung der Softwarearchitektur

ƒ Organisation von Wartung und Weiterentwicklung der zentralen Schnittstellen des Systems

(45)

Der Architekt als Hüter der Softwarearchitektur

ƒ Überprüfung und Sicherung der Einhaltung der

Architekturvorgaben im konkreten Entwicklungsprojekt

ƒ Softwarearchitektur und die Rolle des Software-

architekten als Bestandteil der Unternehmenskultur etablieren

ƒ Identifikation, Koordination und Erarbeitung von projektübergreifenden Architekturthemen aus der eigenen Projektlandschaft, Industrie und Forschung

ƒ Definition und Integration des Architekturentwurfs in die firmenübergreifende Projektmanagement- und

Qualitätssicherungsstandards

(46)

Inhalt

ƒ Umfeld und Ziele des Architekturentwurfs

ƒ Vorgehen beim Entwurf einer Softwarearchitektur

ƒ Ausgangs- und Ergebnisprodukttypen des Entwurfs

ƒ Anforderungen

ƒ Architekturanalyse

ƒ Architekturmodell

ƒ Architekturvalidierung

ƒ Querschnittliche Aufgaben des Architekten

ƒ Programmierer

ƒ Analyst

ƒ Technischer Projektleiter

ƒ Hüter der Softwarearchitektur

ƒ Zusammenfassung und Ausblick

(47)

Zusammenfassung

ƒ Ziel des Architekturentwurfs ist es eine vollständige und prägnante Architekturbeschreibung zu erstellen, um die geforderten funktionalen und nicht funktionalen

Anforderungen zu gewährleisten

ƒ Der Softwarearchitekt ist DIE Brücke zwischen allen Anforderungsträgern und der Softwaretechnik

ƒ Der Entwurfsprozess steht im Zentrum des gesamten Entwicklungsprozesses; Er hat Schnittstellen zu Anfor- derungsanalyse, Systemarchitektur und Implementierung

ƒ Der Entwurfsprozess ist ein Zyklus aus Analyse,

Modellierung und Validierung der Softwarearchitektur

ƒ Die querschnittlichen Aufgaben des Architekten gehen von

(48)

Literaturhinweise

ƒ [BRS97] Klaus Bergner, Andreas Rausch, Marc Sihling: Using UML for Modeling a Distributed Java Application, Technischer Bericht der Universität München, TUM- I9735, http://wwwbib.informatik.tu-muenchen.de/infberichte/1997/TUM-

I9735.ps.gz,1997

ƒ [AF98] Paul Allen, Stuart Forst: Component-Based Development for Enterprise Systems: Applying The SELECT Perspective, Cambridge University Press, 1998

ƒ [BCK+98] Len Bass, Paul Clements, Rick Kazman, Ken Bass: Software Architecture in Practice (Sei Series in Software Engineering), Addison-Wesley Publishing, 1998

ƒ [DW98] Desmond Francis D'Souza, Alan Cameron Wills. Objects, Components, and Frameworks With UML: The Catalysis Approach, Addison Wesley Publishing

Company, 1998

ƒ [HNS99] Christine Hofmeister, Robert Nord, Dilip Soni: Applied Software Architecture, Addison Wesley – Object Technology Series, 1999

ƒ [HS99] Peter Herzum, Oliver Sims. Business Component Factory: A Comprehensive Overview of Component-Based Development for the Enterprise, John Wiley & Sons, 1999

ƒ [JRL+00] Mehdi Jazayeri, Alexander Ran, Frank Van Der Linden, Philip Van Der Linden: Software Architecture for Product Families: Principles and Practice, Addison- Wesley Publishing, 2000

ƒ [Gil02] Tom Gilb: Competitive Engineering, to be appear, www.gilb.com, 2002

Referenzen

ÄHNLICHE DOKUMENTE

Frage regelmässig bei Firmen, was über dich gespeichert ist, lass dich nicht abwimmeln und lasse deine Daten dort löschen wo du sie nicht mehr als nötig ansiehst. Wenn dir einer

Dann die Lötspitze in die Bohrung halten und etwas Lötzinn nachgeben, so dass der Lader fest ist, aber nicht zu viel Lötzinn unter die Platine gelangt. Damit sich die Ladeplatine

Augsten (Univ. Salzburg) Datenbanken / Transaktionen Wintersemester 2013/14 22 / 24 Vorschau: Datenbanken im

So wie Ihr Programm jetzt kodiert ist, werden keine Daten gefunden, wenn kein Endname angegeben wird. Sie werden jetzt die Anfangswerte für Start- und Endname entfernen; danach

ƒ die Softwarearchitektur beschreibt, auf welche Weise die diversen Anforderungen erfüllt werden und kann anhand wünschenswerter Qualitätskriterien beurteilt werden. ƒ

§ &#34;Von selbständigem Arbeiten kann hier keine Rede sein. Wenn man nicht alles haarge- nau nach den Anweisungen des Vorgesetzten macht, kommt man aus den Schwierig- keiten nicht

Padlet ist eine interaktive Pinnwand, auf der Texte, Bilder, Videos, Links, und Zeichnungen gespeichert werden können.. Einmal mit der Emailadresse angemeldet kann

Kreditportfolio werden in der Regel nach Zinsen und Tilgungen getrennt an die Tranchen verteilt (Wasserfall-Prinzip).. ▪