Chapter 2 (Feature Oriented Software Product Lines) Flashcards

1
Q

Was ist eine Softwareproduktlinie?

A

Eine Softwareproduktlinie ist eine Menge von Programmvarianten (Softwareprodukten)

  • die auf ein gemeinsames Marktsegment (Domäne) zugeschnitten sind
  • auf Basis einer gemeinsamen Plattform implementiert sind mit dem Ziel der Wiederverwendung von gemeinsamen Software-Artefakten.
  • Erweiterung einer Produktfamilie um eine strukturierte Beschreibung der Gemeinsamkeiten und Unterschiede zwischen den Produktvarianten anhand ihrer Produktkonfiguration.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist eine Produktfamilie?

A

Menge gleichartiger Software-Produkte, die unter dem gleichen Produktnamen zusammengefasst sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist eine Produktkonfiguration?

A

Sammlung von Produktparameterwerten, die ein maßgeschneidertes Produkt bezeichen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist eine Produktvariante?

A

Sammlung von Softwareengineering Artefakten, assoziiert mit einer Produktkonfiguration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist ein Produkt?

A

Software Implementierung einer Produktvariante anhand einer Produktkonfiguration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was bezeichnet die Domain?

A

Programme einer Produktlinie sind zugeschnitten auf ein Anwendungsgebiet (Automotive Systems, Information Systems, Operating Systems…)
Anwendungsgebiet -> Domäne
Innerhalb der Domäne werden relevante Domain-Features aus der Menge alle Belange sämtlicher Stakeholder identifiziert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Unterschied zwischen Belange und Features?

A

Concern: Belang = Jedwede Problemstellung (Einflussfaktor bei der Produktentwicklung), die von Interesse ist.
Feature = Problemstellung, die eine besondere Bedeutung in einer Domäne hat, Konfigurationsoption für den Kunden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist ein feature?

A

Features repräsentieren die für die Produktdiversifizierung relevanten Anforderungen, Gemeinsamkeiten/Unterschiede von Produkten einer Domäne -> Es gibt Belange die keine Features sind. Ein Feature ist eine Domänen-Abstraktion und dient als Mittel zur Kommunikation zwischen Stakeholdern. -> Ergebnis der Domänen-Analyse.
=> Inkrement von Programmfunktionalität

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist Feature-Oriented Software Development?

A

Idee: Feature als ganzheitliches Abstraktionskonzept.
Feature als Domänen-Abstraktion im Problemraum der Anwendungsdomäne -> Spezifikation von Produktkonfiguration (Featureauswahl als Eingabe für die Produktkofiguration)
Feature als Implementierungskonzept im Lösungsraum der Produktlinie -> Spezifikation von Produktvarianten (Featureauswahl als Eingabe für die Programmgenerierung)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist der klassische Software Lebenszyklus?

A

Requirements -> Design -> Implementation -> Verification -> Maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Erklären Sie Domain Engineering

A

Auf der Domain Engineering Ebene haben wir Design for Reuse: Domänenwissen -> [Domain Analyse] -> domain model -> [Domain Design] -> architectures -> Domainimplementierung
Auf der Applicationengineering ebene : Verbraucherbedürfnisse -> [Anforderungsanalyse] -> features -> [Designanalyse] -> Produktkonfiguration -> [Integration und test] -> Produkt
Herausforderung = Features sind crosscutting concerns und Features interagieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist mass customization?

A

Erzeugung von Waren [Artikel] und Dienstleistungen auf die Bedürfnisse einzelner Kunden mit in der Nähe von Massenproduktionseffizienz erfüllen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welche Ansätze zur Einführung von Produktlinien gibt es?

A

Proaktives Vorgehensmodell: Man baut die Software von 0 auf. Man weiß alles über Domäne.
• Ähnlich dem Wasserfall Ansatz für Einzelsysteme
• Geeignet, wenn die Voraussetzungen für die Menge der Produkte benötigt,
sich bis zum fernen Horizont, sind klar definiert und stabil
• Erfordert erheblich mehr Aufwand im Vorfeld, aber das stark abfällt, sobald die Produktionslinie komplett ist.
Reaktives Vorgehensmodell: Man hat Produkte und lagert erst die Gemeinsamkeiten als Core features aus.
• Inkrementelle Ansatz
• Geeignet, wenn die Anforderungen für neue Produkte in der Produktionslinie sind etwas unberechenbar
• Ermöglicht eine rasche Annahme der Mass Customization, da eine minimale Anzahl von Produkten muss im Voraus eingearbeitet werden
Extraktives Vorgehensmodell:• Angewandte wenn eine bestehende Sammlung von kundenspezifischen Systemen wiederverwendet werden kann
• Die meisten geeignet, wenn die Sammlung von Systemen hat eine erhebliche Menge an Gemeinsamkeit und auch im Einklang Unterschiede zwischen ihnen
• Nicht notwendig, um die Extraktion von allen bereits bestehenden Systeme auf einmal durchführen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly