Quality-Driven Software Architecture



Ähnliche Dokumente
Quality-Driven Software Architecture

Dr. Gernot Starke Architekt. Quality-Driven Software Architecture

Besser, schöner, schneller

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Umsichtig planen, robust bauen

Kapitel 1 Applikations-Architektur V

Unsere Kunden erzählen keine Geschichten. Ursula Meseberg microtool GmbH Berlin

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Was ist Software-Architektur?

SWE12 Übungen Software-Engineering

Der Schutz von Patientendaten

Robert Hartmann Public v1.0 (Feb 2015) Architektur & Agilität - Praxisbericht

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Argelander Institut für Astronomie. Persönliche Website

novapro Open Audittrail Report

Mobile-Szenario in der Integrationskomponente einrichten

Gelebtes Scrum. Weg vom Management hin zur Führung

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Fotos in Tobii Communicator verwenden

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

HSR git und subversion HowTo

Collaboration Manager

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Comparing Software Factories and Software Product Lines

Fülle das erste Bild "Erforderliche Information für das Google-Konto" vollständig aus und auch das nachfolgende Bild.

Qualitätssicherung. Qualität Qualitätsattribute Die Bedeutung von Qualität Sicherstellen von Qualität Qualität und andere Eigenschaften von Software

Softwarequalität: Einführung. 15. April 2015

2 Datei- und Druckdienste

Kurzeinführung Excel2App. Version 1.0.0

Verfügbarkeit von Applikationen und Failover Szenarien. Winfried Wojtenek.

Software Qualität: Übung 3

teischl.com Software Design & Services e.u. office@teischl.com

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten

Agile for Mobile. Erfahrungen mit der agilen Entwicklung von Anforderungen für mobile Business Applikationen. Ursula Meseberg microtool GmbH, Berlin

Neue Funktionalität in mobidas 1.3. erp Serie

Reporting Services und SharePoint 2010 Teil 1

Benutzerverwaltung und Rechtevergabe

Agiles REQUIREMENTS ENGINEERING. Peter Hruschka in der Praxis. Mein Ziel ist Ihr Erfolg:!

Comparison of Software Products using Software Engineering Metrics

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Step by Step Webserver unter Windows Server von Christian Bartl

Installationsanleitung Webhost Windows Flex

Softwareentwicklung aus Sicht des Gehirns

MARCANT - File Delivery System

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

SE2-10-Entwurfsmuster-2 15

BIF/SWE - Übungsbeispiel

Requirements Engineering für IT Systeme

MailUtilities: Remote Deployment - Einführung

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

NEUE FUNKTIONEN T O P H O T E L P R O J E C T S - D a t e n b a n k

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Anforderungen klar kommunizieren

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Xesar. Die vielfältige Sicherheitslösung

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

ERPaaS TM. In nur drei Minuten zur individuellen Lösung und maximaler Flexibilität.

Business-Analyse Probleme lösen, Chancen nutzen

Integration mit Service Repositories zur SOA Governance

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Zeichnungskoordination in der Cloud

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

E-Services mit der Web-Service-Architektur

Microsoft SharePoint 2013 Designer

Oracle 9i Real Application Clusters

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

CAIRO if knowledge matters

SAP NetWeaver Gateway. 2013

Erfolgreiche Realisierung von grossen Softwareprojekten

SERVICE-ORIENTIERTE METRIKEN FÜR GROß DOMINO-INFRASTRUKTUREN

Streamingserver - Aufzeichnung einer Lehrveranstaltung Ablauf

Flowy Apps. Wolfgang-Heilmann-Preis another kind of working Flowy Apps GmbH Fraunhoferstraße Kiel flowyapps.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Ein mobiler Electronic Program Guide

Installation & Konfiguration AddOn Excel Export Restriction

Agenda. TERRA CLOUD GmbH Zahlen, Daten, Fakten Private & Hybrid Cloud Szenarien Public Cloud Szenarien Lessons Learned

Blogbeitrag: Installation eines SAP CRM-Systems

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Die neuen Cloud-Zertifizierungen nach ISO und ISO DI Herfried Geyer Fachhochschule St. Pölten, CIS-Auditor

Windows Server 2012 R2 Essentials & Hyper-V

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

SDD System Design Document

1 Lizenzkey Wo finde ich den Lizenzkey? Lizenzkey hochladen Nameserver einrichten Domains einrichten 7

Installation & Konfiguration AddOn Excel Export Restriction

VEDA Managed Services VEDA-SOFTWARE

Auswahl alter Klausuraufgaben aus einer ähnlichen Vorlesung Maßgeblich für die Prüfung sind die Vorlesungsinhalte!

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Handbuch - Mail-Sheriff Verwaltung

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Transkript:

Quality-Driven Software Architecture Dr. Peter Hruschka Dr. Gernot Starke www.arc42.de OOP 2011 DDD: Domain Driven Design *) Standard-Schichtenmodell: User Interface Application Domain Infrastructure *) Eric Evans, Addison Wesley 2004 Ausgabe, Kommandos interpretieren Koordination, Delegation (keine Business-Logik) Das Herz des Business Generische techn. Dienste (Persistenz, UI-Widgets, Kommunikation)

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 Domain Infrastructure

Typen von Domänenobjekten User Interface Application Entity Domain Infrastructure Typen von Domänenobjekten User Interface Application Entity Service Domain Infrastructure

Typen von Domänenobjekten User Interface Application Entity Value Object Service Domain Infrastructure Typen von Domänenobjekten User Interface Application Entity Value Object Service Domain Aggregate Infrastructure

Typen von Domänenobjekten User Interface Application Entity Value Object Service Domain Aggregate Infrastructure Repository Typen von Domänenobjekten User Interface Application Entity Value Object Service Domain Aggregate Infrastructure Factory Repository

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 www.grails.org Ruby-on-Rails www.rails.org NakedObjects www.nakedobjects.org DDD www.trailsframework.org Trails JMatter www.jmatter.org Frameworks Romaframework MDAtools www.romaframework.org Strandz www.strandz.org ECO www.capableobjects.com

JMatter Beispiel: Konferenzsystem Wie können wir Qualität genauer beschreiben?

Qualitätsbaum erweitert die Architekturziele um alle interessanten Qualitätsaspekte *) Qualität Effizienz Wartbarkeit *) z.b. abschreiben von DIN/ISO 9126 Qualitätsbaum erweitert die Architekturziele um alle interessanten Qualitätsaspekte *) Qualität Effizienz Portierbarkeit Verstehbarkeit Erlernbarkeit Bedienbarkeit Attraktivität Wartbarkeit Funktionalität Zuverlässigkeit Benutzbarkeit Portierbarkeit Funktionalität Zuverlässigkeit Benutzbarkeit *) z.b. abschreiben von DIN/ISO 9126

*) Verfeinern Sie Qualitätsmerkmale... Look & Feel Useability Quality Performance & Safety Operability Security... *) z.b. die von VOLERE (www.volere.de) *) Verfeinern Sie Qualitätsmerkmale... Look & Feel Useability Quality Performance & Safety Operability Maintainability Maintainability Security... Access Requirement Integrity Privacy Audit Requirement Immunity Requirement *) z.b. die von VOLERE (www.volere.de)

... bis zu konkreten Szenarien Performance Modifiability Quality Availability Security... bis zu konkreten Szenarien Performance Data Latency Transaction Troughput Minimize storage latency on Customer DB to 200 ms Deliver Video in real time Modifiability Quality Availability Security

... bis zu konkreten Szenarien Performance Data Latency Transaction Troughput Minimize storage latency on Customer DB to 200 ms Deliver Video in real time New Product category Quality Modifiability Change COTS Add CORBA middleware in <20 person-months Change web user interface in <4 person-weeks Availability Security... bis zu konkreten Szenarien Performance Data Latency Transaction Troughput Minimize storage latency on Customer DB to 200 ms Deliver Video in real time 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

... bis zu konkreten Szenarien Performance Data Latency Transaction Troughput Minimize storage latency on Customer DB to 200 ms Deliver Video in real time 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 Ein Beispiel

Verwaltung von Fotos... Bilder zufügen Keywords ordnen Metadaten (Datum, Ort, Kamerainfos,...) 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] Domain-Model für Beispiel id Foto imgdata Metadaten key value

Lösungsansätze Lösungsansätze xnview

Lösungsansätze xnview Picasa Lösungsansätze iphoto xnview Picasa

Apache PhotArk http://incubator.apache.org/photark/ photark-architecture-guide.html Fertig?

Neue Anforderungen (1.Fall)... Neue Anforderungen (1.Fall)... 10.000.000 Benutzer im Web

Neue Anforderungen (1.Fall)... 10.000.000 Benutzer im Web jeweils 50 GByte Speicher Neue Anforderungen (1.Fall)... 10.000.000 Benutzer im Web jeweils 50 GByte Speicher Suche (nach Keyword / Metadaten) < 1 sec!

Neue Anforderungen (1.Fall)... 10.000.000 Benutzer im Web jeweils 50 GByte Speicher Suche (nach Keyword / Metadaten) < 1 sec! 24 x 7 mit 99,9% Verfügbarkeit Was nun? Kritische Aufgabenstellungen: Behandlung SEHR großer Datenmengen Skalierung der Benutzerzahlen Hohe Leseperformance Caching, Replikation, Übertragungskosten fast identisches Domain-Model! id Foto imgdata Metadaten key value Owner

Neue Anforderungen (2.Fall)... Neue Anforderungen (2.Fall)... <100 Benutzer, jeweils < 1 GByte

Neue Anforderungen (2.Fall)... <100 Benutzer, jeweils < 1 GByte Bilddaten sind streng geheim ( military grade security ) Neue Anforderungen (2.Fall)... <100 Benutzer, jeweils < 1 GByte Bilddaten sind streng geheim ( military grade security ) Dürfen niemals Unbefugten zugänglich werden

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

Qualitätsbaum für das Beispiel: (2.Fall) Performanz Datenvolumen Nutzerzahl...... Quality Sicherheit 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. 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! 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

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] 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]

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 (www.arc42.de) 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

Fazit (1) Qualität ist spezifisch und vielseitig. Sie kommt NIEMALS von allein! Fazit (2) Refactoring ist überbewertet: Hilft nur selten, Qualitätsziele zu erreichen!

Fazit (3) Konzentration auf Fachlichkeit (á la DDD): ist richtig und wichtig aber (oft) nicht ausreichend Fazit (4) Jedes Qualitätsmerkmal kann Ihre Architektur zum Scheitern bringen Starten Sie deshalb mit expliziten Architekturzielen

Fazit (5) Treffen Sie Ihre Architekturentscheidungen Basis eines operationalisierten und priorisierten Qualitätsbaumes und dokumentieren { Fazit (5) Treffen Sie Ihre Architekturentscheidungen 1. Einleitung Basis und Ziele eines 1.1 Aufgabenstellung operationalisierten 1.2 Stakeholder und priorisierten 1.3. Architekturziele Qualitätsbaumes 1.4. Qualitätsbaum 2. Randbedingungen 3. Kontextabgrenzung 4. Bausteinsicht 5. Laufzeitsicht 6. Verteilungssicht 7. Typische Strukturen und Muster 8. Technische Konzepte 9. Entwurfsentscheidungen 10. Szenarien zur Architekturbewertung V5.0