Kapitel 9: Entwurf von Softwarearchitekturen III - Vorlesung Softwarearchitektur| Wintersemester 2019/20 - Thorsten Weyer
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Vorlesung Softwarearchitektur| Wintersemester 2019/20 Kapitel 9: Entwurf von Softwarearchitekturen III AAD | Entwurfskonzepte | Architekturtaktiken | Design Space Exploration Thorsten Weyer
Lernziele Die Studierenden • können die weiteren Architekturtreiber (Systemtyp, Zweck des Entwurfs, Belange) erläutern • können das Konzepte des Qualitätsattributszenarios (differenziert in generisch und konkret) erläutern • können Qualitätsattributszenarien im Architekturentwurf definieren • können die Systematik des Attribute Driven Designs erläutern • kennen die verschiedenen Ausprägungsformen von Entwurfsentscheidungen • können die Bedeutung von Architekturtaktiken und Taktiken für ausgewählte Qualitätsattribute erläutern • können die Entwurfsraum-Exploration und den Bezug zu Quality Function Deployment erläutern Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 2
Gliederung Architekturtreiber und Qualitätsattributszenarien Attribute Driven Design (ADD) Entwurfskonzepte und Selektionspläne Architekturtaktiken Exploration des Entwurfsraums (Design Space Exploration) Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 3
Entwurf der Softwarearchitektur (Wdh.) Problemraum Lösungsraum Zweck des Architekturentwurfs Entwurfsentscheidungen Primäre Funktionale Anforderungen Qualitätsattribut Szenarios verwendet erzeugt Randbedingungen (Constraints) Softwarearchitekt Belange (Concerns) Architekturtreiber Architekturentwurf Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 4
Architekturtreiber • … sind eine Teilmenge der Anforderungen, die wesentliche Aspekte der Softwarearchitektur bestimmen • Funktionale Anforderungen Wdh. • Qualitätsanforderungen (auch: Qualitätsattributanforderungen) • Randbedingungen • Weitere Architekturtreiber • Typ des betrachteten Systems („System-under-Design“ – SuD) • Zweck des Architekturentwurfs • Belange Dies sind die Eingaben für den eigentlichen Entwurfsprozess der Softwarearchitektur Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 5
Architekturtreiber: Funktionale Anforderungen (Wdh.) Funktionale Treiber umfassen typischerweise die wesentlichen Funktionalitäten, die das System an seiner Schnittstelle Akteuren im Kontext (Personen, Systeme) zur Verfügung stellen muss, um seinen Zweck zu erfüllen Systemgrenze Webshop Use Case Mögliches Schema Als [Wer?] möchte ich [Was tun können?], Kundenkonto um [Welchen Mehrwert zu erreichen?]. anlegen Kunde Beispiel 1st Level Als Kunde möchte ich ein Kundenkonto anlegen, […] Support um im Webshop Bestellungen tätigen zu können. Akteur […] User Stories Use Cases Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 6
Architekturtreiber: Qualitätsattribute (Wdh.) Qualitätsattribute sind messbare Eigenschaften des betrachteten Systems, die für die Benutzer oder für die Entwickler relevant sind Quelle: ISO/IEC 25010:2011 Qualitätsattribute können durch Szenarien konkretisiert werden Qualitätsattributszenarien Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 7
Qualitätsattributszenarien Schema Artefakt Stimulus Reaktion Kontext Stimulus Messung (Ursprung) der Reaktion • Stimulus (Ursprung): Ein Akteur (Mensch, System), der einen Stimulus generiert • Stimulus: Eine Bedingung, die eine Reaktion des Systems notwendig macht, wenn diese Eintritt • Kontext: Stimuli treten unter gewissen Kontextbedingungen auf, z.B. kann sich das System im Überlastbetrieb oder im Normalbetrieb befinden. • Artefakt: Das Artefakt, das durch die aufgetretene Bedingung (Stimulus) im gegebenen Kontext stimuliert wird, z.B. ein Verbund von Systemen, ein einzelnen System oder Teile eines Systems • Reaktion: Die Aktivität, die vom betrachteten Artefakt als Reaktion auf das Eintreten des Stimulus im gegebenen Kontext ausgeführt wird. • Messung der Reaktion: Wenn die Reaktion des Artefakts auftritt, sollte diese geeignet gemessen werden, um sicherzustellen, dass die Anforderung auch getested werden kann. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 8
Qualitätsattributszenarien Generische Qualitätsattributszenarien (nicht auf ein konkretes Artefakt bezogen) für „Verfügbarkeit“ Artefakt Stimulus Reaktion Fehler: weglassen, Kontext Verhindern, dass der Abbruch, fehlerhaftes Fehler eine Reaktion Stimulus Zeitverhalten, fehlerhafte Artefakt Fehlerwirkung hat, System, Prozessor, Messung der (Ursprung) Reaktion Identifizieren des Kommunikationskanal, Reaktion Intern/Extern: Fehlers: protokollieren, Datenspeicher, Prozesse Zeit, in der das System Menschen, benachrichtigen Kontext verfügbar sein muss; Hardware, Software, wiederherstellen: z.B. Normalbetrieb, Verfügbarkeitsanteil physikalische deaktivieren / ignorieren Degradierter Modus, (%), Zeitspanne im Infrastruktur, der Fehlerquelle, nicht Überlastbetrieb degradierten Modus, physikalische verfügbar sein, Übergang Reparaturzeit, Anzahl Umgebung in einen degradierten Merke: Generische Qualitätsattributszenarien systemseitiger Modus Fehlerbehandlungen dienen als „Blaupause“ für konkrete Szenarien und unterstützen auch die Vollständigkeit der Analyse relevanter Qualitätsattribute Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 9
Qualitätsattributszenarien Konkretes Qualitätsattributszenario (auf ein konkretes Artefakt bezogen) für „Verfügbarkeit“ Artefakt: Stimulus System Reaktion Ein interner Fehler Kontext: Normalbetrieb Das System ist nach entsteht im System spätestens 30 Sekunden Reaktion Stimulus ohne Datenverlust Messung der (Ursprung) wieder im Normalbetrieb Reaktion Hardware und operiert wie gewünscht Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 10
Qualitätsattributszenarien Konkretes Qualitätsattributszenario für „Performance“ Artefakt: Stimulus System Reaktion Reaktion Initiiert eine Transaktionen wurden Stimulus Kontext: Normalbetrieb Messung der Reaktion Transaktion durchgeführt (Ursprung) Mit einer Durchschnitts- User latenz von 2 Sekunden Konkretes Qualitätsattributszenario für „Verlässlichkeit (bzw. Robustheit)“ Artefakt: Stimulus Prozess Reaktion Unerwartete Informiere den Reaktion Stimulus Kontext: Normalbetrieb Nachricht Operator und Messung der Reaktion (Ursprung) führe Betrieb fort Keine Downtime Systemextern Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 11
Qualitätsattributszenarien Konkretes Qualitätsattributszenario für „Änderbarkeit“ Artefakt: Stimulus Code Reaktion Möchte eine Änderung Modifikation wird ohne Reaktion Stimulus Kontext: Entwurfszeit am User Interface Seiteneffekte Messung der Reaktion (Ursprung) vornehmen durchgeführt In weniger als 3 Stunden Entwickler Beispiele Merke: Priorisierung durch den Kunden in Bezug auf die Kritikalität für den Systemerfolg /-akzeptanz (am Markt bzw. beim individuellen Kunden) und durch den System Architekt hinsichtlich des technischen Risikos, z.B. nach hoch | mittel | gering Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 12
Qualitätsattribute: Utility Tree Priorität Qualitätsattributszenarien Konkretisierung • Technik zur Konkretisierung und Beispiele 3 5 4 Analyse der verschiedenen Qualitätsattribute 2 • Grundlage für die Analyse und Priorisierung von Qualitätsattributen • Systematische Konkretisierung von Qualitätsattributen über eine oder mehrere Konkretisierungsstufen • Blätter des Baumes (Endpunkt der 1 Konkretisierung) stellen Qualitätsattributszenarien dar • Bestimmung der Priorität von Qualitätsattributszenarien bzgl. Systemerfolg und technischem Risiko Schritt [Nummer ] Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 13
Architekturtreiber: Randbedingungen (Wdh.) “A constraint is an organizational or technological requirement which restricts the way the system shall be developed.” Quelle: S. Robertson, J. Robertson: Mastering the Requirements Process. 2nd edition, Addison-Wesley, Amsterdam, 2006. Randbedingungen definieren Vorgaben bzw. Einschränkungen • technischer oder organisatorischer Natur • Ursprung sind Stakeholder (z.B. Kunde, Gesetzgeber, Entwicklungsorganisation) • schränken die Anzahl möglicher (gültiger) Softwarearchitekturen ein Beispiele C-09: The system shall be realized using a multi-tier Service-oriented architecture. technologisch C-16: The effort for system development shall not exceed 480 person months. organisatorisch C-41: The system shall process personal data in compliance with the gesetzlich EU’s Data Protection Directive 95/46/EC. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 14
Architekturtreiber: Typ des Systems • Neuentwicklung („Greenfield system“) in einer Domäne, zu der wenig Erfahrung in der Entwicklungsorganisation existieren bzw. hoher Innovationsgrad • Neuentwicklung („Greenfield system“) in einer Domäne, zu der ausreichend Erfahrung in der Entwicklungsorganisation existieren bzw. geringerer Innovationsgrad • Weiterentwicklung eines bestehenden Systems („Brownfield System“) Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 15
Architekturtreiber: Ziel der Entwurfstätigkeit Frage: Was ist der Grund für die Entwurfstätigkeit? Beeinflusst was der Entwurfsgegenstand ist und wie entworfen wird, z.B.: • Zur Unterstützung einer Angebotsabgabe (Aufwandsabschätzung, Machbarkeitsnachweis) • Für eine individuelle Auftragsentwicklung mit festgelegten Zeitplänen und Kostenbudgets • Für ein neues Release eines sich kontinuierlich entwickelnden Systems Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 16
Architekturtreiber: Verschiedene Belange Belange sind Entwurfsentscheidungen, die getroffen werden sollten, unabhängig davon, ob diese explizit als Teil der Entwurfsziele oder Anforderungen gefordert sind. Typischerweise können Belange individuellen Stakeholdern im Entwicklungsprozess zugeordnet werden. Beispiele • Konstruktion einer übergeordneten logischen und physikalische Struktur • Prüfung der Eingaben • Ausnahmebehandlung und Protokollierung („Logging“) • Kommunikationsbeziehungen • Deployment und Update • Datenmigration und Datensicherung • Organisation der Codebasis Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 17
SEI Attribute Driven Design (ADD) 3.0 | Überblick Primäre funktionale Qualitätsattribut- Entwurfsziele Randbedingungen Belange Anforderungen szenarien Überprüfung der Eingaben 1 Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 8 Verfeinern falls notwendig Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 Eingabe- /Ausgabeartefakt Softwarearchitekturentwurf Prozessschritt Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 18
Attribute Driven Design (ADD) 3.0 | Überblick Vor dem Beginn der eigentlichen Architekturentwurfstätigkeit Entwurfsziele Primäre funktionale Qualitätsattribut- Randbedingungen Belange Anforderungen szenarien sollte Klarheit hinsichtlich des übergeordneten Überprüfung der Eingaben 1 Entwurfsproblems bestehen Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 8 Verfeinern falls notwendig Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 Unter anderem: Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 1. Ist die Systemgrenze (Scope Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 des Systems) abgestimmt? Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 2. Ist die Einbettung des Eingabe- /Ausgabeartefakt Softwarearchitekturentwurf Systems in dessen Kontext Prozessschritt vollständig bekannt? Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 19
Attribute Driven Design (ADD) 3.0 | Überblick Das übergeordnete Entwurfsproblem wird in verschiedene Teilprobleme Primäre funktionale Qualitätsattribut- Entwurfsziele Randbedingungen Belange unterteilt. („Teile und Anforderungen szenarien herrsche“) Überprüfung der Eingaben 1 Eine Iteration startet mit der Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 8 Verfeinern falls notwendig Festlegung welches der Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 Teilprobleme in der Iteration Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 adressiert wird. Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 Beispielsweise: Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 Entwurfsproblem der Iteration Eingabe- /Ausgabeartefakt 1: Funktionale Dekomposition Softwarearchitekturentwurf Prozessschritt des Gesamtsystems in Teilsysteme. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 20
Attribute Driven Design (ADD) 3.0 | Überblick Drei Arten von Entscheidungen, um das Teilproblem zu Primäre funktionale Qualitätsattribut- adressieren: Entwurfsziele Anforderungen szenarien Randbedingungen Belange 1. Selektion von Teilen, die dekomponiert werden Überprüfung der Eingaben 1 müssen. Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 2. Identifikation und Auswahl 8 Verfeinern falls notwendig Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 existierender Lösungen, zur Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 Unterstützung der Dekomposition. Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 3. Konstruktion von Elementen Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 der existierenden Lösung Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 und Festlegung der Eingabe- /Ausgabeartefakt Verantwortlichkeiten und Softwarearchitekturentwurf Prozessschritt Schnittstellen. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 21
Attribute Driven Design (ADD) 3.0 | Überblick Der Architekturentwurf wird verfeinert, i.d.R. gemeinsam mit Entwurfsziele Primäre funktionale Qualitätsattribut- Randbedingungen Belange Anforderungen szenarien den Aktivitäten in Schritt 5. Überprüfung der Eingaben 1 Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 8 Verfeinern falls notwendig Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 Merke: Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 Dies ist keine vollumfängliche Dokumentation der Architektur, Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 sondern lediglich Teilentwürfe Softwarearchitekturentwurf Eingabe- /Ausgabeartefakt Prozessschritt bzw. skizzierte Architekturlösungen. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 22
Attribute Driven Design (ADD) 3.0 | Überblick Entscheidungen bzgl. der Architektur, die bis zu diesem Punkt getroffen wurden, werden hier zusammen mit den Fortschritten im Primäre funktionale Qualitätsattribut- Entwurfsziele Randbedingungen Belange übergeordneten Entwurfsprozess Anforderungen szenarien analysiert und bewertet, um zu Überprüfung der Eingaben 1 entscheiden, ob weitere Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 Iterationsschritte notwendig sind. 8 Verfeinern falls notwendig Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 Merke: Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 Durch die sukzessive Zerlegung von Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 Entwurfsproblemen in Teilprobleme Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 können mehrere zunächst Eingabe- /Ausgabeartefakt unabhängige Entwurfsprozesse Softwarearchitekturentwurf Prozessschritt durchlaufen werden. Die Analyse hier zieht auch den Fortschritt in den anderen Entwurfsprozessen ein. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 23
Attribute Driven Design (ADD) 3.0 | Überblick Primäre funktionale Qualitätsattribut- Entwurfsziele Randbedingungen Belange Anforderungen szenarien Das Ergebnis des Entwurfsprozesses in Form eines Artefakts. Überprüfung der Eingaben 1 Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 8 Verfeinern falls notwendig Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 Merke: Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 Dies ist keine umfassende und Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 vollständige Dokumentation der Eingabe- /Ausgabeartefakt Softwarearchitekturentwurf Softwarearchitektur, sondern ein Prozessschritt partieller Architekturentwurf. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 24
Entwurfsentscheidungen im AAD Entwurfsprozess Explizite Entwurfsentscheidungen: Schritt 3: Selektion von Entwurfsziele Primäre funktionale Anforderungen Qualitätsattribut- szenarien Randbedingungen Belange Architekturelementen zur Dekomposition Überprüfung der Eingaben 1 Schritt 4: Selektion von einem oder Definition der Iterationsziele und Selektion der Eingaben, die in der Iteration berücksichtigt werden 2 mehreren Entwurfskonzepten, die die Eingaben in der jeweiligen Iteration erfüllen 8 Verfeinern falls notwendig Selektieren eines oder mehrere Systemelemente zur Dekomposition 3 Selektieren eines oder mehrere Entwurfskonzepte, die die Eingaben der Iteration erfüllen 4 Schritt 5: Instanziierung von Instanziiere Architekturelemente, weise Verantwortlichkeiten zu und definiere die Schnittstellen 5 Architekturelementen, Zuordnung von Skizzieren der relevanten Views und festhalten von Entwurfsentscheidungen 6 Verantwortlichkeiten und Definition der Durchführen von Analysen des Architekturentwurfs und Review der Iterations- und Entwurfsziele 7 Schnittstellen Eingabe- /Ausgabeartefakt Softwarearchitekturentwurf Prozessschritt Merke: Erfahrungsgemäß ist die Wahl adäquater Entwurfskonzepte in Schritt 4 nicht trivial. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 25
Entwurfskonzepte Erfahrungsgemäß kann ein Großteil der Teilprobleme, die in Iterationen des Entwurfsprozesses betrachtet werden, durch existierende Entwurfskonzepte adäquat gelöst werden: • Wiederverwendung von erprobten Entwurfskonzepten hat Vorzug! • Verhindert, dass das „Rad neu erfunden wird“ • Kreative Leistung bezieht sich auf die Adaption und Kombination existierender Entwurfskonzepte Kategorien von Entwurfskonzepten (mehr oder weniger abstrakt): • Referenzarchitekturen • Verteilungsmuster (Deployment Pattern) • Architekturstile/-muster • Entwurfsmuster • Taktiken • Markverfügbare Standardkomponenten und Frameworks („off-the-shelf“) Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 26
Selektionsleitplan Beispiel: Neuentwicklung („Greenfield“) in wohlbekannter Anwendungsdomäne Iterationsziel Entwurfskonzept Referenzarchitektur Entwurfskonzept Strukturierung des Systems Verteilungsmuster Standardkomponenten (Tiers) Entwurfskonzept (optional) Berücksichtigung der Architekturmuster primären Funktionalen (Service-orientierte Architektur) Anforderungen Standardkomponenten (Standard-Services) Architekturtaktiken Architekturmuster Berücksichtigung von Qualitätsattributszenarien und zusätzlichen Belangen Verteilungsmuster Standardkomponenten Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 27
Referenzarchitekturen • Entwurfsproblem: Strukturierung des Softwaresystems und Bezug zur Infrastruktur • Begriff: Erprobte, mehr oder weniger abstrakte Architektur für eine bestimmte Klasse von Softwaresystem • Beispiele: • Mobile Applikationen • Rich-Client Applikationen • Rich-Internet Applikationen • Service Applikationen • Web Applikationen Quelle: Zen and the Art of Programming Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 28
Verteilungsmuster („Deployment Pattern“) • Entwurfsproblem: Verteilung der Software auf Hardwareressourcen • Begriff: Erprobtes Entwurfswissen, wie das Softwaresystem auf Hardwareressourcen verteilt (deployed) wird, um eine gewisses Qualitätsattribut zu erfüllen. • Beispiele: • Failover cluster (Qualität: Verfügbarkeit) Failover Cluster | Quelle: Microsoft • Load balanced cluster • 2,3,4 und n-tier Verteilung • Private / public cloud Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 29
Standardkomponenten und /-frameworks Ein Framework ist ein wiederverwendbares Softwareelement, das generische Funktionalität bereitstellt und eine Lösungen für wiederkehrende Entwurfs- und Implementierungsprobleme bietet • z.B. Middleware, Frameworks Beispiele aus dem Java-Ökosystem Belange Framework Verwendung Lokale Benutzungsschnittstelle Swing Vererbung Web User Interface Java Server Faces (JSF) XML, Annotationen Komponentenverbindung Spring XML, Annotationen Security (Authentifizierung, …) Spring-Security XML, Annotationen O-R-Mapping Hibernate XML, Annotationen Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 30
Architekturtaktiken • Taktiken sind eine Sammlung von Entwurfsprimitiven, die verwendet werden können, um sicherzustellen, dass ein Artefakt (z.B. ein System) angemessen, zur Erreichung eines individuellen Qualitätsattributes, reagiert. • Solche Entwurfsprimitive werden als „Tactics“ (dt. Taktiken | Architekturtaktiken) bezeichnet. • Kategorien von Taktiken, z.B.: • Verfügbarkeit • Interoperabilität • Performance • Security • Testbarkeit • Benutzbarkeit • … Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 31
Architekturtaktiken Weshalb sind Architekturtaktiken wichtig? 1. Architekturmuster und Entwurfsmuster können oft nicht 1-zu-1 eingesetzt werden, sondern müssen angepasst werden. Taktiken helfen zu verstehen, welche Anpassungsoptionen bestehen, um ein individuelles Qualitätsattribut zu erfüllen. 2. Falls keine Muster zur Realisierung der Entwurfsziele existieren, können zumindest Entwurfsfragmente mittels Taktiken auf Basis erprobter Prinzipien konstruiert werden. 3. Es können mehrere Taktiken geeignet sein, um ein Qualitätsattribut eines Systems zu erfüllen bzw. zu verbessern. Die Wahl einer konkreten Taktik hängt dann von verschiedenen Faktoren ab, wie z.B. Abhängigkeiten zwischen Qualitätsattributen oder dem Implementierungsaufwand. 4. Dies führt zu verfeinertem bzw. höher differenziertem wiederverwendbaren Entwurfswissen. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 32
Architekturtaktiken am Beispiel „Verfügbarkeit“ Übergeordnetes Ziel der Verfügbarkeitstaktiken Taktiken zur Kontrolle der Fehler („Fault“) Verfügbarkeit Fehlerwirkung vermieden oder Fehler beseitig Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 33
Architekturtaktiken am Beispiel „Verfügbarkeit“ Fehler („Fault“) Fehler maskiert oder Fehler beseitig Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 34
Architekturtaktiken am Beispiel „Performance“ Übergeordnetes Ziel der Performance Taktiken zur Kontrolle der Ereignis Performance Reaktion innerhalb der zeitlichen Randbedingungen Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 35
Architekturtaktiken am Beispiel „Performance“ Ereignis Reaktion innerhalb der zeitlichen Randbedingungen Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 36
Architekturtaktiken am Beispiel „Security“ Übergeordnetes Ziel der Security Taktiken zur Kontrolle der Angriff Security System detektiert, widersteht Angriff oder wiederhergestellt nach Angriff Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 37
Architekturtaktiken am Beispiel „Security“ Intrusion Angriff System detektiert Angriff, System widersteht Angriff oder wiederhergestellt nach Angriff Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 38
Überblick: Exploration des Entwurfsraums (Design Space Exploration) Allen Lösungen gemein: Einfacher Ansatz Architekturlösung 1 Abdeckung der 1) primären QA 1 Entwurfskonzepte: EK1, EK7, …, EK42 funktionalen Anforderungen (Kosten: 47 | Technisches Risiko: 7) und QA 8 QA 2 2) Rahmenbedingungen; Architekturlösung 2 Identische 3) Entwurfskonzepte: EK2, EK7, .., EK39 Entwurfsziel und 4) Belange (Kosten: 43 | Technisches Risiko: 8) QA 7 QA 3 Architekturlösung 3 Entwurfskonzepte: EK3, EK8, …, EK41 Merke: Ergebnisse der (Kosten: 52 | Technisches Risiko: 3) Design Space Exploration QA 6 QA 4 Architekturlösung 4 können auch Grundlage für Entwurfskonzepte: EK3, EK9, …, EK41 Korrelationsanalyse zwischen QA 5 (Kosten: 50 | Technisches Risiko: 4) Entwurfskonzepten und Qualitätsattributen sein. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 39
Überblick: Quality Functional Deployment |Quantifizierte Entwurfsraumexploration Stakeholder n n Stakeholder 1 Stakeholder 2 […] H n+1 In Anlehnung an: Haig F. Krikorian, SEI-CMU Concepts Priority Functional Dimension #1 (HW-SW-People) Functional Dimension # (n) Stakeholder 1 Realization Realization Realization Realization Realization Realization 1 Alt #1 Alt # (:) Alt #(n) Alt #1 Alt # (:) Alt #(n) Quelle: Haig F. Krikorian, SEI-CMU Customer Import Arch Style Arch Style Req. #1 10 1 9 2 Requirements ance Variant (1) Variant (n) : : : : Req. #(n) 3 3 1 4 Total Weight 19 93 20 32 Req #1 10 90 20 Implementation Difficulty (not 10 2 Req. #(:) : : : considered in calc) Req #(n) 9 3 12 Req A 5 H (6) (30) M (4) (20) Realization Design - 1 - Decision Req B 6 L (3) (18) H (6) (36) : Konsolidierung der verschiedenen „House of Quality“ Objective Target Values QFD Yoki Akao: QFD-Quality Function Deployment. Absolute Technical Importance 48 56 Verlag Moderne Industrie, Landsberg/Lech 1992. Relative Technical Importance 2 1 QFD in der Entwurfsraumexploration Mary Shaw, David QFD House of Quality Analyse für individuelle Stakeholder Garlan: Software Architecture: Perspectives on an Schritt [Nummer ] Emerging Discipline; Prentice Hall, 1996 Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 40
Zusammenfassung • Architekturentwurf ist ein systematischer Prozess, in dessen Verlauf vielerlei Entwurfsentscheidungen zu treffen sind, die die Architekturtreiber adäquat berücksichtigt. • Architekturtreiber sind gewisse Funktionale Anforderungen sowie Qualitätsattributanforderungen, Randbedingungen, Typ des Systems, die Entwurfsziele und Belange verschiedener Stakeholder. • Qualitätsattribute sind ein wesentlicher Architekturtreiber. Zur Konkretisierung und Objektivierung von Qualitätsattributanforderungen können Qualitätsattributszenarien eingesetzt werden. • „Attribute Driven Design“ (ADD) ist eine Methode zur systematischen Entwicklung einer adäquaten Softwarearchitektur auf Basis der Architekturtreiber des betrachteten Systems. • Idealerweise versucht der Software Architekt existierende Entwurfskonzepte wiederzuverwenden, wie z.B. Referenzarchitekturen, Verteilungsmuster, Architekturmuster, „Off-the-shelf“-Lösungen. • Architekturtaktiken sind Entwurfsprimitiven, die individuell für spezifische Qualitätsattribute erprobtes Wissen vorhalten, wie die zugehörige Qualität im System etabliert bzw. kontrolliert werden kann. • Kann ein Software Architekt für ein spezifische Entwurfsproblem nicht auf existierende Entwurfskonzepte zurückgreifen, helfen Taktiken bei der Konstruktion neuer Lösungen, die auf bewährten Prinzipien beruhen. Vorlesung: Softwarearchitektur | WS 2019/20 Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer 41
Sie können auch lesen