Download - Softwarequalität: Einfluss der Architektur

Transcript
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