Abstract
The method of refinement of object-oriented and component-based systems (rCOS) has been developed based on the Unifying Theories of Programming (UTP) of Tony Hoare and Jifeng He. It is influenced by the doctrine of institutions, espoused by Joseph Goguen and Rod Burstall, for linking specification languages and verification techniques to support model-driven development of software systems. The research on rCOS has produced a body of knowledge and techniques, including the formal use of the Unified Modelling Language (UML), a theory of semantics and refinement of object-oriented programs, a theory of semantics and refinement of the component-based architecture of software systems, and prototypes of model-driven tools. These have been published in a number of papers and embodied in several lecture notes taught at many classes and training schools. In this Festschrift paper, I reflect on the research in the development of rCOS by giving a summary of the results with discussions on the fundamental ideas, the way it has been developed, its current status, and where it may take us in the future.
Supported by the Chinese National NSF grant (No. 62032019) and the Southwest University Research Development grant (No. SWU116007).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
More mathematically, the decoration \('\) is a bijective mapping from X to \(X'\).
- 2.
On terminologies, variables, values, operations and operators are included in the alphabet of a formal logic system; and they are included in the signature in the theory of institutions.
- 3.
Thanks to Cliff Jones for his support. He was our referee who we were allowed to recommend in the application.
- 4.
Xiaoshan was a mutual friend and close collaborator of Jifeng and me at the University of Macao and, sadly, passed away too young a few years ago.
- 5.
There was even a “Rigorous UML Group”, although its members were not necessarily from the formal method community.
- 6.
What a nice coincidence it is that there are 80 references in this paper to celebrate Jifeng’s 80th birthday.
References
Abrial, J.R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)
Abrial, J.R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2010)
Back, R.J.R., von Wright, J.: Trace refinement of action systems. In: Jonsson, B., Parrow, J. (eds.) CONCUR 1994. LNCS, vol. 836, pp. 367–384. Springer, Heidelberg (1994). https://doi.org/10.1007/978-3-540-48654-1_28
Baeten, J.C.M., Bravetti, M.: A generic process algebra. In: Algebraic Process Calculi: The First Twenty Five Years and Beyond. BRICS Notes Series NS-05-3 (2005)
Brooks, F.P.: Learn the hard way - a history 1845–1980 of software engineering. In: Keynote at 40th International Conference on Software Engineering (ICSE 2018), Gothenburg, Sweden, 27 May–3 June 2018 (2018). https://www.icse2018.org
Butler, R.W.: What is formal methods? (2001). https://shemesh.larc.nasa.gov/fm/fm-what.html
Chen, X., He, J., Liu, Z., Zhan, N.: A model of component-based programming. In: Arbab, F., Sirjani, M. (eds.) FSEN 2007. LNCS, vol. 4767, pp. 191–206. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-75698-9_13
Chen, X., Liu, Z., Mencl, V.: Separation of concerns and consistent integration in requirements modelling. In: van Leeuwen, J., Italiano, G.F., van der Hoek, W., Meinel, C., Sack, H., Plášil, F. (eds.) SOFSEM 2007. LNCS, vol. 4362, pp. 819–831. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-69507-3_71
Chen, Z., Li, X., Liu, Z., Stolz, V., Yang, L.: Harnessing rCOS for tool support—the CoCoME experience. In: Jones, C.B., Liu, Z., Woodcock, J. (eds.) Formal Methods and Hybrid Real-Time Systems. LNCS, vol. 4700, pp. 83–114. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-75221-9_5
Chen, Z., Liu, Z., Ravn, A.P., Stolz, V., Zhan, N.: Refinement and verification in component-based model driven design. Sci. Comput. Program. 74(4), 168–196 (2009)
Chen, Z., Liu, Z., Stolz, V., Yang, L., Ravn, A.P.: A refinement driven component-based design. In: 12th International Conference on Engineering of Complex Computer Systems (ICECCS 2007), pp. 277–289. IEEE Computer Society (2007)
De Alfaro, L., Henzinger, T.: Interface automata. ACM SIGSOFT Softw. Eng. Notes 26(5), 109–120 (2001)
Dong, R., Zhan, N., Zhao, L.: An interface model of software components. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) ICTAC 2013. LNCS, vol. 8049, pp. 159–176. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39718-9_10
Faitelson, D., Tyszberowicz, S.S.: UML diagram refinement (focusing on class- and use case diagrams). In: Uchitel, S., Orso, A., Robillard, M.P. (eds.) Proceedings of the 39th International Conference on Software Engineering, ICSE, Buenos Aires, Argentina, pp. 735–745. IEEE/ACM (2017). https://doi.org/10.1109/ICSE.2017.73
Floyd, R.W.: Assigning meanings to programs. Proc. Am. Math. Soc. Symposia Appl. Math. 19, 19–31 (1967)
Fowler, M.: Refactoring - Improving the Design of Existing Code. Addison-Wesley, Menlo Park (1999)
Gierz, G., Hofmann, K.H., Keimel, K., Lawson, J.D., Mislove, M., Scott, D.S.: Continuous Lattices and Domains, Encyclopedia of Mathematics and its Applications, vol. 93. Cambridge University Press (2003)
Goguen, J., Burstall, R.: Institutions: abstract model theory for specification and programming. J. ACM 39(1), 95–146 (1992)
He, J.: Simulation and process refinement. Formal Aspect Comput. 1(3) (1989)
He, J.: From CSP to hybrid systems. In: Roscoe, A.W. (ed.) A Classical Mind: Essays in Honour of C. A. R. Hoare, chap. 11, pp. 171–189. International Series in Computer Science, Prentice Hall, New York (1994)
He, J., Qin, L.: A hybrid relational modelling language. In: Gibson-Robinson, T., Hopcroft, P., Lazić, R. (eds.) Concurrency, Security, and Puzzles. LNCS, vol. 10160, pp. 124–143. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-51046-0_7
Jifeng, H., Li, X., Liu, Z.: Component-based software engineering. In: Van Hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 70–95. Springer, Heidelberg (2005). https://doi.org/10.1007/11560647_5
He, J., Li, X., Liu, Z.: A theory of reactive components. Electron. Notes Theor. Comput. Sci. 160, 173–195 (2006)
He, J., Liu, Z., Li, X.: rCOS: a refinement calculus of object systems. Theor. Comput. Sci. 365(1–2), 109–142 (2006)
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Series in Computer Science, Prentice Hall, London (1998)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2006)
Jones, C.B.: Systematic Software Development using VDM. International Series in Computer Science, Prentice Hall, Englewood Cliffs (1990)
Lamport, L.: The temporal logic of actions. ACM Trans. Program. Lang. Syst. 16(3), 872–923 (1994)
Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley, Boston (2002)
Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 2nd edn. Prentice Hall, Upper Saddle River (2001)
Lee, E.A.: The past, present and future of cyber-physical systems: a focus on models. Sensors 15(3), 4837–4869 (2015)
Li, D., Li, X.S., Liu, Z.M., Stolz, V.: Automated transformations from UML behavior models to contracts. Sci. China Inf. Sci. 57(12), 1–17 (2014). https://doi.org/10.1007/s11432-014-5159-8
Li, D., Li, X., Stolz, V.: QVT-based model transformation using XSLT. SIGSOFT Softw. Eng. Notes 36, 1–8 (2011)
Li, X., Liu, Z., He, J.: Formal and use-case driven requirement analysis in UML. In: 25th International Computer Software and Applications Conference (COMPSAC 2001), Invigorating Software Development, Chicago, IL, USA, 8–12 October 2001, pp. 215–224 (2001)
Li, X., Liu, Z., He, J.: A formal semantics of UML sequence diagram. In: 15th Australian Software Engineering Conference (ASWEC 2004), Melbourne, Australia, 13–16 April 2004, pp. 168–177. IEEE Computer Society (2004)
Li, X., Liu, Z., He, J.: Consistency checking of UML requirements. In: 10th International Conference on Engineering of Complex Computer Systems, pp. 411–420. IEEE Computer Society (2005)
Liu, Z.: Software development with UML. Technical report. Technical Report 259, UNU-IIST: International Institute for Software Technology, the United Nations University, Macao (2002)
Liu, Z., Bowen, J.P., Liu, B., Tyszberowicz, S., Zhang, T.: Software abstractions and human-cyber-physical systems architecture modelling. In: Bowen, J.P., Liu, Z., Zhang, Z. (eds.) SETSS 2019. LNCS, vol. 12154, pp. 159–219. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-55089-9_5
Liu, Z., Chen, X.: Model-driven design of object and component systems. In: Liu, Z., Zhang, Z. (eds.) SETSS 2014. LNCS, vol. 9506, pp. 152–255. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-29628-9_4
Chen, X., Liu, Z.: Towards interface-driven design of evolving component-based architectures. In: Hinchey, M.G., Bowen, J.P., Olderog, E.-R. (eds.) Provably Correct Systems. NMSSE, pp. 121–148. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-48628-4_6
Liu, Z., Jifeng, H., Li, X.: Contract oriented development of component software. In: Levy, J.-J., Mayr, E.W., Mitchell, J.C. (eds.) TCS 2004. IIFIP, vol. 155, pp. 349–366. Springer, Boston, MA (2004). https://doi.org/10.1007/1-4020-8141-3_28
Liu, Z., He, J., Li, X.: Towards a rigorous approach to UML-based development. In: Mota, A., Moura, A.V. (eds.) Proceedings of the Seventh Brazilian Symposium on Formal Methods, SBMF 2004. Electronic Notes in Theoretical Computer Science, Recife, Pernambuco, Brazil, 29 November–1 December 2004, vol. 130, pp. 57–77. Elsevier (2004)
Liu, Z., Jifeng, H., Li, X., Chen, Y.: A relational model for formal object-oriented requirement analysis in UML. In: Dong, J.S., Woodcock, J. (eds.) ICFEM 2003. LNCS, vol. 2885, pp. 641–664. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-39893-6_36
Liu, Z., He, J., Liu, J., Li, X.: Unifying views of UML. In: de Boer, F.S., Bonsangue, M.M. (eds.) Proceedings of the Workshop on the Compositional Verification of UML Models, CVUML 2003, Electronic Notes in Theoretical Computer Science, San Francisco, CA, USA, 21 October 2003, vol. 101, pp. 95–127. Elsevier (2003)
Liu, Z., Joseph, M.: Specification and verification of fault-tolerance, timing, and scheduling. ACM Trans. Program. Lang. Syst. 21(1), 46–89 (1999)
Liu, Z., Li, X., He, J.: Using transition systems to unify UML models. In: George, C., Miao, H. (eds.) ICFEM 2002. LNCS, vol. 2495, pp. 535–547. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36103-0_54
Liu, Z., Mencl, V., Ravn, A.P., Yang, L.: Harnessing theories for tool support. In: Proceedings of the Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2006), pp. 371–382. IEEE Computer Society (2006)
Liu, Z., Morisset, C., Stolz, V.: A component-based access control monitor. In: Margaria, T., Steffen, B. (eds.) ISoLA 2008. CCIS, vol. 17, pp. 339–353. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-88479-8_24
Liu, Z., Qiu, Z.: Introduction to Mathematical Logic - The Natural Foundation for Computer Science and System. China Science Publishing & Media Ltd. (2022). (in Chinese)
Liu, Z., Wang, J.: Human-cyber-physical systems: concepts, challenges, and research opportunities. Front. Inf. Technol. Electron. Eng. 21(11), 1535–1553 (2020). https://doi.org/10.1631/FITEE.2000537
Long, Q., Liu, Z., Li, X., He, J.: Consistent code generation from UML models. In: Australian Software Engineering Conference, pp. 23–30. IEEE Computer Society (2005)
Lynch, N., Segala, R., Vaandrager, F.: Hybrid I/O automata. Inf. Comput. 185, 105–157 (2003)
Lynch, N.A., Tuttle, M.R.: An introduction to input/output automata. CWI Q. 2(3), 219–246 (1989)
McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine. Part I. Commun. ACM 3(4), 184–219 (1960)
Milner, R.: Communication and Concurrency. International Series in Computer Science, Prentice Hall, New York (1989)
Morgan, C.: Programming from Specifications. International Series in Computer Science, Prentice Hall, New York (1994/1998). https://www.cs.ox.ac.uk/publications/books/PfS/
Object Management Group: Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification, Version 1.1 (2009)
Palomar, E., Chen, X., Liu, Z., Maharjan, S., Bowen, J.P.: Component-based modelling for scalable smart city systems interoperability: a case study on integrating energy demand response systems. Sensors 16(11), 1810 (2016). https://doi.org/10.3390/s16111810
Plotkin, G.D.: The origins of structural operational semantics. J. Logic Algebraic Program. 60(61), 3–15 (2004)
Randell, B.: Fifty years of software engineering or the view from Garmisch. In: Keynote at 40th International Conference on Software Engineering (ICSE 2018), Gothenburg, Sweden, 27 May–3 June 2018 (2018). https://www.icse2018.org
Roscoe, A.W.: Theory and Practice of Concurrency. International Series in Computer Science, Prentice Hall, Engelwood Cliffs (1997)
Roscoe, A.W., Hoare, C.A.R.: The laws of OCCAM programming. Theor. Comput. Sci. 60(2), 177–229 (1988). https://doi.org/10.1016/0304-3975(88)90049-7
Sangiovanni-Vincentelli, A., Damm, W., Passerone, R.: Taming dr. frankenstein: contract-based design for cyber-physical systems. Eur. J. Control 18(3), 217–238 (2012)
Schneider, S.: The B-Method: An Introduction. Cornerstones of Computing Series, Palgrave Macmillan, London (2001)
Scott, D., Strachey, C.: Toward a Mathematical Semantics for Computer Languages. No. PRG-6 (1971)
Silva, L., Sampaio, A., Liu, Z.: Laws of object-orientation with reference semantics. In: Cerone, A., Gruner, S. (eds.) Sixth IEEE International Conference on Software Engineering and Formal Methods, SEFM 2008, Cape Town, South Africa, 10–14 November 2008, pp. 217–226. IEEE Computer Society (2008). https://doi.org/10.1109/SEFM.2008.29
Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall, New York (1992)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)
Tyszberowicz, S., Heinrich, R., Liu, B., Liu, Z.: Identifying microservices using functional decomposition. In: Feng, X., Müller-Olm, M., Yang, Z. (eds.) SETTA 2018. LNCS, vol. 10998, pp. 50–65. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99933-3_4
Wang, J., Zhan, N., Feng, X., Liu, Z.: Overview of formal methods. J. Softw. 30(1), 33–61 (2019). (in Chinese)
Wing, J.M.: A specifier’s introduction to formal methods. Computer 23(9), 8–22 (1990)
Xiong, J.L., Ren, Q.R., Tyszberowicz, S.S., Liu, Z., Liu, B.: MSA-lab: an integrated design platform for model-driven development of microservices. J. Softw. (2023). https://doi.org/10.13328/j.cnki.jos.006813. (in Chinese)
Yang, Y., Li, X., Ke, W., Liu, Z.: Automated prototype generation from formal requirements model. IEEE Trans. Reliab. 69(2), 632–656 (2020)
Zhang, M., Liu, W., Tang, X., Du, B., Liu, Z.: Human-cyber-physical automata and their synthesis. In: Seidl, H., Liu, Z., Pasareanu, C.S. (eds.) ICTAC 2022. LNCS, vol. 13572, pp. 36–41. Springer, Cham (2022). https://doi.org/10.1007/978-3-031-17715-6_4
Zhang, M., Liu, Z., Morisset, C., Ravn, A.P.: Design and verification of fault-tolerant components. In: Butler, M., Jones, C., Romanovsky, A., Troubitsyna, E. (eds.) Methods, Models and Tools for Fault Tolerance. LNCS, vol. 5454, pp. 57–84. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00867-2_4
Zhao, L., Liu, X., Liu, Z., Qiu, Z.: Graph transformations for object-oriented refinement. Formal Aspects Comput. 21(1–2), 103–131 (2009)
Zou, L., Zhan, N., Wang, S., Fränzle, M., Qin, S.: Verifying simulink diagrams via a hybrid hoare logic prover. In: Ernst, R., Sokolsky, O. (eds.) Proceedings of the International Conference on Embedded Software, EMSOFT 2013, Montreal, QC, Canada, 29 September–4 October 2013, pp. 9:1–9:10. IEEE (2013). https://doi.org/10.1109/EMSOFT.2013.6658587
Şerbănuţă, T.F., Rosu, G., Meseguer, J.: A rewriting logic approach to operational semantics. Inf. Comput. 207(2), 305–340 (2009)
Acknowledgements
There is a long list of names of collaborators who have contributed to the research on rCOS and I would like to thank them. In alphabetic order, the list includes Xin Chen, Zhenbang Chen, Ruzhen Dong, Dan Van Hung, Bin Lei, Dan Li, , Jing Liu, Quan Long, Charles Morriset, Zongyan Qiu, , Martin Schäf, Leila Silva, Volker Stolz, Shuling Wang, Ji Wang, Jing Yang, Lu Yang, Yilong Yang, Naijun Zhan, Miaomiao Zhang, Liang Zhao. They all spent time at UNU-IIST, at different periods, as fellows, PhD students, postdoctoral research fellows, or visitors. We all owe a big thanks to Jifeng for his guidance and/or influence over the years. We all congratulate him on his academic achievements, and wish him a very happy 80th birthday!
I would also like to thank Jonathan Bowen and Shmuel Tyszberowicz for their careful reading and comments on draft versions of this paper.
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 chapter
Cite this chapter
Liu, Z. (2023). Linking Formal Methods in Software Development. In: Bowen, J.P., Li, Q., Xu, Q. (eds) Theories of Programming and Formal Methods. Lecture Notes in Computer Science, vol 14080. Springer, Cham. https://doi.org/10.1007/978-3-031-40436-8_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-40436-8_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-40435-1
Online ISBN: 978-3-031-40436-8
eBook Packages: Computer ScienceComputer Science (R0)