Software Product Line Engineering with ABS, Slides of Engineering

Feature Model Example. Feature model for a product line of cars: 1. Four features: engine, gasoline tank, electric motor, battery. 2. Feature dependencies:.

Typology: Slides

2022/2023

Uploaded on 03/01/2023

alannis
alannis 🇺🇸

4.7

(13)

263 documents

1 / 54

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Product Line Engineering with ABS
Radu Muschevici
Software Engineering Group, Department of Computer Science, TU Darmstadt (Germany)
Fakultas Ilmu Komputer, Universitas Indonesia
FASILKOM RSE Lab Training, 8 January 2016
1 / 54
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36

Partial preview of the text

Download Software Product Line Engineering with ABS and more Slides Engineering in PDF only on Docsity!

Software Product Line Engineering with ABS

Radu Muschevici

Software Engineering Group, Department of Computer Science, TU Darmstadt (Germany) Fakultas Ilmu Komputer, Universitas Indonesia

FASILKOM RSE Lab Training, 8 January 2016

Software Engineering Challenges

Different customers (users)…

▶ (^) Have individual requirements. ▶ (^) Need individual software solutions based on their requirements.

(Custom) software development is challenging and expensive.

▶ (^) The nature of programming is inherently complex. ▶ (^) Skilled developers are expensive and hard to come by.

Software Engineering Challenges: SPLE

Software Product Lines (SPL) , a.k.a. Software Product Families ▶ (^) Develop collection of similar software products from a shared set of software assets.

Development Effort

# Variants

Effort/Costs

Traditional

Development

Software

Product

Lines

37 ▶ (^) How is this reduced effort achieved?

Software Product Line Engineering (SPLE)

SPLE makes the development of software variants more efficient by systematic sharing of common features.

▶ (^) Software variants are individual software solutions based on individual customer requirements. ▶ (^) Software variants are built from reusable parts (artifacts). ▶ (^) Software variability is modelled explicitly.

Advantages over standard software: ▶ (^) Reduced complexity and resource usage, better performance ▶ (^) Better fit for systems with limited resources: embedded, mobile

Features

SPLE uses features to distinguish different software products.

Features are familiar notion when talking about software. Examples:

▶ (^) “My text editor provides a spell-checking feature.” ▶ (^) “Database system A provides multi-user support, database system B does not.” ▶ (^) “Email client A supports IMAP and POP3, client B supports only POP3.” ▶ (^) “The game we are developing will run on Android and iOS.” ▶ (^) “Both financial software products support international transactions.”

The SPLE Process

Basic principle: Two engineering processes

  1. Domain engineering : Build repository of reusable software artefacts.
  2. Application engineering : Build individual products by reusing these artefacts.

The SPLE Process

Diagram

Problem Space Solution Space

Feature Model 1. Domain Engineering

Reusable Software Artefacts

Feature Selection 2. Application Engineering

Software Product

The SPLE Process using ABS

Diagram

Problem Space Solution Space

Feature Model (μTVL) 1. Domain Engineering

Core + ABS Deltas

Feature Selection (Product)

2. Application Engineering

Software Product

What is a Feature in SPLE?

A feature is an abstraction in the problem space – usually a name.

▶ (^) Derived from customer requirements. ▶ (^) Expresses variability: used to distinguish the products (variants) of an SPL from each other. ▶ (^) Means to communicate between stakeholders. ▶ (^) Means to specify variants: feature selection as input for variant generation. ▶ (^) Mapped to reusable software artefacts in the solution space.

Feature Modelling

Features relate to other features. Examples: ▶ (^) Secure email download requires SSL protocol ▶ (^) Spell checking requires at least one natural language dictionary ▶ (^) The game variant for Android is incompatible with iOS

Feature Model

▶ (^) Models the variability of an SPL. ▶ (^) Describes relationships between features ⇒ which feature combinations (selections) are valid? ▶ (^) Model elements: features and their relationships (constraints).

Feature Model Example

Feature model for a product line of cars :

  1. Four features: engine, gasoline tank, electric motor, battery.
  2. Feature dependencies: ▶ (^) An engine requires a gasoline tank; ▶ (^) A gasoline tank requires an engine; ▶ (^) An electric motor requires a battery; ▶ (^) A battery requires an electric motor.

Desired (valid) feature selections according to feature model: ▶ (^) engine + gasoline tank ▶ (^) electric motor + battery ▶ (^) engine + gasoline tank + electric motor + battery These feature selections describe the products of the product line, i.e. the car variants.

Feature Selection Example

“Build me an electric car!”

▶ (^) “Electric car” is the name (handle) for the feature selection { electric motor , battery } – a.k.a. product. ▶ (^) The feature selection satisfies the feature model constraints. ▶ (^) Build requested product by composing the implementations of the selected features.

Feature Diagrams (cont.)

▶ (^) Tree structure

▶ (^) Nodes represent features (optional feature denoted by circle)

▶ (^) Edges represent standard constraints, such as choice (one-out-of-many, some-out-of-many, all-out-of-many) ▶ (^) More general constraints (“cross-tree” constraints) need to be specified with additional propositional logic formulas, E.g. Video ⇒ (Voice ∧ Text)

Feature Diagram Semantics: Propositional Formula

▶ (^) Features diagrams map to propositional formulas. ▶ (^) Features represented as Boolean variables (true if selected) ▶ (^) Constraints represented using logical connectors

▶ (^) Example: propositional formula for the chat feature diagram: Chat ∧ (Mode ⇔ Chat) ∧ (FileTransfer ⇒ Chat) ∧ ((Text ∨ Voice ∨ Video) ⇔ Mode)

▶ (^) Enables automated reasoning ▶ (^) Check validity of given feature selection (does it satisfy the propositional formula?) ▶ (^) Find all valid feature selections (= all solutions of the formula) ▶ (^) Compare feature models, etc.