Feature Algebra

  • Peter Höfner
  • Ridha Khedri
  • Bernhard Möller
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4085)


Based on experience from the hardware industry, product families have entered the software development process as well, since software developers often prefer not to build a single product but rather a family of similar products that share at least one common functionality while having well-identified variabilities. Such shared commonalities, also called features, reach from common hardware parts to software artefacts such as requirements, architectural properties, components, middleware, or code. We use idempotent semirings as the basis for a feature algebra that allows a formal treatment of the above notions as well as calculations with them. In particular models of feature algebra the elements are sets of products, i.e. product families. We extend the algebra to cover product lines, refinement, product development and product classification. Finally we briefly describe a prototype implementation of one particular model.


Product Line Product Family Software Product Line Software Development Process Feature Diagram 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Batory, D.: The road to utopia: A future for generative programming. Keynote presentation at the Dagstuhl Seminar for Domain Specific Program Generation (March 2003)Google Scholar
  2. 2.
    Batory, D.: Feature models, grammars, and propositional formulas. In: Proceedings of the 9th International Software Product Line Conference (SPLC-EUROPE 2005), September 26-29 (2005)Google Scholar
  3. 3.
    Batory, D., Lopez-Herrejon, R., Martin, J.-P.: Generating product-lines of product-families. In: Conference on Automated-Software Engineering (September 2002)Google Scholar
  4. 4.
    Bühne, S., Lauenroth, K., Pohl, K.: Modelling requirements variability across product lines. In: 13th IEEE International Requirements Engineering Conference, August 29–September 2, pp. 41–50. IEEE Computer Society, Los Alamitos (2005)CrossRefGoogle Scholar
  5. 5.
    Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. Addison Wesley Professional, Reading (2002)Google Scholar
  6. 6.
    Czarnecki, K., Eisenecker, U.: Generative Programming, Methods, Tools and Applications. Addison-Wesley, Reading (2000)Google Scholar
  7. 7.
    Desharnais, J., Möller, B., Struth, G.: Modal Kleene Algebra and Applications – A Survey. Journal on Relational Methods in Computer Science 1, 93–131 (2004), Google Scholar
  8. 8.
    Griss, M.L., Favaro, J., d’Alessandro, M.: Integrating feature modeling with the RSEB. In: Devanbu, P., Poulin, J. (eds.) Proceedings of the 5th International Conference on Software Reuse, pp. 76–85. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  9. 9.
    Höfner, P., Khedri, R., Möller, B.: Feature algebra. Technical Report 2006-04, Institut für Informatik, Universität Augsburg (February 2006)Google Scholar
  10. 10.
    Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-oriented domain analysis (foda) feasibility study. Technical Report CMU/SEI-90-TR-021, Carnegie Mellon Software Engineering Institute, Carnegie Mellon University (1990)Google Scholar
  11. 11.
    Kang, K.C., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: FORM: A feature-oriented reuse method with domain-specific reference architectures. Annals of Software Engineering 5(1), 143–168 (1998)CrossRefGoogle Scholar
  12. 12.
    Nilsson, N.J.: Principles of Artificial Intelligence. Tioga Publishing Co. (1980)Google Scholar
  13. 13.
    Parnas, D.L.: On the design and development of program families. IEEE Transactions on Software Engineering SE2(1), 1–9 (1976)CrossRefGoogle Scholar
  14. 14.
    Riva, C., Rosso, C.D.: Experiences with software product family evolution. In: Sixth International Workshop on Principles of Software Evolution (IWPSE 2003), pp. 161–169. IEEE Computer Society, Los Alamitos (2003)CrossRefGoogle Scholar
  15. 15.
    Roback, S., Pieczynski, A.: Employing fuzzy logic in feature diagrams to model variability in software product-lines. In: 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems (ECBS 2003), pp. 305–311. IEEE Computer Society, Los Alamitos (2003)CrossRefGoogle Scholar
  16. 16.
    Thompson, J.M., Heimdahl, M.P.: Structuring product family requirements for n-dimensional and hierarchical product lines. Requirements Engineering Journal (2002)Google Scholar
  17. 17.
    Thompson, J.M., Heimdahl, M.P., Erickson, D.M.: Structuring formal control systems specifications for reuse: Surviving hardware changes. Technical Report TR 00-004, Department of Computer Science and Engineering, University of Minnesota (February 2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Peter Höfner
    • 1
  • Ridha Khedri
    • 2
  • Bernhard Möller
    • 1
  1. 1.Institut für InformatikUniversität AugsburgAugsburgGermany
  2. 2.Department of Computing and SoftwareMcMaster UniversityHamiltonCanada

Personalised recommendations