Feature model
![]() | This article or section is in a state of significant expansion or restructuring. You are welcome to assist in its construction by editing it as well. If this article or section has not been edited in several days, please remove this template. If you are the editor who added this template and you are actively editing, please be sure to replace this template with {{in use}} during the active editing session. Click on the link for template parameters to use.
This article was last edited by Sb1916 (talk | contribs) 16 years ago. (Update timer) |
A software product line (SPL) is a family of related programs. When the units of program construction are features -- increments in program functionality or development -- every program in an SPL is identified with a unique combination of features, and vice versa.
A standard technique for defining programs as combinations of features is a feature model. A feature model is an and-or tree, where terminal nodes represent primitive features and non-terminals are compound features. Selecting a feature automatically selects its parent feature. Among the common parent-child relationships are: mandatory (selecting the parent automatically selects the child), optional (selecting the parent does not automatically select the child), or (1 or more children must be selected), choose1 (precisely one child must be selected). Feature models may also have cross-tree constraints (additional predicates that imply the presence or absence of other features).
(More to be supplied shortly)