Besser, schöner, schneller

Größe: px
Ab Seite anzeigen:

Download "Besser, schöner, schneller"

Transkript

1 Besser, schöner, schneller Dr. Gernot Starke Fellow aktiv

2 gerade frisch... (co) founder of: member of: Fellow

3 Was wollen Stakeholder von Software? Was Benutzer wollen... fast correct secure nice'n easy (useable) flexible new features foolproof (robust) User

4 Ein Beispiel Verwaltung von Fotos... Bilder zufügen Keywords ordnen Metadaten (Datum, Ort, Kamerainfos,...)

5 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 Domain-Model? id: 0a7c14592bff34518 datum: 24.Mai 2006 ort: Fuerteventura file: dsc02231.jpg album: 2006/urlaub keywords: [family, urlaub]

6 Domain-Model für Beispiel id Foto imgdata Metadaten key value Lösungsansätze iphoto xnview Picasa

7 Fertig? Build what users want: DDD: Domain Driven Design * User Interface Application Domain Infrastructure *) Eric Evans, Addison Wesley 2004

8 Anwender und Entwickler kommunizieren über eine Ubiquitous Language User Interface Application Domain Technische Begriffe Domänenbegriffe Fachjargon (für Entwickler unverständlich) Infrastructure Typen von Domänenobjekten User Interface Application Entity Value Object Service Domain Aggregate Infrastructure Factory Repository

9 Side-Effect Free Functions mache Komposition sicher sichere ab und vereinfache mache Seiteneffekte explizit Assertions "Geschmeidiger Entwurf" (supple design) Intentionrevealing Interfaces Standalone Classes Conceptual Contours beziehe aus Ubiquitous Language modelliere laut Model-Driven Design Namen bestimmen beschreibe Modell mit isoliere Domäne mit Services Layered Architecture Bausteine von DDD Value Objects Entities suche mit Factories erzeuge mit kapsele mit verwalte und validiere mit Repositories erzeuge mit Aggregates suche mit Grails Ruby-on-Rails NakedObjects DDD Trails JMatter Frameworks Romaframework MDAtools Strandz ECO

10 JMatter Beispiel: Konferenzsystem cost effective Was wollen andere Stakeholder? fast nice'n easy (useable) correct new features Manager secure flexible foolproof (robust) new hardware Tester easy to test easy to operate User System operator or administrator

11 Zurück zum Beispiel iphoto id Foto imgdata Metadaten key value Neue Anforderungen (1.Fall) Benutzer im Web jeweils 50 GByte Speicher Suche (nach Keyword / Metadaten) < 1 sec! 24 x 7 mit 99,9% Verfügbarkeit

12 Was nun? Kritische Aufgabenstellungen: Behandlung SEHR großer Datenmengen Skalierung der Benutzerzahlen Hohe Leseperformance Caching, Replikation, BASE statt ACID, Übertragungskosten fast identisches Domain-Model! id Foto imgdata Metadaten key value Owner Neue Anforderungen (2.Fall)... <100 Benutzer, jeweils < 1 GByte Bilddaten sind streng geheim ( military grade security ) Dürfen niemals Unbefugten zugänglich werden

13 Was nun? Kritische Aufgabenstellungen: Crypto, Key-Management Identity-Management, Authentisierung Rechte und Rollen, Administration wieder: fast identisches Domain- Model! id Foto imgdata Metadaten key value Owner Nichtfunktionale Anforderungen sind schwieriger als funktionale. riskanter, aufwändiger, komplizierter, komplexer, teurer, schwerer verständlich.

14 functional Requirements nonfunctional nonfunctional = besser, schöner, schneller

15 nonfunctional Domain-driven vernachlässigt (oft) nichtfunktionale Qualitätsmerkmale

16 Abhilfe: Qualitätsziele präzise beschreiben Qualität bei Systementwurf explizit berücksichtigen besser, schöner, schneller explizit konstruieren.

17 Konstruktion: 1.) Ziel / Anforderung festlegen 2.) Mit Erfahrung: Maßnahmen definieren 3.) do - check- act QDSA in Action... Qualitätsmerkmal Szenarien Maßnahmen Änderbarkeit Neue Report über die xy-ergebnisse (als pdf) in < 10 PT Entwicklungsaufwand Reporting-Engine statt selbst definierter Reports pluggable reports itext als pdf Bibliothek pdf Layer zur Flexibilisierung Reporting-Menü in GUI konfigurierbar gestalten Erweiterung um mobile Clients beeinträchtigt Performance des Gesamtsystems nicht ( normale Clients in 90% aller Fälle identisch schnell, in 10% höchstens 25% langsamer als vorher) replizierte oder read-only DB für mobile Clients horizontale Skalierbarkeit der Hardware durch skalierbare Middleware Betrieb der Serverkomponenten in der Cloud Sicherheit Vertrauliche Kundendaten dürfen keinem Administrator zugänglich werden Einsatz einer NetHSM CryptoBox User-Password nicht speichern Trennung von Admin und Leserechten auf DB-Ebene Entschlüsselte Kundendaten niemals in Dateisystem (auch temporär) ablegen ExternSecurity-Audit durch Unabhängige

18 Wie können wir Qualität genauer beschreiben? Qualitätsbaum hierarchische Verfeinerung von Qualität * Funktiona-lität Zuverlässigkeit Verstehbarkeit Erlernbarkeit Benutzbar-keit Qualität Bedien-barkeit Effizienz Attraktivität Wartbarkeit Portierbar-keit *) z.b. abschreiben von DIN/ISO 9126

19 ... bis zu konkreten Szenarien Performance Data Latency Minimize storage latency on Customer DB to 200 ms Deliver Video in real time Transaction Troughput New Product category Quality Modifiability Change COTS Add CORBA middleware in <20 person-months Change web user interface in <4 person-weeks Availability HW failure Power outage at Site 1 requires traffic redirect to Site 2 in < 3sec Restart after disk failure in <5 sec COTS S/W failure Network failure is detected and recovered in <1.5 mins Security Data confidentiality Credit card transactions are secure 99,999% of time Qualitätsbaum für das Beispiel: (2.Fall) Performanz Datenvolumen Nutzerzahl Sicherheit Geheimhaltung Nur berechtigte Benutzer dürfen Bilddaten entschlüsseln können - Administratoren NICHT Quality Benutzer dürfen keine Bilder sehen, für die sie keine ausdrücklichen Berechtigungen besitzen.

20 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) Wo lernen Sie Taktiken für NFA n? leider nirgendwo vollständig oder systematisch! 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]

21 Qualität mit Methode! Anforderungen klären...qualitätsziele festlegen... Entscheidungen treffen Strukturen entwerfen Technische Konzepte entwerfen Architektur kommunizieren Umsetzung überwachen Architektur bewerten...alles klar?? Der Prozess ( Ergänzt Domain Driven Design um explizite Beachtung von Qualitätsanforderungen durch: Festlegung von Architekturzielen Präzisierung über Qualitätsbaum und Q-Szenarien Strategien zur Erreichung von Qualitätsanforderungen

22 Fazit (1) Qualität ist spezifisch und vielseitig. Sie kommt NIEMALS von allein! Fazit (2) Konzentration auf Fachlichkeit (á la DDD): ist richtig und wichtig aber (oft) nicht ausreichend

23 Fazit (3) Ihre Architektur kann an JEDEM Qualitätsziel scheitern! Starten Sie deshalb mit expliziten Qualitätszielen Fazit (4) Treffen Sie Ihre Architekturentscheidungen auf Basis eines operationalisierten und priorisierten Qualitätsbaumes

24 Fazit (4) und dokumentieren { Treffen Sie Ihre Architektur-entscheidungen 1. Einleitung und Ziele Basis eines operationalisierten 1.1 Aufgabenstellung und priorisierten 1.2 Stakeholder Qualitätsbaumes 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