Softwarequalität: Einfluss der Architektur
-
Upload
iks-gesellschaft-fuer-informations-und-kommunikationssysteme-mbh -
Category
Technology
-
view
1.671 -
download
3
description
Transcript of Softwarequalität: Einfluss der Architektur
iks Thementag
„Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“
19.06.2012
Umsichtig planen, robust bauen
Autor:
Christoph Schmidt-Casdorff
Seite 3 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
Seite 4 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
Seite 5 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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]
Seite 6 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 7 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
Seite 8 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 9 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 10 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
Seite 11 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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, …..
Seite 12 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Architekturdokumentation
Glossar
Kontext
Qualitätsmerkmale
Sichten
– Bausteinsicht
– Laufzeitsicht
– Verteilungssicht / Infrastruktursicht
Architekturentscheidungen
… u.v.a
siehe [Arc42] , [Starke]
Seite 13 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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]
Seite 14 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 15 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
Seite 16 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 17 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 18 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 19 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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]
Seite 20 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 21 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Beispiel eines Qualitätsszenarios
… für das Qualitätsmerkmal Veränderbarkeit
Reaktion auf
Auslöser Auslöser
Quelle –
wer löst aus
Betroffene
Artefakte Messung nach
erfolgter
Reaktion
Seite 22 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 23 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 24 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Beispiel für tactics des Qualitätsmerkmals Verfügbarkeit
[Bass+]
Seite 25 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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+]
Seite 26 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 27 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
Seite 28 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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+]
Seite 29 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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?
Seite 30 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 31 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Ü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]
Seite 32 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Agenda
Softwarearchitektur
Architekturkonformität
Architekturdokumentation
Nicht-funktionale Anforderungen
Bewertung der Softwarearchitektur
Best practices
Seite 33 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
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
Seite 34 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Referenzen
[ADD]
http://www.sei.cmu.edu/reports/06tr023.pdf
[Arc42]
http://www.arc42.com/index.html
[Bass+]
Software Architecture in Practise, L.Bass, P.Clements, R.Kazman
ISBN-13: 978-0321815736
[KRU]
http://kruchten.com/philippe/architecture/SARAv1.pdf
Seite 35 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Referenzen
[NORD+]
http://repository.cmu.edu/sei/280
[SEI-2007]
http://www.sei.cmu.edu/library/abstracts/reports/07tr002.cfm
[Starke]
Effektive Softwarearchitekturen: Ein praktischer Leitfaden, Gernot Starke
ISBN-13: 978-3446427280
Seite 36 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen
Weiterführende Literatur
[SEI]
http://www.sei.cmu.edu/architecture/
[SOTOGRAPH]
http://www.hello2morrow.com/products/sotograph
[MSDN]
Microsoft Application Architecture Guide, Kap 16
http://msdn.microsoft.com/en-us/library/ee658094.aspx
Fragen?
www.iks-gmbh.com