Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Quality Driven Software Architecture

Dr. Gernot Starke
November 10, 2011
140

Quality Driven Software Architecture

Qualitätsanforderungen an Software systematisch erreichen - durch "Quality Driven Software Architecture".

Die Methode basiert auf zwei einfachen Ansätzen:
1.) Qualitätsziele durch Szenarien konkretisieren (ähnlich ATAM)
2.) Szenarien durch Maßnahmen oder Strategien angehen

Dr. Gernot Starke

November 10, 2011
Tweet

Transcript

  1. Use-Cases für Beispiel Foto hinzufügen / löschen Fotos anzeigen Metadaten

    für Foto ändern (Ort, Datum, Keywords etc.) Album anlegen / ändern / löschen Fotos suchen
  2. Build what users want: DDD: Domain Driven Design User Interface

    Application Domain Infrastructure * *) Eric Evans, Addison Wesley 2004
  3. Anwender und Entwickler kommunizieren über eine „Ubiquitous Language“ User Interface

    Application Domain Infrastructure Technische Begriffe Fachjargon (für Entwickler unverständlich) Domänen- begriffe
  4. Model-Driven Design Services Entities Layered Architecture isoliere Domäne mit beschreibe

    Modell mit Value Objects Ubiquitous Language modelliere laut Intention- revealing Interfaces "Geschmeidiger Entwurf" (supple design) Bausteine von DDD Side-Effect Free Functions Assertions Standalone Classes Conceptual Contours Namen bestimmen beziehe aus sichere ab und vereinfache mache Seiteneffekte explizit mache Komposition sicher Repositories Factories Aggregates verwalte und validiere mit suche mit erzeuge mit kapsele mit erzeuge mit suche mit
  5. DDD Frameworks NakedObjects JMatter Roma- framework Ruby-on-Rails Strandz Trails ECO

    Grails MDA- tools www.rails.org www.nakedobjects.org www.jmatter.org www.romaframework.org www.grails.org www.trailsframework.org www.capableobjects.com www.strandz.org
  6. fast flexible foolproof (robust) nice'n easy (useable) correct secure User

    easy to operate System operator or administrator cost effective Manager new features new hardw are easy to test Tester Was wollen andere Stakeholder?
  7. Neue Anforderungen (1.Fall)... 100.000.000 Benutzer im Web jeweils 50 GByte

    Speicher Suche (nach Keyword / Metadaten) < 1 sec! 24 x 7 mit 99,9% Verfügbarkeit
  8. Was nun? Kritische Aufgabenstellungen: Behandlung SEHR großer Datenmengen Skalierung der

    Benutzerzahlen Hohe Leseperformance Caching, Replikation, BASE statt ACID, Übertragungskosten Foto id imgData Metadaten key value Owner „fast“ identisches Domain-Model!
  9. Neue Anforderungen (2.Fall)... <100 Benutzer, jeweils < 1 GByte Bilddaten

    sind streng geheim („military grade security“) Dürfen niemals Unbefugten zugänglich werden
  10. Was nun? Kritische Aufgabenstellungen: Crypto, Key-Management Identity-Management, Authentisierung Rechte und

    Rollen, Administration Foto id imgData Metadaten key value Owner wieder: „fast“ identisches Domain-Model!
  11. Qualitätsbaum hierarchische Verfeinerung von „Qualität“ Qualität Funktiona- lität Zuverlässig- keit

    Benutzbar- keit Effizienz Wartbarkeit Portierbar- keit * z.B. abschreiben von DIN/ISO 9126 *) Versteh- barkeit Erlern- barkeit Bedien- barkeit Attraktivität
  12. ... bis zu konkreten Szenarien Quality Performance Modifiability Availability Security

    Data Latency Transaction Troughput Minimize storage latency on Customer DB to 200 ms Deliver Video in real time New Product category Change COTS Add CORBA middleware in <20 person-months Change web user interface in <4 person-weeks HW failure COTS S/W failure Power outage at Site 1 requires traffic redirect to Site 2 in < 3sec Restart after disk failure in <5 sec Network failure is detected and recovered in <1.5 mins Data confidentiality Credit card transactions are secure 99,999% of time
  13. Qualitätsbaum für das Beispiel: (2.Fall) Quality Performanz Sicherheit Daten- volumen

    Nutzerzahl ...... ...... Geheimhaltung Nur berechtigte Benutzer dürfen Bilddaten entschlüsseln können - Administratoren NICHT Benutzer dürfen keine Bilder sehen, für die sie keine ausdrücklichen Berechtigungen besitzen.
  14. Q-Szenario und mögliche Taktiken... Ziel / Szenario: Nur berechtigte Benutzer

    dürfen Bilddaten entschlüsseln können - Administratoren NICHT. Maßnahme: Schlüssel (private-key) zum Entschlüsseln nicht auf dem Server speichern. Smartcard Secure-Remote-Password-Protocol (SRP)
  15. Wo lernen Sie Taktiken für NFA‘n? Patterns, Pattern-Families POSA-Bücher (Patterns

    of Software Architecture), insbesondere zu Security, Resource-Management, Distribution, Concurrency Global Analysis [Hofmeister] Quality Tactics [Bass, Clements, Kazman] leider nirgendwo vollständig oder systematisch!
  16. Qualität mit Methode! Anforderungen klären ...Qualitätsziele festlegen... Strukturen entwerfen Technische

    Konzepte entwerfen Architektur kommunizieren Architektur bewerten Umsetzung überwachen Entscheidungen treffen ...alles klar?? Der Prozess (www.arc42.de)
  17. QDA: Quality Driven Architecture Ergänzt Domain Driven Design um die

    explizite und frühzeitige Beachtung von Qualitätsanforderungen durch Festlegung von Architekturzielen durch Präzisierung der Architekturziele mittels eines Qualitätsbaumes durch Strategien zur Erreichung von Qualitätsmerkmalen
  18. Treffen Sie Ihre Architektur- entscheidungen Basis eines operationalisierten und priorisierten

    Qualitätsbaumes Fazit (4) und dokumentieren 1. Einleitung und Ziele 1.1 Aufgabenstellung 1.2 Stakeholder 1.3. Qualitätsziele 2. Randbedingungen 3. Kontextabgrenzung 4. Lösungsstrategie 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Typische Strukturen und Muster 9. Technische Konzepte 10. Entwurfsentscheidungen 11. Qualitätsszenarien V5.0 {