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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
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)
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)
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)
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)
Faust, D., Verhoef, C.: Software product line migration and deployment. Software: Practice and Experience 33(10), 933–955 (2003)
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)
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)
Jaring, M.: Variability Engineering as an Integral Part of the Software Product Family Development Process. PhD thesis, Rijksuniversiteit Groningen (2005)
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)
Keepence, B., Mannion, M.: Using patterns to model variability in product families. IEEE Softw. 16, 102–108 (1999)
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)
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)
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)
Maccari, A., Heie, A.: Managing infinite variability in mobile terminal software: Research articles. Softw. Pract. Exper. 35(6), 513–537 (2005)
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)
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)
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)
Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Trans. Softw. Eng. Methodol. 5(2), 146–189 (1996)
Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques: Research articles. Softw. Pract. Exper. 35, 705–754 (2005)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)