


























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
A software product line is a set of software-intensive sys- tems sharing a common, managed set of features that sat- isfy needs of a particular market segment ...
Typology: Study notes
1 / 34
This page cannot be seen from the preview
Don't miss anything!



























Software Product Line Engineering and Architectures
Bodo Igler and Burkhardt Renz Hochschule Rhein-Main and Technische Hochschule Mittelhessen Wintersemester 2020/
How can you produce many different but related software products? (mass production) How can you do this, if you have to satisfy special customer requirements? (customization) if the products have to be cheap and good? (cost efficieny, quality) if you have to react quickly to changing requirements? (time to market)
Answer: Adopt a Software Product Line Approach.
Introduction Examples Terminology Approach
Commonality and Variability Motivation Commonality and Variability Analysis Features
Putting Things Together Architecture The Big Picture Conclusion
Car Manufacturing
Integrated Development Environment
set of software subsystems and interfaces common structure facilitates efficient development and production of derivative products comprises several artifacts code architecture requirements manuals test cases
...
A software product line is a set of software-intensive sys- tems sharing a common, managed set of features that sat- isfy needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. –Paul Clements, Linda Northrop
develop family of software applications apply mass customization use software platform
definition of commonality “What is common to all products?” definition of variability “What is different? What is allowed to vary?” “How does it vary? How is it allowed to vary?” ⇒ platform = reusable artifacts ( domain artifacts , “skeleton”)
detail variability from previous step add – if necessary – internal variability
the product ( application artifacts , “skeleton + flesh”) feedback to domain engineering
bind variability of each domain artifact ⇒ obtain application artifacts fill in templates implement interfaces provide configuration files
...
Questions: How do I find the appropriate commonalities? How do I find the appropriate variability? Answer: Commonality and Variability Analysis.
Question: How do I document commonalities and variability? Answer: Feature Model.
variants of one product = product family (Parnas 1976)
(^1) Commonality Analysis: find commonalities categorize commonalities (^2) Variability Analysis: find special properties categorize special properties
appropriate abstraction
common degree of freedom
a degree of freedom is violated under certain circumstances
required by and/or visible to customer
neither required by nor visible to customer
something that varies, a degree of freedom e.g. color, payment method
potential property of something that varies e.g. “red”, “green” or “credit card”, “cash”
fix a variation point by specifying/instantiating a (legal) variant
e.g. design, coding, compilation, installation, run-time
“end-user visible characteristic of a system”
composition of sub-features
cannot be divided into sub-features
to represent all features to represent the relationships between features to distinguish between commonality and variability to be independent of implementation technology to be suitable during requirements engineering, design, code and test