ATAM - User Websites on enterpriselab.ch

Werbung
Kapitel 1
Applikations-Architektur VII
Software Architecture, Quality & Testing
FS 2016
Prof. Dr. Jana Koehler
[email protected]
© HSLU - JK
Agenda
Bewertung von Architekturen mit der ATAM Methode
Architecture Tradeoff Analysis Method (ATAM)
"There is no such thing as an inherently
good or bad architecture. Architectures are
either more or less fit for some purpose."
Bass, Clements, Katzman
2
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Wie komme ich zu einer guten Architektur
 Den Prozess des Entwurfs, des Prototyping, der Umsetzung
gut beherrschen
 Die Strukturen gut entwerfen
 Empfehlungen sind möglich, aber keine Rezepte
– "rules of thumb"
– Erfahrungen aus guten Projekten
– Sind Empfehlungen verletzt, besteht ein erhöhtes Risiko
einer schlechten Architektur
3
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Bewertung von Architekturen
 Ist die Architektur gut genug?
 Software Architektur kann nur qualitativ bewertet werden
– Keine sinnvollen Quantitäten direkt messbar
 Quantitative Messung möglich von
– Änderungsumfang und -häufigkeit der Anforderungen
– Testumfang und -abdeckung
– Fehlerbehebung während der Implementierung
– Codemetriken
 Liefern keine Antwort auf unsere Frage
 Aber wir haben Response Measures aus den Szenarien!
4
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Analyse als Voraussetzung der Bewertung
 Immer wenn eine Schlüssel-Entscheidung getroffen wird
oder ein Meilenstein erreicht wird, sollten die gewählte(n)
Entscheidungen und mögliche Alternativen analysiert
werden
– Wichtigkeit der Entscheidung
– Anzahl möglicher Alternativen
– "Gut genug" im Vergleich zu "Perfekt"
 Analysekosten sollten Kosten einer Fehlentscheidung nicht
übersteigen
 Gedankenexperimente, Simulationen, Prototypen
5
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
ATAM
 Evaluatoren müssen die Architektur nicht kennen
 Das System muss noch nicht existieren
 Es kann viele Stakeholder geben
 3 Gruppen von Beteiligten
1. Evaluatoren: ausserhalb des Projektes, ATAM Experten
2. Projektentscheider: Architekt, project manager, product owner
3. Architektur Stakeholder:
•
•
•
6
Haben ein Interesse an einer funktionierenden Architektur
Formulieren die Qualitätsattribute, die das System für sie zu einem
Erfolg machen (Entwickler, Tester, Benutzer)
12-15 bei grossen Systemen
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Geschäftsziele und
Rahmenbedingungen
Qualitätsbaum
(utility tree)
Funktionale und Nichtfunktionale
Anforderungen
Aktueller
Architektur-Entwurf
Szenarios
ATAM
Risiken und “Nicht-Risiken”
Sensible Punkte und Kompromisse
Risikoanalyse als Ziel
Einen Zusammenhang finden zwischen den Architekturentscheidungen und dem zu erwartenden Systemverhalten
7
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Ergebnisse von ATAM
1. Eine präzise und verständliche Darstellung der Architektur
– kann in einer Stunde präsentiert werden
2. Formulierung der Geschäftsziele
3. Priorisierte Anforderungen der Qualitätsattribute in Form
von Szenarien
4. Risiken
– Eine Architekturentscheidung, die negative Auswirkungen auf ein Szenario (das QA) hat, ist ein Risiko
– Architectural risk mitigation plan
8
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Ergebnisse von ATAM (Forts.)
5. Risikothemen: Welche systematischen Schwächen in der
Architektur (oder auch im Team oder im Prozess) führen zu
den Risiken?
6. Beziehung der Architekturentscheidungen zu den
Qualitätsattributen
– Welche Entscheidungen stützen welche Qualitäten?
7. Sensible Punkte und Kompromisse
– Architekturentscheidungen mit Auswirkungen auf ein
oder mehrere Qualitätsattribute
9
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
ATAM Qualitätsbaum (Utility Tree) – Qualitäten wichten
Szenarien
Qualitäten
COTS - Commercial Off The Shelf
L,H,M - Low, High, Medium
Intervalle: Auftrittswahrscheinlichkeit +Relevanz/Risiko (optional)
10
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Andere Variante Utility Tree
6
e
11
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Beispiel aus einer BDA
12
SAQT 2016- Software Architektur: Sichten, Dokumentation & Architekturentscheidungen
©
HSLU - JK
Beispiel aus einer BDA
13
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Beispiel aus einer BDA
14
SAQT 2016- Software Architektur: Sichten, Dokumentation & Architekturentscheidungen
©
HSLU - JK
Qualitäten
15




Performance
Availability
Usability
Security
Sicht des Benutzers




Maintainability
Portability
Reusability
Testability
Sicht des Entwicklers






Time To Market
Cost and Benefits
Projected life time
Targeted Market
Integration with Legacy System
Roll back Schedule
Sicht des Business
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Szenarien
 Kurze und präzise Beschreibung der Interaktion eines
Stakeholders mit dem System
– Vom Stimulus zu messbarer Systemreaktion
 Wichtig: alle Stakeholder einbeziehen
– Benutzer, Entwickler, Administratoren, …
 Stakeholder bewerten und wählen die wichtigsten Szenarien
(ca. 10-15)
16
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Typische Szenarien
 Erwartete Use cases mit Qualitätsattribut (Verfügbarkeit)
– "Remote User greift via Web auf die Report DB zu und
erwartet eine Systemantwort in weniger als 5 Sekunden."
 Zu erwartende Änderungen (growth scenarios)
– "Hinzufügen eines weiteren Portalservers innerhalb einer
Woche, um die Antwortzeiten auf unter 2.5 Sekunden zu
reduzieren."
 Kritische Stress-Situationen für das System
– "Die Hälfte der Server fällt im Betrieb aus, ohne die
Verfügbarkeit des Systems zu beeinträchtigen."
17
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Risiken und Nicht-Risiken (Risks/Non-Risks)
 Architekturentscheidungen, die ein Risiko (oder kein Risiko)
für ein gegebenes Qualitätsattribut sind
 Nicht-Risiken: "Gute" Entscheidungen, die ein
Qualitätsattribut stützen
 "Der Backup der Datenbank stellt ein Risiko für die
Performanz des Systems dar, wenn eine hohe
Systemleistung mit hohen Kosten verbunden ist."
 "Der Backup ist kein Risiko bei geringen Kosten für die
Systemleistung."
18
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Sensible Punkte und Kompromisse
 Sensible Punkte (Sensitivity Points)
– Architekturentscheidungen, die bei einer geringfügigen
Änderung grosse Auswirkungen auf ein Qualitätsattribut
haben
– "Der tägliche Backup der Datenbank ist wichtig für die
Zuverlässigkeit des Systems."
 Kompromisse (Tradeoffs)
– Architekturentscheidungen, die Auswirkungen auf
mehrere Qualitätsattribute haben
– "Der Backup der Datenbank sichert die Zuverlässigkeit,
aber beeinträchtigt die Performanz des Systems."
19
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Sensible Punkte und Risiken/Nichtrisiken
 Responses des Systems, die wir in den ArchitekturEntscheidungen auf der Annahme bestimmter Stimuli
definiert haben
– Ändern sich unsere Annahmen müssen wir unsere
Entscheidungen überprüfen, weil aus Nichtrisiken
(Stärken) Risiken (Schwächen) werden können und
umgekehrt
– Sensitivity points sind Eigenschaften kritischer
Komponenten (oder ihrer Beziehungen), die
entscheidend sind, damit ein bestimmter Response
erzeugt wird
20
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Beispiel: Shared File System
 wichtige gemeinsame Information verschiedener
Komponenten wird in einer Datei auf einem zentral
zugänglichen Server gespeichert
– die Datei ist klein
– keine Sicherheitsanforderungen
– kein simultaner Zugriff der Komponenten auf die Datei
möglich
 Sobald sich eine dieser Annahmen ändert, müssen wir
unsere Entscheidung revidieren
– das "flat file" kann jetzt zum Risiko werden
21
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Wie verläuft ATAM?
1. Stakeholder zusammenbringen
2. ATAM erklären
Ggf.
wiederholen
3. Business Driver/Kontext für Systementwicklung
zusammenfassen
4. Architektur vorstellen - Stile sind wichtig
5. Qualitätsbaum aufbauen
a) Attribute hierarchisieren und Bedeutung quantifizieren
b) Szenarien definieren und priorisieren
6. Szenarien und Architektur gegenüberstellen
7. Risiken, sensible Punkte, Kompromisse identifizieren
8. Massnahmen definieren
22
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Vorteile von ATAM
 Klärung von nichtfunktionalen Anforderungen und
Qualitätsattributen
 Verbesserte Dokumentation von Architektur und
Architekturentscheidungen
 Intensivierte Diskussion zwischen Stakeholdern
 Frühe Erkennung von Risiken, wenn früh durchgeführt
 RISIKO: ATAM ist zeitaufwendig!
 Gewünschtes Ergebnis
 Risk Mitigation - Einleitung von Massnahmen zur
Reduzierung der Risiken
 Verbesserte Architektur
23
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Light-weight ATAM
 Für kleinere und wenig riskante Projekte
 Internes kleineres Team
1.
ATAM erklären
2.
Business Driver/Kontext für Systementwicklung zusammenfassen (15 min)
3.
Architektur vorstellen (25 min)
4.
Qualitätsbaum aufbauen (Qualitätsbaum + Szenarien existieren, review in 1h)
a) Attribute hierarchisieren und Bedeutung quantifizieren
b) Szenarien definieren und priorisieren
5.
Szenarien und Architektur gegenüberstellen (2-3h)
6.
Risiken, sensible Punkte, Kompromisse identifizieren (in Schritt 5)
7.
Ergebnisse dokumentieren (0.5 h)
24
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Aufgabe K9: Architekturbewertung
I.
Erarbeiten Sie einen einfachen Qualitätsbaum mit ca. 3-5
Kriterien und 2-3 Szenarien für das Kolumbus Projekt.
II. Identifizieren Sie mindestens ein Risiko und einen
Kompromiss in Ihren Architekturentscheidungen.
25
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Zusammenfassung
 Nachlesen im Starke:
– Kapitel 9
 Besser erklärt in Clements, Kazman, Klein: Evaluating
Software Architectures
– Kapitel 2,3,4
 Szenarien als Grundlage der Bewertung
 Kein absolutes Qualitätsmass, sondern Kompromisse,
sensible Punkte und Risiken als Ergebnis
 Fördert das Denken in Entscheidungen und
Entscheidungsalternativen
 Prototypen als wichtige Grundlage, um zu echten
Messwerten zu kommen
26
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Arbeitsfragen
1. Worin bestehen die Herausforderungen beim
Architekturentwurf?
2. Nennen Sie Beispiele für Empfehlungen für den
Architekturentwurf.
3. Wann analysieren und bewerten Sie eine Architektur?
4. Womit können Sie Architekturen analysieren?
5. Womit können Sie Architekturen bewerten?
6. Erläutern Sie die Grundideen von ATAM.
7. Welche Rolle spielen Szenarien im ATAM Utility Tree?
8. Was verstehen wir in ATAM unter Risiken, Nicht-Risiken,
sensiblen Punkten und Kompromissen?
27
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Arbeitsfragen (Forts.)
9. Warum analysieren + dokumentieren wir welche
Architekturentscheidungen welche Qualitätsattribute
beeinflussen?
10. Was erhalten wir als Ergebnis von ATAM?
11. Worin sehen Sie Vorteile/Nachteile von ATAM?
12. Wie würden Sie ATAM verwenden, um 2 alternative
Architekturentwürfe miteinander zu vergleichen?
13. Sie sollen die Architektur eines Systems überprüfen. Der
Architekt ist nicht verfügbar und Sie dürfen auch nicht mit
Stakeholdern reden. Was machen Sie?
14. Wann wenden Sie ATAM voll oder lightweight an?
15. Was bekommen Sie von ATAM nicht?
28
SAQT 2016 - Software Architektur: ATAM
©
HSLU - JK
Herunterladen