Softwareproduktlinien

Transcription

Softwareproduktlinien
Softwareproduktlinien
Teil 2: Entwicklungsprozess und Variabilitätsmodellierung
Sven Apel (Universität Passau)
Christian Kästner (Universität Marburg)
Gunter Saake (Universität Magdeburg)
1
Agenda
Produktlinien
Was ist ein Feature?
Domain Engineering vs. Application Engineering
Feature-Modellierung




2
Produktlinien
A software product line (SPL) is a set of
software-intensive systems that share a
common, managed set of features satisfying
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 Engineering Institute
Carnegie Mellon University
3
Produktlinien
Eine Menge von Programmvarianten (SoftwareProdukten),
...die auf ein gemeinsames Marktsegment (Domäne)
zugeschnitten sind
...mit dem Ziel der Wiederverwendung von gemeinsamen
Software-Artefakten



z. B. Datenbank-Produktlinie für eingebettete Systeme

4
Domäne
Die Programme einer Produktlinie sind zugeschnitten auf
ein Anwendungsgebiet
Dieses Anwendungsgebiet wird als Domäne bezeichnet
Horizontale Domänen




Abrechnungen, Lagerverwaltung, Flugbuchung
Vertikale Domänen


5
Numerische Algorithmen, Netzwerktreiber, GUIs, Datenbanken
Was ist ein Feature? (deutsch Merkmal)
Domänenabstraktion
Features repräsentieren Anforderungen, Gemeinsamkeiten
bzw. Unterschiede von Programmvarianten
Mittel zur Kommunikation zwischen Stakeholdern
Dient zur Spezifikation von Varianten





Feature-Auswahl als Eingabe für die Programmgenerierung
Aber: es gibt auch Belange, die keine Features sind

6
Belang vs. Feature
Belang (siehe spätere Kapitel)


Jedwede Problemstellung, die von Interesse ist
Feature



Problemstellung, die eine besondere Bedeutung in einer
Domäne hat
Konfigurationsoption
Belange
7
Features
Features in Datenbanken
Transaktionsverwaltung
Log & Recovery
Schreibzugriff
Persistenz / In-Memory
Seitenverdrängungsstrategien LRU / LFU / Clock /...
Sortierverfahren
Datentypen variabler Länge
Gruppieren, Aggregation
Windows / Unix / NutOS / TinyOS / …









8
Entwicklung einer Produktlinie
Entwicklung einer Produktlinie statt einzelner
Anwendungen
Produktlinie deckt Anforderungen der ganzen Domäne ab
Abweichung vom klassischen Entwicklungsprozess und
Lebenszyklus
Unterscheidung in






9
Domain Engineering
Application Engineering
Software Lebenszyklus – Klassisch
10
Domain Engineering
[...] is the activity of collecting, organizing, and
storing past experience in building systems [...]
in a particular domain in the form of reusable
assets [...], as well as providing an adequate
means for reusing these assets (i.e., retrieval,
qualification, dissemination, adaptation,
assembly, and so on) when building new
systems.
K. Czarnecki and U. Eisenecker
11
Application and Domain Engineering
12
Entwicklungsaufwand
Aufwand/Kosten
Konventionelle
Entwicklung
Produktlinienentwicklung
1
13
2
3
4
…
# Produkte
Scoping



Eingrenzung der Domäne
Welche Features sind relevant/sollen entwickelt werden
Oft wirtschaftliche Entscheidung
[Schmid 2002]
14
Exkurs: Ansätze zur Einführung von Produktlinien

Es gibt drei übliche Ansätze eine Software Produktlinie zu
erstellen / einzuführen





Proaktives Vorgehensmodell
Reaktives Vorgehensmodell
Extraktives Vorgehensmodell
Für alle Implementierungsformen
Auswahl anhand betrieblicher Gesichtspunkte
(Kosten, Risiko, Chancen, ...)
15
Exkurs: Proaktives Vorgehensmodell





SPL neu entwerfen und implementieren; wie bisher
besprochen
Komplette Domänenanalyse zu Beginn
Kann die normale Entwicklung für mehrere Monate
unterbrechen, bis SPL auf dem Stand der bestehenden
Produkte ist
Hohe Kosten und hohes Risiko
Gut wenn Anforderungen wohl-definiert sind
16
[Krueger 2002]
17
Exkurs: Reaktives Vorgehensmodell





Analog zu Spiralmodell oder Extreme Programming
Implementiert zuerst wenige Variationen; fügt
inkrementell weitere hinzu
Geeignet, wenn benötigte Varianten nicht komplett im
voraus bekannt, und für unvorhergesehene Änderungen
Kleinere Projektgröße, geringere initiale Kosten; weniger
Ressourcenbindung, schnellere Ergebnisse
Später evtl. Umstrukturierungen nötig
18
[Krueger 2002]
19
Exkurs: Extraktives Vorgehensmodell





Nutzt eine oder mehrere bestehende Anwendungen
(legacy application) als Basis
Extrahiert daraus Features und erzeugt so Varianten
Geeignet für den schnellen Wechsel von traditionellen
Anwendungen zu Produktlinien
Relativ geringer Ressourcenaufwand und Risiko
Sehr anspruchsvoll für Werkzeuge und Sprachen, da
Zerlegung einer Anwendung, die nicht als SPL entworfen
wurde
20
[Krueger 2002]
21
Feature-Modellierung



Beschreibung der Features einer Domäne
Zur Visualisierung und Kommunikation
Ein Feature-Modell beschreibt…



die elementaren Abstraktionen einer Domäne und deren
Beziehungen
die Menge der Programme einer Produktlinie
Ein Feature-Diagramm visualisiert Features und deren
Beziehungen
22
Gültige Feature-Auswahl?









Transaktionsverwaltung
Log & Recovery
Schreibzugriff
Persistenz / In-Memory
Seitenverdrängungsstrategien LRU / LFU / Clock /...
Sortierverfahren
Datentypen variabler Länge
Gruppieren, Aggregation
Windows / Unix / NutOS / TinyOS / …
23
24
Feature-Modell - Beispiel


Features: Basis, Txn, Write, Win, Unix
Abhängigkeiten:




Basis muss immer ausgewählt sein und braucht Win oder Unix
Win darf nie zusammen mit Unix ausgewählt werden
Wenn Txn ausgewählt ist muss auch Write ausgewählt sein
Sechs mögliche Produkte

25
{Basis, Win}, {Basis, Unix}, {Basis, Win, Write}, {Basis, Unix,
Write}, {Basis, Win, Write, Txn}, {Basis, Unix, Write, Txn}
Feature-Modell als
aussagenlogischer Ausdruck



Variable für jedes Feature (wahr wenn ausgewählt)
Formel beschreibt Feature-Modell
Formel wahr für gültige Feature-Auswahl
Basis  (Unix  Win )  (Unix  Win )
 (Txn  Write )

Erlaubt automatische Überprüfung, und Aufzählen der
gültigen Varianten (SAT, BDD, …)
26
Feature-Diagramm




Graphische Darstellung
Hierarchische Struktur
Kinder: optional, obligatorisch, oder, alternativ
Features in Blättern
optional
alternativ
(genau 1)
27
obligatorisch
oder (min 1)
Feature-Diagramm vs. Formeln



Besser lesbar als Formel
(“Management-kompatibel”)
Weniger flexibel  extra Formeln möglich
Übersetzung „Diagramm  Formel” automatisierbar
30
Beispiel – FAME DBMS (Core)
31
Feature-Modell eines Speichermanagers
GUIDSL-Format

Speichern des Feature-Diagramms als Grammatik
Pr: Feature1 Nesting Feature4::_Pr;
Nesting: Feature2 Feature3::_Nesting;
Pr: [Feature1] [Feature2] Feature3 ::_
Pr : Select+ :: _Pr ;
Select : Feature1 | Feature2 ;
%%
Feature1 implies Feature2;
36
HowTo:
http://www.cs.utexas.edu/users/dsb/fopdocs/guidsl.html
Feature-Diagramm – Varianten

Viele verschiedene Varianten in der Literatur, z. B.




Innere Knoten als Features
Mandatory/Optional in Oder/Alternative-Gruppen
Implies/Excludes Pfeile
Konvertierungen i.d.R. möglich
implies
37
Konfiguration einer Variante
FeatureIDE
38
GUIDSL
FeatureIDE
39
Entwurf und Implementierung von Features
Nach der Feature-Modellierung folgt der Entwurf und die
Implementierung...
Feature-Modell
Wiederverwendbare
Implementierungsartefakte
Application Eng.
Domain Eng.

Feature-Auswahl
40
Generator
Fertiges Program
Zusammenfassung






Produktlinien als Konzept zur systematischen
Wiederverwendung
Entwicklung teilt sich in Domain Engineering und
Application Engineering
Features repräsentieren Domänenkonzepte
Programme einer Produktlinie haben gemeinsame
Features
Feature-Modelle in beschreiben Features und ihre
Abhängigkeiten…
…und werden zur Konfiguration benutzt
41
Ausblick

Nächste Kapitel handeln von Methoden, Techniken und
Werkzeugen zur Implementierung von Produktlinien
42
Literatur I


K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson.
Feature-Oriented Domain Analysis (FODA) Feasibility
Study. Technical Report CMU/SEI-90-TR-21, SEI,1990.
[Frühe Ideen zur Domänenanalyse mit Feature-Modellen]
K. Czarnecki and U. Eisenecker. Generative Programming:
Methods, Tools, and Applications. Addison-Wesley, 2000.
[Umfassende Beschreibung von Domain Engineering,
Feature-Diagrammen und deren Normalisierung]
43
Literatur II


D. Batory. Feature Models, Grammars, and Propositional
Formulas, In Proc. of Software Product Line Conference
(SPLC), 2005
Allgemeine Bücher zu Produktlinien:


44
P. Clements, L. Northrop, Software Product Lines : Practices
and Patterns, Addison-Wesley, 2002
K. Pohl, G. Böckle, F. van der Linden, Software Product Line
Engineering: Foundations, Principles, and Techniques, Springer,
2005