Advertisement

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

  • Angela Lozano
Part of the Lecture Notes in Computer Science book series (LNCS, 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).

Keywords

Source Code Variable Feature Product Family Variation Point Software Product Line 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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)CrossRefGoogle Scholar
  3. 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. 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)CrossRefGoogle Scholar
  5. 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. 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)CrossRefGoogle Scholar
  7. 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)CrossRefGoogle Scholar
  8. 8.
    Faust, D., Verhoef, C.: Software product line migration and deployment. Software: Practice and Experience 33(10), 933–955 (2003)Google Scholar
  9. 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. 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. 11.
    Jaring, M.: Variability Engineering as an Integral Part of the Software Product Family Development Process. PhD thesis, Rijksuniversiteit Groningen (2005)Google Scholar
  12. 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. 13.
    Keepence, B., Mannion, M.: Using patterns to model variability in product families. IEEE Softw. 16, 102–108 (1999)CrossRefGoogle Scholar
  14. 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)CrossRefGoogle Scholar
  15. 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)CrossRefGoogle Scholar
  16. 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. 17.
    Maccari, A., Heie, A.: Managing infinite variability in mobile terminal software: Research articles. Softw. Pract. Exper. 35(6), 513–537 (2005)CrossRefGoogle Scholar
  18. 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)CrossRefGoogle Scholar
  19. 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)CrossRefGoogle Scholar
  20. 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. 21.
    Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Trans. Softw. Eng. Methodol. 5(2), 146–189 (1996)CrossRefGoogle Scholar
  22. 22.
    Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques: Research articles. Softw. Pract. Exper. 35, 705–754 (2005)CrossRefGoogle Scholar
  23. 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. 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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Angela Lozano
    • 1
  1. 1.ICTEAMUniversité catholique de Louvain (UCL)Louvain La NeuveBelgium

Personalised recommendations