Kapitel 10: Entwurf von Softwarearchitekturen IV - Vorlesung Softwarearchitektur| Wintersemester 2019/20 - Thorsten Weyer

Die Seite wird erstellt Santiago Jacobs
 
WEITER LESEN
Kapitel 10: Entwurf von Softwarearchitekturen IV - Vorlesung Softwarearchitektur| Wintersemester 2019/20 - Thorsten Weyer
Vorlesung Softwarearchitektur| Wintersemester 2019/20
   Kapitel 10: Entwurf von Softwarearchitekturen IV
   Software-Produktlinienentwicklung | Variabilitätsmanagement

    Thorsten Weyer

* die Folien dieser Vorlesungseinheit basieren auf der Vorlesung „Software-Produktlinien“ von Prof. Dr. Klaus Pohl an der Universität Duisburg-Essen
Lernziele
Die Studierenden
      • können die Idee und die Vorteile der Software-Produktlinienentwicklung erläutern
      • kennen die grundlegenden Begriffe in der Software-Produktlinienentwicklung (SPLE)
      • können das SPLE-Rahmenwerk erläutern
      • können die Prozesse der Domänen- und Applikationsentwicklung im SPLE erläutern
      • können die Aspekte der Definition und Bindung von Variabilität im SPLE erläutern
      • können Variabilität unter Verwendung des Orthogonalen Variabilitätsmodells modellieren

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   2
Gliederung

 Idee und Vorteile der Software-Produktlinienentwicklung (SPLE)
 Grundlegende Begriff und Überblick über das SPLE Framework
 Domänen- und Applikationsentwicklung
 Modellierung von Variabilität und das Orthogonale Variabilitätsmodell

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   3
Software-Produktlinienentwicklung | Motivation
Zwei Arten der Individualisierung von Produkten:
      (1) Individuelle software-intensive Systems
             • Angepasst auf Basis individueller Kundenwünsche, z.B.
               • Medizinische Informationssysteme
               • Fahrzeuge
               • CRM Systeme
               • Buchhaltungssysteme
      (2) Software-intensive Systeme für einen Massenmarkt
             • Produktmanagement definiert Produktvarianten, z.B.
               • Mobiltelefone
               • Integrierte Entwicklungsumgebungen in verschiedenen Editionen
                  (Student, Standard, Professional)
                   Nicht auf individuelle Kundenwünsche angepasst!

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   4
Software-Produktlinienentwicklung | Vorteile

    •    Kostenreduktion                          •     Verkürzte Markeintrittszeit                          •        Verbesserte Qualität
         bis zu 60%                                     bis zu 98% geringer                                           bis zu 10-fach

    •    Verbesserte Produktivität                •     Fähigkeit in neue
         bis zu 10-fach                                 Märkte vorzudringen
                                                        Monate, nicht Jahre
    •    Geringerer
         Personalaufwand
         bis zu 87% verringert

                             Product Line Hall of Fame: http://splc.net/fame.html
                > 20 Erfolgsgeschichten, u.a. Boeing, Bosch, HP, Nokia, Philips, Siemens, Toshiba

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                          5
Software-Produktlinien (SPL) und
Software-Produktlinienentwicklung (SPLE)

       „A software product line is a set of software-intensive systems sharing a common,
       managed set of features that specify the specific needs of a particular market segment or
       mission and that are developed from a common set of core assets in a prescribed way.“

       „Software product line engineering has proven to be the methodology for developing a
       diversity of software products and software-intensive systems at lower costs, in shorter
       time, and with higher quality.“
                                                                             Quelle: Paul Clements; Linda Northrop: Software Product
                                                                             Lines – Practices and Patterns. Addison-Wesley, 2002.

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                    6
SPLE | Zwei Entwicklungsprozesse (1)
                                                                                                                         Domain
            Domain Engineering                                                                                         Engineering
            Der Prozess in der Software-Produktlinienentwicklung, in dem
            Gemeinsamkeiten (commonalities) und Varianzen (variability)                                               Domain Artifacts
            der Produktlinie definiert und realisiert werden.

1. Definiere Gemeinsamkeiten und Varianzen
   • Welche Aspekte haben alle Applikationen der Produktlinie gemein?  Gemeinsamkeiten
   • Wie können sich die Applikationen der Produktlinie unterscheiden  Varianzen
   • Gemeinsamkeiten und Varianzen definieren den Scope der Produktlinie
2.    Entwicklung wiederverwendbarer Domänenartefakte, die Variabilität inkludieren
      - Definition der Produktlinien-Plattform

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                      7
SPLE | Zwei Entwicklungsprozesse (2)

           Application Engineering
           Der Prozess in der Software-Produktlinienentwicklung, in dem die
           Applikationen der Produktlinie durch die Wiederverwendung von
           Domänenartefakten und Bindung der Variabilität konstruiert werden.

1. Definiere die Bindung der Variabilität
   für individuelle Applikationen
2. Ableitung von Applikationen der Produktlinie
   durch Wiederverwendung von Domänenartefakten
   • d.h., binden der Variabilität in den Domänenartefakten
       durch kontrollierte Erweiterung, Veränderung, Konfiguration der
       Domänenartefakte

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   8
Wirtschaftlicher Hintergrund | Grenznutzen

                                              Break Even Point (BEP)
             Akkumulierte
               Kosten
                                                                                               Einzelsystementwicklung

                                                                                                          Software-Produktlinienentwicklung

                                                                           Geringere Kosten
 Vorabinvestitionen                                                          pro System

                                          Anzahl unterschiedlicher Systeme

             Beachte: zeigt erwarteten Vorteil (basiert nicht auf empirischen Daten)
             Abgesicherte empirische Erkenntnisse: Break-Even bei 3-4 Applikationen
Vorlesung: Softwarearchitektur | WS 2019/20     Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                     9
Wirtschaftlicher Hintergrund | Markteintrittszeit
Idealisiert
                                                                                                   Einzelsystementwicklung
                 Time to                                                                           SPLE (Inkrementelle Einführung)
                 Market                                                                            SPLE („Big Bang“)

                                                     durch Wiederverwendung verkürzte Entwicklungszyklen
Zeit zur Konstruktion
wiederverwendbarer
      Artefakte
                                                                Anzahl unterschiedlicher Systeme

                    Abbildung zeigt den erwarteten Einfluss (basiert nicht auf empirischen Daten)
                    Tatsächliche Einfluss basiert auf der Einführungsstrategie!

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                  10
Wirtschaftlicher Hintergrund | Produktqualität

• Entwicklungsartefakte werden mehrfach in verschiedenen Applikation
  wiederverwendet.
• Konsequenz:
      • Höhere Wahrscheinlichkeit Fehler aufzudecken
      • Rechtfertigt einen höheren Qualitätssicherung- bzw. Testaufwand
      • Jede PL-Applikation partizipiert an identifizierten und korrigierten Fehler

  Das heißt, jede Produktlinien-Applikation …
                … trägt zur übergeordneten Qualität der Produktlinie bei
                … partizipiert an der verbesserten Qualität der Produktlinie

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   11
Gemeinsamkeiten (Commonalities)
 „ […] Menge von Annahmen, die für alle Applikationen der Produktlinie gültig sind“
 Synonym: Invariante
                            Navigation System Professional                 Navigation System Professional + Apps

                                                                                                                         © BMW
                          • 8,8“ Display                                      • Integration of Apple iPhone
                          • 20 GB Storage (Music)                               Applications
                          • No iPhone Integration                                  • Facebook, Twitter …

                                              Commonality: Screen and Navigation System

Vorlesung: Softwarearchitektur | WS 2019/20      Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer           12
Software-Produktlinienentwicklung | Begriffe:
Variationspunkt, Varianten, …
                                               Modellierung der Software-Produktlinienvariabilität

                                                                     OVM                                            VP

                                                                                                                Routen-
                                                                                                                führung

                                                                                                                             [1..2]
                                              Beziehung                                 VP
                                                                                                    V                    V
                                                                                                                                                  VP
                                                                                                          Sprache        Bildschirm
                                              zu Artefakten                       Bluetooth
                                                                                                                                               Bildschirm-
                                                                                                                                               auflösung
                                                                                                                                                             [1..1]
                                                                                                 [1..1]
                                                                                                                             V             V                  V
                                                                      V                      V
                                                                                                                                 320x240       640x480            800x600
                                                                          Version 1.1        Version 2.0

Domänenartefakte                                          Was variiert? Variabilitätssubjekt  Variationspunkt
Anforderungsspezifikationen,                              Wie variiert es? Variabilitätsobjekt  Varianten
Architekturspezifikation, Testfälle,
Produktstrategie,                                         Wie ist die Varibilität eingeschänkt?  Variabilitätsabhängigkeiten
Unternehmensleitbild, …                                   Warum variiert es?  Nachvollziehbarkeitsbeziehungen

Vorlesung: Softwarearchitektur | WS 2019/20       Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                                                     13
Software-Produktlinienentwicklung |
SPLE Framework (Überblick)

                          Engineering
                           Domain
                          Engineering
                          Application

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   14
Software-Produktlinienentwicklung |
Wiederverwendung von Entwurfswissen
                                                          Wiederverwendung von
 Entwurfskonzepte,                                           Entwurfswissen
 z.B. Architekturtaktiken

                               Engineering
 (Plattform)

                                Domain
                                                                                                                       Domäenarchitektur
                                                                                                                       (Plattformarchitektur)
  Domänenanforderungen
  - Funktionalität
  - Qualität
  - Randbedingungen
                                 Engineering
                                 Application

Entwurfskonzepte,
z.B. Architekturtaktiken
                                                                                                                        Applikationsarchitektur
(Applikation)

 Applikationsanforderungen:
 - Funktionalität
 - Qualität
 - Randbedingungen
Vorlesung: Softwarearchitektur | WS 2019/20    Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                  15
Domain Engineering | Aktivitäten
Domain Design
       Entwicklung der Produktlinienarchitektur (auf Basis von Entwurfskonzepten
        verschiedener Granularitätsstufen, z.B. Architekturstile -/muster, Referenzarchitekturen,
        Architekturtaktiken)
       Zuordnung der Variabilität in den Anforderungen zur Architektur (z.B. zu
        Architekturelementen)
       Definition der zusätzlich notwendigen Variabilität (meist technische Variabilität)
       Integration von Mechanismen zur Bindung der Variabilität

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   16
Abbildung der Variabilität (1)
                    Variabilität in den Anforderungen

                             enter PIN                           swipe magnetic
                                                                      card

                                      touch fingerprint
                                                                                 door lock                             Ist typischerweise eine
                                          scanner
                                                                            authentication                                  m:n-Beziehung

                    Variabilität in der Architektur
                                              «component»                 «component»
                         «component»
                                                Fingerprint             Magnetic Card
                             Keypad
                                                  Scanner                 Reader

Vorlesung: Softwarearchitektur | WS 2019/20    Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                       17
Abbildung der Variabilität (2)
Variabilität in der Architektur

                                  «component»                  «component»
   «component»
                                   Fingerprint                Magnetic Card
       Keypad
                                     Scanner                    Reader

                                                                                                                         Ist typischerweise eine
                                                                                                                              m:n-Beziehung
Variabilität in der Realisierung (Code)
class Keypad {                      class Magnetic                       class Fingerprint
  /* … */                            CardReader {                          Scanner {
}                                    /* … */                               /* … */
                                    }                                    }

Vorlesung: Softwarearchitektur | WS 2019/20      Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                      18
Application Engineering | Zwei zentrale Schritte
    1. Definieren der Bindung
    • Spezifikation, in welcher Weise die Variabilität in der Produktlinie gebunden
      wird, d.h. welche Varianten werden gewählt.
    2. Durchführen der Bindung
    • Erweiterung / Modifikation / Konfiguration der Domänenartefakte anhand der
      definierten Bindungen
    • Als Ergebnis ist die Variabilität der Produktlinie in den abgeleiteten Artefakten
      des Application Engineering und im resultierenden Softwaresystem nicht mehr
      vorhanden.

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   19
Definition und Durchführung der Bindung
 Definition der Bindung                                                Durchführung der Bindung
 Die Definition der Bindung kann in jeder                              Die Durchführung der Bindung der
 „Phase“ des Application Engineering                                   Variabilität kann zu verschiedenen
 Prozesses stattfinden:                                                Zeitpunkten geschehen:
     • Requirements Engineering                                             • Im Vorfeld der Kompilierung
     • Entwurf                                                              • Zur Kompilierungszeit
     • Realisierung                                                         • Zur Verlinkungszeit
     • Test                                                                 • Zur Ladezeit
     • Laufzeit / Betrieb                                                   • Zum Start der Applikation
                                                                            • Im Betrieb

        Merke: Definition und Durchführung von Bindungen zur Laufzeit führt zum Konzept
        der Dynamischen Produktlinien! Oft eingesetzt zur Realisierung Adaptiver Systeme!

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   20
Bindung der Variabilität einer Produktlinie |
 Unabhängigkeit von Definition und Durchführung
                                                                                                 ISDN c.c. Autorisierung wurde in der Realisierung
 Durchführen der Bindung                                                                         definiert + realisiert durch das Laden spezifischen
                                                                                                 Codes währen des Starts
                                          „Enterprise Edition“ wurde im RE festgelegt
                                          + realisiert während der Laufzeit durch
             Laufzeit                     Eingabe eines Aktivierungs-Codes                                    X
                                   X

            Startzeit           Authentifikation via Fingerabdruck
                                wurde während des RE festgelegt                     X
                                + realisiert durch
            Ladezeit            Transformation von UML Modellen                         Alternative Systemfunktionen werden aufgrund
                                                                                        einer Kontextveränderung aktiviert
                                                                                        (Adaptives System – Dynamische SPL)
            Link-Zeit                                      X
                                                                     LAN wurde für das Home Automation System zur
Kompilierungszeit                                                    Entwurfszeit ausgewählt + realisiert durch die Verlinkung spezifischer
                                                                     Bibliotheken
                                    X
vor Kompilierung
                               Requirements Design Realisierung                           Test         Betrieb …          Definition der Bindung

 Vorlesung: Softwarearchitektur | WS 2019/20      Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                                21
Modellierung der Variabilität von Produktlinien |
Integrierte Modellierung
 Architekturentwurf: Definition von Varianten und Variationspunkten mit Hilfe von Stereotypen

        Gemeinsamkeiten                                                                               Variabilität

                                          *            1                «VariationPoint»
                           File
                                                                           File Type

              Binary              ASCII              «Variant»                «Variant»                 «Variant»
                File               File                MP3                      WMF                       PDF

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   22
Modellierung der Variabilität von Produktlinien |
Herausforderungen
                                                    Class Diagram
                                                *                  1                        «VariationPoint»
                                 File
                                                                                                File Type

 Which “variants”
 Welche«variants»
        Variantenare
                  are
                  sindrelated?
                       related?
                        relationiert?
                    Binary              ASCII                     «Variant»               «Variant»                 «Variant»
                      File               File                       MP3                     WMF                       PDF

                               Use Cases                                                    Test Case Scenarios

                                        «Variant»                                                                :Media Player
                                                                             : User
                                        display PDF
                                        document                                   «Variant» open document
               «Variant»
                                                                                   «Variant» play MP3
            play MP3 audio
                                                                                           provide media

Vorlesung: Softwarearchitektur | WS 2019/20         Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer        23
Modellierung der Variabilität von Produktlinien |
Dediziertes Modell
 1. Trennung der Variabilitätsinformationen der
     PL von den Entwicklungsmodellen
      • Variabilitätsmodelle umfassen:
          • Variationspunkte                                                                                   Variabilitätsmodell
          • Varianten                                                                              Variabilität der Produktlinie ist im
          • Constraints                                                                            Variabilitätsmodell dokumentiert
          • Begründungen
      • Basismodelle: Konventionelle Entwicklungsmodelle
        werden als Basismodelle bezeichnet:
          • Kontextmodelle
          • Use-Case-Modell
                                                                                                                      Basismodelle
          • Architekturmodelle
                                                                                                      Basismodelle beinhalten
          • Implementierung
                                                                                                  gemeinsame und variable Aspekte
   Orthogonal Variability Modelling (OVM)                                                               („150% Modelle“)

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                       24
Orthogonale Variabilitätsmodellierung (OVM)
  Beispiel                                                                                                               Variationspunkt
                                                Variabilitätsmodell
                                                                                                VP
                            Constraint
                                                                                                File
                                                                                               Type
                                                                              2..3
                                                                      V                    V                  V
                                                                                                                         Variante
                                                                          PDF                  WMF                MP3

Komplexität der Modell wird reduziert                                         Definition von Variabilitäts-Constraints
          Variabilitätsmodelle bilden lediglich die                             Variabilitäts-Constraints werden an einer Stelle
           Variabilitätsinformationen der PL ab                                modelliert und sind nicht über Basismodelle hinweg
                 (“Trennung der Belange”)                                                            verteilt

  Vorlesung: Softwarearchitektur | WS 2019/20    Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer               25
Modellierung der Variabilität von Produktlinien |
Beziehungen der Variabilität zu Basismodellen
2. Variabilitätsinformationen, die in den Variabilitätsmodellen
   dokumentiert sind, werden mit solchen Basismodellen (bzw.
   Teilmodellen, einzelnen Elementen) in Beziehung gesetzt, die von der
   Variabilität betroffen sind                                                                                        Variabilitätsmodell
      Voraussetzung: Definition von Typen von Trace-Beziehungen und
      Dokumentation von Trace-Beziehungen

             Von:          Variationspunkten und Varianten

             Zu:           zugehörigen Artefakten der Basismodellen                                                     Basismodelle
     Merke: Trace-Beziehungen (d.h. inhaltliche Beziehungen zwischen Variabilitätsmodellen und Basismodellen)
       können mit Hilfe von Werkzeugen erstellt und verwaltet werden (auch: Automatisierte Trace-Analyse)

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                         26
Orthogonale Variabilitätsmodellierung (OVM)
| Vorteil ein „Zentrales Modell“
                                              Modell der                                                                      Architekturentwurf
                                                                       VP
                                              PL Variabilität
                                                                       File                                                           AVI
       Variabilitäts-                                                 Type
    informationen sind
         nicht über                              V                V
                                                                                                                                              MP3
  verschiedene Artefakte                             MP3               PDF                                                    PDF
          verteilt

     die Variabilität der                                                                                               Test Case Szenarien
    Produktlinie ist nicht
                                                               Use Cases
   über die verschiedenen                                                                                      : User
                                                                                                                                      :Media Player
    Basismodelle hinweg                                                display PDF
                                                                                                                        open document
    definiert, sondern in                                              document
     einem kohärenten                                                                                                      play MP3
           Modell                                        play MP3 audio
                                                                                                                        provide media

Vorlesung: Softwarearchitektur | WS 2019/20     Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                          27
Orthogonale Variabilitätsmodellierung|
Fortgeschrittene Modellierungskonstrukte (Bsp.)
• Variabilitätsabhängigkeit “Optional”
      • Diese Varianten können, müssen aber nicht                                              Variation Point                                          Variant
        notwendigerweise, zu dem Variationspunkt
        gebunden werden                                                                                                       Variability
                                                                                                                             Dependency
• Variabilitätsabhängigkeit “Mandatory”
                                                                                                                                     {complete, disjoint}
      • Diese Varianten muss zu einem Variationspunkt
        gebunden werden, wenn der Variationspunkt                                                                       Optional    Mandatory
        berücksichtigt wird.
 Beispiel                         VP
                                                                                                                            OVM Meta-Model
                               User
                             Interface                                                                                        Notation

            V               V                 V
                                                Web
           Wall Panel           App
                                              Interface
Vorlesung: Softwarearchitektur | WS 2019/20         Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                                   28
Orthogonale Variabilitätsmodellierung|
Fortgeschrittene Modellierungskonstrukte (Bsp.)
• Auswahl von Alternativen
      Gruppiert eine Menge optionale Variabilitätsabhängigkeiten
      min..max definiert die erlaubte Anzahl von Varianten, die                                                                          Variability
      gebunden werden können                                                                                                            Dependency
          Default ist 1..1; unbound max = *                                                                                                       {complete, disjoint}
                                                                                   Alternative
                                                                                     Choice    0..1            part of       2..*
                                   VP                                              min
                                                                                                                                    Optional     Mandatory
  Beispiel
                                                                                   max
                                 Tuner

                                              1..3                                                                                        Notation

          V                  V                V
                                                                                                                                               min..max

              Satellite     Terrestrial           Cable

Vorlesung: Softwarearchitektur | WS 2019/20          Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                                  29
Orthogonale Variabilitätsmodellierung|
Fortgeschrittene Modellierungskonstrukte (Bsp.)
• Die Selektion einer Variante macht die Selektion einer anderen Varianten notwendig
  (requires)  unidirektionale Abhängigkeit (hier: Implikation)
• Beispiel: Die Aufnahmefunktion für TV-Sendungen setzt eine interne Festplatte voraus

                                              VP                                                                 VP

                                       Premium                                                                Storage
                                       functions

                                                                                         V                V                V
                     V                               V
                                                                                          Internal         External        Network
                         Front                        TV Show
                                                                                         Hard Disk         Hard Disk       Storage
                         Display                      Recording

                                                                         requires

Vorlesung: Softwarearchitektur | WS 2019/20        Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer             30
Orthogonale Variabilitätsmodellierung|
Fortgeschrittene Modellierungskonstrukte (Bsp.)
    Typen von “Requires”-Beziehungen                                                                                                     requires

                    VP                                                             VP
                                                                                                                                    auch: vp verlangt vp
                VP1                                                                VP2                         VP                                                    VP

                                                                                                            VP1                                                      VP2

    V                    V                                         V                     V                                   1..2
                                            requires                                                V               V                                     V                V
        V1.1                 V1.2                                      V2.1                  V2.2
                                       auch: v verlangt v                                           V1.1             V1.2                                 V2.1             V2.2

               VP                                                        VP

               VP1                                                       VP2                                        VP                                                VP
                                                                                                                VP1                                                  VP2

V                    V                                        V                V
                                                                                                        V                V                                    V            V
V1.1                 V1.2                                      V2.1            V2.2                     V1.1                                                  V2.1             V2.2
                                                                                                                         V1.2
                                    auch: v verlangt vp
                                                                                                                                    auch: vp verlangt v
Vorlesung: Softwarearchitektur | WS 2019/20               Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                                                31
Orthogonale Variabilitätsmodellierung|
Fortgeschrittene Modellierungskonstrukte (Bsp.)
 • Die Selektion einer Variation führt zum Ausschluss einer anderen
   Variante excludes (mutex)  bidirektionale Abhängigkeit
 • Beispiel:
                                                                                                                    Merke: Abhängigkeiten vom
     • Selektion von “convertible” als Fahrzeugtyp führt zu einem                                                      Typ „exclude“ können
       Ausschluss der Variante “sunroof” und umgekehrt!                                                             definiert werden zwischen:
                                                                                             VP                      1) Varianten; 2) Varianten
                                      VP                                                                             und Variationspunkten; 3)
                                                                                           Extras
                                                                                                                         Variationspunkten
                                   Chassis
                                                                                                                     (siehe OVM Meta model)
                                              1..1
                                                                                                  …
                                                                                      V                              auch: v schließt aus vp
        V                        V                                                        Sunroof                           v schließt aus v
                                                V
                                                                                                                         vp schließt aus vp
         StationWagon                Sedan       Convertible

Vorlesung: Softwarearchitektur | WS 2019/20      Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                         32
Orthogonale Variabilitätsmodellierung|
Beziehungen zu Basismodellen
 Erweiterung des OVM Meta model: Artefaktabhängigkeit (Artifact dependency)
    • Trace-Beziehungen setzen Varianten mit Basismodell-Artefakten in Beziehung

                                 1..1
        Variation Point                          Variant
                                        1..*
                                                                                                              “Notation”
                                                0..*

                                                        realized by
                     Artifact
                   Dependency
                                                1..*
                                               Development
                                                 Artifact

Vorlesung: Softwarearchitektur | WS 2019/20     Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer      33
Orthogonale Variabilitätsmodellierung|
Beziehungen zu Basismodellen (Beispiel)
                           Variability Model
                                                                                        VP
                                                                                      Comfort
                                                                                      variants

                                                                      V Anti-theft           V
                                                                                                 Heat shield
                                                                         protection

                           Component Control
                                                                                                          Activate heat shield!

                                                                                 Activate anti-theft protection!

                                                  Activate tinting!
                                                                                                                                  Heat
                                   Tinting                                  Tinting                    Anti-theft
                                                                                                                                  shield
                                     off                                      on                        mode
                                                 Deactivate tinting!                                                              mode

                                             Deactivate anti-theft protection!

                                      Deactivate heat shield!

Vorlesung: Softwarearchitektur | WS 2019/20            Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer               34
Orthogonale Variabilitätsmodellierung|
Beziehungen zu Basismodellen (Beispiel)
                       Variability Model
                                                                                     VP
                                                                                   Comfort
                                                                                   variants

                                                                   V Anti-theft           V
                                                                                              Heat shield
                                                                      protection

                       Component Control
                                                                                                       Activate heat shield!

                                                                              Activate anti-theft protection!

                                               Activate tinting!
                                                                                                                               Heat
                                Tinting                                  Tinting                    Anti-theft
                                                                                                                               shield
                                  off                                      on                        mode
                                              Deactivate tinting!                                                              mode

                                          Deactivate anti-theft protection!

                                   Deactivate heat shield!

Vorlesung: Softwarearchitektur | WS 2019/20             Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer           35
Orthogonale Variabilitätsmodellierung|
Beziehungen zu Basismodellen (Beispiel)
                       Variability Model
                                                                                     VP
                                                                                   Comfort
                                                                                   variants

                                                                   V Anti-theft           V
                                                                                              Heat shield
                                                                      protection

                       Component Control
                                                                                                       Activate heat shield!

                                                                              Activate anti-theft protection!

                                               Activate tinting!
                                                                                                                               Heat
                                Tinting                                  Tinting                    Anti-theft
                                                                                                                               shield
                                  off                                      on                        mode
                                              Deactivate tinting!                                                              mode

                                          Deactivate anti-theft protection!

                                  Deactivate heat shield!

Vorlesung: Softwarearchitektur | WS 2019/20             Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer           36
Orthogonale Variabilitätsmodellierung|
Beziehungen zu Basismodellen (Beispiel)
              Variability Model
                                                                                                                  bMSC „Activate anti -theft protection“
                                                                     VP
                                                                                                                     Control               Light Sensor          Window Control
                                                                   Comfort
                                                                   variants
                                                                                                                      Tinting off           Sensor deactivated       No tint

                                                  V                        V
                                                      Anti-theft
                                                                               Heat shield
                                                      protection                                                             Activate anti-theft protection

              Variable hMSC Dynamic Window Tinting                                                                                                                   Windows
                                                                                                                    Anti-theft mode
                                                                                                                                                                      opaque

                            Activate anti-                Activate automatic                     Activate          bMSC „Deactivate anti -theft protection“
                           theft protection                     tinting                         heat shield
                                                                                                                      Control            Light Sensor       Window Control

                                                                                                                                            Sensor deactivated      Windows
                                                             Tint window                        Tint window         Anti-theft mode
                                                                                                                                                                     opaque

                                                                                                                             Deactivate anti-theft protection
                                                           Brighten window                    Brighten window

                                                                                                                      Tinting off                                    No tint

                                                 Deactivate
                          Deactivate anti-                                  Deactivate          Deactivate
                                               automatic tinting
                          theft protection                                automatic tinting     heat shield
                                              with tinted window

Vorlesung: Softwarearchitektur | WS 2019/20                          Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                                        37
Orthogonale Variabilitätsmodellierung|
Vergleich mit Feature-Modellierung (Überblick)
 Orthogonales Variabilitätsmodell                                                                                 Feature Diagramm
                                                                                                                             Navi

                                                                                               Bluetooth                                            Bildschirmauflösung
                      VP
                                                              VP
                                                              VP
                                                                                                           1..1                                                                1..1
                                                           Bildschirm-
                Bluetooth                                  auflösung
                                                                         [1..1]
                               [1..1]
                                         V             V                  V
    V                      V
                                             320x240       640x480            800x600   Version 1.1    Version 2.0                   320x240                         640x480          800x600
        Version 1.1        Version 2.0

 • Ähnliche Ausdrucksmächtigkeit                                                                                  Arten von Featuremodellen (Beispiele)
                                                                                                             • Basic feature models
 • OVM dokumentiert nur PL Variabilität                                                                          • mandatory, alternative and ‘or’ features
                                                                                                                 • ‘requires’ and ‘excludes’ cross-tree
                                                                                                                   constraints

 • OVM unterscheidet Variationspunkte und Varianten                                                          • Extended feature models
                                                                                                                 • In addition: arbitrary feature

 • Feature-Modelle haben eine explizite hierarchische Struktur                                                     attributes; e.g., to express
                                                                                                                   variation in quality requirements

                                                                                                             • Cardinality-based feature models
                                                                                                                 • In addition: UML-like multiplicities [m..n] for
                                                                                                                   feature selection, and instantiation

Vorlesung: Softwarearchitektur | WS 2019/20                   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                                                             38
Zusammenfassung
• Die Software-Produktlinienentwicklung ist ein mächtiger Ansatz zur Wiederverwendung von
  Architekturwissen (allg. von Entwicklungswissen).
• Geplante (proaktive) Wiederverwendung, die mit gewissem Aufwand im Vorfeld einhergeht.
• Zwei zentrale Prozesse: Domain Engineering und Application Engineering.
• Domain Engineering: Realisierung der wiederverwendbaren Artefakte inkl. Variabilität ( Plattform).
• Application Engineering: Definition von Applikationen / Systemen auf Basis der Plattform durch
  binden von Variabilität.
• Dokumentation der Variabilität durch Variabilitätsmodelle hat wesentliche Vorteile ggü. der
  integrierten Modellierung von Variabilität.
• Zentrale Konzepte zur Modellierung der Variabilität einer Software-Produktlinie sind Variationspunkt
  (Was variiert?), Variante (Wie variiert es?), Variabilitätsabhängigkeiten und Artefaktbeziehungen zu
  den typischen Entwicklungsartefakten.
• Orthogonales Variabilitätsmodell ist ein bekannter Ansatz zur Variabilitätsmodellierung,
  der sich im Detail von Ansätzen zur Feature-Modellierung unterscheidet, weil nur die
  Variabilität der Produktlinie modelliert wird und explizit zwischen Variabilitätssubjekt und
  Variabilitätsobjekt unterschieden wird.

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer   39
Werkzeugunterstützung (OVM-gestützte
modellbasierte Softwareproduktlinienentwicklung)
Zum Beispiel: PTC Integrity Modeler

                                                                        Quelle: David Norfolk: PTC Integrity Modeler – a standards-based tool
                                                                        for Systems and Software Engineering

Vorlesung: Softwarearchitektur | WS 2019/20   Universität Koblenz-Landau | Institut für Informatik | Thorsten Weyer                     40
Sie können auch lesen