ER 2016: Conceptual Modeling pp 98-112 | Cite as
An Ontological Approach for Identifying Software Variants: Specialization and Template Instantiation
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 EngineeringReferences
- 1.Anastasopoulos, M., Gracek, C.: Implementing product line variabilities. ACM SIGSOFT Softw. Eng. Notes 26(3), 109–117 (2001)CrossRefGoogle Scholar
- 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.Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. SEI Series in Software Engineering, 3rd edn. Addison Wesley, Boston (2012)Google Scholar
- 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.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.Bunge, M.: Treatise on Basic Philosophy. Ontology I: The Furniture of the World, vol. 3. Reidel, Boston, Massachusetts (1977)CrossRefMATHGoogle Scholar
- 7.Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2001)Google Scholar
- 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.Faust, D., Verhoef, C.: Software product line migration and deployment. J. Softw. Pract. Exp. 30(10), 933–955 (2003)CrossRefGoogle Scholar
- 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.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.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.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.Kurita, T.: An efficient agglomerative clustering algorithm using a heap. Pattern Recogn. 24(3), 205–209 (1991)MathSciNetCrossRefGoogle Scholar
- 15.Krinke, J.: Identifying similar code with program dependence graphs. In: 8th Working Conference on Reverse Engineering, pp. 301–309 (2001)Google Scholar
- 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.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.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.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.Pohl, K., Böckle, G., van der Linden, F.: Software Product-Line Engineering: Foundations, Principles, and Techniques. Springer, Heidelberg (2005)CrossRefMATHGoogle Scholar
- 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.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.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.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.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.Wand, Y., Weber, R.: An ontological model of an information system. IEEE Trans. Softw. Eng. 16, 1282–1292 (1990)CrossRefGoogle Scholar
- 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.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