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.
- S. Apel and D. Batory. When to Use Features and Aspects? A Case Study. In GPCE, 2006. Google ScholarDigital Library
- S. Apel, T. Leich, and G. Saake. Aspectual Feature Modules. In IEEE TSE, 2008. Online first. Google ScholarDigital Library
- 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 Scholar
- D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE TSE, 30(6), 2004. Google ScholarDigital Library
- I. Baxter and M. Mehlich. Preprocessor Conditional Removal by Simple Partial Evaluation. In Proc. Working Conference on Reverse Engineering. 2001. Google ScholarDigital Library
- D. Beuche, H. Papajewski, and W. Schröder-Preikschat. Variability Management with Feature Models. Sci. Comput. Program., 53(3), 2004. Google ScholarDigital Library
- A. Bryant et al. Explicit programming. In AOSD. 2002. Google ScholarDigital Library
- M. Chu-Carroll, J. Wright, and A. Ying. Visual Separation of Concerns through Multidimensional Program Storage. In AOSD. 2003. Google ScholarDigital Library
- D. Coppit, R. Painter, and M. Revelle. Spotlight: A Prototype Tool for Software Plans. In ICSE. 2007. Google ScholarDigital Library
- K. Czarnecki and U. Eisenecker. Generative programming: methods, tools, and applications. ACM Press, 2000. Google ScholarDigital Library
- K. Czarnecki and K. Pietroszek. Verifying Feature-based Model Templates against well-formedness OCL Constraints. In GPCE. 2006. Google ScholarDigital Library
- A. Eisenberg and G. Kiczales. Expressive Programs through Presentation Extension. In AOSD. 2007. Google ScholarDigital Library
- M. Fowler. Refactoring. Improving the Design of Existing Code. Addison-Wesley, 1999. Google ScholarDigital Library
- W. G. Griswold, J. J. Yuan, and Y. Kato. Exploiting the Map Metaphor in a Tool for Software Evolution. In ICSE. 2001. Google ScholarDigital Library
- W. Harrison et al. Concern modeling in the concern manipulation environment. In ICSE Workshop on Modeling and Analysis of Concerns in Software. 2005. Google ScholarDigital Library
- D. Janzen and K. De Volder. Navigating and querying code without getting lost. In AOSD. 2003. Google ScholarDigital Library
- D. Janzen and K. De Volder. Programming with Crosscutting Effective Views. In ECOOP. 2004.Google Scholar
- S. Jarzabek, P. Bassett, H. Zhang, and W. Zhang. XVCL: XML-based Variant Configuration Language. In ICSE. 2003. Google ScholarDigital Library
- S. Jarzabek and L. Shubiao. Eliminating Redundancies with a "Composition with Adaptation" Meta-Programming Technique. In ESEC/FSE. 2003. Google ScholarDigital Library
- R. E. Johnson and B. Foote. Designing Reusable Classes. Journal of Object-Oriented Programming, 1(2), 1988.Google Scholar
- C. Kästner. Aspect-Oriented Refactoring of Berkeley DB. Master?s thesis, University of Magdeburg, Germany, 2007.Google Scholar
- C. Kästner, S. Apel, and D. Batory. A Case Study Implementing Features Using AspectJ. In SPLC, 2007.Google Scholar
- C. Kästner, M. Kuhlemann, and D. Batory. Automating Feature-Oriented Refactoring of Legacy Applications. In ECOOP Workshop on Refactoring Tools, 2007.Google Scholar
- G. Kiczales et al. Aspect-Oriented Programming. In ECOOP. 1997.Google Scholar
- G. Kiczales et al. An Overview of AspectJ. In ECOOP. 2001. Google ScholarDigital Library
- G. Kiczales and M. Mezini. Aspect-oriented programming and modular reasoning. In ICSE. 2005. Google ScholarDigital Library
- G. Kiczales and M. Mezini. Separation of Concerns with Procedures, Annotations, Advice and Pointcuts. In ECOOP. 2005. Google ScholarDigital Library
- C. Krueger. Easing the Transition to Software Mass Customization. In Intl? Workshop on Software Product-Family Eng. 2002. Google ScholarDigital Library
- R. Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications, 2003. Google ScholarDigital Library
- T. Leich, S. Apel, and G. Saake. Using Step-Wise Refinement to Build a Flexible Lightweight Storage Manager. In ADBIS, 2005. Google ScholarDigital Library
- M. Linton. Implementing relational views of programs. SIGPLAN Not., 19(5), 1984. Google ScholarDigital Library
- J. Liu, D. Batory, and C. Lengauer. Feature Oriented Refactoring of Legacy Applications. In ICSE, 2006. Google ScholarDigital Library
- R. Lopez-Herrejon and D. Batory. A Standard Problem for Evaluating Product-Line Methodologies. In GCSE. 2001. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- S. McDirmid, M. Flatt, and W. Hsieh. Jiazzi: New-Age Components for Old-Fashioned Java. In OOPSLA, 2001. Google ScholarDigital Library
- G. Murphy et al. Separating Features in Source Code: an Exploratory Study. In ICSE. 2001. Google ScholarDigital Library
- H. Ossher and P. Tarr. On the Need for On-Demand Remodularization. In ECOOP Workshop on Aspects and Dimensions of Concerns, 2000.Google Scholar
- R. Pawlak. Spoon: Compile-time Annotation Processing for Middleware. IEEE Distrib. Sys. Onl., 7(11), 2006. Google ScholarDigital Library
- T. Reenskaug et al. OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems. J. OO Programming, 5(6), 1992.Google Scholar
- M. Robillard and G. Murphy. Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies. In ICSE. 2002. Google ScholarDigital Library
- 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 Scholar
- C. Simonyi, M. Christerson, and S. Clifford. Intentional software. In OOPSLA. 2006. Google ScholarDigital Library
- Y. Smaragdakis and D. Batory. Mixin Layers: an Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM, 11(2), 2002. Google ScholarDigital Library
- H. Spencer and G. Collyer. #ifdef Considered Harmful or Portability Experience With C News. In USENIX Conf., 1992.Google Scholar
- R. Stata and J. Guttag. Modular reasoning in the presence of subclassing. In OOPSLA. 1995. Google ScholarDigital Library
- W. Stevens, G. Myers, and L. Constantine. Structured Design. IBM Systems Journal, 13(2), 1974.Google Scholar
- C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 2002. Google ScholarDigital Library
- P. Tarr et al. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In ICSE. 1999. Google ScholarDigital Library
- S. Thaker et al. Safe Composition of Product Lines. In GPCE, 2007. Google ScholarDigital Library
- S. Trujillo, D. Batory, and O. Diaz. Feature Oriented Model Driven Development: A Case Study for Portlets. In ICSE. 2007. Google ScholarDigital Library
- A. Turon and J. Reppy. Metaprogramming with Traits. In ECOOP, 2007. Google ScholarDigital Library
- M. Weiser. Program Slicing. IEEE TSE, 10(4), 1984.Google Scholar
- 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 Scholar
Index Terms
- Granularity in software product lines
Recommendations
Integrating Software Product Lines: A Study of Reuse versus Stability
COMPSAC '12: Proceedings of the 2012 IEEE 36th Annual Computer Software and Applications ConferenceTo achieve large-scale reuse and accelerate time-to-market, integration of multiple software product lines (SPLs) is becoming a trend. The integration of independently-developed SPLs enables the derivation of new products on demand in a particular ...
On the Relationship between Features Granularity and Non-conformities in Software Product Lines: An Exploratory Study
SBES '13: Proceedings of the 2013 27th Brazilian Symposium on Software EngineeringWithin Software Product Lines (SPL) features are well understood and facilitate the communication among SPL developers and domain experts. However, the feature specification task is usually based on natural language, which can present lack of clarity, ...
Refactoring delta-oriented software product lines
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software developmentDelta-oriented programming (DOP) is an implementation approach to develop software product lines (SPL). Delta-oriented SPLs evolve over time due to new or changed requirements and need to be maintained to retain their value. Refactorings have been ...
Comments