skip to main content
10.1145/1368088.1368131acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Granularity in software product lines

Published:10 May 2008Publication History

ABSTRACT

Building software product lines (SPLs) with features is a challenging task. Many SPL implementations support features with coarse granularity - e.g., the ability to add and wrap entire methods. However, fine-grained extensions, like adding a statement in the middle of a method, either require intricate workarounds or obfuscate the base code with annotations. Though many SPLs can and have been implemented with the coarse granularity of existing approaches, fine-grained extensions are essential when extracting features from legacy applications. Furthermore, also some existing SPLs could benefit from fine-grained extensions to reduce code replication or improve readability. In this paper, we analyze the effects of feature granularity in SPLs and present a tool, called Colored IDE (CIDE), that allows features to implement coarse-grained and fine-grained extensions in a concise way. In two case studies, we show how CIDE simplifies SPL development compared to traditional approaches.

References

  1. S. Apel and D. Batory. When to Use Features and Aspects? A Case Study. In GPCE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Apel, T. Leich, and G. Saake. Aspectual Feature Modules. In IEEE TSE, 2008. Online first. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Apel, C. Lengauer, D. Batory, B. Möller, and C. Kästner. An Algebra for Feature-Oriented Software Development. Technical Report MIP-0706, University of Passau, 2007.Google ScholarGoogle Scholar
  4. D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE TSE, 30(6), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. I. Baxter and M. Mehlich. Preprocessor Conditional Removal by Simple Partial Evaluation. In Proc. Working Conference on Reverse Engineering. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Beuche, H. Papajewski, and W. Schröder-Preikschat. Variability Management with Feature Models. Sci. Comput. Program., 53(3), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Bryant et al. Explicit programming. In AOSD. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Chu-Carroll, J. Wright, and A. Ying. Visual Separation of Concerns through Multidimensional Program Storage. In AOSD. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Coppit, R. Painter, and M. Revelle. Spotlight: A Prototype Tool for Software Plans. In ICSE. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. K. Czarnecki and U. Eisenecker. Generative programming: methods, tools, and applications. ACM Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Czarnecki and K. Pietroszek. Verifying Feature-based Model Templates against well-formedness OCL Constraints. In GPCE. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. Eisenberg and G. Kiczales. Expressive Programs through Presentation Extension. In AOSD. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Fowler. Refactoring. Improving the Design of Existing Code. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. W. G. Griswold, J. J. Yuan, and Y. Kato. Exploiting the Map Metaphor in a Tool for Software Evolution. In ICSE. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. Harrison et al. Concern modeling in the concern manipulation environment. In ICSE Workshop on Modeling and Analysis of Concerns in Software. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Janzen and K. De Volder. Navigating and querying code without getting lost. In AOSD. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Janzen and K. De Volder. Programming with Crosscutting Effective Views. In ECOOP. 2004.Google ScholarGoogle Scholar
  18. S. Jarzabek, P. Bassett, H. Zhang, and W. Zhang. XVCL: XML-based Variant Configuration Language. In ICSE. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Jarzabek and L. Shubiao. Eliminating Redundancies with a "Composition with Adaptation" Meta-Programming Technique. In ESEC/FSE. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. E. Johnson and B. Foote. Designing Reusable Classes. Journal of Object-Oriented Programming, 1(2), 1988.Google ScholarGoogle Scholar
  21. C. Kästner. Aspect-Oriented Refactoring of Berkeley DB. Master?s thesis, University of Magdeburg, Germany, 2007.Google ScholarGoogle Scholar
  22. C. Kästner, S. Apel, and D. Batory. A Case Study Implementing Features Using AspectJ. In SPLC, 2007.Google ScholarGoogle Scholar
  23. C. Kästner, M. Kuhlemann, and D. Batory. Automating Feature-Oriented Refactoring of Legacy Applications. In ECOOP Workshop on Refactoring Tools, 2007.Google ScholarGoogle Scholar
  24. G. Kiczales et al. Aspect-Oriented Programming. In ECOOP. 1997.Google ScholarGoogle Scholar
  25. G. Kiczales et al. An Overview of AspectJ. In ECOOP. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. G. Kiczales and M. Mezini. Aspect-oriented programming and modular reasoning. In ICSE. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. G. Kiczales and M. Mezini. Separation of Concerns with Procedures, Annotations, Advice and Pointcuts. In ECOOP. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. Krueger. Easing the Transition to Software Mass Customization. In Intl? Workshop on Software Product-Family Eng. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. Leich, S. Apel, and G. Saake. Using Step-Wise Refinement to Build a Flexible Lightweight Storage Manager. In ADBIS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Linton. Implementing relational views of programs. SIGPLAN Not., 19(5), 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. Liu, D. Batory, and C. Lengauer. Feature Oriented Refactoring of Legacy Applications. In ICSE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. R. Lopez-Herrejon and D. Batory. A Standard Problem for Evaluating Product-Line Methodologies. In GCSE. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. R. Lopez-Herrejon and D. Batory. Using AspectJ to Implement Product-Lines: A Case Study. Technical report, Dept. of Computer Sc., University of Texas at Austin, 2002.Google ScholarGoogle Scholar
  35. R. Lopez-Herrejon and D. Batory. Using Hyper/J to Implement Product-Lines: A Case Study. Technical report, Dept. of Computer Sc., University of Texas at Austin, 2002.Google ScholarGoogle Scholar
  36. S. McDirmid, M. Flatt, and W. Hsieh. Jiazzi: New-Age Components for Old-Fashioned Java. In OOPSLA, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. G. Murphy et al. Separating Features in Source Code: an Exploratory Study. In ICSE. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. H. Ossher and P. Tarr. On the Need for On-Demand Remodularization. In ECOOP Workshop on Aspects and Dimensions of Concerns, 2000.Google ScholarGoogle Scholar
  39. R. Pawlak. Spoon: Compile-time Annotation Processing for Middleware. IEEE Distrib. Sys. Onl., 7(11), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. T. Reenskaug et al. OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems. J. OO Programming, 5(6), 1992.Google ScholarGoogle Scholar
  41. M. Robillard and G. Murphy. Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies. In ICSE. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. M. Rosenmüller, M. Kuhlemann, N. Siegmund, and H. Schirmeier. Avoiding Variability of Method Signatures in Software Product Lines: A Case Study. In GPCE Workshop on Aspect-Oriented Product Line Engineering, 2007.Google ScholarGoogle Scholar
  43. C. Simonyi, M. Christerson, and S. Clifford. Intentional software. In OOPSLA. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Y. Smaragdakis and D. Batory. Mixin Layers: an Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM, 11(2), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. H. Spencer and G. Collyer. #ifdef Considered Harmful or Portability Experience With C News. In USENIX Conf., 1992.Google ScholarGoogle Scholar
  46. R. Stata and J. Guttag. Modular reasoning in the presence of subclassing. In OOPSLA. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. W. Stevens, G. Myers, and L. Constantine. Structured Design. IBM Systems Journal, 13(2), 1974.Google ScholarGoogle Scholar
  48. C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. P. Tarr et al. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In ICSE. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. S. Thaker et al. Safe Composition of Product Lines. In GPCE, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. S. Trujillo, D. Batory, and O. Diaz. Feature Oriented Model Driven Development: A Case Study for Portlets. In ICSE. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. A. Turon and J. Reppy. Metaprogramming with Traits. In ECOOP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. M. Weiser. Program Slicing. IEEE TSE, 10(4), 1984.Google ScholarGoogle Scholar
  54. B. Westphal, F. Harris, and S. Dascalu. Snippets: Support for Drag-and-Drop Programming in the Redwood Environment. Journal of Universal Computer Science, 10(7), 2004.Google ScholarGoogle Scholar

Index Terms

  1. Granularity in software product lines

      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
        ICSE '08: Proceedings of the 30th international conference on Software engineering
        May 2008
        558 pages
        ISBN:9781605580791
        DOI:10.1145/1368088

        Copyright © 2008 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: 10 May 2008

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        ICSE '08 Paper Acceptance Rate56of370submissions,15%Overall Acceptance Rate276of1,856submissions,15%

        Upcoming Conference

        ICSE 2025

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader