Recovering Architectural Variability of a Family of Product Variants

  • Anas Shatnawi
  • Abdelhak Seriai
  • Houari Sahraoui
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8919)


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.


Product line architecture architecture variability architecture recovery product variants reverse engineering source code object-oriented 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Clements, P., Northrop, L.: Software product lines: practices and patterns. Addison-Wesley, Reading (2002)Google Scholar
  2. 2.
    Pohl, K., Böckle, G., Van Der Linden, F.: Software product line engineering. Springer, Heidelberg (2005)CrossRefzbMATHGoogle Scholar
  3. 3.
    Tan, L., Lin, Y., Ye, H.: Quality-oriented software product line architecture design. Journal of Software Engineering & Applications 5(7), 472–476 (2012)CrossRefGoogle Scholar
  4. 4.
    Rubin, J., Chechik, M.: Locating distinguishing features using diff sets. In: IEEE/ACM 27th Inter. Conf. on ASE, pp. 242–245 (2012)Google Scholar
  5. 5.
    She, S., Lotufo, R., Berger, T., Wasowski, A., Czarnecki, K.: Reverse engineering feature models. In: Proc. of 33rd ICSE, pp. 461–470 (2011)Google Scholar
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    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)CrossRefGoogle Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    Ganter, B., Wille, R.: Formal concept analysis. Wissenschaftliche Zeitschrift-Technischen Universitat Dresden 47, 8–13 (1996)Google Scholar
  13. 13.
    Han, J., Kamber, M., Pei, J.: Data mining: concepts and techniques. Morgan Kaufmann (2006)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    Ryssel, U., Ploennigs, J., Kabitzsch, K.: Extraction of feature models from formal contexts. In: Proc. of 15th SPLC, pp. 1–4 (2011)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    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)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Anas Shatnawi
    • 1
  • Abdelhak Seriai
    • 1
  • Houari Sahraoui
    • 2
  1. 1.UMR CNRS 5506, LIRMMUniversity of Montpellier IIMontpellierFrance
  2. 2.DIRO, University of MontrealMontrealCanada

Personalised recommendations