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 ScholarCross Ref
- }}D. Batory. Feature Models, Grammars, and Propositional Formulas. In Int. Software Product Line Conf., LNCS 3714, pages 7--20, 2005. Google ScholarDigital Library
- }}D. Batory, Jacob Neal Sarvela, and Axel Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. on Software Engineering, 30(6):355--371, 2004. Google ScholarDigital Library
- }}K. Czarnecki and U. Eisenecker. Generative Programming: Method, Tools, and Applications. Addison-Wesley, 2000. Google ScholarDigital Library
- }}C. J. Date. Database in Depth: Relational Theory for Practitioners. O’Reilly Media, Inc., 2005. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarCross 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 ScholarDigital 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 ScholarDigital Library
- }}M. Kim. Analyzing and Inferring the Structure of Code Changes. PhD thesis, University of Washington, 2008. Google ScholarDigital 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 ScholarDigital Library
- }}D. L. Parnas. On the Design and Development of Program Families. IEEE Trans. on Software Engineering, 2(1):1--9, 1976. Google ScholarDigital 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 ScholarDigital Library
- }}W. F. Tichy. Design, Implementation, and Evaluation of a Revision Control System. IEEE Int. Conf. on Software Engineering, pages 58--67, 1982. Google ScholarDigital Library
Index Terms
- A language for software variation research
Recommendations
A language for software variation research
GPCE '10Managing 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