architektur und qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches...

49
Architektur und Qualität Architektur und Qualität Seminar Software-Analyse WS 04/05 Daniel Zaum <[email protected]>

Upload: vucong

Post on 07-Apr-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

Architektur und QualitätArchitektur und Qualität

Seminar Software-Analyse

WS 04/05

Daniel Zaum

<[email protected]>

Page 2: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

2Daniel Zaum: Architektur und Qualität

GliederungGliederung

Architektur

•Definitionen•Motivation

Qualität Architekturstile

Beispiel

•Anforderungen •5 Typen•Eigenschaften

•Anwendung•Zusammenhang Qualität/Architektur

Einordnung des Themas

Hauptteil

Zusammenfassung

Einleitung

Page 3: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

3Daniel Zaum: Architektur und Qualität

Einordung des ThemasEinordung des Themas

Architektur

Qualität

Software-AnalyseMetrikenHilfsmittel

Macht Aussage über

Bestimmt

Macht Aussage über

Fordert

Page 4: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

4Daniel Zaum: Architektur und Qualität

Einleitung: Konzept und MotivationEinleitung: Konzept und Motivation

• Ziel: Architektur und Qualität– Als Werkzeuge zur Software-Analyse darstellen

– Greifbar und erkennbar machen

• Dazu:– Knappe Definitionen

– Muster und Eigenschaften, Beispiele

• Motivation:– Software-Design

• Rechtzeitig planen

• Qualität sicherstellen

– Software-Analyse• Herausfinden, was man von einem System erwarten kann

Page 5: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

5Daniel Zaum: Architektur und Qualität

Gliederung - ArchitekturGliederung - Architektur

Architektur

•Definitionen•Motivation

Qualität Architekturstile

Beispiel

•Anforderungen •5 Typen•Eigenschaften

•Anwendung•Zusammenhang Qualität/Architektur

Page 6: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

6Daniel Zaum: Architektur und Qualität

Was ist eine Software-Architektur?Was ist eine Software-Architektur?

• Stellt das Diagramm eine Architektur dar?

Control-Prozess

LogikGUIDaten-bank

Page 7: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

7Daniel Zaum: Architektur und Qualität

Was ist eine Software-Architektur?Was ist eine Software-Architektur?

• Stellt das Diagramm eine Architektur dar?

• Nein, denn wichtige Fragen bleiben unbeantwortet:– Was sind die Komponenten?

– Was sind die Verknüpfungen?

– Warum wurde das Diagramm so strukturiert?

– Wie verhält sich das System zur Laufzeit?

Control-Prozess

LogikGUIDaten-bank

Page 8: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

8Daniel Zaum: Architektur und Qualität

Definition Software-ArchitekturDefinition Software-Architektur

• Architektur steht am Anfang des System-Designs– Zum High-Level-Design gehören jedoch auch noch andere Dinge

• Eine Architektur legt die Struktur eines Systems fest– Eine System kann jedoch mehrere Strukturen haben

• Eine Architektur definiert Komponenten und Beziehungen– Man muss zwischen Runtime und Designtime unterscheiden

„Die Struktur der Software-Komponenten eines Systems mit ihren nach außen sichtbaren Eigenschaften und

ihren Beziehungen untereinander.“ [Bass]

Page 9: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

9Daniel Zaum: Architektur und Qualität

Motivation für ArchitekturenMotivation für Architekturen

• Kommunikation zwischen den Projektmitgliedern– Besonders geeignet für Stakeholder-Kommunikation

– Relativ leicht zugänglich, da auf hoher Ebene

• Erste Möglichkeit, Design-Entscheidungen zu treffen– Entscheidungen der Architektur betreffen den gesamten Produktzyklus

– Die Architektur ist der erste analysierbare Teil eines SW-Systems

• Wiederverwendbare Abstraktion eines Systems– Vergleiche Design-Patterns

Page 10: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

10Daniel Zaum: Architektur und Qualität

Gliederung - QualitätGliederung - Qualität

Architektur

•Definitionen•Motivation

Qualität Architekturstile

Beispiel

•Anforderungen •5 Typen•Eigenschaften

•Anwendung•Zusammenhang Qualität/Architektur

Page 11: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

11Daniel Zaum: Architektur und Qualität

Was ist Qualität?Was ist Qualität?

• Definition von Qualität ist sehr schwierig

• Alternative Definitionen:

– „Qualität ist Kundenzufriedenheit“ [Datev]

– „Qualität heißt, die Anforderungen eines Menschen zu erfüllen“ [Weinberg]

– „Qualität ist die Fehlerfreiheit eines Produktes“ [Thraller]

„Gesamtheit von Merkmalen einer Einheit bezüglich ihrerEignung, festgelegte Erfordernisse zu erfüllen.“ [ISO8402]

Page 12: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

12Daniel Zaum: Architektur und Qualität

QualitätsanforderungenQualitätsanforderungen

Funktionale Anforderungen „Was?“• Programm berechnet Produkt zweier Zahlen.

nichtfunktionale Anforderungen

„Wie?“

• Die Zahlen müssen je 10 hoch 10 Stellen haben

• Antwortzeit muss unter 5ms liegen

• laufzeit-relevant

• nicht laufzeit-relevant

Typ Beschr. Beispiel

Page 13: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

13Daniel Zaum: Architektur und Qualität

QualitätsanforderungenQualitätsanforderungen

Funktionale Anforderungen „Was?“• Programm berechnet Produkt zweier Zahlen.

nichtfunktionale Anforderungen

„Wie?“

• Die Zahlen müssen je 10 hoch 10 Stellen haben

• Antwortzeit muss unter 5ms liegen

• laufzeit-relevant

• nicht laufzeit-relevant

Typ Beschr. Beispiel

• Wichtiger Unterschied: bei der Architektur-Auswahl beachten• Beispiel: Modularität der Architektur != Modularität zur Laufzeit

Page 14: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

14Daniel Zaum: Architektur und Qualität

Zeit, die vergeht, bis auf ein Ereignis reagiert wirdVerarbeitungsschritte pro Zeiteinheit

Performanz (Performance)Performanz (Performance)

• Abhängig von:– Kommunikation (dauert meist länger als Berechnung)

– Effiziente Algorithmen

• Kann auf Architektur-Ebene gemessen werden

• Simulation auf Grundlage der Architektur möglich

• Früher war Performanz die treibende Anforderung

• Heute rücken wegen Overprovisioning andere Anforderungen in den Vordergrund

architekturabhängiglaufzeit-relevant

Page 15: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

15Daniel Zaum: Architektur und Qualität

Sicherheit (Security)Sicherheit (Security)

Fähigkeit, unautorisiertem Zugriff zu widerstehenFähigkeit, denial-of-service Angriffen zu widerstehen

• Abhängig von:– Authorisierungsserver

– Netzwerk-Monitor

– Firewall

– Trusted Kernel

• Folgerung: Es werden spezielle Komponenten und Schnittstellen benötigt

architekturabhängiglaufzeit-relevant

Page 16: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

16Daniel Zaum: Architektur und Qualität

Verfügbarkeit (Availability)Verfügbarkeit (Availability)

• Abhängig von:– Fehlertoleranz des Systems / der Architektur

– Error-Handling

– Verdopplung kritischer Komponenten und Schnittstellen

– Wartbarkeit und Testbarkeit

• Maß für die Zeit, in der ein System wie vorgesehen läuft

• Eng verknüpft mit Zuverlässigkeit

mean time to failuremean time to failure + mean time to repair

architekturabhängiglaufzeit-relevant

Page 17: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

17Daniel Zaum: Architektur und Qualität

Bedienbarkeit (Usability)Bedienbarkeit (Usability)

Lernbarkeit und EinprägsamkeitEffizienz, Fehlertoleranz und Zufriedenheit

• Abhängig von:– Genaue Beobachtung der Benutzer

– Abbildung des Denk-Modells der Nutzer in Software-Modell

– Standards

• Größtenteils nicht durch Architektur beeinflussbar

• Jedoch: Schnittstellen beispielsweise zur GUI beeinflussen die Bedienbarkeit

nicht architekturabhängiglaufzeit-relevant

Page 18: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

18Daniel Zaum: Architektur und Qualität

Die Fähigkeit, schnell und günstig Änderungen durchzuführenLokalität von Änderungen

Modfizierbarkeit (Modifiability)Modfizierbarkeit (Modifiability)

• Abhängig von:– Wie begrenzt sind Änderungen (Lokalität)?

• Erweiterung der Funktionalität

• Löschen oder Vereinfachen

• Anpassung/Portierung auf neue Systeme

• Umstrukturierungen

– Lose Kopplung von Komponenten

• Faustregel: Lokale Änderungen sind billiger als globale

• Spezialfall: Wiederverwendbarkeit

architekturabhängignicht laufzeit-relevant

Page 19: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

19Daniel Zaum: Architektur und Qualität

Fähigkeit eines Systems, unter verschiedenen Umgebungen zu laufen

Portierbarkeit (Portability)Portierbarkeit (Portability)

• Abhängig von:– Kapselung von plattform-spezifischen Eigenschaften

– „Portability-Layer“

• Verschiedene Umgebungen sind:– Hardware

– Software

– Kombination von beidem

• „Portability-Layer“ ist nur auf Architektur-Ebene sichtbar

architekturabhängignicht laufzeit-relevant

Page 20: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

20Daniel Zaum: Architektur und Qualität

Die Fähigkeit von Einzelkomponenten zum Zusammenspiel

Integrierbarkeit (Integrability)Integrierbarkeit (Integrability)

• Abhängig von:– Komplexität der Komponenten nach aussen

– Interaktions-Mechanismen

– Protokolle

– Klare Aufteilung der Aufgaben

• Interoperabilität: Zusammenspiel von Systemen

architekturabhängignicht laufzeit-relevant

Page 21: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

21Daniel Zaum: Architektur und Qualität

Fähigkeit eines Systems, seine Fehler aufzuzeigen

Testbarkeit (Testability)Testbarkeit (Testability)

• Abhängig von:– Kontrollieren des Zustands jeder Komponente

– Überwachen der Ausgaben jeder Komponente

• Genauer:– Das System hat mindestens einen Fehler

– Das System ist gut testbar, wenn dieser Fehler beim nächsten Test auch auftritt

– Also schnell gefunden werden kann

architekturabhängignicht laufzeit-relevant

Page 22: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

22Daniel Zaum: Architektur und Qualität

Übersicht: QualitätsanforderungenÜbersicht: Qualitätsanforderungen

laufzeit-relevant

Performanz

Sicherheit

Verfügbarkeit

Benutzbarkeit

nicht laufzeit-relevant

Modifizierbarkeit

Portierbarkeit

Integrierbarkeit

Testbarkeit

++ Kommunikation, Parallelisierung

o Spezielle Sicherheits-Komponenten

++ Fehlertoleranz, Redundanz

- -

++ Modularisierung, Kapselung

++ Portability-Layer

+ Einfache Schnitstellen, Protokolle

+ Kontrolle, Überwachung (einzelner Komponenten)

Page 23: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

23Daniel Zaum: Architektur und Qualität

KompromisseKompromisse

• Qualitätsanforderungen beeinflussen sich gegenseitig

• Es können nicht alle Anforderungen zu 100% erfüllt werden

• Qualitäten müssen priorisiert werden

Sicherheit

Bedienbarkeit

Gummiband

„I will contend that conceptual integrity is the most importantconsideration in system design.“ [Fred Brooks]

Page 24: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

24Daniel Zaum: Architektur und Qualität

Gliederung - ArchitekturstileGliederung - Architekturstile

Architektur

•Definitionen•Motivation

Qualität Architekturstile

Beispiel

•Anforderungen •5 Typen•Eigenschaften

•Anwendung•Zusammenhang Qualität/Architektur

Page 25: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

25Daniel Zaum: Architektur und Qualität

ArchitekturstileArchitekturstile

• Schlüssel-Komponenten und Regeln, um diese zu verbinden:

– Komponenten-Typen • z.B. Prozess, Speicher, Prozedur

– Topologische Anordnung • um die Laufzeit-Zusammenhänge zu verdeutlichen

– Semantische Beschränkungen • z.B. Ein Speicher kann seinen Inhalt nicht selber ändern

– Verbinder, die Kommunikation, Koordination und Kooperation zwischen Komponenten ermöglichen

• z.B. Routinen-Aufruf, RPC, Sockets

• Stil als abstrakte Klasse, von Architektur implementiert

Page 26: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

26Daniel Zaum: Architektur und Qualität

NotationNotation

Komponenten

Verbinder

Prozess

Komponente oder Objekt

Passiver Speicher

Aktiver Speicher

Kontroll-Fluss

Daten-Fluss

Page 27: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

27Daniel Zaum: Architektur und Qualität

Architekturstile: ÜbersichtArchitekturstile: Übersicht

Independent Components

CommunicatingProcesses

Event Systems

Implicit Invocation Explicit Invocation

Data Flow

BatchSequential

Pipes andFilters

Data-Centered

Repository Blackboard

Virtual Machine

Interpreter Rule-BasedSystem

Call and Return

Programmand Subroutine

ObjectOriented

Layered

Page 28: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

28Daniel Zaum: Architektur und Qualität

„„Data-Centered“-ArchitekturData-Centered“-Architektur

Zugriff und Veränderung eines gemeinsamen Daten-Speichers

• Bietet:– Integrierbarkeit der Daten

• Typen:– Repository: Passiver Daten-Speicher (Bsp.: Datei)

– Blackboard: Aktiver Daten-Speicher (Bsp.: Datenbank)

Client

Daten-Speicher

Client

Client

Client

Page 29: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

29Daniel Zaum: Architektur und Qualität

„„Data-Flow“-ArchitekturData-Flow“-Architektur

Eine Abfolge von Operationen auf Eingangs-Daten anwenden

• Bietet:– Modifizierbarkeit

– Wiederverwendbarkeit

• Typen:– Batch-Sequential: Komponenten sind eigenständige Programme

– Pipes and Filters: Ein System, verarbeitet Daten als Stream

Syntax-Check Parsen Sortieren

Page 30: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

30Daniel Zaum: Architektur und Qualität

„„Virtual Machine“-ArchitekturVirtual Machine“-Architektur

Erschaffung einer Abstraktions-Ebene durch Simulation

• Bietet:– Portierbarkeit

• Typen:– Interpreter

– Rule-Based

Interpreter

Programm-Zustand

internerZustand

interpretiertesProgramm

Eingaben

Ausgaben

Page 31: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

31Daniel Zaum: Architektur und Qualität

„„Call and Return“-Architektur(1)Call and Return“-Architektur(1)

Aufteilen eines Programms in kleinere Einzelteile

• Bietet:– Modifizierbarkeit

– Skalierbarkeit

– Wiederverwendbarkeit (Portierbarkeit)

• Typen:– Main Program and Subroutine: Hierarchische Aufteilung

• RPC: Wie oben nur im Netzwerk verteilt

– Object-Oriented: Aufteilung in Objekte

– Layered: Aufeinander aufbauende Schichten

Page 32: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

32Daniel Zaum: Architektur und Qualität

„„Call and Return“-Architektur(2)Call and Return“-Architektur(2)

Main

Sub1

Sub2

User Interface

Spezielle Funktionen

Allgemeine Funktionen

Main and Subroutine

LayeredObject-OrientedObjekt

Objekt

Objekt

Objekt

Page 33: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

33Daniel Zaum: Architektur und Qualität

„„Independent Component“-ArchitekturIndependent Component“-Architektur

Kommunizierende Objekte, die sich nicht direkt kontrollieren

• Bietet:– Modifizierbarkeit

– Wiederverwendbarkeit

– Skalierbarkeit und Performanz

• Typen:– Event Systems: Observer-Prinzip

– Communicating Processes: Bsp.: Client-Server

Server

Client

Client

Client

Page 34: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

34Daniel Zaum: Architektur und Qualität

Heterogene ArchitekturenHeterogene Architekturen

• Lokal heterogen– Scheint zur Laufzeit eine einheitliche Architektur zu haben

– Besteht jedoch aus mehreren Architekturen

– Bsp.: „Main and Subroutines“ mit gemeinsamem Speicher

• Hierarchisch heterogen– Architekturen sind ineinander verschachtelt

– Unter-Komponenten sind anders aufgebaut, als Gesamt-System

• Heutzutage häufig– Kombination von Objekt-Orientierter „Tier“-Architektur mit

„Layered“-Architektur.

Page 35: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

35Daniel Zaum: Architektur und Qualität

Architekturstile: ZusammenfassungArchitekturstile: Zusammenfassung

Performanz

Sicherheit

Verfügbarkeit

Benutzbarkeit

Modifizierbarkeit

Portierbarkeit

Integrierbarkeit

Testbarkeit

Independent Components

Data-Flow

Data-Centered

Virtual Machine

Call and Return

Wiederverwendbark.

Page 36: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

36Daniel Zaum: Architektur und Qualität

Gliederung - BeispielGliederung - Beispiel

Architektur

•Definitionen•Motivation

Qualität Architekturstile

Beispiel

•Anforderungen •5 Typen•Eigenschaften

•Anwendung•Zusammenhang Qualität/Architektur

Page 37: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

37Daniel Zaum: Architektur und Qualität

Beispiel: KWIC (Keyword in Context)Beispiel: KWIC (Keyword in Context)

• Liest Strings ein

• Vertauscht die Wörter der Strings zyklisch miteinander

• Sortiert die resultierenden Strings alphabetisch

• Sinn: Schnell durchsuchbaren Index erzeugen

Ich wünsche ein frohes Festund einen guten Rutsch

6) Ich wünsche ein frohes Fest

3) Fest Ich wünsche ein frohes

4) frohes Fest Ich wünsche ein

1) ein frohes Fest Ich wünsche

9) wünsche ein frohes Fest Ich

8) und einen guten Rutsch

7) Rutsch und einen guten

5) guten Rutsch und einen

2) einen guten Rutsch und

Page 38: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

38Daniel Zaum: Architektur und Qualität

Beispiel: „Data Centered“-ArchitekturBeispiel: „Data Centered“-Architektur

Eingabe Vertauschen Sortieren Ausgabe

Zeichen Indexsortierter

Index

Kontrolle

Page 39: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

39Daniel Zaum: Architektur und Qualität

Beispiel: „Call and Return (OO)“-ArchitekturBeispiel: „Call and Return (OO)“-Architektur

Eingabe

Vertauschen Sortieren

Ausgabe

Zeichen Indexsortierter

Index

Kontrolle

Zeichen

Page 40: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

40Daniel Zaum: Architektur und Qualität

Beispiel: „Pipe and Filter“-ArchitekturBeispiel: „Pipe and Filter“-Architektur

Vertauschen Sortieren

Eingabe Vertauschte Zeilen Sortierte Ausgabe

Page 41: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

41Daniel Zaum: Architektur und Qualität

Beispiel: VergleichBeispiel: Vergleich

Ändern des Datentyps

Ändern der Funktionalität

Performanz

Wiederverwendbarkeit

DataCentered

Call andReturn

Pipe andFilter

--

-

++

-

+

+

-

++

-

++

o

+

„There is no silver bullet.“ [Fred Brooks]

Page 42: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

42Daniel Zaum: Architektur und Qualität

LiteraturempfehlungLiteraturempfehlung

Software Architecture in Practice2nd edition

L.Bass, P.Clements, R. Kazman

512 SeitenAddison-Wesley Professional 2003

ca. 50,- eur

Page 43: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

43Daniel Zaum: Architektur und Qualität

ZusammenfassungZusammenfassung

Performanz

Sicherheit

Verfügbarkeit

Benutzbarkeit

Modifizierbarkeit

Portierbarkeit

Integrierbarkeit

Testbarkeit

Independent Components

Data-Flow

Data-Centered

Virtual Machine

Call and Return

Wiederverwendbark.

C. Processes

Event System

Batch

Pipe

Repository

Blackboard

Main and Sub

Object Oriented

Layered

Page 44: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

44Daniel Zaum: Architektur und Qualität

AnhangAnhang

Anhang

Page 45: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

45Daniel Zaum: Architektur und Qualität

Einleitung: MotivationEinleitung: Motivation

• Mit dem Auto unterwegs in einer fremden Stadt– Unter Zeitdruck

– Lesen einer Karte oder Passanten fragen kostet Zeit, die man nicht hat

– Man fährt nach Gefühl drauf los

– ...und kommt erst recht zu spät

„We don't have the time to be efficient.“

Page 46: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

46Daniel Zaum: Architektur und Qualität

Weitere BegriffeWeitere Begriffe

ReferenzModell

ArchitekturStil

ReferenzArchitektur

SoftwareArchitektur

Architektur Stil

• Einer Architektur auferlegte Zwänge

• Beschreibung von Typen und Mustern

• Beispiel: Client-Server

Referenz Modell

• Teilfunktionalität eines Systems inklusive Datenfluss

• Beispiel: Standard Komponenten einer Datenbank-Anwendung

Referenz Architektur

• Projektion eines Referenz Modells auf ein Software-Sytem

• Beispiel: iLam-System, SE-Anmelde-System

Page 47: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

47Daniel Zaum: Architektur und Qualität

Struktur oder Komponenten eines Systems können später wiederverwendet werden

Wiederverwendbarkeit (Reusability)Wiederverwendbarkeit (Reusability)

• Abhängig von:– Lose Kopplung zwischen Komponenten

– Um eine Komponente in einem neuen System zu nutzen muss man• Die dazu erforderlichen Komponenten mitnehmen

• Äquivalente bereitstellen

• Spezialfall von Modifizierbarkeit

architekturabhängig

Page 48: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

48Daniel Zaum: Architektur und Qualität

Anforderungen an die ArchitekturAnforderungen an die Architektur

• Architektur selbst kann gewissen Anforderungen erfüllen:

– Konzeptuelle Integrität (conceptual integrity)

– Richtigkeit und Vollständigkeit (correctnes and completeness)

– Umsetzbarkeit (buildability)

• Lieber auf einzelne Qualitäts-Anforderungen verzichten, als auf ein durchgängiges und einheitliches Architektur-Konzept

„I will contend that conceptual integrity is the most importantconsideration in system design.“ [Fred Brooks]

Page 49: Architektur und Qualität - se.uni-hannover.de · auf ein durchgängiges und einheitliches Architektur-Konzept „I will contend that conceptual integrity is the most important consideration

49Daniel Zaum: Architektur und Qualität

Motivation für Architekturen (2)Motivation für Architekturen (2)

• Was leistet eine Architektur?

– Legt Struktur der Implementation fest

– Damit auch teilweise die Organisation des Projektes

– Erlaubt Optimierung auf bestimmte Qualitäten hin

– Erleichtert Änderungen (einzelner Komponenten)

– Ermöglicht den Aufbau ganzer Produkt-Linien

– Erleichtert das Verwenden von vorgefertigten Komponenten

– Ein wichtiger Teil der Dokumentation