Wer wünscht sich nicht "Mehr Softwarequalität"? Insbesondere an Individualsoftware werden hohe Qualitätsanforderungen gestellt. Einen Königsweg gibt es zwar nicht, aber viele „Best practices“, mit denen Sie systematisch die Softwarequalität erhöhen können.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Softwarequalität: Einfluss der Architektur
1. Umsichtig planen, robust bauen
iks Thementag
„Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“
19.06.2012
Autor:
Christoph Schmidt-Casdorff
2. Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 3 / 36
3. Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 4 / 36
4. Softwarearchitektur
Softwarearchitektur ist eine Rolle
Gibt Struktur
– Strukturen, Komponenten, Schnittstellen, Beziehungen
Besteht aus verschiedenen Sichten
Unterstützt Übergang von Analyse zur Realisierung
Kümmert sich um nicht-funktionale Anforderungen (NFA)
Kommunikationsbasis
Muss dokumentiert und bewertet werden
– Ebenso wie Requirements Engineering
nach [Starke]
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 5 / 36
5. Softwarearchitektur und Qualität
Softwarearchitektur gibt Strukturmerkmale der Software vor
– Wird diese Struktur eingehalten?
interne Softwarequalität
Softwarearchitektur stellt die Umsetzung nicht-funktionaler
Anforderungen sicher
– Werden die NFA erfüllt?
externe Softwarequalität
Qualität der Softwarearchitektur selbst
– Wie gut ist die Softwarearchitektur (und ihre Dokumentation)?
interne Qualität
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 6 / 36
6. Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 7 / 36
7. Architekturkonformität
Ist die Software architekturkonform ?
– Einhaltung der Architekturaspekte
– Einhaltung von Schichtenmodellen
– Einhaltung von Komponentenschnittstellen
Architekturkonformität ist ein Qualitätsmerkmal
– Beeinflusst die Qualitätseigenschaften:
• Änderbarkeit (massiv), Effizienz, Übertragbarkeit
Architekturkonformität ist interne Qualität
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 8 / 36
8. Einhaltung der Architekturkonformität
Architekturkonformität lässt sich nur schlecht am
Produkt messen
– Es fehlen geeignete Werkzeuge
– Ansätze: siehe [Sotograph]
– Eigenentwicklung via Aspektorientierung
Verbesserung der Prozessqualität
– Information
– Schulung
– Reviews in jeder Form
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 9 / 36
9. Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 10 / 36
10. Architekturdokumentation
Dokumentiert Architektur aus allen relevanten Perspektiven
Perspektiven sind
– Fachseite
– Betrieb
– Entwicklung
– Kurz: alle Stakeholder
Es gibt einen zentralen Einstieg für die Architekturdokumentation
Je nach Perspektive u.U. unterschiedliche Medien
– Dokumente, Slides, Wiki, Webcast, …..
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 11 / 36
12. Architekturdokumentation und Qualitätsmerkmale
Qualitätsmerkmale sind vergleichbar zum Requirements
Engineering
– Aktuell
– Wartbar
– …
Qualität der Architekturdokumentation
– Wird mit gleichen Mitteln wie im Requirements Engineering
sichergestellt
– Review Verfahren usw.
siehe [Arc42], [Starke]
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 13 / 36
13. Best practices: Architekturdokumentation
Dokumentieren Sie Ihre Architektur
– Einstieg mit [Arc42]
Dokumentieren Sie Ihre Architekturentscheidungen
– Auch und gerade die Negativentscheidungen
Halten Sie die Architekturdokumentation am Leben
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 14 / 36
14. Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 15 / 36
15. Nicht-funktionale Anforderungen (nach [Bass+])
... haben großen Einfluss auf die Architektur
... müssen möglichst früh in den Architekturentwurf einfließen
... sind Qualitätsmerkmale
– Beziehen sich auf Qualitätsmerkmale aus bekannten
Qualitätsmodellen
– Benötigen Metriken zur Bewertung
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 16 / 36
16. Qualitätsmerkmale für nicht-funktionale
Anforderungen
Verfügbarkeit
Veränderbarkeit
– Kosten von Veränderungen am System
Performance
Sicherheit
Testbarkeit
Usability
u.v.a. …
Siehe ISO 9126
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 17 / 36
17. Nicht-funktionale Anforderungen
Architektur ermittelt die konkreten Anforderungen an
einzelne Qualitätsmerkmale
Architektur setzt Rahmenbedingungen für die Entwicklung
Architektur tariert widersprüchliche Anforderungen aus
Architektur definiert Metriken zur Messung
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 18 / 36
18. Nicht-funktionale Anforderungen
System bedient 1.000 Nutzer mit einer Antwortzeit < 1 sec
– Genaue Systemumgebung muss noch festgelegt werden !!!
Neues Feature der Art XYZ wird in weniger als 30 PT umgesetzt
System hat eine Verfügbarkeit von 99%
– Auf welche Bezugsgrößen gründen sich 99% ?
System muss eine Eingabedatei von 10 GB in < 2 min verarbeiten
Anforderungen werden in Qualitätsszenarien erfasst *
– Qualitätsszenarien liefern immer eine Metrik
– Qualitätsszenarien sind formalisiert
* [Bass+], [Starke]
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 19 / 36
19. Qualitätsszenarien
Erfassen Sie …
– in welchem Kontext
– in welchem Umfang
– wodurch ausgelöst
– unter welchen Rahmenbedingungen
– mit welchen messbaren Ergebnissen
das Qualitätsmerkmal gefordert wird
Nutzen Sie Qualitätsszenarien zur Ermittlung Ihrer Anforderungen
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 20 / 36
20. Beispiel eines Qualitätsszenarios
… für das Qualitätsmerkmal Veränderbarkeit Reaktion auf
Auslöser
Auslöser
Betroffene
Quelle – Artefakte Messung nach
wer löst aus erfolgter
Reaktion
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 21 / 36
21. Best practices: Qualitätsziele
Ermitteln und dokumentieren Sie Qualitätsziele
– Werden NFA nicht in der Architektur beachtet, dann
wahrscheinlich gar nicht mehr
Stimmen Sie die NFA mit den Stakeholdern ab
– Diesen sind die Auswirkungen auf Umfang und Kosten
oft nicht klar
– Widersprüchliche Anforderungen müssen austariert werden
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 22 / 36
22. Strategien für NFA
Es gibt einen Zusammenhang zwischen Architekturpattern
und NFA
Es gibt eine Sammlung an Strategien zur Erreichung von NFA
– tactics nach [Bass+] sind Architekturentscheidungen
– Checkliste zur Ermittlung der richtigen tactics in [Bass+] Kap 5
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 23 / 36
23. Beispiel für tactics des Qualitätsmerkmals Verfügbarkeit
[Bass+]
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 24 / 36
24. Attribute Driven Design (ADD)
Methodische Verfeinerung der Architektur unter Berück-
sichtigung der Qualitätsmerkmale
– Siehe [Bass+], [KRU]
Schritte im Groben :
1. Modul bestimmen
2. NFA des Moduls ermitteln
3. Architekturentscheidung treffen
4. Auswirkungen dieser Entscheidungen verändern Module
Verfeinerung -> zurück (1.)
[Bass+]
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 25 / 36
25. Best practices: Qualitätsmerkmale und Architektur
Erfassen Sie Qualitätsmerkmale
– Best practices: als Qualitätsszenario
– Gehen Sie systematisch vor
– Dokumentieren Sie Ihre Anforderungen
Leiten Sie aus den Qualitätsszenarien Strategien ab
– Es existieren Checklisten von Strategien (tactics)
– Dokumentieren Sie den Einsatz von tactics
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 26 / 36
26. Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 27 / 36
27. Architekturbewertung
Architekturbewertung ist ein Evaluationsprozess
– Setzt im wesentlichen auf Review-Techniken
• Zu Reviews: Siehe Requirements Engineering
– Strukturiert und formalisiert
Unterscheidet sich von der Bewertung der Architektur-
dokumentation
– Siehe [NORD+]
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 28 / 36
28. Architekturbewertung
Architekturbewertung stützt sich auf Architektur-
dokumentation
Stakeholder und Projektsprecher
– Sind die wichtigsten Rollen (neben Reviewern)
Architekturbewertung beschäftigt sich mit:
– Prüfung der Qualitätsanforderungen
– Ermittlung der Architekturentscheidungen
– Welche Architekturentscheidung wirkt auf welches
Qualitätsmerkmal?
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 29 / 36
29. Ergebnisse der Architekturbewertung
Sind die Voraussetzungen für eine Bewertung gegeben
– Gibt es verantwortlichen Architekten?
– Ist Architektur dokumentiert?
– Sind Stakeholder in das Review eingebunden?
Bewertungen auf Basis von Qualitätsszenarien:
– Welche Risiken bringt diese Entscheidung mit sich?
– Welche Architekturentscheidung stützt dieses Szenario?
– Welche anderen Anforderungen werden beeinflusst?
Dokumentation, Transparenz und Abstimmung
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 30 / 36
30. Überblick über Methoden
Architecture Tradeoff Analysis Method (ATAM) *
Software Architecture Review and Assessment (SARA) **
… sind iterativer Prozesse zur Architekturbewertung
Basieren auf der Auswertung von Qualitätsszenarios
Beziehen Stakeholder mit ein
* [Bass+], [SEI], **[KRU]
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 31 / 36
31. Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 32 / 36
32. Best practices: NFA
Sichern Sie die Qualität Ihrer Architektur
– Architekturentscheidungen sind weitreichend
• Falsche Entscheidung haben große Auswirkungen
Setzen Sie Qualitätsszenarien zur Ermittlung von NFA ein
– Erfassen und qualifizieren Sie NFA
– Treffen Sie bewusst die Architekturentscheidungen
– Beziehen Sie die Stakeholder mit ein
iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen Seite 33 / 36