Lesson plan

FOSD program cubes

In feature-oriented software development, feature-oriented software development program cubes (FOSD program cubes) are n-dimensional arrays of functions (program transformations) that represent n-dimensional product lines. A program is a composition of features: a base program is augmented with increments in program functionality, called features, to produce a complex program. A software product line (SPL) is a family of related programs. A typical product line has F 0 as a base program, and F 1 ..F n as features that could be added to F 0 . Different compositions of features yield different programs. Let + denote the feature composition operation. A program P in SPL might have the following expression: : P = F 8 + F 4 + F 2 + F 1 + F 0 That is, P extends program F 0 with features F 1 , F 2 , F 4 , and F 8 in this order. We can recast P in terms of a projection and contraction of a 1-dimensional array. Let F i = [F 0 .. F n ] denote the array of features used by a product line. A projection of F i eliminates unneeded features, yielding a shorter array (call it) G i . A contraction of G i sums each G i in a specific order, to yield a scalar expression. The expression for P becomes: : P = \sum_{i=(0,1,2,4,8)} \mathbf{F}_i where the index values accomplish projection and summation is array contraction.…

Back to article

Article summary

In feature-oriented software development, feature-oriented software development program cubes (FOSD program cubes) are n-dimensional arrays of functions (program transformations) that represent n-dimensional product lines. A program is a composition of features: a base program is augmented with increments in program functionality, called features, to produce a complex program. A software product line (SPL) is a family of related programs. A typical product line has F 0 as a base program, and F 1 ..F n as features that could be added to F 0 . Different compositions of features yield different programs. Let + denote the feature composition operation. A program P in SPL might have the following expression: : P = F 8 + F 4 + F 2 + F 1 + F 0 That is, P extends program F 0 with features F 1 , F 2 , F 4 , and F 8 in this order. We can recast P in terms of a projection and contraction of a 1-dimensional array. Let F i = [F 0 .. F n ] denote the array of features used by a product line. A projection of F i eliminates unneeded features, yielding a shorter array (call it) G i . A contraction of G i sums each G i in a specific order, to yield a scalar expression. The expression for P becomes: : P = \sum_{i=(0,1,2,4,8)} \mathbf{F}_i where the index values accomplish projection and summation is array contraction.…

Key claims

No claims recorded.

Discussion questions

  1. Summarise the article in your own words. Which single claim would you verify first, and why?
  2. Which claim in this article is most likely to be revised as the sources update? How would you check its current status?
  3. If two sources disagreed about one of these facts, what would you need in order to trust one over the other?

Bibliography

No sources recorded.

Key claims and bibliography are generated from the same tracked claims and sources as the article page.