Abstract
Software reuse is a way to reduce costs and improve quality. However, in industry, the reuse of existing software artifacts is commonly done by ad hoc strategies such as clone-and-own. Clone-and-own leads to a set of system variants developed independently, despite of having similar parts. The maintenance of these independent variants is a difficult task, because of duplication and spread functionalities. One problem faced by developers and engineers is the lack of a global view of such variants, providing a better understanding of the actual state of the systems. In this paper we present an approach to discover the architecture of system variants using a search-based technique. Our approach identifies differences between models and uses these differences to generate candidate architectures. The goal is to find a candidate architecture most similar to a set of UML model variants. Our contribution is threefold: (i) we proposed an approach to discover model-based software architecture, (ii) we deal with the merging of multiple UML model variants; and (iii) our approach applies a search-based technique considering state-based merging of models. We evaluate our approach with four case studies and the results show that it is able to find good candidate architectures even when different features are spread among model variants.
S.R. Vergilio—This work was supported by the Brazilian Agencies CAPES: 7126/2014-00 and CNPq: 453678/2014-9 and 305358/2012-0.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Reengineering legacy applications into software product lines: A systematic mapping. Empirical Softw. Eng. 1–45 (2017)
Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Extracting variability-safe feature models from source code dependencies in system variants. In: Genetic and Evolutionary Computation Conference (GECCO), pp. 1303–1310. ACM (2015)
Debreceni, C., Ráth, I., Varró, D., Carlos, X., Mendialdua, X., Trujillo, S.: Automated model merge by design space exploration. In: Stevens, P., Wąsowski, A. (eds.) FASE 2016. LNCS, vol. 9633, pp. 104–121. Springer, Heidelberg (2016). doi:10.1007/978-3-662-49665-7_7
Dobrica, L., Niemela, E.: A survey on software architecture analysis methods. IEEE Trans. Softw. Eng. 28(7), 638–653 (2002)
Durillo, J.J., Nebro, A.J.: jMetal: A java framework for multi-objective optimization. Adv. Eng. Softw. 42, 760–771 (2011). http://jmetal.sourceforge.net/
Faust, D., Verhoef, C.: Software product line migration and deployment. Softw. Pract. Experience 33(10), 933–955 (2003)
Garcia, J., Ivkovic, I., Medvidovic, N.: A comparative analysis of software architecture recovery techniques. In: International Conference on Automated Software Engineering (ASE), pp. 486–496. IEEE (2013)
Goldberg, D.E., Deb, K., Clark, J.H.: Genetic algorithms, noise, and the sizing of populations. Complex Syst. 6, 333–362 (1992)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: Trends, techniques and applications. ACM Comput. Surv. 45(1), 1–61 (2012)
Hussain, I., Khanum, A., Abbasi, A.Q., Javed, M.Y.: A novel approach for software architecture recovery using particle swarm optimization. Int. Arab J. Inf. Technol. 12(1), 32–41 (2015)
Jeet, K., Dhir, R.: Software architecture recovery using genetic black hole algorithm. ACM SIGSOFT Softw. Eng. Notes 40(1), 1–5 (2015)
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 - CMU (1990)
Kessentini, M., Werda, W., Langer, P., Wimmer, M.: Search-based model merging. In: Genetic and Evolutionary Computation Conference, pp. 1453–1460 (2013)
Krueger, C.W.: Software reuse. ACM Comput. Surv. 24(2), 131–183 (1992)
Maazoun, J., Bouassida, N., Ben-Abdallah, H.: A bottom up SPL design method. In: 2014 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 309–316, January 2014
Mansoor, U., Kessentini, M., Langer, P., Wimmer, M., Bechikh, S., Deb, K.: Momm: Multi-objective model merging. J. Syst. Softw. 103, 423–439 (2015)
Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., Traon, Y.: Automating the extraction of model-based software product lines from model variants. In: International Conference on Automated Software Engineering (ASE), pp. 396–406 (2015)
Martinez, J., Ziadi, T., Klein, J., Traon, Y.: Identifying and visualising commonality and variability in model variants. In: Cabot, J., Rubin, J. (eds.) ECMFA 2014. LNCS, vol. 8569, pp. 117–131. Springer, Heidelberg (2014). doi:10.1007/978-3-319-09195-2_8
Pohl, K., Böckle, G., van Der Linden, F.J.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Heidelberg (2005)
Riva, C., Del Rosso, C.: Experiences with software product family evolution. In: International Workshop on Principles of Software Evolution, pp. 161–169 (2003)
Rubin, J., Chechik, M.: N-way model merging. In: 9th Joint Meeting on Foundations of Software Engineering (ESEC/FSE), pp. 301–311. ACM (2013)
Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: Eclipse Modeling Framework. Pearson Education, Boston (2008)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Assunção, W.K.G., Vergilio, S.R., Lopez-Herrejon, R.E. (2017). Discovering Software Architectures with Search-Based Merge of UML Model Variants. In: Botterweck, G., Werner, C. (eds) Mastering Scale and Complexity in Software Reuse. ICSR 2017. Lecture Notes in Computer Science(), vol 10221. Springer, Cham. https://doi.org/10.1007/978-3-319-56856-0_7
Download citation
DOI: https://doi.org/10.1007/978-3-319-56856-0_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-56855-3
Online ISBN: 978-3-319-56856-0
eBook Packages: Computer ScienceComputer Science (R0)