Umsichtig planen, robust bauen iks Thementag Mehr Softwarequalität Best practices für alle Entwicklungsphasen 19.06.2012 Autor: Christoph Schmidt-Casdorff
Agenda Softwarearchitektur Architekturkonformität Architekturdokumentation Nicht-funktionale Anforderungen Bewertung der Softwarearchitektur Best practices Seite 3 / 36
Agenda Softwarearchitektur Architekturkonformität Architekturdokumentation Nicht-funktionale Anforderungen Bewertung der Softwarearchitektur Best practices Seite 4 / 36
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 5 / 36
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 6 / 36
Agenda Softwarearchitektur Architekturkonformität Architekturdokumentation Nicht-funktionale Anforderungen Bewertung der Softwarearchitektur Best practices Seite 7 / 36
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 8 / 36
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 9 / 36
Agenda Softwarearchitektur Architekturkonformität Architekturdokumentation Nicht-funktionale Anforderungen Bewertung der Softwarearchitektur Best practices Seite 10 / 36
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 11 / 36
Architekturdokumentation Glossar Kontext Qualitätsmerkmale Sichten Bausteinsicht Laufzeitsicht Verteilungssicht / Infrastruktursicht Architekturentscheidungen u.v.a siehe [Arc42], [Starke] Seite 12 / 36
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 13 / 36
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 14 / 36
Agenda Softwarearchitektur Architekturkonformität Architekturdokumentation Nicht-funktionale Anforderungen Bewertung der Softwarearchitektur Best practices Seite 15 / 36
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 16 / 36
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 17 / 36
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 18 / 36
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 19 / 36
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 20 / 36
Beispiel eines Qualitätsszenarios für das Qualitätsmerkmal Veränderbarkeit Auslöser Reaktion auf Auslöser Quelle wer löst aus Betroffene Artefakte Messung nach erfolgter Reaktion Seite 21 / 36
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 22 / 36
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 23 / 36
Beispiel für tactics des Qualitätsmerkmals Verfügbarkeit [Bass+] Seite 24 / 36
Attribute Driven Design (ADD) Methodische Verfeinerung der Architektur unter Berücksichtigung 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 25 / 36
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 26 / 36
Agenda Softwarearchitektur Architekturkonformität Architekturdokumentation Nicht-funktionale Anforderungen Bewertung der Softwarearchitektur Best practices Seite 27 / 36
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 Architekturdokumentation Siehe [NORD+] Seite 28 / 36
Architekturbewertung Architekturbewertung stützt sich auf Architekturdokumentation 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 29 / 36
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 30 / 36
Ü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 31 / 36
Agenda Softwarearchitektur Architekturkonformität Architekturdokumentation Nicht-funktionale Anforderungen Bewertung der Softwarearchitektur Best practices Seite 32 / 36
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 33 / 36
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 34 / 36
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 35 / 36
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 Seite 36 / 36
Fragen?
www.iks-gmbh.com