Abstract
Changes are inevitable in software due to technology advancements, and changes in business requirements. Making changes in the software by insertion, deletion or modification of new code may lead to malfunctioning of the old code. Hence, there is a need for a priori analysis to ensure and capture these types of changes to run the software smoothly. Making changes in the software while it is in use is called dynamic evolution. Due to the lack of formal modeling and verification, this dynamic evolution process of software systems has not become prominent. Hence, we used the bigraphical reactive system (BRS) technique to ensure that changes do not break the software functionality (adversely affect the system). BRS provides a powerful framework for modeling, analyzing, and verifying the dynamic evolution of software systems, resulting in ensuring the reliability and correctness of evolving software system. In this paper, we proposed a formal method technique for modeling and verifying the dynamic evolution process (changing user requirements at run time) using the BRS. We used a bigraph to model software architectures and described the evolution rules for supporting the dynamic changes of the software system. Finally, we have used the BigMC model checker tool to validate this model with its properties and provide associated verification procedures.
Similar content being viewed by others
References
Aoyama, M., et al.: New age of software development: how component-based software engineering changes the way of software development. In: International Workshop on CBSE 1998, 1–5 (1998)
Mahmood, S., Lai, R., Kim, Y.S.: Survey of component-based software development. IET Softw. 1(2), 57–66 (2007)
Crnkovic, I.: Component-based software engineering-new challenges in software development. Softw. Focus 2(4), 127–133 (2001)
Vitharana, P.: Risks and challenges of component-based software development. Commun. ACM 46(8), 67–72 (2003)
Breivold, H.P., Crnkovic, I., Eriksson, P.J.: Analyzing software evolvability. In: 2008 32nd Annual IEEE International Computer Software and Applications Conference, IEEE, (2008), pp. 327–330
Xie, H., Yang, J., Chang, C.K., Liu, L.: A statistical analysis approach to predict user’s changing requirements for software service evolution. J. Syst. Softw. 132, 147–164 (2017)
Lee, Y., Yang, J., Chang, K.H.: Metrics and evolution in open source software. In: Seventh International Conference on Quality Software (QSIC 2007), IEEE, pp. 191–197, (2007)
Neamtiu, I., Xie, G., Chen, J.: Towards a better understanding of software evolution: an empirical study on open-source software. J. Softw. Evol. Process 25(3), 193–218 (2013)
Wang, Q., Shen, J., Wang, X., Mei, H.: A component-based approach to online software evolution. J. Softw. Maint. Evol. Res. Pract. 18(3), 181–205 (2006)
Vale, T., Crnkovic, I., De Almeida, E.S., Neto, P.A.D.M.S., Cavalcanti, Y.C., de Lemos Meira, S.R.: Twenty-eight years of component-based software engineering. J. Syst. Softw. 111, 128–148 (2016)
Côté, I., Heisel, M., Souquières, J.: On the evolution of component-based software. In: Szmuc, T., Szpyrka, M., Zendulka, J. (eds.) Advances in Software Engineering Techniques, pp. 54–69. Springer Berlin Heidelberg, Berlin (2012)
Godfrey, M.W., German, D.M.: The past, present, and future of software evolution. In: 2008 Frontiers of Software Maintenance, IEEE, pp. 129–138, (2008)
Carreño, L.V.G., Winbladh, K.: Analysis of user comments: an approach for software requirements evolution. In: 2013 35th international conference on software engineering (ICSE), IEEE, pp. 582–591, (2013)
Goknil, A., Kurtev, I., Van Den Berg, K., Spijkerman, W.: Change impact analysis for requirements: a metamodeling approach. Inf. Softw. Technol. 56(8), 950–972 (2014)
Zhang, H., Zhang, L., Xu, Q., Urtado, C., Vauttier, S., Huchard, M.: A formalized architecture-centric evolution process for component-based software system. In: Proceeding of the 11th World Congress on Intelligent Control and Automation, IEEE, pp. 3461–3466, (2014)
Rostami, K., Stammel, J., Heinrich, R., Reussner, R.: Architecture-based assessment and planning of change requests. In: Proceedings of the 11th International ACM SIGSOFT Conference on Quality of Software Architectures, pp. 21–30, (2015)
Le, D. M., Behnamghader, P., Garcia, J., Link, D., Shahbazian, A., Medvidovic, N.: An empirical study of architectural change in open-source software systems. In: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, IEEE, pp. 235–245, (2015)
Jabangwe, R., Börstler, J., Petersen, K.: Handover of managerial responsibilities in global software development: a case study of source code evolution and quality. Softw. Qual. J. 23, 539–566 (2015)
Barry, E.J., Kemerer, C.F., Slaughter, S.A.: How software process automation affects software evolution: a longitudinal empirical analysis. J. Softw. Maint. Evol. Res. Pract. 19(1), 1–31 (2007)
Müller, H., Villegas, N.: Runtime evolution of highly dynamic software. In: Mens, T., Serebrenik, A., Cleve, A. (eds), Evolving Software Systems. Springer, Berlin, Heidelberg, pp. 229–264 (2013)
Sinha, J., Ravulakollu, K.K., Kant, S.: Software development approaches significant for runtime software evolution: a review. In: 2018 International Conference on Advances in Computing, Communication Control and Networking (ICACCCN), IEEE, pp. 541–545, (2018)
Mokni, A., Urtado, C., Vauttier, S., Huchard, M., Zhang, H.Y.: A formal approach for managing component-based architecture evolution. Sci. Comput. Program. 127, 24–49 (2016)
Mens, T., Demeyer, S., Mens, T.: Introduction and Roadmap: History and Challenges of Software Evolution. Springer (2008)
Xu, H., Song, W., Liu, Z.: A specification and detection approach for parallel evolution conflicts of software architectures. Int. J. Softw. Eng. Knowl. Eng. 27(03), 373–398 (2017)
Lu, C.-Z., Zeng, G.-S., Liu, W.-J.: Software evolution rules with condition constrains to support component type matching based on bigraph. Int. J. Softw. Eng. Knowl. Eng. 28(10), 1429–1453 (2018)
Milner, R.: Bigraphical reactive systems. In: CONCUR 2001-Concurrency Theory: 12th International Conference Aalborg, Denmark, August 20–25, 2001 Proceedings 12, Springer, pp. 16–35, (2001)
Milner, R.: Bigraphs and their algebra. Electron. Notes Theoret. Comput. Sci. 209, 5–19 (2008)
Perrone, G., Debois, S., Hildebrandt, T.T.: A model checker for bigraphs. In: Proceedings of the 27th Annual ACM Symposium on Applied Computing, pp. 1320–1325, (2012)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Harlow (1998)
Milner, R.: The Space and Motion of Communicating Agents. Cambridge University Press (2009)
Lehman, M.M., Ramil, J.F.: Software evolution-background, theory, practice. Inf. Process. Lett. 88(1–2), 33–44 (2003)
Herraiz, I., Rodriguez, D., Robles, G., Gonzalez-Barahona, J.M.: The evolution of the laws of software evolution: a discussion based on a systematic literature review. ACM Comput. Surv. (CSUR) 46(2), 1–28 (2013)
Franco, E.F., Hirama, K., Armenia, S., dos Santos, J.R.: A systems interpretation of the software evolution laws and their impact on technical debt management and software maintainability. Softw. Qual. J. 31(1), 179–209 (2023)
Ebad, S.A.: Towards measuring software requirements volatility: a retrospective analysis. Malays. J. Comput. Sci. 30(2), 99–116 (2017)
Agarwal, J., Gupta, S., Pai, A.: Software metrics for assessing reusability of component based software system. In: 2023 13th International Conference on Cloud Computing, Data Science & Engineering (Confluence), IEEE, pp. 287–291, (2023)
Miladi, M. N., Jmaiel, M., Kacem, M. H.: A uml profile and a fujaba plugin for modelling dynamic software architectures. In: Proc. of the Workshop on Model-Driven Software Evolution. Washington: IEEE Press, Vol. 26, (2007)
Tahara, Y., Ohsuga, A., Honiden, S.: Formal verification of dynamic evolution processes of uml models using aspects. In: 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), IEEE, pp. 152–162, (2017)
Mokni, A., Huchard, M., Urtado, C., Vauttier, S., Zhang, H.: Formal rules for reliable component-based architecture evolution. In: Formal Aspects of Component Software: 11th International Symposium, FACS 2014, Bertinoro, Italy, September 10-12, 2014, Revised Selected Papers 11, Springer, pp. 127–142, (2015)
Williams, B.J., Carver, J.C.: Characterizing software architecture changes: a systematic review. Inf. Softw. Technol. 52(1), 31–51 (2010)
Xu, H., Zeng, G.: Modeling and verifying composite dynamic evolution of software architectures using hypergraph grammars. Int. J. Softw. Eng. Knowl. Eng. 23(06), 775–799 (2013)
Lounas, R., Mezghiche, M., Lanet, J.-L.: Formal methods in dynamic software updating: a survey. Int. J. Crit. Comput.-Based Syst. 9(1–2), 76–114 (2019)
Lu, C.-Z., Zeng, G.-S., Xie, Y.-J.: Bigraph specification of software architecture and evolution analysis in mobile computing environment. Futur. Gener. Comput. Syst. 108, 662–676 (2020)
Sahli, H., Belala, F., Bouanaka, C.: Formal verification of cloud systems elasticity. Int. J. Crit. Comput.-Based Syst. 6(4), 364–384 (2016)
Yadav, M.P., Pal, N., Yadav, D.K.: Verification of cloud system elasticity using bigmc. Int. J. Syst. Assur. Eng. Manag. 13(5), 2208–2220 (2022)
Seghiri, A., Belala, F., Hameurlain, N.: A formal language for modelling and verifying systems-of-systems software architectures. Int. J. Syst. Serv.-Orient. Eng. (IJSSOE) 12(1), 1–17 (2022)
Chang, Z., Mao, X., Qi, Z.: Formal analysis of architectural policies of self-adaptive software by bigraph. In: 2008 The 9th International Conference for Young Computer Scientists, IEEE, pp. 118–123, (2008)
Wachholder, D., Stary, C.: Enabling emergent behavior in systems-of-systems through bigraph-based modeling. In: 2015 10th System of Systems Engineering Conference (SoSE), IEEE, pp. 334–339, (2015)
Kamel, O., Chaoui, A., Gharzouli, M.: Cloud service composition modeling using bigraphical reactive systems. In: Proceedings of the 21st International Database Engineering & Applications Symposium, pp. 40–48, (2017)
Funding
This research received no specific grant from any funding agency.
Author information
Authors and Affiliations
Contributions
All authors read and approved the final manuscript.
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no Conflict of interest.
Informed consent:
Research does not involve humans.
Ethical statement:
This manuscript is the authors’ own original work, which has not been previously published elsewhere.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendices
Appendix
Appendix A. Use cases
The use cases is present in the following github repository:
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Pal, N., Yadav, D.K. Modeling and verification of software evolution using bigraphical reactive system. Cluster Comput 27, 12983–13003 (2024). https://doi.org/10.1007/s10586-024-04597-y
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10586-024-04597-y