Softwarequalität: Einfluss der Architektur

37
iks Thementag „Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“ 19.06.2012 Umsichtig planen, robust bauen Autor: Christoph Schmidt-Casdorff

description

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.

Transcript of Softwarequalität: Einfluss der Architektur

Page 1: 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

Page 2: Softwarequalität: Einfluss der Architektur

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

Page 3: Softwarequalität: Einfluss der Architektur

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

Page 4: Softwarequalität: Einfluss der Architektur

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]

Page 5: Softwarequalität: Einfluss der Architektur

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

Page 6: Softwarequalität: Einfluss der Architektur

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

Page 7: Softwarequalität: Einfluss der Architektur

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

Page 8: Softwarequalität: Einfluss der Architektur

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

Page 9: Softwarequalität: Einfluss der Architektur

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

Page 10: Softwarequalität: Einfluss der Architektur

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, …..

Page 11: Softwarequalität: Einfluss der Architektur

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]

Page 12: Softwarequalität: Einfluss der Architektur

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]

Page 13: Softwarequalität: Einfluss der Architektur

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

Page 14: Softwarequalität: Einfluss der Architektur

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

Page 15: Softwarequalität: Einfluss der Architektur

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

Page 16: Softwarequalität: Einfluss der Architektur

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

Page 17: Softwarequalität: Einfluss der Architektur

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

Page 18: Softwarequalität: Einfluss der Architektur

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]

Page 19: Softwarequalität: Einfluss der Architektur

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

Page 20: Softwarequalität: Einfluss der Architektur

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

Page 21: Softwarequalität: Einfluss der Architektur

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

Page 22: Softwarequalität: Einfluss der Architektur

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

Page 23: Softwarequalität: Einfluss der Architektur

Seite 24 / 36 iks Thementag: „Mehr Softwarequalität“ - Umsichtig planen, robust bauen

Beispiel für tactics des Qualitätsmerkmals Verfügbarkeit

[Bass+]

Page 24: Softwarequalität: Einfluss der Architektur

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+]

Page 25: Softwarequalität: Einfluss der Architektur

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

Page 26: Softwarequalität: Einfluss der Architektur

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

Page 27: Softwarequalität: Einfluss der Architektur

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+]

Page 28: Softwarequalität: Einfluss der Architektur

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?

Page 29: Softwarequalität: Einfluss der Architektur

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

Page 30: Softwarequalität: Einfluss der Architektur

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]

Page 31: Softwarequalität: Einfluss der Architektur

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

Page 32: Softwarequalität: Einfluss der Architektur

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

Page 33: Softwarequalität: Einfluss der Architektur

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

Page 34: Softwarequalität: Einfluss der Architektur

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

Page 35: Softwarequalität: Einfluss der Architektur

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

Page 36: Softwarequalität: Einfluss der Architektur

Fragen?

Page 37: Softwarequalität: Einfluss der Architektur

www.iks-gmbh.com