What is a feature?
A feature is an end-user visible characteristic of a system.
In Reference , we defined features as follows: “a logical unit of behavior that is specified by a set of functional and quality requirements”. The point of view taken there, and in this article, is that a feature is a construct used to group related requirements (“there should at least be an order of magnitude difference between the number of features and the number of requirements for a product family member” ). In other words, features are an abstraction from requirements. In our view, constructing a feature set is the first step of interpreting and ordering the requirements. In the process of constructing a feature set, the first design decisions about the future system are already taken. It is important to realize that there is an n-to-m relation between features and requirements. This means that a particular requirement (e.g. a performance requirement) may apply to several features and that a particular feature typically meets more than one requirement
- Pohl2005. Software Product Line Engineering: Foundations, Principles, and Techniques.
- Svahnberg2005. A taxonomy of variability realization techniques.