• Keine Ergebnisse gefunden

Software Product Line Engineering

N/A
N/A
Protected

Academic year: 2022

Aktie "Software Product Line Engineering"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Software Product Line Engineering

Lab Class 2

4/26/2019 1

(2)

Outline

• Assignment 1 / Tasks 1 + 3

• Recap:

• Variability / Feature Modeling

• FeatureIDE

• Assignment 2:

4/26/2019 2

(3)

Task 1: Software Product Lines

a) ~ “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.” (SEI @CMU)

b) ~ Keywords: Variants, Customizability, Extensibility c) Not a product line: Good old Notepad on Windows

d) ~ Embedded Systems (Automotive, Avionics), Drivers, Operating Systems

4/26/2019 3

(4)

Task 1e)

• Android ✓

• operating system derived from the Linux kernel

• highly customizable: stock android vs flavored variants, e.g., HTC Sense

• BusyBox ✓

• bundle of *nix tools for embedded systems

• feature-rich, can be compiled with a variety of commands included/exclude

• GIMP ✓

• image manipulation software

• extensible with plug-ins, provides interfaces for automated scripts

4/26/2019 4

(5)

Task 3: SPLE development

a) Domain Engineering: Feature Implementations Application Engineering: Final product/variant b) SPLE development

proactive: designing a SPL from scratch

extractive: dividing existing software to derive features

4/26/2019 5

(6)

Recap: Feature Models

Feature: Selectable functionality for a SPL

Configuration: (De-)Selection of features

Feature Model (FM):

• tells us what configurations are valid and which are not

• configurations can be checked against a FM (validation)

• FM representations include

• grammars (validation with parsers)

• logical formulas (validation with satisfiability solvers)

• most notably: tree-like feature diagrams

4/26/2019 6

(7)

Recap: Feature Model Semantics

• Optional or mandatory features

• “Alternative Group”

• exactly one sub-feature selectable

• “Or Group”

• at least one sub-feature must be selected

• Cross-Tree constraints (CTC)

• not consistently used...

• implication or mutual exclusion across sub-trees

• arrows or plain formulas

4/26/2019 7

(8)

Recap: Feature Model Semantics

• How many configurations are valid in both cases?

4/26/2019

2 x 3 x 4 = 24 In half the cases (camera on), we

only have two choices for Screen.

Camera off: 2 x 2 x 3 = 12

Camera on: 2 x 1 x 2 = 4 --> 16

8

(9)

Detour: Numerical Features/Options

• Binary options: enable/disable functionality

• Numerical options: tune functionality

4/26/2019 9

(10)

Assignment 2

• Task 1: Domain/Application Engineering

• Task 2: Design Patterns

• Task 3: Feature Model Extraction

• Task 4: Feature Modeling + Warmup with FeatureIDE

• no Java in this one ;)

4/26/2019 10

Referenzen

ÄHNLICHE DOKUMENTE

About 80% of all software systems today are software product lines or can at least profit. from product

 Modules can be composed within a new context of another project (variability).. Design Patterns for Variability.. Observer Pattern. “Define[s] a one-to-many dependency

Software Product Line Engineering.. Lab

 Make feature explicit in source

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,

 -oriented programming solves the feature traceability problem via collaborations and rolls (mapping). Implementation via

• //every method invocation inside the method Server.broadcast() unless the target is an instance of class Connection pointcut

 Use case of aspects and collaborations depend on the implementation problem.  Aspects and collaborations have different pros