Feature AssemblyDefining Software Products by Assembling Features
Vrije Universiteit Brussel
Computer Science Departement
WISE Research Group
Contents
� Why Feature Assembly?
� What Does Feature Assembly Provide?
� The Feature Assembly Framework
� Example
Why
Variability modelling and management can:
� Increase your business opportunities
� Increase your productivity
� Increase your software reliability
�Decrease your time to market
What
Feature Assembly allows you to efficiently
model, and continuously reuse and manage
your software features.your software features.
Software Feature:
A prominent or distinctive user-visible aspect, quality
or characteristic of a software system or systems
What
Feature Assembly allows you to efficiently
model, and continuously reuse and manage
your software features.
� Feature Assembly allows for:
�Feature Modelling
�Feature Reuse
�Feature Management
your software features.
Feature Modelling
Feature Modelling is the process of formally
defining software is term of its software
features.
It offers It offers
� Identification of the relevant software features
� Definition of the relations between features
� Definition of the dependencies between features
� Definition of variability opportunities
Feature Modelling
What does the Feature Assembly Modelling
technique offer?
� It supports to “separation of concerns” during
modelling.modelling.
� A simple set of modelling concepts
� Allows to enrich features with metadata about
their usage, description, owner, collaborators,
binding time, priority, definition date … etc.
Feature Reuse
� Assembling Approach: Combining both variability
and reusability to increase productivity and
decrease the time to market
� Many different products, yet many common features
� new variants of a feature could be added
� a product can evolve.
Over time
Feature Management
With adequate feature management you can:
� Unlock important information about the software
products
Provide different levels of abstractions to different � Provide different levels of abstractions to different
stakeholders
� Expand current business opportunities
� Help understanding the impact of new products
� Help understanding the impact of change in existing
products
Feature Management
We need to develop a new product
What features do we already have and can
be reused ?
What features are effected by adding a
new feature ?
What are the different features supported? By whom were they defined?
Domain Experts and Developers
Sales Persons
Product Managers
I want to make a nice offer to this customer
Feature Pool
What features will be changed/affected?
We need to add some new features
What are the key features of our product?
Decision Makers
Marketing Managers
We need to invade new markets
What features could be suitable?
What features can we extend?
We need to increase our market share
What features are already available or
planned?
what is the impact of this?
We need to customize oursoftware for our new customer
Feature Assembly Framework
Find features that interact with a specific
feature
Domain Experts and Developers
Query Query ResponseCreate Feature Assembly
Find a feature to represent a
specific concept?
Domain & Application Modelers
What are the existing variants of this specific
feature
Should I introduce a new feature with new variants or extend the current variants of an existing
feature?
F E A T U R E P OO L
Query Query Response
F E A T U R E A S S E M B L E R
Extract features
to current model
Create Feature Assembly
Product Model
Add new features
to Feature Pool
Extract Features
Find Features
F E A T U R E E X P L O R E R
F E A T U R E S P O T T E R
F E A T U R E C O M B I N E R
Add New FeaturesQuery Interface
Extract Existing Features
Assemble Features
Feature Assembly
Modelling Method
F E A T U R E A S S EM B L Y F R AM EWORK
F E A T U R E P OO L M ANAG E R
Feature Assembly Framework
Find features that interact with a specific
feature
Domain Experts and Developers
Query Query ResponseCreate Feature Assembly
Find a feature to represent a
specific concept?
Domain & Application Modelers
What are the existing variants of this specific
feature
Should I introduce a new feature with new variants or extend the current variants of an existing
feature?
F E A T U R E P OO L
Query Query Response
F E A T U R E A S S E M B L E R
Extract features
to current model
Create Feature Assembly
Product Model
Add new features
to Feature Pool
Extract Features
Find Features
F E A T U R E E X P L O R E R
F E A T U R E S P O T T E R
F E A T U R E C O M B I N E R
Add New FeaturesQuery Interface
Extract Existing Features
Assemble Features
Feature Assembly
Modelling Method
F E A T U R E A S S EM B L Y F R AM EWORK
F E A T U R E P OO L M ANAG E R
Feature Reuse
Feature
Management
Feature
Modelling Feature Modelling
with Reuse Support
Example
Variable Product1 Variable Product 2
13
6
Feature Assembly Model 2Feature Assembly Model 1
F E A T U R E A S S EM B L Y F R AM EWORK
24
5
� What: A modelling technique that allows specifying
new products by combining and reusing (existing)
software features.
� How: Store the features of your products in a
Feature Assembly - Summery
How: Store the features of your products in a
continuously growing feature pool. New products are
made by inspecting the feature pool for existing
features and combining them with new ones.
� Benefit: Reuse is promoted and supported from the
initial software conception phase. The Feature Pool also
collects and allows sharing information about the
product features.
Top Related