skip to main content
10.1145/1621607.1621634acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

Safe composition of non-monotonic features

Published:04 October 2009Publication History

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.

References

  1. S. Apel and C. Kastner. An overview of feature-oriented software development. Journal of Object Technology (JOT), 8(5):49--84, 2009.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. S. Apel, T. Leich, and G. Saake. Aspectual feature modules. IEEE Transactions on Software Engineering (TSE), 34(2):162--180, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Batory. Feature models, grammars, and propositional formulas. In Proceedings of the International Software Product Line Conference (SPLC), pages 7--20, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling step-wise refinement. IEEE Transactions on Software Engineering (TSE), 30(6):355--371, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarCross RefCross Ref
  16. M. Fowler. Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. C. W. Krueger. New methods in software product line practice. Communications of the ACM (CACM), 49(12):37--40, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. Kuhlemann, D. Batory, and S. Apel. Refactoring feature modules. In Proceedings of the International Conference on Software Reuse (ICSR), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. S. S. Muchnick. Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. W. F. Opdyke. Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. D. L. Parnas. On the design and development of program families. IEEE Transactions on Software Engineering (TSE), SE-2(1):1--9, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle Scholar
  32. D. B. Roberts. Practical analysis for refactoring. PhD thesis, University of Illinois at Urbana-Champaign, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Safe composition of non-monotonic features

            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
            • Published in

              cover image ACM Conferences
              GPCE '09: Proceedings of the eighth international conference on Generative programming and component engineering
              October 2009
              194 pages
              ISBN:9781605584942
              DOI:10.1145/1621607
              • General Chair:
              • Jeremy Siek,
              • Program Chair:
              • Bernd Fischer
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 45, Issue 2
                GPCE '09
                February 2010
                182 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1837852
                Issue’s Table of Contents

              Copyright © 2009 ACM

              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: 4 October 2009

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              GPCE '09 Paper Acceptance Rate18of62submissions,29%Overall Acceptance Rate56of180submissions,31%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader