Skip to main content

An Overview of Techniques for Detecting Software Variability Concepts in Source Code

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 6999))

Abstract

There are two good reasons for wanting to detect variability concepts in source code: migrating to a product-line development for an existing product, and restructuring a product-line architecture degraded by evolution. Although detecting variability in source code is a common step for the successful adoption of variability-oriented development, there exists no compilation nor comparison of approaches available to attain this task. This paper presents a survey of approaches to detect variability concepts in source code. The survey is organized around variability concepts. For each variability concept there is a list of proposed approaches, and a comparison of these approaches by the investment required (required input), the return obtained (quality of their output), and the technique used. We conclude with a discussion of open issues in the area (variability concepts whose detection has been disregarded, and cost-benefit relation of the approaches).

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Anastasopoulos, M., Gacek, C.: Implementing product line variabilities. In: SSR 2001: Proc. of the 2001 Symposium on Software Reusability, pp. 109–117. ACM, New York (2001)

    Google Scholar 

  2. Antkiewicz, M., Bartolomei, T.T., Czarnecki, K.: Fast extraction of high-quality framework-specific models from application code. Autom. Softw. Eng. 16(1), 101–144 (2009)

    Article  Google Scholar 

  3. Bosch, J., Florijn, G., Greefhorst, D., Kuusela, J., Obbink, J.H., Pohl, K.: Variability issues in software product lines. In: Revised Papers from the 4th Int’l Workshop on Software Product-Family Engineering, PFE 2001, pp. 13–21. Springer, Heidelberg (2002)

    Google Scholar 

  4. Brown, T.J., Spence, I., Kilpatrick, P., Crookes, D.: Adaptable components for software product line engineering. In: Chastek, G.J. (ed.) SPLC 2002. LNCS, vol. 2379, pp. 154–175. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  5. Czarnecki, K., She, S., Wasowski, A.: Sample spaces and feature models: There and back again. In: SPLC 2008: Proc. of the 2008 12th Int’l Software Product Line Conference, pp. 22–31. IEEE Computer Society, Washington, DC, USA (2008)

    Google Scholar 

  6. Egyed, A.: A scenario-driven approach to traceability. In: ICSE 2001: Proc. of the 23rd Int’l Conference on Software Engineering, pp. 123–132. IEEE Computer Society, Washington, DC, USA (2001)

    Chapter  Google Scholar 

  7. Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S., Mockus, A.: Does code decay? assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27, 1–12 (2001)

    Article  Google Scholar 

  8. Faust, D., Verhoef, C.: Software product line migration and deployment. Software: Practice and Experience 33(10), 933–955 (2003)

    Google Scholar 

  9. Frenzel, P., Koschke, R., Breu, A.P.J., Angstmann, K.: Extending the reflexion method for consolidating software variants into product lines. In: WCRE 2007: Proc. of the 14th Working Conference on Reverse Engineering, pp. 160–169. IEEE Computer Society, Washington, DC, USA (2007)

    Google Scholar 

  10. Hummel, O., Janjic, W., Atkinson, C.: Proposing software design recommendations based on component interface intersecting. In: Proc. of the 2nd Int’l Workshop on Recommendation Systems for Software Engineering, RSSE 2010, pp. 64–68. ACM, New York (2010)

    Google Scholar 

  11. Jaring, M.: Variability Engineering as an Integral Part of the Software Product Family Development Process. PhD thesis, Rijksuniversiteit Groningen (2005)

    Google Scholar 

  12. Johansson, E., Höst, M.: Tracking degradation in software product lines through measurement of design rule violations. In: Proc. of the 14th Int’l Conference on Software Engineering and Knowledge Engineering, SEKE 2002, pp. 249–254. ACM, New York (2002)

    Google Scholar 

  13. Keepence, B., Mannion, M.: Using patterns to model variability in product families. IEEE Softw. 16, 102–108 (1999)

    Article  Google Scholar 

  14. Kim, S.D., Her, J.S., Chang, S.H.: A theoretical foundation of variability in component-based development. Inf. Softw. Technol. 47, 663–673 (2005)

    Article  Google Scholar 

  15. Koschke, R., Frenzel, P., Breu, A.P., Angstmann, K.: Extending the reflexion method for consolidating software variants into product lines. Software Quality Control 17, 331–366 (2009)

    Article  Google Scholar 

  16. Lai, A., Murphy, G.C.: The structure of features in Java code: An exploratory investigation. In: Ossher, H., Tarr, P., Murphy, G. (eds.) Workshop on Multi-Dimensional Separation of Concerns (OOPSLA 1999) (November 1999)

    Google Scholar 

  17. Maccari, A., Heie, A.: Managing infinite variability in mobile terminal software: Research articles. Softw. Pract. Exper. 35(6), 513–537 (2005)

    Article  Google Scholar 

  18. Mende, T., Beckwermert, F., Koschke, R., Meier, G.: Supporting the grow-and-prune model in software product lines evolution using clone detection. In: Proc. of the 2008 12th European Conference on Software Maintenance and Reengineering, CSMR 2004, pp. 163–172. IEEE Computer Society, Washington, DC, USA (2008)

    Chapter  Google Scholar 

  19. Parra, C., Cleve, A., Blanc, X., Duchien, L.: Feature-based composition of software architectures. In: Babar, M.A., Gorton, I. (eds.) ECSA 2010. LNCS, vol. 6285, pp. 230–245. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  20. Salicki, S., Farcet, N.: Expression and usage of the variability in the software product lines. In: Revised Papers from the 4th Int’l Workshop on Software Product-Family Engineering, PFE 2001, pp. 304–318. Springer, London (2002)

    Google Scholar 

  21. Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Trans. Softw. Eng. Methodol. 5(2), 146–189 (1996)

    Article  Google Scholar 

  22. Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques: Research articles. Softw. Pract. Exper. 35, 705–754 (2005)

    Article  Google Scholar 

  23. Thummalapenta, S., Xie, T.: Spotweb: detecting framework hotspots via mining open source repositories on the web. In: Proc. of the 2008 Int’l Working Conference on Mining Software Repositories, MSR 2008, pp. 109–112. ACM, New York (2008)

    Google Scholar 

  24. Yang, Y., Peng, X., Zhao, W.: Domain feature model recovery from multiple applications using data access semantics and formal concept analysis. In: WCRE 2009: Proc. of the 2009 16th Working Conference on Reverse Engineering, pp. 215–224. IEEE Computer Society, Washington, DC, USA (2009)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lozano, A. (2011). An Overview of Techniques for Detecting Software Variability Concepts in Source Code. In: De Troyer, O., Bauzer Medeiros, C., Billen, R., Hallot, P., Simitsis, A., Van Mingroot, H. (eds) Advances in Conceptual Modeling. Recent Developments and New Directions. ER 2011. Lecture Notes in Computer Science, vol 6999. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24574-9_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-24574-9_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-24573-2

  • Online ISBN: 978-3-642-24574-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics