ER 2016: Conceptual Modeling pp 98-112 | Cite as

An Ontological Approach for Identifying Software Variants: Specialization and Template Instantiation

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9974)

Abstract

Software is a crucial component of many products and often is a product in itself. Software artifacts are typically developed for particular needs. Often, identifying software variants is important for increasing reuse, reducing time and costs of development and maintenance, increasing quality and reliability, and improving productivity. We propose a method for utilizing variability mechanisms of Software Product Line Engineering (SPLE) to allow identification of variants of software artifacts. The method is based on an ontological framework for representing variability of behaviors. We demonstrate the feasibility of the method on two common variability mechanisms – specialization and template instantiation. The method has been implemented using reverse engineered code. This provides a proof-of-concept of its feasibility.

Keywords

Variability Reuse Software Product Line Engineering 

References

  1. 1.
    Anastasopoulos, M., Gracek, C.: Implementing product line variabilities. ACM SIGSOFT Softw. Eng. Notes 26(3), 109–117 (2001)CrossRefGoogle Scholar
  2. 2.
    Anguswamy, R., Frakes, W.B.: Reuse design principles. In: International Workshop on Designing Reusable Components and Measuring Reusability (DReMeR 2013) (2013)‏Google Scholar
  3. 3.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. SEI Series in Software Engineering, 3rd edn. Addison Wesley, Boston (2012)Google Scholar
  4. 4.
    Berger, T., Rublack, R., Nair, D., Atlee, J.M., Becker, M., Czarnecki, K., Wasowski, A.: A survey of variability modeling in industrial practice. In: Proceedings of the 7th International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS 2013), pp. 7:1–7:8 (2013)Google Scholar
  5. 5.
    Brocke, J.: Design principles for reference modelling - reusing information models by means of aggregation, specialisation, instantiation, and analogy. In: Fettke, P., Loos, P. (eds.) Reference Modeling for Business Systems Analysis, pp. 47–75. Idea Group, Hershey (2007)CrossRefGoogle Scholar
  6. 6.
    Bunge, M.: Treatise on Basic Philosophy. Ontology I: The Furniture of the World, vol. 3. Reidel, Boston, Massachusetts (1977)CrossRefMATHGoogle Scholar
  7. 7.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2001)Google Scholar
  8. 8.
    Chen, K., Zhang, W., Zhao, H., Mei, H.: An approach to constructing feature models based on requirements clustering. In: 13th IEEE International Conference on Requirements Engineering, pp. 31–40 (2005)Google Scholar
  9. 9.
    Faust, D., Verhoef, C.: Software product line migration and deployment. J. Softw. Pract. Exp. 30(10), 933–955 (2003)CrossRefGoogle Scholar
  10. 10.
    Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture. Process and Organization for Business Success. ACM/Addison-Wesley, New York (1997)Google Scholar
  11. 11.
    Itzik, N., Reinhartz-Berger, I., Wand, Y.: Variability analysis of requirements: considering behavioral differences and reflecting stakeholders perspectives. IEEE Trans. Softw. Eng. 42, 7687–7706 (2016)CrossRefGoogle Scholar
  12. 12.
    Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Technical report, SEI (1990)Google Scholar
  13. 13.
    Kapser, C.J., Godfrey, M.W.: “Cloning Considered Harmful” considered harmful: patterns of cloning in software. Empir. Softw. Eng. 13, 645–692 (2008)CrossRefGoogle Scholar
  14. 14.
    Kurita, T.: An efficient agglomerative clustering algorithm using a heap. Pattern Recogn. 24(3), 205–209 (1991)MathSciNetCrossRefGoogle Scholar
  15. 15.
    Krinke, J.: Identifying similar code with program dependence graphs. In: 8th Working Conference on Reverse Engineering, pp. 301–309 (2001)Google Scholar
  16. 16.
    Mende, T., Koschke, R., Beckwermert, F.: An evaluation of code similarity identification for the grow-and-prune model. J. Softw. Maint. Evol. Res. Pract. 21(2), 143–169 (2009)CrossRefGoogle Scholar
  17. 17.
    Mihalcea, R., Corley, C., Strapparava, C.: Corpus-based and knowledge-based measures of text semantic similarity. In: American Association for Artificial Intelligence (AAAI 2006), pp. 775–780 (2006)Google Scholar
  18. 18.
    Mondal, M., Roy, C.K., Schneider, K.A.: Automatic identification of important clones for refactoring and tracking. In: 14th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2014), pp. 11–20 (2014)Google Scholar
  19. 19.
    Niu, N., Easterbrook, S.: Extracting and modeling product line functional requirements. In: International Conference on Requirements Engineering (RE 2008), pp. 155–164 (2008)Google Scholar
  20. 20.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product-Line Engineering: Foundations, Principles, and Techniques. Springer, Heidelberg (2005)CrossRefMATHGoogle Scholar
  21. 21.
    Reinhartz-Berger, I., Sturm, A., Wand, Y.: External variability of software: classification and ontological foundations. In: Jeusfeld, M., Delcambre, L., Ling, T.-W. (eds.) ER 2011. LNCS, vol. 6998, pp. 275–289. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  22. 22.
    Reinhartz-Berger, I., Zamansky, A., Wand, Y.: Taming software variability: ontological foundations of variability mechanisms. In: Johannesson, P., et al. (eds.) ER 2015. LNCS, vol. 9381, pp. 399–406. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-25264-3_29 CrossRefGoogle Scholar
  23. 23.
    Roy, C.K., Cordy, J.R.: Scenario-based comparison of clone detection techniques. In: The 16th IEEE International Conference on Program Comprehension (ICPC 2008), pp. 153–162 (2008)Google Scholar
  24. 24.
    Rubin, J., Czarnecki, K., Chechik, M.: Managing cloned variants: a framework and experience. In: 17th ACM International Software Product Line Conference, pp. 101–110 (2013)Google Scholar
  25. 25.
    Ryssel, U., Ploennigs, J., Kabitzsch, K.: Automatic variation-point identification in function-block-based models. In: 9th International Conference on Generative Programming and Component Engineering (GPCE 2010), pp. 23–32 (2010)Google Scholar
  26. 26.
    Wand, Y., Weber, R.: An ontological model of an information system. IEEE Trans. Softw. Eng. 16, 1282–1292 (1990)CrossRefGoogle Scholar
  27. 27.
    Weston, N., Chitchyan, R., Rashid, A.: A framework for constructing semantically composable feature models from natural language requirements. In: 13th International Software Product Line Conference, pp. 211–220 (2009)Google Scholar
  28. 28.
    Yoshimura, K., Narisawa, F., Hashimoto, K., Kikuno, T.: Factor analysis based approach for detecting product line variability from change history. In: 5th Working Conference on Mining Software Repositories, pp. 11–18 (2008)Google Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Iris Reinhartz-Berger
    • 1
  • Anna Zamansky
    • 1
  • Yair Wand
    • 2
  1. 1.Department of Information SystemsUniversity of HaifaHaifaIsrael
  2. 2.Sauder School of BusinessUniversity of British ColumbiaVancouverCanada

Personalised recommendations