Software & Systems Modeling

, Volume 10, Issue 2, pp 161–182 | Cite as

An algebra of product families

  • Peter Höfner
  • Ridha Khedri
  • Bernhard Möller
Special Section Paper


Experience from recent years has shown that it is often advantageous 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 product families are built from elementary features that reach from hardware parts to software artefacts such as requirements, architectural elements or patterns, components, middleware, or code. We use the well established mathematical structure of idempotent semirings as the basis for a product family algebra that allows a formal treatment of the above notions. A particular application of the algebra concerns the multi-view reconciliation problem that arises when complex systems are modelled. We use algebraic integration constraints linking features in one view to features in the same or a different view and show in several examples the suitability of this approach for a wide class of integration constraint formulations. Our approach is illustrated with a Haskell prototype implementation of one particular model of product family algebra.


Product family Product line Idempotent semiring Multi-view reconciliation Formal family specification Feature modelling 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Avgeriou, P., Guelfi, N.: Resolving architectural mismatches of COTS through architectural reconciliation. In: Lecture Notes in Computer Science, vol. 3412, pp. 248–257. Springer, Berlin (2005)Google Scholar
  2. 2.
    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
  3. 3.
    Batory, D.: Feature models, grammars, and propositional formulas. In: Proceedings of the 9th International Software Product Line Conference (SPLC-EUROPE 2005), pp. 26–29. September (2005)Google Scholar
  4. 4.
    Batory, D., Lopez-Herrejon, R., Martin, J.P.: Generating product-lines of product-families. In: Conference on Automated-Software Engineering. September (2002)Google Scholar
  5. 5.
    Bühne, S., Lauenroth, K., Pohl, K.: Modelling requirements variability across product lines. In: 13th IEEE International Requirements Engineering Conference, pp. 41–50. IEEE Computer Society, Los Alamitos, 29 August to 2 September (2005)Google Scholar
  6. 6.
    Clements P., Northrop L.M.: Software Product Lines: Practices and Patterns. Addison Wesley, Reading (2002)Google Scholar
  7. 7.
    Cysneiros L.M., do Prado Leite J.C.S.: Non-functional requirements: From elicitation to conceptual models. IEEE Trans. Softw. Eng. 30(5), 328–350 (2004)CrossRefGoogle Scholar
  8. 8.
    Czarnecki K., Eisenecker U.: Generative programming, methods, tools and applications. Addison-Wesley, Reading (2000)Google Scholar
  9. 9.
    Desharnais J., Frappier M., Khedri R.: Integration of sequential scenarios. IEEE Trans. Softw. Eng. 24(9), 695–708 (1998)CrossRefGoogle Scholar
  10. 10.
    Desharnais J., Möller B., Struth G.: Modal Kleene algebra and applications—a survey. J. Relat. Methods Comput. Sci. 1, 93–131 (2004)Google Scholar
  11. 11.
    Gilani, W., Naqvi, N.H., Spinczyk, O.: On adaptable middleware product lines. In: Proceedings of the 3rd workshop on Adaptive and reflective middleware (ARM ’04), pp 207–213. ACM, New York (2004)Google Scholar
  12. 12.
    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
  13. 13.
    Hebisch U., Weinert H.J.: Semirings—Algebraic Theory and Applications in Computer Science. World Scientific, Singapore (1998)zbMATHGoogle Scholar
  14. 14.
    Höfner, P.: Database for automated proofs (laws for product families). Accessed 1 March 2009
  15. 15.
    Höfner P., Khedri R., Möller B.: Feature algebra. In: Misra, J., Nipkow, T., Sekerinski, E.(eds) Formal Methods. Lecture Notes in Computer Science, vol 4085., pp. 300–315. Springer, Berlin (2006)Google Scholar
  16. 16.
    Höfner, P., Khedri, R., Möller, B.: Feature algebra. Technical Report 2006–04, Institute of Computer Science, University of Augsburg (2006)Google Scholar
  17. 17.
    Höfner, P., Khedri, R., Möller, B.: Algebraic view reconciliation. Technical Report 2007-13, Institute of Computer Science, University of Augsburg (2007)Google Scholar
  18. 18.
    Höfner, P., Khedri, R., Möller, B.: Algebraic view reconciliation. In: Software Engineering and Formal Methods, pp. 85–94. IEEE Press (2008)Google Scholar
  19. 19.
    Höfner P., Struth G.: Automated reasoning in Kleene algebra. In: Pfennig, F.(eds) CADE 2007. Lecture Notes in Artificial Intelligence, vol 4603, pp. 279–294. Springer, Berlin (2007)Google Scholar
  20. 20.
    Höfner P., Struth G.: Can refinement be automated? Electron. Notes Theor. Comput. Sci. 201, 197–222 (2008)CrossRefGoogle Scholar
  21. 21.
    Jacobs B.E.: Applied Database Logic: Fundamental Issues, volume I. Prentice-Hall, Inc., Englewood Cliffs (1985)Google Scholar
  22. 22.
    Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: 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
  23. 23.
    Kang K.C., Kim S., Lee J., Kim K., Shin E., Huh M.: FORM: A feature-oriented reuse method with domain-specific reference architectures. Ann. Softw. Eng. 5(1), 143–168 (1998)CrossRefGoogle Scholar
  24. 24.
    Khedri, R.: Formal model driven approach to deal with requirements volatility. Computing and Software Technical Reports CAS-08-03-RK, Department of Computing and Software, McMaster University (2008)Google Scholar
  25. 25.
    McCune, W.: Prover9 and Mace4. (accessed March 1, 2009)
  26. 26.
    Nace, W., Koopman, P.: A product family approach to graceful degradation. In: Proceedings of the IFIP WG10.3/WG10.4/WG10.5 International Workshop on Distributed and Parallel Embedded Systems: Architecture and Design of Distributed Embedded Systems, pp. 131–140. Kluwer, Deventer (2000)Google Scholar
  27. 27.
    Nilsson N.J.: Principles of Artificial Intelligence. Tioga, Palo Alto (1980)zbMATHGoogle Scholar
  28. 28.
    Palkovics L.: Identification and control problems in vehicle system design. Knorr-Bremse, Munich (1991)Google Scholar
  29. 29.
    Parnas D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. SE2(1), 1–9 (1976)CrossRefGoogle Scholar
  30. 30.
    Riva, C., Del Rosso, C.: Experiences with software product family evolution. In: Sixth International Workshop on Principles of Software Evolution (IWPSE’03), pp. 161–169. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  31. 31.
    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’03), pp. 305–311. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  32. 32.
    Savolainen, J., Oliver, I., Mannion, M., Zuo, H.: Transitioning from product line requirements to product line architecture. In: Proceedings of the 29th Annual International Computer Software and Applications Conference (COMPSAC 2005), pp. 186–195. IEEE Computer Society, Los Alamitos, 26–28 July (2005)Google Scholar
  33. 33.
    Shelton, C.P.: Using architectural properties to model and measure system-wide graceful degradation. In: In Workshop on Architecting Dependable Systems, pp. 267–289. Springer, Berlin (2002)Google Scholar
  34. 34.
    Software Engineering Standards Committee of the IEEE Computer Society. IEEE recommended practice for software requirements specifications, IEEE Std 830-1998 (revision of IEEE std 830-1993)., 23 May 2007
  35. 35.
    Streitferdt, D.: Family-Oriented Requirements Engineering. PhD thesis, Technical University Ilmenau (2004)Google Scholar
  36. 36.
    Streitferdt, D., Riebisch, M., Philippow, I.: Details of formalized relations in feature models using OCL. In: The 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems (ECBS’03), Huntsville, AL, USA, April 2003. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  37. 37.
    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
  38. 38.
    Thompson, J.M.: Heimdahl, Mats P.E.: Structuring product family requirements for n-dimensional and hierarchical product lines. Requir. Eng. J. (2002)Google Scholar
  39. 39.
    Uchitel S., Kramer J., Magee J.: Synthesis of behavioral models from scenarios. IEEE Trans. Softw. Eng. 29(2), 99–115 (2003)CrossRefGoogle Scholar
  40. 40.
    Wang A.J.A., Qian K.: Component-Oriented Programming. Wiley, NY (2005)CrossRefGoogle Scholar
  41. 41.
    Weiss D.M., Lai C.T.R.: Software Product-Line Engineering: A Family-Based Software Development Process. Addison Wesley Longman, Inc., New York (1999)Google Scholar
  42. 42.
    Wirsing, M., Knapp, A.: View consistency in software development. In: Lecture Notes in Computer Science, vol. 2941, pp. 341–357. Springer, Berlin (2004)Google Scholar

Copyright information

© Springer-Verlag 2009

Authors and Affiliations

  1. 1.Institut für InformatikUniversität AugsburgAugsburgGermany
  2. 2.Department of Computing and SoftwareMcMaster UniversityHamiltonCanada

Personalised recommendations