Advertisement

Combining Related Products into Product Lines

  • Julia Rubin
  • Marsha Chechik
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7212)

Abstract

We address the problem of refactoring existing, closely related products into product line representations. Our approach is based on comparing and matching artifacts of these existing products and merging those deemed similar while explicating those that vary. Our work focuses on formal specification of a product line refactoring operator called merge-in that puts individual products together into product lines. We state sufficient conditions of model compare, match and merge operators that allow application of merge-in. Based on these, we formally prove correctness of the merge-in operator. We also demonstrate its operation on a small but realistic example.

Keywords

Product Line Software Product Line Atomic Element Outgoing Transition Compound Element 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Beuche, D.: Transforming Legacy Systems into Software Product Lines. In: Proc. of SPLC 2011 Tutorial (2011)Google Scholar
  2. 2.
    Borba, P., Teixeira, L., Gheyi, R.: A Theory of Software Product Line Refinement. In: Cavalcanti, A., Deharbe, D., Gaudel, M.-C., Woodcock, J. (eds.) ICTAC 2010. LNCS, vol. 6255, pp. 15–43. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  3. 3.
    Boucher, Q., Classen, A., Heymans, P., Bourdoux, A., Demonceau, L.: Tag and Prune: a Pragmatic Approach to Software Product Line Implementation. In: Proc. of ASE 2010 (2010)Google Scholar
  4. 4.
    Clements, P.C., Northrop, L.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley (2001)Google Scholar
  5. 5.
    Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison-Wesley (2004)Google Scholar
  6. 6.
    Hosseini, S., Azgomi, M.A.: UML Model Refactoring with Emphasis on Behavior Preservation. In: Proc. of TASE 2008, pp. 125–128 (2008)Google Scholar
  7. 7.
    Kang, K., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, CMU/SEI-90TR-21 (1990)Google Scholar
  8. 8.
    Kastner, C., Apel, S.: Integrating Compositional and Annotative Approaches for Product Line Engineering. In: Proc. of GPCE Wrksp. on Modul., Comp. and Gen. Tech. for PLE (GPLE 2008), pp. 35–40 (2008)Google Scholar
  9. 9.
    Kim, K., Kim, H., Kim, W.: Building Software Product Line from the Legacy Systems: Experience in the Digital Audio and Video Domain. In: Proc. of SPLC 2007 (2007)Google Scholar
  10. 10.
    Kolb, R., Muthig, D., Patzke, T., Yamauchi, K.: Refactoring a Legacy Component for Reuse in a Software Product Line: a Case Study: Practice Articles. J. of Software Maintenance and Evolution 18(2), 109–132 (2006)CrossRefGoogle Scholar
  11. 11.
    Koschke, R., Frenzel, P., Breu, A.P., Angstmann, K.: Extending the Reflection Method for Consolidating Software Variants into Product Lines. Soft. Quality Control 17(4) (2009)Google Scholar
  12. 12.
    Krueger, C.W.: Easing the Transition to Software Mass Customization. In: van der Linden, F.J. (ed.) PFE 2002. LNCS, vol. 2290, pp. 282–293. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    Liu, J., Batory, D., Lengauer, C.: Feature Oriented Refactoring of Legacy Applications. In: Proc. of ICSE 2006, pp. 112–121 (2006)Google Scholar
  14. 14.
    Mens, T., Tourwé, T.: A Survey of Software Refactoring. IEEE TSE 30(2), 126–139 (2004)Google Scholar
  15. 15.
    Murphy, G.C., Lai, A., Walker, R.J., Robillard, M.P.: Separating Features in Source Code: an Exploratory Study. In: Proc. of ICSE 2001, pp. 275–284 (2001)Google Scholar
  16. 16.
    Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S., Zave, P.: Matching and Merging of Statecharts Specifications. In: Proc. of ICSE 2007, pp. 54–64 (2007)Google Scholar
  17. 17.
    OMG, http://www.omg.org/spec/XMI/2.1.1/ (last Accessed: January 2011)
  18. 18.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  19. 19.
    Rubin, J., Chechik, M.: From Products to Product Lines Using Model Matching and Refactoring. In: Proc. of SPLC Wrksp. (MAPLE 2010) (2010)Google Scholar
  20. 20.
    Rubin, J., Chechik, M.: Quality of Behavior-Preserving Product Line Refactorings (2011); Under reviewGoogle Scholar
  21. 21.
    Ryssel, U., Ploennigs, J., Kabitzsch, K.: Extraction of Feature Models from Formal Contexts. In: Proc. of SPLC 2011, pp. 4:1–4:8 (2011)Google Scholar
  22. 22.
    Sabetzadeh, M., Easterbrook, S.: View Merging in the Presence of Incompleteness and Inconsistency. Requirement Engineering 11, 174–193 (2006)CrossRefGoogle Scholar
  23. 23.
    She, S., Lotufo, R., Berger, T., Wasowski, A., Czarnecki, K.: Reverse Engineering Feature Models. In: Proc. of ICSE 2011 (2011)Google Scholar
  24. 24.
    Sunyé, G., Pollet, D., Le Traon, Y., Jézéquel, J.-M.: Refactoring UML Models. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 134–148. Springer, Heidelberg (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Julia Rubin
    • 1
    • 2
  • Marsha Chechik
    • 1
  1. 1.University of TorontoCanada
  2. 2.IBM Research in HaifaIsrael

Personalised recommendations