Mehr Softwarequalität: Qualität als Treiber

66
Qualität als Treiber 1 | 64 Projekte. Beratung. Spezialisten. Qualität als Treiber: Wie Qualitätsanforderungen die Architektur steuern IKS-Thementag 25.11.2014 Autor: Christoph Schmidt-Casdorf

description

Individualsoftware soll viele explizite und implizite Qualitätsanforderungen verschiedener Stakeholder erfüllen. In unserer halbtägigen Veranstaltung beleuchten wir aus Sicht des Managements unterschiedliche Aspekte rund um dieses Thema.

Transcript of Mehr Softwarequalität: Qualität als Treiber

Page 1: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 1 | 64

Projekte. Beratung. Spezialisten.

Qualität als Treiber:

Wie Qualitätsanforderungen die Architektur steuern

IKS-Thementag

25.11.2014

Autor: Christoph Schmidt-Casdorf

Page 2: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 2 | 64

Agenda

Page 3: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 3 | 64

Qualität und Qualitätsmerkmale

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 4: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 4 | 64

Qualitätsmerkmale

Qualität ist als solche nicht ermittelbar

Es können nur Eigenschaften eines Produktes/Prozesses bewertet werden

Qualitätsmerkmale definieren

Objektiv bestimmbare (und qualitätsrelevante) Eigenschaften

des Produkts/Software

Alle Qualitätsmerkmale zusammen machen Qualität aus

ISO 9126 * definiert eine Hierarchie von Qualitätsmerkmalen

Es gibt auch andere Hierarchien

* es existiert Nachfolger ist ISO/EIC 25010:211 (SQuaRE)

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 5: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 5 | 64

Architektur

DesignTechnologie

Code

Architektur

DesignTechnologie

Code

Funktionalität

Testbarkeit

Wartbarkeit

Usability Zuverlässigkeit

Modifizierbarkeit

PerformanzSicherheit

Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg

Release-management

Deployment

Ressourceneffizienz

Kompatibilität

Portabilität

Äußere Qualität

InnereQualität

Page 6: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 6 | 64

Qualitätsmerkmale

Mit Qualitätsmerkmalen lässt sich Qualität beschreiben

Die Architektur muss

die Anforderungen an Qualitätsmerkmale erfassen

diese Anforderungen in Architekturentscheidungen umsetzen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 7: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 7 | 64

Architektur

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 8: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 8 | 64

Definitionen von Architektur

„Softwarearchitektur ist die Menge der hauptsächlichen/wesentlichen

Architekturentscheidung eines Systems.gemäß [Jacobson99]

„Die Softwarearchitektur eines Systems ist die Menge an Strukturen, die benötigt

wird, um das System beurteilen zu können.

Sie umfasst Softwareelemente, die sichtbaren Eigenschaften dieser Elemente und

deren Beziehungen untereinander.“gemäß [Brass12]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 9: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 9 | 64

Strukturen

Ein System kann unterschiedliche Strukturen haben

Strukturen können sich auf das statische Design, das Laufzeitverhalten usw. beziehen

Keine einzelne Struktur kann die Architektur definieren

Strukturen der Architektur werden als Sichten (View) repräsentiert

Alle modernen Architekturansätze unterstützen das Konzept von Views

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 10: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 10 | 64

Architektursichten/-perspektiven

Perspektive definiert die Anforderung an den Informationsgehalt

Perspektiven helfen, Komplexität aufzuteilen

Perspektiven helfen, Aspekte auszublenden (perspektivische Abstraktion)

Perspektiven helfen, den Standpunkt des Adressaten einzunehmen

Summe der Perspektiven vermittelt eine Gesamtsicht

Sicht ist Ausprägung/Anwendung einer Perspektive in der aktuellen

Architektur

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 11: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 11 | 64

Architektursichten-/perspektiven

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 12: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 12 | 64

Sichten der Software-Architektur

[Arc42] definiert Standardsichten

Kontextsicht, Bausteinsicht, Laufzeitsicht, Verteilungssicht

Notation auf Basis von UML

Weitere Sichten siehe [Brass12], [FMC]

Es dürfen auch eigene Sichten entworfen werden

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 13: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 13 | 64

Verfeinerung innerhalb von Sichten

siehe [Arc42]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 14: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 14 | 64

Architekturdokumentation

ist Basis jeder Kommunikation zwischen Stakeholdern

ist Mittel, um in das System einzuführen

ist Referenz, um das System in Richtung Implementierung zu überführen

befasst sich mit der Dokumentation der relevanten Views

fügt Informationen hinzu, welche die Beziehung der Views dokumentiert

Architekturentscheidungen bestimmen Views

hält alle relevanten Entscheidungen nach

Alle wesentlichen Entscheidungen müssen nachvollziehbar sein

Die Grundlagen aller Entscheidungen müssen dokumentiert sein

[Arc42] stellt ein Template bereit

IKS Gmbh nimmt dieses als Basis eigener Architekturdokumentationen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 15: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 15 | 64

Architektur

Architektur ist Dekomposition

Iterative Verfeinerung der Strukturen

Kunst ist

die richtige Zerlegung,

den richtigen Abstraktionsgrad und

die richtige Form der Dokumentation

zu finden.

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 16: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 16 | 64

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 17: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 17 | 64

Die Softwarearchitektur ist verantwortlich, dass ein

System die geforderten Qualitätsmerkmale erfüllt.

Wo kommen

die QMe her?

Warum?

Wie wird dies

sichergestellt

und geprüft?

Wie kann das

gelingen ?

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 18: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 18 | 64

Softwarearchitektur und Qualitätsmerkmale

Warum ist Softwarewarearchitektur für Qualitätsmerkmale verantwortlich?

Erreichen von Qualitätsmerkmalen bedingt (i.d.R.) weitreichende

Architekturentscheidungen

Qualitätsmerkmale beeinflussen daher entscheidend Softwarestrukturen

Qualitätsmerkmale sind (die) entscheidende(n) Einflussfaktoren der

Architektur

Architektur hat daher Eigeninteresse, diese so exakt wie möglich zu kennen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 19: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 19 | 64

Softwarearchitektur und Qualitätsmerkmale

Architektur hat aus Sicht der fachlichen Funktionalität keine

Qualitätsmerkmale im Fokus

Struktur des Systems nur aus Sicht der Fachlichkeit adressiert keine

Qualitätsmerkmale

Qualitätsmerkmale der Architektur müssen explizit behandelt werden

Wir setzen im Weiteren nicht-funktionale Anforderungen (NFA) mit

Qualitätsmerkmalen gleich

Funktionalität ist (formal) auch eine Qualitätsmerkmal

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 20: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 20 | 64

Softwarearchitektur und Qualitätsmerkmale

Softwarearchitektur ist nur bedingt für Erfassung und Prüfung von

Qualitätsmerkmalen zuständig

Diese Zuständigkeiten führen immer zu Diskussionen

Dennoch sollte die Architektur alle Tätigkeiten rund um Qualitätsmerkmale

koordinieren

Nicht erfüllte Qualitätsmerkmale werden i.d.R. der Architektur zur Last gelegt

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 21: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 21 | 64

Qualitätsmerkmale erfassen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 22: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 22 | 64

Anforderungen an Qualitätsmerkmale

Das System soll fehlertolerant sein

Das System muss leicht zu ändern sein

Wie müssen Qualitätsmerkmale gut formuliert sein ?

Das System muss stabil sein

Das System muss performant sein

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 23: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 23 | 64

Beispiel einer Anforderung an Qualität

In der Wartungsphase des Systems wird eine Änderung an der Rules

Engine des Systems vorgenommen.

Diese Änderungen muss innerhalb eines Tages fertig implementiert

sein.

Unter welchen

Umständen?

Was wird getan?

Mit welcher

Reaktion des

Systems?

Wie ist das Ergebnis zu

messen/zu bewerten?

Welcher Teil

des Systems ist

betroffen?

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 24: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 24 | 64

Beispiel eines Qualitätsszenarios

Reaktion auf

AuslöserAuslöser

Quelle – wer

löst aus

Betroffene

Artefakte Messung nach

erfolgter ReaktionUmstände/

Kontext

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 25: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 25 | 64

Schablone eines Qualitätsszenarios

Beschreibung

Auslöser (stimulus) Beschreibt eine spezifische Zusammenarbeit des

auslösenden Aktors/Stakeholder mit dem System

Quelle des Auslösers

(source)

beschreibt, woher der Auslöser kommt

Systembestandteil

(artifact)

beschreibt, welcher Bestandteil des Systems vom

Auslöser betroffen ist

Umgebung

(environment)

beschreibt die Bedingung, unter der der Auslöser

auftritt

Antwort (response) beschreibt die Reaktion des Systems auf den

Auslöser

Antwortmetrik

(response measure)

beschreibt, wie die Antwort gemessen oder

bewertet werden kann.

siehe [Brass12]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 26: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 26 | 64

Wie erhalte ich Qualitätsszenarien?

Qualiätsszenarien sind Schablonen/Muster, um Anforderungen an

Qualitätsmerkmale zu dokumentieren.

Wie finde ich die Anforderungen an Qualitätsmerkmale?

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 27: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 27 | 64

Qualitätsmerkmale sind systemspezifisch

System Properties Web siehe [IBM14]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 28: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 28 | 64

Wie erhalte ich Qualitätsszenarien?

Workshop, um Qualitätsmerkmale des Systems zu finden

Teilnehmer sind Stakeholder

Alle, die Anforderungen an Qualitätsmerkmale haben

I.d.R. bevor die Architektur erstellt wird

Quellen für Qualitätsmerkmale

Geschäftsziele bilden Grundlage für Qualitätsmerkmale

Fachliche Anforderungen enthalten häufig Qualitätsmerkmale

Rahmenbedingungen beeinflussen häufig Qualitätsmerkmale

Architekturplan/Architekturskizze bilden Diskussionsbasis

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 29: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 29 | 64

Wie erhalte ich Qualitätsszenarien?

Besonderheiten:

Teilnehmer haben sich i.d.R. nicht mit der Thematik beschäftigt

und müssen daher besonders eingeführt werden

Problembereich ist umrissen

Qualitätsmerkmale sind z.B. durch ISO 9126 definiert

„Walking the System Properties Web“

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 30: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 30 | 64

„Walking the System Properties Web“

siehe [IBM14]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 31: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 31 | 64

Ergebnis eines Workshops

Liste der Qualitätsszenarien

Priorisiert

Abgestimmt

Allgemein akzeptiert

I.d.R. Folgetermine, um

Zielkonflikte aufzulösen (tradeoffs)

Lösungen zu bewerten

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 32: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 32 | 64

Quality Attribute Workshop

Formales Verfahren um Qualitätsmerkmale zu finden

[Brass12], in leichtgewichtiger Variante in [IBM14]

Beschreibt im Wesentlichen einen Findungsworkshops

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 33: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 33 | 64

Dokumentation von Anforderungen an

Qualitätsmerkmale

Formal nach Schablone eines Qualitätsszenarios

Was darf nicht fehlen?

Exakte Abnahmekriterien

Definition des Abnahmesystems

Wer nimmt ab?

Je höher das Qualitätsmerkmal priorisiert ist, desto wichtiger sind exakte Kriterien

Auswirkungen der Abnahme

Wer ist für das Abnahmesystem verantwortlich?

Frühzeitig in den Projektplan aufnehmen

Qualitätsbaum

Priorisiert die Qualitätsmerkmale und -szenarien

bewerte die Komplexität

Liefert Überblick über Qualitätsmerkmale und -szenarien

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 34: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 34 | 64

Qualitätsbaum

QualitätsszenarienQualitätsmerkmale (Komplexität,Priorität)

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 35: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 35 | 64

Dokumentation von Qualitätsanforderungen

Qualitätsszenarien müssen dokumentiert sein

[Arc42] sieht separates Kapitel vor

Priorisierung der Qualitätsszenarien muss dokumentiert sein

Qualitätsbaum

Evtl. Kompromisse müssen als Architekturentscheidung dokumentiert sein

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 36: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 36 | 64

Qualitätsmerkmale erfassen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 37: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 37 | 64

Qualitätsmerkmale erreichen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 38: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 38 | 64

Umsetzung der Qualitätsmerkmale

Vorrausetzung

Abgestimmte, priorisierte Liste an Qualitätsszenarien

inkl. Qualitätsbaum

Architekturrelevante funktionale Anforderungen

Rahmenbedingungen

Aufgabe

Architekturentscheidungen zu treffen, so dass das System die geforderten

Qualitätsmerkmale erfüllt

Das ist eine technologisch sehr anspruchsvolle Aufgabe

Wir wollen Ihnen einen Eindruck möglicher Lösungsansätze bieten.

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 39: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 39 | 64

Um eine Architektur zu erstellen, ist es sinnvoll, bestehende Lösungen zu

nutzen. [Brass12]

Wo sind die Lösungen, die uns helfen, Qualitätsmerkmale umzusetzen?

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 40: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 40 | 64

Was würde helfen?

Katalog von möglichen Architekturentscheidungen

Architekturentscheidungen, welche spezielle Qualitätsmerkmale unterstützen

Vorgehensweise, um aus den getroffenen Architekturentscheidungen eine

Gesamtarchitektur zu schaffen

In welcher Reihenfolge geht man die Qualitätsszenarien an?

Wie löst man Zielkonflikte zwischen den einzelnen Qualitätsmerkmalen?

Wie fügen sich die einzelnen Lösungen in die Gesamtarchitektur ein?

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 41: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 41 | 64

tactics

tactics sind Architekturentscheidungen, welche auf ein spezielles

Qualitätsmerkmal wirken

tactics sind bewährte Design-Entscheidungen

ausgerichtet an einzelnen Qualitätsmerkmalen

beinhalten nicht die Wahl der technischen Umsetzung

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 42: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 42 | 64

tactics für Verfügbarkeit

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 43: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 43 | 64

tactics

tactics sind in [Brass12] gut erläutert und es ist beschrieben, unter welchen

Umständen sie anzuwenden sind

Welche Qualitätsmerkmale sie adressieren

Welche Modelle zugrunde liegen

Queuing Model, Scheduling Model etc.

[Brass12] hat Kataloge von tactics erarbeitet für

Testbarkeit

Verfügbarkeit (aka Fehlertoleranz)

Interoperabilität

Performance (aka Effizienz)

Sicherheit

Benutzbarkeit

u.v.m

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 44: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 44 | 64

Architekturmuster

Architekturmuster sind allgemeine Architekturstrukturen

Abgestimmt

Allgemeingültige Lösungen

Architekturmuster

sind nicht hinsichtlich ihrer Wirkung auf Qualitätsmerkmale strukturiert

adressieren mehrere Qualitätsmerkmale

die bekanntesten sind Layer Pattern, Client-Server Pattern

Reflection, Microkernel, Broker ,…*

* weitere siehe [Buschmann 1996], [Brass12]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 45: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 45 | 64

Bewährte Lösungen - tactics und Architekturmuster

Architekturmuster umfassen tactics

tactics sind die Bausteine des Designs, auf denen Architekturmuster aufsetzen

Welche tactics werden in welchen Architekturmuster in welcher Form berücksichtigt?

Den Zusammenhang kann man nachlesen [Brass12]

tactics verfeinern Architekturmuster

Architekturmuster ist gewählt

tactics können eingesetzt werden, um nachträglich Qualitätsmerkmale zu erreichen

Architekturmuster und tactics repräsentieren konzeptuelle Werkzeuge im

„Werkzeugkasten des Architekten“.

Gute Handwerker halten ihren Werkzeugkasten aufgeräumt und up to date.

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 46: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 46 | 64

Attribute Driven Design (ADD)

Ausgangslage für eine Gesamtarchitektur

Architekturrelevante funktionalen Anforderungen ([Brass12])

(Architekturrelevanten) Qualitätsszenarien

Rahmenbedingungen

siehe [Brass12]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 47: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 47 | 64

Attribute Driven Design (ADD)

Methodische Verfeinerung der Architektur unter Berücksichtigung der

Qualitätsmerkmale

Siehe [Brass12]

Vorgehen im Attribute Driven Design

Systemteil wird bestimmt

Relevante Anforderungen werden bestimmt

Architekturentscheidungen werden getroffen

Priorisierung wird ausgewertet

Neue Strukturen werden dokumentiert

Architektursichten1) werden erstellt/ergänzt

Hier sollte ein Review durchgeführt werden

1) [Brass12] trennt zwischen Architekturentwürfen in ADD und der nachgelagerten, eigentlichen Dokumentation

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 48: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 48 | 64

Attribute Driven Design (ADD)

Architektur ist iterative Dekomposition

Kunst ist

die richtige Zerlegung (in der richtigen Reihenfolge) und

den richtigen Abstraktionsgrad

zu finden.

Attribute Driven Design unterstützt Sie dabei.

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 49: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 49 | 64

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 50: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 50 | 64

Qualität verifizieren

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 51: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 51 | 64

Architektur bewerten

Architekturbewertung

Während der Erstellung der Architektur

Attribute Driven Design (ADD) enthält Reviewphase

Auf Basis einer bestehenden Architektur

Ziel: Bewertung der Architekturentscheidungen vor dem Hintergrund

der Qualitätsszenarien

der Geschäftsziele

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 52: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 52 | 64

ATAM

Architecture Tradeoff Analysis Method® (ATAM)

setzt auf bestehender Architektur auf

oft auch auf bestehendem System

Das Evaluationsteam ist (i.d.R.) extern (bzgl. des Projektteams)

soll Risiken der Architekturentscheidungen aufdecken

aber auch sogenannte non-risks

soll negative Trends des Systems Architekturentscheidungen zuordnen

soll tradeoffs erkennen

Entscheidungen, die mehr als eine Qualitätsmerkmal betreffen

Konsequenzen aus diesem Zielkonflikt

siehe [Brass12], [Kazman00], [Northrop11]

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 53: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 53 | 64

ATAM

ATAM ist eine Review-Verfahren, dass

auf die Entdeckung von Risiken ausgelegt ist

relativ kurzläufig, relativ leichtgewichtig ist

gibt es auch als „lightweight“ Variante

Vorrausetzungen

Architektur muss vorhanden sein

Fehlende Qualitätsszenarien werden im Prozess ermittelt

Architekt muss mitarbeiten und bereit sein, die Architektur zu präsentieren

Stakeholder müssen die Geschäftsziele vorstellen können

In ATAM werden die Architekturartefakte und Präsentationen einem Review

unterzogen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 54: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 54 | 64

Ergebnisse von ATAM

ATAM ermittelt

Architekturansätze

Qualitätsszenarien

Qualitätsbaum

Risiken

tradeoffs

ATAM stellt dar

inwieweit die vorliegende Architektur die Anforderungen an (Qualitätsmerkmale)

erfüllt

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 55: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 55 | 64

Wann wird ATAM eingesetzt?

Theoretisch ist der beste Moment für ATAM direkt nachdem die Architekur

entworfen wurde

Es gibt keinen oder wenig Code

Tatsächlich wird ATAM auch häufig in folgenden Situationen eingesetzt:

Bewertung der Architektur eines bestehenden Systems

Bewertung von Architekturalternativen

Bewertung der Architektur vor großen Updates

Entscheidung, ob ein System neuentwickelt oder angepasst wird

Entscheidung “make or buy”

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 56: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 56 | 64

Überblick

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 57: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 57 | 64

Für alle vorgestellte Verfahren gilt :

Es zeigt eine Idee für die Vorgehensweise

Es bringt auch Erfolg, wenn es nicht-formal angewendet werden

Das Ziel dahinter ist wichtig

Versuchen Sie es

Es hilft, die Qualitätsmerkmale Ihres Systems besser in den Griff zu bekommen

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 58: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 58 | 64

Architektur ist Schlüssel zur Qualität eines Systems

Unterstützen Sie den Architekten in seinem Bemühen um Qualität

Integrieren Sie die Architektur in Ihren Entwicklungsprozess

Verorten Sie die (System-)Qualität in der Architektur

Nehmen Sie diese in die Pflicht

Es gibt Unterstützung

Qualitätsmerkmale erfassen – Qualitätsszenarios und QAW

Qualitätsmerkmale erreichen – tactics, Architekturmuster und ADD

Qualität verifizieren – ATAM

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 59: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 59 | 64

Referenzen

[Arc42]

http://www.arc42.de/

[Brass12]

Software Architecture in Practice (3rd Edition), Brass, Clements, Kazman

Addison-Wesley ISBN-13: 000-0321815734

[Buschmann 1996]

Buschmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; & Stal, M. Pattern-

Oriented Software

Architecture: A System of Patterns. Chichester, NY: Wiley, 1996 (ISBN: 978-0-

471-95869-7).

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 60: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 60 | 64

Referenzen

[FMC]

http://www.fmc-modeling.org/

[IBM14]

Facilitating the Mini-Quality Attributes Workshop

http://resources.sei.cmu.edu/asset_files/Presentation/2014_017_101_89563.

pdf

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 61: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 61 | 64

Weiterführende Literatur

[Bachmann et al ]Understanding Architectural Patterns in Terms of Tactics and Modelshttp://www.sei.cmu.edu/library/abstracts/news-at-sei/architect200708.cfm

[Bachmann et al ]Modifiability Tacticshttp://www.sei.cmu.edu/reports/07tr002.pdf

[Brown]Software Architecture for Developers – Simon Brownhttps://leanpub.com/software-architecture-for-developers

[Clement10]Relating Business Goals to Architecturally Significant Requirements for Software Systems http://www.sei.cmu.edu/reports/10tn018.pdf

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 62: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 62 | 64

Weiterführende Literatur

[Kazman00]

ATAM : Method for Architecture Evaluation

http://resources.sei.cmu.edu/library/asset-view.cfm?assetid=5177

[MS-ArchGuide]

MircoSoft Architecute Guide

http://apparchguide.codeplex.com/wikipage?title=Chapter%207%20-

%20Quality%20Attributes

[Nord09]

A Structured Approach for Reviewing Architecture Documentation

http://repository.cmu.edu/sei/280

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 63: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 63 | 64

Weiterführende Literatur

[Nothop11]Identifying Architectural Risks using the Architecture Tradeoff Analysis Method (ATAM )Linda Nothop OOP 2011http://www.sigs.de/download/oop_2011/downloads/files/Mi6-4_Northrop_ATAM%20OOP.pdf

[STARKE12]Quality Driven Software Architecture ; Gernot Starkehttps://www.innoq.com/de/articles/2012/04/quality-driven-software-architecture/

[WIKIPEDIA]http://de.wikipedia.org/wiki/Softwarearchitektur

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 64: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 64 | 64

Weiterführende Literatur

[Wojcik 2006]

Wojcik, R.; Bachmann, F.; Bass, L.; Clements, P.; Merson, P.; Nord, R.; Wood, B.

Attribute-Driven Design (ADD), Version 2.0,

http://www.sei.cmu.edu/library/abstracts/reports/06tr023.c

[Wood]

A Practical Example for ADD

http://www.sei.cmu.edu/reports/07tr005.pdf

Qualitätsmerkmale | Architektur | Qualitätsmerkmale erfassen | Qualitätsmerkmale erreichen |

Qualität verifizieren | Abschluss

Page 65: Mehr Softwarequalität: Qualität als Treiber

WWW.IKS-GMBH.COM

Page 66: Mehr Softwarequalität: Qualität als Treiber

Qualität als Treiber 66 | 64

Projekte. Beratung. Spezialisten.