skip to main content
research-article

A calculus for modeling and implementing variation

Published:26 September 2012Publication History
Skip Abstract Section

Abstract

We present a formal calculus for modeling and implementing variation in software. It unifies the compositional and annotative approaches to feature implementation and supports the development of abstractions that can be used to directly relate feature models to their implementation. Since the compositional and annotative approaches are complementary, the calculus enables implementers to use the best combination of tools for the job and focus on inherent feature interactions, rather than those introduced by biases in the representation. The calculus also supports the abstraction of recurring variational patterns and provides a metaprogramming platform for organizing variation in artifacts.

References

  1. S. Apel and C. Kästner. An Overview of Feature-Oriented Software Development. Journal of Object Technology, 8(5): 49--84, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  2. D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. on Software Engineering, 30(6): 355--371, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Bracha and W. Cook. Mixin-Based Inheritance. In ACM SIGPLAN Int. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, pages 303--311, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. Elrad, R. E. Filman, and A. Bader. Aspect-Oriented Programming. Communications of the ACM, 44(10): 28--32, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Erwig and E. Walkingshaw. The Choice Calculus: A Representation for Software Variation. ACM Trans. on Software Engineering and Methodology, 21(1): 6:1--6:27, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Erwig and E. Walkingshaw. Variation Programming with the Choice Calculus. In Generative and Transformational Techniques in Software Engineering, 2011. To appear.Google ScholarGoogle Scholar
  7. M. Felleisen. On the Expressive Power of Programming Languages. Science of Computer Programming, 17(1--3): 35--75, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, Nov. 1990.Google ScholarGoogle ScholarCross RefCross Ref
  9. C. Kästner and S. Apel. Integrating Compositional and Annotative Approaches for Product Line Engineering. In GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering, pages 35--40, 2008.Google ScholarGoogle Scholar
  10. C. Kästner and S. Apel. Virtual Separation of Concerns---A Second Chance for Preprocessors. Journal of Object Technology, 8(6): 59--78, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  11. C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In IEEE Int. Conf. on Software Engineering, pages 311--320, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Kästner, S. Apel, and M. Kuhlemann. A Model of Refactoring Physically and Virtually Separated Features. In Int. Conf. on Generative Programming and Component Engineering, pages 157--166, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. C. Kästner, S. Apel, S. S. ur Rahman, M. Rosenmüller, D. Batory, and G. Saake. On the Impact of the Optional Feature Problem: Analysis and Case Studies. In Int. Software Product Line Conf., pages 181--190, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An Overview of AspectJ. In European Conf. on Object-Oriented Programming, volume 2072 of LNCS, pages 327--354. Springer-Verlang, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. E. Kohlbecker, D. Friedman, M. Felleisen, and B. Duba. Hygienic Macro Expansion. In ACM Conf. on LISP and Functional Programming, pages 151--161, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Le, E. Walkingshaw, and M. Erwig. #ifdef Confirmed Harmful: Promoting Understandable Software Variation. In IEEE Int. Symp. on Visual Languages and Human-Centric Computing, pages 143--150, 2011.Google ScholarGoogle Scholar
  17. J. Liu, D. Batory, and C. Lengauer. Feature Oriented Refactoring of Legacy Applications. In IEEE Int. Conf. on Software Engineering, pages 112--121, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Mezini and K. Ostermann. Variability Management with Feature-Oriented Programming and Aspects. ACM SIGSOFT Software Engineering Notes, 29(6): 127--136, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In European Conf. on Object-Oriented Programming, pages 419--443, 1997.Google ScholarGoogle Scholar
  20. H. Zhang and S. Jarzabek. XVCL: A Mechanism for Handling Variants in Software Product Lines. Science of Computer Programming, 53(3): 381--407, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A calculus for modeling and implementing variation

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!