A program in Feature Oriented Software Development (FOSD) is a composition of functions (program transformations): a base program (modeled by a 0-ary function) is composed with increments in program functionality, called features (which are unary functions), to produce a complex program. A software product line (SPL) is a family of related programs. Suppose product line PL has F0 as a base program, and F1.. Fn as features that could be added to F0.

PropertyValue
dbpedia-owl:thumbnail
dbpprop:abstract
  • A program in Feature Oriented Software Development (FOSD) is a composition of functions (program transformations): a base program (modeled by a 0-ary function) is composed with increments in program functionality, called features (which are unary functions), to produce a complex program. A software product line (SPL) is a family of related programs. Suppose product line PL has F0 as a base program, and F1.. Fn as features that could be added to F0. Different compositions of these functions/transformations yield different programs. For this discussion, let + denote function composition. A program P in PL might have the following expression: <math> P = F_8 + F_4 + F_2 + F_1 + F_0 </math> That is, P extends program F0 with features F1, F2, F4, and F8 in this order. We can recast P in terms of a projection and contraction of a 1-dimensional array. Let Fi = [F0 .. Fn] denote the array of transformations that define PL. A projection of Fi eliminates unneeded transformations, yielding a shorter array (call it) Gi. A contraction of Gi composes each transformation of Gi in a specific order, to yield a scalar expression. The expression for P becomes: <math> P = \sum_{i=(0,1,2,4,8)} \mathbf{F}_i </math> where the index values accomplish projection and summation is array contraction. This idea generalizes to n-dimensional arrays that model multi-dimensional product lines.
dbpprop:reference
rdfs:comment
  • A program in Feature Oriented Software Development (FOSD) is a composition of functions (program transformations): a base program (modeled by a 0-ary function) is composed with increments in program functionality, called features (which are unary functions), to produce a complex program. A software product line (SPL) is a family of related programs. Suppose product line PL has F0 as a base program, and F1.. Fn as features that could be added to F0.
rdfs:label
  • FOSD Program Cubes
skos:subject
foaf:depiction
foaf:page