[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to main content

Modeling and verification of software evolution using bigraphical reactive system

  • Published:
Cluster Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
£29.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price includes VAT (United Kingdom)

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

References

  1. 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)

  2. Mahmood, S., Lai, R., Kim, Y.S.: Survey of component-based software development. IET Softw. 1(2), 57–66 (2007)

    Article  Google Scholar 

  3. Crnkovic, I.: Component-based software engineering-new challenges in software development. Softw. Focus 2(4), 127–133 (2001)

    Article  Google Scholar 

  4. Vitharana, P.: Risks and challenges of component-based software development. Commun. ACM 46(8), 67–72 (2003)

    Article  Google Scholar 

  5. 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

  6. 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)

    Article  Google Scholar 

  7. 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)

  8. 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)

    Article  Google Scholar 

  9. 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)

    Article  Google Scholar 

  10. 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)

    Article  Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. 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)

  13. 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)

  14. 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)

    Article  Google Scholar 

  15. 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)

  16. 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)

  17. 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)

  18. 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)

    Article  Google Scholar 

  19. 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)

    Article  Google Scholar 

  20. 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)

    Google Scholar 

  21. 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)

  22. 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)

    Article  Google Scholar 

  23. Mens, T., Demeyer, S., Mens, T.: Introduction and Roadmap: History and Challenges of Software Evolution. Springer (2008)

    Google Scholar 

  24. 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)

    Article  Google Scholar 

  25. 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)

    Article  Google Scholar 

  26. 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)

  27. Milner, R.: Bigraphs and their algebra. Electron. Notes Theoret. Comput. Sci. 209, 5–19 (2008)

    Article  MathSciNet  Google Scholar 

  28. 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)

  29. Szyperski, C.: Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Harlow (1998)

    Google Scholar 

  30. Milner, R.: The Space and Motion of Communicating Agents. Cambridge University Press (2009)

    Book  Google Scholar 

  31. Lehman, M.M., Ramil, J.F.: Software evolution-background, theory, practice. Inf. Process. Lett. 88(1–2), 33–44 (2003)

    Article  Google Scholar 

  32. 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)

    Article  Google Scholar 

  33. 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)

    Article  Google Scholar 

  34. Ebad, S.A.: Towards measuring software requirements volatility: a retrospective analysis. Malays. J. Comput. Sci. 30(2), 99–116 (2017)

    Article  Google Scholar 

  35. 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)

  36. 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)

  37. 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)

  38. 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)

  39. Williams, B.J., Carver, J.C.: Characterizing software architecture changes: a systematic review. Inf. Softw. Technol. 52(1), 31–51 (2010)

    Article  Google Scholar 

  40. 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)

    Article  Google Scholar 

  41. 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)

    Article  Google Scholar 

  42. 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)

    Article  Google Scholar 

  43. Sahli, H., Belala, F., Bouanaka, C.: Formal verification of cloud systems elasticity. Int. J. Crit. Comput.-Based Syst. 6(4), 364–384 (2016)

    Article  Google Scholar 

  44. 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)

    Article  Google Scholar 

  45. 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)

    Article  Google Scholar 

  46. 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)

  47. 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)

  48. 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)

Download references

Funding

This research received no specific grant from any funding agency.

Author information

Authors and Affiliations

Authors

Contributions

All authors read and approved the final manuscript.

Corresponding author

Correspondence to Nisha Pal.

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:

https://github.com/Nisha-pal27/ML_Use_Cases.

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-024-04597-y

Keywords