Kapitel 9: Entwurf von Softwarearchitekturen III - Vorlesung Softwarearchitektur| Wintersemester 2019/20 - Thorsten Weyer

Die Seite wird erstellt Hertha Menzel
 
WEITER LESEN
Kapitel 9: Entwurf von Softwarearchitekturen III - Vorlesung Softwarearchitektur| Wintersemester 2019/20 - Thorsten Weyer
Vorlesung Softwarearchitektur| Wintersemester 2019/20
Kapitel 9: Entwurf von Softwarearchitekturen III
AAD | Entwurfskonzepte | Architekturtaktiken | Design Space Exploration

Thorsten Weyer
Kapitel 9: Entwurf von Softwarearchitekturen III - Vorlesung Softwarearchitektur| Wintersemester 2019/20 - 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