Abstract
Managing variation is an important problem in software engineering that takes different forms, ranging from version control and configuration management to software product lines. In this paper, I present our recent work on 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 lambda calculus in programming language research. After motivating the design of the choice calculus and sketching its semantics, I will discuss several potential application areas.
- }}S. Apel and C. Kastner. An Overview of Feature-Oriented Software Development. Journal of Object Technology, 8(5):49--84, 2009.Google Scholar
Cross Ref
- }}D. Batory. Feature Models, Grammars, and Propositional Formulas. In Int. Software Product Line Conf., LNCS 3714, pages 7--20, 2005. Google Scholar
Digital Library
- }}D. Batory, Jacob Neal Sarvela, and Axel Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. on Software Engineering, 30(6):355--371, 2004. Google Scholar
Digital Library
- }}K. Czarnecki and U. Eisenecker. Generative Programming: Method, Tools, and Applications. Addison-Wesley, 2000. Google Scholar
Digital Library
- }}C. J. Date. Database in Depth: Relational Theory for Practitioners. O’Reilly Media, Inc., 2005. Google Scholar
Digital Library
- }}U. Dayal and P. A. Bernstein. On the correct translation of update operations on relational views. ACM Trans. on Database Systems, 7(3):381--416, 1982. Google Scholar
Digital Library
- }}M. D. Ernst, G. J. Badros, and D. Notkin. An Empirical Analysis of C Preprocessor Use. IEEE Trans. on Software Engineering, 28(12):1146--1170, 2002. Google Scholar
Digital Library
- }}M. Erwig and D. Le. Supporting Feature Modeling with the Choice Calculus. 2010. In preparation.Google Scholar
- }}M. Erwig and D. Ren. An Update Calculus for Expressing Type-Safe Program Updates. Science of Computer Programming, 67(2--3):199--222, 2007. Google Scholar
Digital Library
- }}M. Erwig and E. Walkingshaw. The Choice Calculus: A Representation for Software Variation. ACM Trans. on Software Engineering and Methodology, 2010. To appear. Google Scholar
Digital Library
- }}J. Estublier, D. Leblang, A. van der Hoek, R. Conradi, G. Clemm, W. Tichy, and D. Wiborg-Weber. Impact of Software Engineering Research on the Practice of Software Configuration Management. ACM Trans. on Software Engineering and Methodology, 14(4):383--430, 2005. Google Scholar
Digital Library
- }}J. N. Foster, M. B. Greenwald, J. T. Moore, B. C. Pierce, and A. Schmitt. Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Trans. on Programming Languages and Systems, 29(3):17, 2007. Google Scholar
Digital Library
- }}GNU Project. The C Preprocessor. Free Software Foundation, 2009. http://gcc.gnu.org/onlinedocs/cpp/.Google Scholar
- }}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, 1990.Google Scholar
Cross Ref
- }}C. Kastner and S. Apel. Type Checking Software Product Lines-A Formal Approach. In IEEE Int. Conf. on Automated Software Engineering, pages 258--267, 2008. Google Scholar
Digital Library
- }}C. Kastner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In IEEE Int. Conf. on Software Engineering, pages 311--320, 2008. Google Scholar
Digital Library
- }}M. Kim. Analyzing and Inferring the Structure of Code Changes. PhD thesis, University of Washington, 2008. Google Scholar
Digital Library
- }}H. Ossher and P. Tarr. Hyper/J: Multi-Dimensional Separation of Concerns for Java. In IEEE Int. Conf. on Software Engineering, pages 734--737, 2000. Google Scholar
Digital Library
- }}D. L. Parnas. On the Design and Development of Program Families. IEEE Trans. on Software Engineering, 2(1):1--9, 1976. Google Scholar
Digital Library
- }}K. Pohl, G. Böckle, and F. van der Linden. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer-Verlang, Berlin Heidelberg, 2005. Google Scholar
Digital Library
- }}W. F. Tichy. Design, Implementation, and Evaluation of a Revision Control System. IEEE Int. Conf. on Software Engineering, pages 58--67, 1982. Google Scholar
Digital Library
Index Terms
A language for software variation research
Recommendations
A language for software variation research
GPCE '10: Proceedings of the ninth international conference on Generative programming and component engineeringManaging variation is an important problem in software engineering that takes different forms, ranging from version control and configuration management to software product lines. In this paper, I present our recent work on the choice calculus, a ...
Language-based software engineering
We present a language-centric view of the software development process. We argue that success of the domain-specific language (DSL) methodology depends on being able to rapidly craft a DSL's implementation infrastructure. We present logic programming as ...
Software engineering research versus software development
Engineering research differs greatly, both in its aims and in its methods, from traditional "scientific" research. While Sciences deal with the study of existing objects and phenomena, be it physically, metaphysically or conceptually, Engineering is ...







Comments