Advertisement

Structured Document Algebra in Action

  • Don Batory
  • Peter Höfner
  • Dominik Köppl
  • Bernhard Möller
  • Andreas Zelend
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8950)

Abstract

A Structured Document Algebra (SDA) defines modules with variation points and how such modules compose. The basic operations are module addition and replacement. Repeated addition can create nested module structures. SDA also allows the decomposition of modules into smaller parts. In this paper we show how SDA modules can be used to deal algebraically with Software Product Lines (SPLs). In particular, we treat some fundamental concepts of SPLs, such as refinement and refactoring. This leads to mathematically precise formalization of fundamental concepts used in SPLs, which can be used for improved Feature-Oriented Software Development (FOSD) tooling.

Keywords

software product lines feature-oriented design algebraic reasoning 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Apel, S., Lengauer, C., Möller, B., Kästner, C.: An algebraic foundation for automatic feature-based program synthesis. SCP 75(11), 1022–1047 (2010)MATHGoogle Scholar
  2. 2.
    Apel, S., Batory, D., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines. Springer (2013)Google Scholar
  3. 3.
    Backhouse, R., van der Woude, J.: Demonic operators and monotype factors. Mathematical Structures in Computer Science 3(4), 417–433 (1993)MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    Batory, D.: Program refactoring, program synthesis, and model-driven development. In: Adsul, B., Odersky, M. (eds.) CC 2007. LNCS, vol. 4420, pp. 156–171. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Batory, D., Höfner, P., Kim, J.: Feature interactions, products, and composition. In: Generative Programming and Component Engineering (GPCE 2011), pp. 13–22. ACM (2011)Google Scholar
  6. 6.
    Batory, D., Höfner, P., Möller, B., Zelend, A.: Features, modularity, and variation points. In: Feature-Oriented Software Development, pp. 9–16. ACM (2013)Google Scholar
  7. 7.
    Batory, D., Shepherd, C.: Product lines of product lines, Department of Computer Science, University of Texas at Austin (submitted, 2013)Google Scholar
  8. 8.
    Bergel, A., Ducasse, S., Nierstrasz, O.: Classbox/J: Controlling the scope of change in Java. SIGPLAN Not. 40(10), 177–189 (2005)CrossRefGoogle Scholar
  9. 9.
    Czarnecki, K., Antkiewicz, M.: Mapping features to models: A template approach based on superimposed variants. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 422–437. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    Delaware, B., Cook, W.R., Batory, D.S.: Product lines of theorems. In: Lopes, C.V., Fisher, K. (eds.) Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22-27, vol. 10, pp. 595–608. ACM (2011)Google Scholar
  11. 11.
    Desharnais, J., Belkhiter, N., Sghaier, S.B.M., Tchier, F., Jaoua, A., Mili, A., Zaguia, N.: Embedding a demonic semilattice in a relational algebra. Theor. Comput. Sci. 149(2), 333–360 (1995)CrossRefMATHGoogle Scholar
  12. 12.
    Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, P.: Traits: A mechanism for fine-grained reuse. ACM Trans. Program. Lang. Syst. 28(2), 331–388 (2006)CrossRefGoogle Scholar
  13. 13.
    Ehm, T.: The Kleene Algebra of Nested Pointer Structures: Theory and Applications. Ph.D. thesis, Fakultät für Angewandte Informatik, Universität Augsburg (2003)Google Scholar
  14. 14.
    Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison-Wesley (2004)Google Scholar
  15. 15.
    Heidenreich, F.: Towards systematic ensuring well-formedness of software product lines. In: Feature-Oriented Software Development, ACM (2009)Google Scholar
  16. 16.
    Höfner, P., Khedri, R., Möller, B.: Feature algebra. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 300–315. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  17. 17.
    Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-oriented domain analysis (foda) feasibility study. Tech. Rep. CMU/SEI-90-TR-021, Carnegie Mellon Software Engineering Institute, Carnegie Mellon University (1990)Google Scholar
  18. 18.
    Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: Schäfer, W., Dwyer, M., Gruhn, V. (eds.) Conference on Software Engineering (ICSE 2008). ACM (2008)Google Scholar
  19. 19.
    Kästner, C.: Virtual separation of concerns: toward preprocessors 2.0. Ph.D. thesis, Otto von Guericke University Magdeburg (2010)Google Scholar
  20. 20.
    Kuhlemann, M., Batory, D., Apel, S.: Refactoring feature modules. In: Edwards, S.H., Kulczycki, G. (eds.) ICSR 2009. LNCS, vol. 5791, pp. 106–115. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  21. 21.
    Liu, J., Batory, D.S., Lengauer, C.: Feature oriented refactoring of legacy applications. In: Osterweil, L.J., Rombach, H.D., Soffa, M.L. (eds.) 28th International Conference on Software Engineering (ICSE 2006), Shanghai, China, May 20-28, pp. 112–121. ACM (2006)Google Scholar
  22. 22.
    Lopez-Herrejon, R., Batory, D., Lengauer, C.: A disciplined approach to aspect composition. In: Partial Evaluation and Semantics-based Program Manipulation (PEPM 2006). ACM (2006)Google Scholar
  23. 23.
    Möller, B.: Towards pointer algebra. SCP 21(1), 57–90 (1993)MathSciNetMATHGoogle Scholar
  24. 24.
    Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  25. 25.
    Walkingshaw, E., Erwig, M.: A calculus for modeling and implementing variation. In: Generative Programming and Component Engineering, pp. 132–140. ACM (2012)Google Scholar
  26. 26.
    Wirsing, M.: Algebraic specification. In: Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics (B), pp. 675–788 (1990)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Don Batory
    • 1
  • Peter Höfner
    • 2
  • Dominik Köppl
    • 3
  • Bernhard Möller
    • 4
  • Andreas Zelend
    • 4
  1. 1.Dept. of Computer ScienceUniversity of Texas at AustinUSA
  2. 2.NICTA and UNSWAustralia
  3. 3.Department of Computer ScienceTU DortmundGermany
  4. 4.Institut für InformatikUniversität AugsburgGermany

Personalised recommendations