














































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 54
This page cannot be seen from the preview
Don't miss anything!















































Radu Muschevici
Software Engineering Group, Department of Computer Science, TU Darmstadt (Germany) Fakultas Ilmu Komputer, Universitas Indonesia
FASILKOM RSE Lab Training, 8 January 2016
▶ (^) Have individual requirements. ▶ (^) Need individual software solutions based on their requirements.
▶ (^) The nature of programming is inherently complex. ▶ (^) Skilled developers are expensive and hard to come by.
Software Product Lines (SPL) , a.k.a. Software Product Families ▶ (^) Develop collection of similar software products from a shared set of software assets.
37 ▶ (^) How is this reduced effort achieved?
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
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.”
Diagram
Problem Space Solution Space
Feature Model 1. Domain Engineering
Reusable Software Artefacts
Feature Selection 2. Application Engineering
Software Product
Diagram
Problem Space Solution Space
Feature Model (μTVL) 1. Domain Engineering
Core + ABS Deltas
Feature Selection (Product)
2. Application Engineering
Software Product
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.
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
▶ (^) 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 for a product line of cars :
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.
“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.
▶ (^) 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)
▶ (^) 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.