ABSTRACT
Programs can be composed from features. We want to verify automatically that all legal combinations of features can be composed safely without errors. Prior work on this problem assumed that features add code monotonically. We generalize prior work to enable features to add and remove code, describe our analyses and implementation, and review case studies. We observe that more expressive features increase the complexity of developed programs rapidly -- up to the point where tools and automated concepts as presented in this paper are indispensable for verification.
- S. Apel and C. Kastner. An overview of feature-oriented software development. Journal of Object Technology (JOT), 8(5):49--84, 2009.Google Scholar
- S. Apel, C. Kastner, A. Großlinger, and C. Lengauer. Type-safe feature-oriented product lines. Technical Report MIP-0909, Department of Informatics and Mathematics, University of Passau, 2009.Google Scholar
- S. Apel, M. Kuhlemann, and T. Leich. Generic feature modules: Two-staged program customization. In Proceedings of the International Conference on Software and Data Technologies (ICSOFT), pages 127--132, 2006.Google Scholar
- S. Apel, T. Leich, and G. Saake. Aspectual feature modules. IEEE Transactions on Software Engineering (TSE), 34(2):162--180, 2008. Google ScholarDigital Library
- S. Apel, C. Lengauer, B. M¨oller, and C. Kastner. An algebra for features and feature composition. In Proceedings of the International Conference on Algebraic Methodology and Software Technology (AMAST), pages 36--50, 2008. Google ScholarDigital Library
- I. Balaban, F. Tip, and R. Fuhrer. Refactoring support for class library migration. In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 265--279, 2005. Google ScholarDigital Library
- D. Batory. Feature models, grammars, and propositional formulas. In Proceedings of the International Software Product Line Conference (SPLC), pages 7--20, 2005. Google ScholarDigital Library
- D. Batory and S. O'Malley. The design and implementation of hierarchical software systems with reusable components. ACMTransactions on Software Engineering and Methodology (TOSEM), 1(4):355--398, 1992. Google ScholarDigital Library
- D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling step-wise refinement. IEEE Transactions on Software Engineering (TSE), 30(6):355--371, 2004. Google ScholarDigital Library
- D. Batory, V. Singhal, M. Sirkin, and J. Thomas. Scalable software libraries. In Proceedings of the International Symposium on Foundations of Software Engineering (FSE), pages 191--199, 1993. Google ScholarDigital Library
- K. Czarnecki and K. Pietroszek. Verifying feature-based model templates against well-formedness OCL constraints. In Proceedings of the International Conference on Generative Programming and Component Engineering (GPCE), pages 211--220, 2006. Google ScholarDigital Library
- K. Czarnecki and A. Wasowski. Feature diagrams and logics: There and back again. In Proceedings of the International Software Product Line Conference (SPLC), pages 23--34, 2007 Google ScholarDigital Library
- B. Delaware, W. Cook, and D. Batory. A machine-checked model of safe composition. In Workshop on Foundations of Aspect-Oriented Languages (FOAL), pages 31--35, 2009. Google ScholarDigital Library
- D. Dig, S. Negara, V. Mohindra, and R. Johnson. ReBA: Refactoringaware binary adaptation of evolving libraries. In Proceedings of the International Conference on Software Engineering (ICSE), pages 441--450, 2008. Google ScholarDigital Library
- D. R. Engler andM.Musuvathi. Static analysis versus software model checking for bug finding. In International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI), pages 191--210, 2004.Google ScholarCross Ref
- M. Fowler. Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., 1999. Google ScholarDigital Library
- N. Juillerat and B. Hirsbrunner. Food: An intermediate model for automated refactoring. In International Conference on Software Methodologies, Tools and Techniques (SoMeT), pages 452--461, 2006. Google ScholarDigital Library
- K. Kang, S. Cohen, J. Hess, W. Novak, and A. 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 Proceedings of the International Conference on Automated Software Engineering (ASE), pages 258--267, 2008. Google ScholarDigital Library
- C. Kastner, S. Apel, and M. Kuhlemann. Granularity in software product lines. In Proceedings of the International Conference on Software Engineering (ICSE), pages 311--320, 2008. Google ScholarDigital Library
- C.H.P. Kim, C. Kastner, and D. Batory. On the modularity of feature interactions. In Proceedings of the International Conference on Generative Programming and Component Engineering (GPCE), pages 23--34, 2008. Google ScholarDigital Library
- C. W. Krueger. New methods in software product line practice. Communications of the ACM (CACM), 49(12):37--40, 2006. Google ScholarDigital Library
- M. Kuhlemann, D. Batory, and S. Apel. Refactoring feature modules. In Proceedings of the International Conference on Software Reuse (ICSR), 2009. Google ScholarDigital Library
- D. Lacey, N. D. Jones, E. Van Wyk, and C. C. Frederiksen. Proving correctness of compiler optimizations by temporal logic. In Proceedings of the International Symposium on Principles of Programming Languages (POPL), pages 283--294, 2002. Google ScholarDigital Library
- R. E. Lopez-Herrejon and D. Batory. A standard problem for evaluating product-line methodologies. In Proceedings of the International Symposium on Generative and Component-Based Software Engineering (GCSE), pages 10--24, 2001. Google ScholarDigital Library
- T. Mens, N. v. Eetvelde, D. Janssens, and S. Demeyer. Formalizing refactorings with graph transformations. Software Maintenance and Evolution: Research and Practice, 17(4):247--276, 2005. Google ScholarDigital Library
- M. W. Moskewicz, C. F. Madigan, Y. Zhao, L. Zhang, and S. Malik. Chaff: Engineering an efficient SAT solver. In Proceedings of the Conference on Design Automation (DAC), pages 530--535, 2001. Google ScholarDigital Library
- S. S. Muchnick. Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., 1997. Google ScholarDigital Library
- W. F. Opdyke. Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign, 1992. Google ScholarDigital Library
- D. L. Parnas. On the design and development of program families. IEEE Transactions on Software Engineering (TSE), SE-2(1):1--9, 1976. Google ScholarDigital Library
- C. Prehofer. Feature-oriented programming: A fresh look at objects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 419--443, 1997.Google Scholar
- D. B. Roberts. Practical analysis for refactoring. PhD thesis, University of Illinois at Urbana-Champaign, 1999. Google ScholarDigital Library
- P. Steyaert, C. Lucas, K. Mens, and T. D'Hondt. Reuse contracts: Managing the evolution of reusable assets. In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 268--285, 1996. Google ScholarDigital Library
- M. Tatsubori, S. Chiba, M.-O. Killijian, and K. Itano. OpenJava: A class-based macro system for Java. In Workshop on Reflection and Software Engineering, pages 117--133, 2000. Google ScholarDigital Library
- S. Thaker, D. Batory, D. Kitchin, and W. Cook. Safe composition of product lines. In Proceedings of the International Conference on Generative Programming and Component Engineering (GPCE), pages 95--104, 2007. Google ScholarDigital Library
- D. L. Whitfield and M.L. Soffa. An approach for exploring code improving transformations. ACM Transactions on Programming Languages and Systems (TOPLAS), 19(6):1053--1084, 1997. Google ScholarDigital Library
Index Terms
- Safe composition of non-monotonic features
Recommendations
Safe composition of non-monotonic features
GPCE '09Programs can be composed from features. We want to verify automatically that all legal combinations of features can be composed safely without errors. Prior work on this problem assumed that features add code monotonically. We generalize prior work to ...
Feature refactoring a multi-representation program into a product line
GPCE '06: Proceedings of the 5th international conference on Generative programming and component engineeringFeature refactoring is the process of decomposing a program into aset of modules, called features, that encapsulate increments in program functionality. Different compositions of features yield different programs. As programs are defined using multiple ...
Type safety for feature-oriented product lines
A feature-oriented product line is a family of programs that share a common set of features. A feature implements a stakeholder's requirement and represents a design decision or configuration option. When added to a program, a feature involves the ...
Comments