Task: Define Feature Model
Task sourced from FODA
Purpose

The purpose of feature analysis is to capture in a diagram the understanding of the general capabilities of applications in a domain.

Relationships
Main Description

This task aims to capture the common features and differences of the applications in the domain, since the primary interest is in the commonality of a family of applications. The features in the feature model will be used to design and parameterize other models.

Steps
Identifying and Describing Features

Identify domain commonalities and variabilities. The identified features should be named and any naming conflicts should be resolved. Synonyms for the features should also be recorded in the domain terminology dictionary.

In order to identify features, you should consider commonalities and variabilities related to aspects of both problem and solution space:

·         The capabilities of applications in a domain from the end-user’s perspective, also known as  functional requirements

·         The operating environments in which applications are used and operated.

Applications may run in different operating environments. They may run on different hardware or operating systems, or interface with different types of devices. Understanding the commonalities and differences between the external components with which the applications interface is essential to abstracting the functionalities of those external components and defining common interfaces to them.

·         The application domain technology (e.g., navigation methods in the avionics domain) available to implement user´s capabilities.

There may be many ways to provide the capabilities desired by the end-users. System´s Designers can select a set of domain technologies and define features based on the selected technologies.

·         The implementation techniques (e.g., synchronization mechanisms used in the design),

Considering the hardware and software platforms, the space and time constraints, the expected transaction volume and frequency, etc., designers make a number of architectural decisions which all affect the characteristics of software products and consequently, the feature used to represent them.

 

 

 

Structuring Features in hierarchical diagram

This step consists of representing features in a tree-fashion diagram using the consists-of relationship (see example in Feature Model). Each identified feature should be included in the diagram.

 

Moreover, this diagram should indicate whether or not each feature is mandatory, alternative, or optional.

 

Specifying Variability Binding Mode

For each variability, indicate whether it should be bind at  compile-time,  load-time, or  run-time. This can be determined based on when and how frequently the adaptation will be made.

Validating Feature Modeling

Validate Feature diagram and features description to ensure that the feature model correctly represents the features of the domain.

More Information