Upload
iks-gesellschaft-fuer-informations-und-kommunikationssysteme-mbh
View
1.674
Download
3
Embed Size (px)
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.
Citation preview
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