Abstract
A Software Product Line (SPL) aims at applying a pre-planned systematic reuse of large-grained software artifacts to increase the software productivity and reduce the development cost. The idea of SPL is to analyze the business domain of a family of products to identify the common and the variable parts between the products. However, it is common for companies to develop, in an ad-hoc manner (e.g. clone and own), a set of products that share common functionalities and differ in terms of others. Thus, many recent research contributions are proposed to re-engineer existing product variants to a SPL. Nevertheless, these contributions are mostly focused on managing the variability at the requirement level. Very few contributions address the variability at the architectural level despite its major importance. Starting from this observation, we propose, in this paper, an approach to reverse engineer the architecture of a set of product variants. Our goal is to identify the variability and dependencies among architectural-element variants at the architectural level. Our work relies on Formal Concept Analysis (FCA) to analyze the variability. To validate the proposed approach, we experimented on two families of open-source product variants; Mobile Media and Health Watcher. The results show that our approach is able to identify the architectural variability and the dependencies.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Clements, P., Northrop, L.: Software product lines: practices and patterns. Addison-Wesley, Reading (2002)
Pohl, K., Böckle, G., Van Der Linden, F.: Software product line engineering. Springer, Heidelberg (2005)
Tan, L., Lin, Y., Ye, H.: Quality-oriented software product line architecture design. Journal of Software Engineering & Applications 5(7), 472–476 (2012)
Rubin, J., Chechik, M.: Locating distinguishing features using diff sets. In: IEEE/ACM 27th Inter. Conf. on ASE, pp. 242–245 (2012)
She, S., Lotufo, R., Berger, T., Wasowski, A., Czarnecki, K.: Reverse engineering feature models. In: Proc. of 33rd ICSE, pp. 461–470 (2011)
Acher, M., Cleve, A., Collet, P., Merle, P., Duchien, L., Lahire, P.: Reverse engineering architectural feature models. In: Crnkovic, I., Gruhn, V., Book, M. (eds.) ECSA 2011. LNCS, vol. 6903, pp. 220–235. Springer, Heidelberg (2011)
Koschke, R., Frenzel, P., Breu, A.P., Angstmann, K.: Extending the reflexion method for consolidating software variants into product lines. Software Quality Journal 17(4), 331–366 (2009)
Kang, K.C., Kim, M., Lee, J.J., Kim, B.-K.: Feature-oriented re-engineering of legacy systems into product line assets - a case study. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 45–56. Springer, Heidelberg (2005)
Kebir, S., Seriai, A.D., Chardigny, S., Chaoui, A.: Quality-centric approach for software component identification from object-oriented code. In: Proc. of WICSA/ECSA, pp. 181–190 (2012)
Chardigny, S., Seriai, A., Oussalah, M., Tamzalit, D.: Extraction of component based architecture from object-oriented systems. In: Proc. of 7th WICSA, pp. 285–288 (2008)
Chardigny, S., Seriai, A., Oussalah, M., Tamzalit, D.: Search-based extraction of component-based architecture from object-oriented systems. In: Morrison, R., Balasubramaniam, D., Falkner, K. (eds.) ECSA 2008. LNCS, vol. 5292, pp. 322–325. Springer, Heidelberg (2008)
Ganter, B., Wille, R.: Formal concept analysis. Wissenschaftliche Zeitschrift-Technischen Universitat Dresden 47, 8–13 (1996)
Han, J., Kamber, M., Pei, J.: Data mining: concepts and techniques. Morgan Kaufmann (2006)
Yevtushenko, A.S.: System of data analysis “concept explorer”. In: Proc. of the 7th National Conf. on Artificial Intelligence (KII), vol. 79, pp. 127–134 (2000) (in Russian)
Hendrickson, S.A., van der Hoek, A.: Modeling product line architectures through change sets and relationships. In: Proc. of the 29th ICSE, pp. 189–198 (2007)
Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., et al.: Evolving software product lines with aspects. In: Proc. of 30th ICSE, pp. 261–270 (2008)
Ryssel, U., Ploennigs, J., Kabitzsch, K.: Extraction of feature models from formal contexts. In: Proc. of 15th SPLC, pp. 1–4 (2011)
Duszynski, S., Knodel, J., Becker, M.: Analyzing the source code of multiple software variants for reuse potential. In: Proc. of WCRE, pp. 303–307 (2011)
Shatnawi, A., Seriai, A.D.: Mining reusable software components from objectoriented source code of a set of similar software. In: IEEE 14th Inter. Conf. on Information Reuse and Integration (IRI), pp. 193–200 (2013)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Shatnawi, A., Seriai, A., Sahraoui, H. (2014). Recovering Architectural Variability of a Family of Product Variants. In: Schaefer, I., Stamelos, I. (eds) Software Reuse for Dynamic Systems in the Cloud and Beyond. ICSR 2015. Lecture Notes in Computer Science, vol 8919. Springer, Cham. https://doi.org/10.1007/978-3-319-14130-5_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-14130-5_2
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14129-9
Online ISBN: 978-3-319-14130-5
eBook Packages: Computer ScienceComputer Science (R0)