Abstract
In order to verify the correctness of Java programs, a model checking approach that accurately verifies the properties of Java is advocated. To this end, an algorithm is defined to use (Java Property Specification Language, JPSL) to accurately describe the properties of Java programs to be verified and convert them into automata, then use the On-The-Fly strategy to design algorithm to verify the object-oriented abstract syntax tree constructed by Java programs, which in turn can be verified with the model checking tool JMC. In addition, an example is given to illustrate how the method works. This method makes full use of the precise constraint ability of JPSL properties on the property range and the advantages of the On-The-Fly strategy.
This research is supported by the Key Research and Development Projects of Shaanxi Province (No. 2020GY-210), and the Equipment Pre-research Key Laboratory Foundation (No. JZX7Y202001SY000901).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Ammann, P., Offutt, J.: Introduction to software testing. Cambridge University Press (2008)
Shu, X., Duan, Z., Hongwei, D.: A decision procedure and complete axiomatization for projection temporal logic. Theor. Comput. Sci. 819, 50–84 (2020)
Wolper, P.: The Meaning of “Formal.” Int. J. Softw. Tools Technol. Transfer 1(1-2), 6–8 (1997)
Wing, J., Woodcock, J.: The first world congress on formal methods in the development of computing systems. Form Aspects Comput. 12, 145–146 (2000)
Dodani, M.: Formal methods for object-oriented software engineering. Ann. Softw. Eng. 2, 121–160 (1996)
Kammüller, F.: Formal modeling and analysis with humans in infrastructures for IoT health care systems. In: Tryfonas, T. (ed.) HAS 2017. LNCS, vol. 10292, pp. 339–352. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-58460-7_24
Clarke, E.M., Henzinger, T.A., Veith, H.: Introduction to model checking. In: Handbook of Model Checking, pp. 1–26. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8_1
Baier, C., Haverkort, B.R., Hermanns, H., et al.: Model-checking algorithms for continuous-time Markov chains. IEEE Trans. Software Eng. 29(06), 524–541 (2003)
Cui, J., Duan, Z., Tian, C., Hongwei, D.: A novel approach to modeling and verifying real-time systems for high reliability. IEEE Trans. Reliability 67(02), 481–493 (2018)
Probst, C.W., Kammüller, F., Hansen, R.R.: Formal modelling and analysis of socio-technical systems. Lect. Notes Comput. Sci. 9560, 54–73 (2015)
Liu, W.W., Song, F., Zhang, T.H.R., et al.: Verifying ReLU neural networks from a model checking perspective. J. Comput. Sci. Technol. 35, 1365–1381 (2020)
Li, X.: Research on technologies of model checking Java program with MSVL and JPSL, Master Thesis, Xi’an University of Posts and Telecommunications (2021)
Arnold, K., Gosling, J., Holmes, D.: Java programming language (4th Edition). Addison-Wesley Professional (2005)
Duan, Z., Tian, C., Zhang, N.: A canonical form based decision procedure and model checking approach for propositional projection temporal logic. Theoret. Comput. Sci. 609, 544–560 (2016)
Shu, X., Zhang, N.: An efficient decision procedure for propositional projection temporal logic. In: Du, D.-Z., Duan, Z., Tian, C. (eds.) COCOON 2019. LNCS, vol. 11653, pp. 503–515. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-26176-4_42
Shu, X., Luo, N., Wang, B., Wang, X., Zhao, L.: Model checking java programs with MSVL. In: Duan, Z., Liu, S., Tian, C., Nagoya, F. (eds.) SOFL+MSVL 2018. LNCS, vol. 11392, pp. 89–107. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-13651-2_6
Ben-Ari, M.: On-the-fly garbage collection: new algorithms inspired by program proofs. In: Nielsen, M., Schmidt, E.M. (eds.) ICALP 1982. LNCS, vol. 140, pp. 14–22. Springer, Heidelberg (1982). https://doi.org/10.1007/BFb0012753
Mcmillan, K.L.: Interpolants from Z3 proofs. In: 2011 International Conference on Formal Methods in Computer-aided Design (FMCAD) Inc, pp. 19–27 (2011)
Shu, X., Zhang, N., Wang, X., Zhao, L.: Efficient decision procedure for propositional projection temporal logic. Theor. Comput. Sci. 838, 1–16 (2020)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Shu, X., Li, Y., Gao, W. (2023). A JPSL Based Model Checking Approach for Java Programs. In: Liu, S., Duan, Z., Liu, A. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2022. Lecture Notes in Computer Science, vol 13854. Springer, Cham. https://doi.org/10.1007/978-3-031-29476-1_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-29476-1_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-29475-4
Online ISBN: 978-3-031-29476-1
eBook Packages: Computer ScienceComputer Science (R0)