Abstract
Software maintenance is becoming more challenging with the increased complexity of the software and the frequently applied modifications. To manage this complexity, systems development is headed towards Model-driven engineering (MDE) and search-based software engineering (SBSE). Additionally, prior to applying a change to these complex systems, change impact analysis is usually performed in order to determine the scope of the change, its feasibility, and the time and resources required to implement the change. The bigger the scope, the riskier the change is on the system. In this paper, we introduce a set of transformation rules for Extended Finite State Machine (EFSM) models of state-based systems. These transformation rules can be used as the basis for search-based model optimization in order to reduce the average impact of a potential change applied to an EFSM model. Assuming that Model-driven development is adopted for the implementation of a state-based system, reducing the change impact at the model level will lead to reducing the impact at the system level. An exploratory study is performed to measure the impact reduction for a given EFSM model when the transformation rules are applied by a search-based algorithm. The initial results show a promising usage of the transformation rules which can lead to a reduction of more than 50% of the initial average change impact of the model.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Tahat, L., Korel, B., Koutsogiannakis, G., Almasri, N.: State-based models in regression test suite prioritization. Soft. Qual. J. 25(3), 703–742 (2016)
Boussaïd, I., Siarry, P., Ahmed-Nacer, M.: A survey on search-based model-driven engineering. Autom. Softw. Eng. 24(1), 233–294 (2017)
Korel, B., Tahat, L., Vaysburg, B.: Model based regression test reduction using dependence analysis. In: Proceedings of the International IEEE Conference on Software Maintenance, pp. 214–223 (2002)
Korel, B., Tahat, L.: Understanding modification in state-based system. In: Proceeding of the 12th IEEE International Conference on Program Comprehension London, UK, pp. 246–250 (2004)
Tahat, L., Korel, B., Hartman, M., Ural, H.: Regression test suite prioritization using system models. Soft. Test. Ver. Rel. (STRV) 22(7), 481–506 (2011)
Almasri, N., Tahat, L.: Towards automatically quantifying the impact of a change in systems. Softw. Qual. J. 25(3), 601–640 (2016)
Williams, J.R., Paige, R.F., Polack, F.A.C.: Searching for model migration strategies. In: Proceedings of the 6th International Workshop Models and Evolution, pp. 39–44. ACM, New York (2012)
Bohner, S.A., Arnold, R.S.: Software Change Impact Analysis. IEEE Computer Society Press (1996)
Lehnert, S.: A review of software change impact analysis. Ilmenau University of Technology, Technical report (2011)
Harman, M., Jones, B.F.: Search-based soft. Eng. Inf. Soft. Tech. 43(14), 833–839 (2001)
O’Keeffe, M., Cinnéide, M.Ó.: Search-based refactoring: an empirical study. J. Softw. Maint. Evol. 20(5), 345–364 (2008)
Favre, J.: Towards a basic theory to model driven engineering. In: Proceedings of the UML 2004 International Workshop on Software Model Engineering (2004)
Mens, T., Van Gorp, P.: A taxonomy of model transformation. Electron. Notes Theory Comput. Sci. 152(1), 125–142 (2006)
Czarnecki, K., Helsen, S.: Classification of model transformation approaches. In: Proceedings of the 2nd OOPSLA Workshop on Generative Techniques in the Context of MDA (2003)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)
Mkaouer, M.W., Kessentini, M., Bechikh, S., Ó Cinnéide, M.: A robust multi-objective approach for software refactoring under uncertainty. In: Le Goues, C., Yoo, S. (eds.) SSBSE 2014. LNCS, vol. 8636, pp. 168–183. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-09940-8_12
Räihä, O.: A survey on search-based software design. Comput. Sci. Rev. 4(4), 203–249 (2010)
Misbhauddin, M., Alshayeb, M.: UML model refactoring: a systematic literature reviews. Empir. Softw. Eng. 20(1), 206–251 (2015)
Devroey, X., Perrouin, G., Legay, A., Cordy, M., Schobbens, P.-Y., Heymans, P.: Coverage criteria for behavioural testing of software product lines. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014. LNCS, vol. 8802, pp. 336–350. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45234-9_24
Bendall, G., Margot, F.: Greedy type resistance of combinatorial problems. Discret. Optim. 3, 288–298 (2006)
Adenis, P., Mukherjee, K., Ray, A.: State splitting and state merging in probabilistic finite state automata. In: IEEE American Control Conference, pp. 5145–5150 (2011)
Lu, G., Miao, H.: An approach to generating test data for EFSM paths considering condition coverage. Electron. Notes Theor. Comput. Sci. 309, 13–29 (2014)
Kalaji, A., Hierons, R., Swift, S.: An integrated search-based approach for automatic testing from extended finite state machine models. Info. Soft. Tech. 53(12), 1297–1318 (2011)
Fleck, M., Troya, J., Kessentini, M., Wimmer, M., Alkhazi, B.: Model transformation modularization as a many-objective optimization problem. IEEE Trans. Softw. Eng. 43(11), 1009–1032 (2017)
Acknowledgments
This work is supported by Kuwait Foundation for Advancement of Science (KFAS), Project number: P116-18QS-01.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Korel, B., Almasri, N., Tahat, L. (2018). Towards Minimizing the Impact of Changes Using Search-Based Approach. In: Colanzi, T., McMinn, P. (eds) Search-Based Software Engineering. SSBSE 2018. Lecture Notes in Computer Science(), vol 11036. Springer, Cham. https://doi.org/10.1007/978-3-319-99241-9_14
Download citation
DOI: https://doi.org/10.1007/978-3-319-99241-9_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-99240-2
Online ISBN: 978-3-319-99241-9
eBook Packages: Computer ScienceComputer Science (R0)