Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

The Choice Calculus: A Representation for Software Variation

Published: 01 December 2011 Publication History

Abstract

Many areas of computer science are concerned with some form of variation in software---from managing changes to software over time to supporting families of related artifacts. We present the choice calculus, a fundamental representation for software variation that can serve as a common language of discourse for variation research, filling a role similar to the lambda calculus in programming language research. We also develop an associated theory of software variation, including sound transformations of variation artifacts, the definition of strategic normal forms, and a design theory for variation structures, which will support the development of better algorithms and tools.

Supplementary Material

PDF File (a6-erwig_appendix.pdf)
The proof is given in an electronic appendix, available online in the ACM Digital Library.

References

[1]
Apel, S., Leich, T., and Saake, G. 2008a. Aspectual feature modules. IEEE Trans. Softw. Engin. 34, 2, 162--180.
[2]
Apel, S., Lengauer, C., Möller, B., and Kästner, C. 2008b. An algebra for features and feature composition. In Proceedings of the International Conference on Algebraic Methodology and Software Technology. Lecture Notes in Computer Science, vol. 5140, Springer, 36--50.
[3]
Assmann, U. 2003. Invasive Software Composition. Springer, New York.
[4]
Batory, D. 2005. Feature models, grammars, and propositional formulas. In Proceedings of the International Software Product Line Conference. Lecture Notes in Computer Science, vol. 3714, Springer, 7--20.
[5]
Batory, D. and O’Malley, S. 1992. The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Engin. Methodol. 1, 4, 355--398.
[6]
Batory, D., Lopez-Herrejon, R. E., and Martin, J.-P. 2002. Generating product-lines of product families. In Proceedings of the IEEE International Conference on Automated Software Engineering. 81--92.
[7]
Batory, D., Liu, J., and Sarvela, J. N. 2003. Refinements and multidimensional separation of concerns. In Proceedings of the 9th European Software Engineering Conference. 48--57.
[8]
Batory, D., Sarvela, J. N., and Rauschmayer, A. 2004. Scaling step-wise refinement. IEEE Trans. Softw. Engin. 30, 6, 355--371.
[9]
Bracha, G. and Cook, W. 1990. Mixin-based inheritance. In Proceedings of the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. 303--311.
[10]
Buckley, J., Mens, T., Zenger, M., Rashid, A., and Kniesel, G. 2004. Towards a taxonomy of software change. J. Software Maint. Evol. Resear. Pract.
[11]
Date, C. J. 2005. Database in Depth: Relational Theory for Practitioners. O’Reilly Media, Inc.
[12]
Ernst, M. D., Badros, G. J., and Notkin, D. 2002. An empirical analysis of C preprocessor use. IEEE Trans. Softw. Engin. 28, 12, 1146--1170.
[13]
Estublier, J., Leblang, D., van der Hoek, A., Conradi, R., Clemm, G., Tichy, W., and Wiborg-Weber, D. 2005. Impact of software engineering research on the practice of software configuration management. ACM Trans. Softw. Engin. Methodol. 14, 4, 383--430.
[14]
GNU Project. 2009. The C Preprocessor. Free Software Foundation. Free Software Foundation. http://gcc.gnu.org/onlinedocs/cpp/.
[15]
Höfner, P., Khedri, R., and Möller, B. 2006. Feature algebra. In Proceedings of the International Symposium on Formal Methods. Lecture Notes in Computer Science, vol. 4085, Springer, 300--315.
[16]
Kang, K. C., Cohen, S. G., Hess, J. A., Novak, W. E., and Peterson, A. S. 1990. Feature-oriented domain analysis (FODA) feasibility study. Tech. rep. CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University.
[17]
Kästner, C., Apel, S., and Kuhlemann, M. 2008. Granularity in software product lines. In Proceedings of the IEEE International Conference on Software Engineering. 311--320.
[18]
Kästner, C., Apel, S., ur Rahman, S. S., Rosenmüller, M., Batory, D., and Saake, G. 2009. On the impact of the optional feature problem: Analysis and case studies. In Proceedings of the International Software Product Line Conference. 181--190.
[19]
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M., and Irwin, J. 1997. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming. Lecture Notes in Computer Science, vol. 1241, Springer, 220--242.
[20]
Liu, J., Batory, D., and Lengauer, C. 2006. Feature oriented refactoring of legacy applications. In Proceedings of the IEEE International Conference on Software Engineering. 112--121.
[21]
Mezini, M. and Ostermann, K. 2004. Variability management with feature-oriented programming and aspects. ACM SIGSOFT Softw. Engin. Notes 29, 6, 127--136.
[22]
Ossher, H. and Tarr, P. 2000. Hyper/J: Multidimensional separation of concerns for Java. In Proceedings of the IEEE International Conference on Software Engineering. 734--737.
[23]
Parnas, D. L. 1976. On the design and development of program families. IEEE Trans. Softw. Engin. 2, 1, 1--9.
[24]
Pohl, K., Böckle, G., and van der Linden, F. 2005. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer.
[25]
Rosenthal, M. 2009. Alternative features in colored featherweight Java. M.S. thesis, University of Passau, Germany. (In German).
[26]
Schobbens, P.-Y., Heymans, P., and Trigaux, J.-C. 2006. Feature diagrams: A survey and a formal semantics. In Proceedings of the IEEE International Requirements Engineering Conference. 139--148.
[27]
Spencer, H. and Collyer, G. 1992. #ifdef considered harmful, or portability experience with C news. In Proceedings of the USENIX Summer Conference. 185--198.
[28]
Szekely, P., Luo, P., and Neches, R. 1992. Facilitating the exploration of interface design alternatives: The HUMANOID model of interface design. In Proceedings of the ACM SIGCHI Conference on Human Factors in Computing Systems. 507--515.
[29]
Tarr, P., Ossher, H., Harrison, W., and Sutton Jr., S. M. 1999. N degrees of separation: Multidimensional separation of concerns. In Proceedings of the IEEE International Conference on Software Engineering. 107--119.
[30]
Tichy, W. F. 1982. Design, implementation, and evaluation of a revision control system. In Proceedings of the 6th International Conference on Software Engineering, 58--67.
[31]
Walrad, C. and Strom, D. 2002. The importance of branching models in SCM. Computer 35, 9, 31--38.
[32]
Westfechtel, B., Munch, B. P., and Conradi, R. 2001. A layered architecture for uniform version management. IEEE Trans. Softw. Engin. 27, 12, 1111--1133.
[33]
Wingerd, L. and Seiwald, C. 1998. High-level best practices in software configuration management. In Proceedings of the Symposium on System Configuration Management. 57--66.
[34]
Zhang, H. and Jarzabek, S. 2004. A mechanism for handling variants in software product lines. Sci. Comput. Program. 53, 3, 381--407.

Cited By

View all
  • (2024)Towards Automated Configuration DocumentationProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695311(2256-2261)Online publication date: 27-Oct-2024
  • (2024)On the Expressive Power of Languages for Static VariabilityProceedings of the ACM on Programming Languages10.1145/36897478:OOPSLA2(1018-1050)Online publication date: 8-Oct-2024
  • (2024)Paving a Path for a Combined Family of Feature Toggle and Configuration Option ResearchACM Transactions on Software Engineering and Methodology10.1145/367255533:7(1-27)Online publication date: 14-Jun-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 21, Issue 1
December 2011
205 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/2063239
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 2011
Accepted: 01 August 2010
Revised: 01 August 2010
Received: 01 January 2010
Published in TOSEM Volume 21, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Variation
  2. representation

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Towards Automated Configuration DocumentationProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695311(2256-2261)Online publication date: 27-Oct-2024
  • (2024)On the Expressive Power of Languages for Static VariabilityProceedings of the ACM on Programming Languages10.1145/36897478:OOPSLA2(1018-1050)Online publication date: 8-Oct-2024
  • (2024)Paving a Path for a Combined Family of Feature Toggle and Configuration Option ResearchACM Transactions on Software Engineering and Methodology10.1145/367255533:7(1-27)Online publication date: 14-Jun-2024
  • (2024)Type-Based Gradual Typing Performance OptimizationProceedings of the ACM on Programming Languages10.1145/36329318:POPL(2667-2699)Online publication date: 5-Jan-2024
  • (2024)White-box validation of quantitative product lines by statistical model checking and process miningJournal of Systems and Software10.1016/j.jss.2024.111983210:COnline publication date: 1-Apr-2024
  • (2023)Deltas for Functional Programs with Algebraic Data TypesProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608977(52-63)Online publication date: 28-Aug-2023
  • (2023)Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus2023 ACM/IEEE 26th International Conference on Model Driven Engineering Languages and Systems (MODELS)10.1109/MODELS58315.2023.00035(319-330)Online publication date: 1-Oct-2023
  • (2023)Variational satisfiability solving: efficiently solving lots of related SAT problemsEmpirical Software Engineering10.1007/s10664-022-10217-328:1Online publication date: 1-Jan-2023
  • (2022)BatakJava: An Object-Oriented Programming Language with VersionsProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567531(222-234)Online publication date: 29-Nov-2022
  • (2022)Bringing Together Configuration Research: Towards a Common GroundProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3568737(259-269)Online publication date: 29-Nov-2022
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media