Abstract
The share of formal methods is still marginal in contemporary systems and software engineering. One of the reasons is the absence of systematic guidelines and evaluation criteria that help software practitioners choose the right formal method for the problem at hand. In this paper, we present a comprehensive set of criteria, based on a systematic literature review and decade-long personal experience in industrial projects, for evaluating and comparing different formal methods. We argue that besides technical grounds (e.g., modeling capabilities and supported development phases), formal methods should also be evaluated from social and industrial perspectives. At the end of the paper, we present an evaluation of “ABZ” methods based on the stipulated criteria.
The research presented in this paper is supported by the Austrian Ministry for Transport, Innovation and Technology, the Federal Ministry of Science, Research and Economy, and the Province of Upper Austria in the frame of the COMET center SCCH. The writing of the paper is partially supported by the Austrian Science Fund project: Behavioral Theory and Logics for Distributed Adaptive Systems (FWF-P26452-N15).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Abdunabi, R., Sun, W., Ray, I.: Enforcing spatio-temporal access control in mobile applications. Computing 96(4), 313–353 (2014)
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 Design. Cambridge University Press, Cambridge (2010)
Ardis, M.A., Chaves, J.A., Jagadeesan, L.J., Mataga, P., Puchol, C., Staskauskas, M.G., Von Olnhausen, J.: A framework for evaluating specification methods for reactive systems. IEEE Trans. Softw. Eng. 22(6), 378–389 (1996)
Banach, R.: Model based refinement and the tools of tomorrow. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 42–56. Springer, Heidelberg (2008)
Banach, R., Zhu, H., Su, W., Huang, R.: Formalising the continuous/discrete modeling step. In: Proceedings Refine 2011. EPTCS, vol. 55, pp. 121–138 (2011)
Banach, R., Zhu, H., Su, W., Wu, X.: A continuous ASM modelling approach to pacemaker sensing. ACM Trans. Softw. Eng. Methodol. 24(1), 2 (2014)
Barjaktarovic, M.: The state-of-the-art in formal methods. Technical report/Wilkes University and WetStone Technologies (1998). http://www.cs.utexas.edu/users/csed/formal-methods/docs/StateFM.pdf
ter Beek, M.H., Bucchiarone, A., Gnesi, S.: Formal methods for service composition. Ann. Math. Comput. Teleinformatics 1(5), 1–10 (2007)
Börger, E., Stärk, R.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer, Berlin (2003)
Boström, P., Degerlund, F., Sere, K., Waldén, M.: Derivation of concurrent programs by stepwise scheduling of Event-B models. Formal Aspects Comput. 26(2), 281–303 (2014)
Bowen, J.P.: Z: a formal specification notation. In: Frappier, M., Habrias, H. (eds.) Software Specification Methods: An Overview Using a Case Study, pp. 3–19. Springer, London (2001)
Bowen, J.P., Hinchey, M.G.: Ten commandments of formal methods. Computer 28(4), 56–63 (1995)
Brunel, J., Rioux, L., Paul, S., Faucogney, A., Vallée, F.: Formal safety and security assessment of an avionic architecture with Alloy. In: Third International Workshop on Engineering Safety and Security Systems (ESSS 2014), pp. 8–19 (2014)
Clarke, E.M., Wing, J.M.: Formal methods: state of the art and future directions. ACM Comput. Surv. 28(4), 626–643 (1996)
Cochran, D., Kiniry, J.R.: Formal model-based validation for tally systems. In: Heather, J., Schneider, S., Teague, V. (eds.) Vote-ID 2013. LNCS, vol. 7985, pp. 41–60. Springer, Heidelberg (2013)
Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: VCC: a practical system for verifying concurrent C. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 23–42. Springer, Heidelberg (2009)
Dondossola, G.: Formal methods in the development of safety critical knowledge-based components. In: Proceedings of the KR 1998 European Workshop on Validation and Verification of Knowledge-Based Systems, pp. 232–237 (1998)
Dwivedi, A.K., Rath, S.K.: Model to specify real time system using Z and Alloy languages: a comparative approach. In: International Conference on Software Engineering and Mobile Application Modelling and Development (ICSEMA 2012), pp. 1–6 (2012)
Ferrarotti, F., Schewe, K., Tec, L., Wang, Q.: A new thesis concerning synchronised parallel computing - simplified parallel ASM thesis. CoRR abs/1504.06203 (2015)
Frappier, M., Habrias, H. (eds.): Software Specification Methods. ISTE, London (2006)
Frias, M.F., Pombo, C.G.L., Aguirre, N.M.: An equational calculus for alloy. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 162–175. Springer, Heidelberg (2004)
Gannon, J.D., Zelkowitz, M.V., Purtilo, J.M.: Software Specification: A Comparison of Formal Methods. Greenwood Publishing, Westpoint (1994)
Georg, G., Bieman, J., France, R.B.: Using Alloy and UML/OCL to specify run-time configuration management: a case study. In: Workshop of the pUML-Group Held Together with the UML 2001 on Practical UML-Based Rigorous Development Methods - Countering or Integrating the eXtremists, pp. 128–141, GI (2001)
Ghezzi, C., Mandrioli, D., Morzenti, A.: TRIO: a logic language for executable specifications of real-time systems. J. Syst. Softw. 12(2), 107–123 (1990)
Haughton, H.P.: Using Z to model and analyse safety and liveness properties of communication protocols. Inf. Softw. Technol. 33(8), 575–580 (1991)
Hoang, T.S., Abrial, J.-R.: Event-B decomposition for parallel programs. In: Frappier, M., Glässer, U., Khurshid, S., Laleau, R., Reeves, S. (eds.) ABZ 2010. LNCS, vol. 5977, pp. 319–333. Springer, Heidelberg (2010)
Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2004)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2006)
Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice-Hall Inc., Upper Saddle River (1990)
Kang, E., Jackson, D.: Formal modeling and analysis of a flash filesystem in Alloy. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 294–308. Springer, Heidelberg (2008)
Kaur, A., Gulati, S., Singh, S.: Analysis of three formal methods - Z, B and VDM. Int. J. Eng. Res. Technol. (IJERT) 1(4), 1–4 (2012)
Knight, J.C., DeJong, C.L., Gibble, M.S., Nakano, L.G.: Why are formal methods not used more widely? In: The Fourth NASA Langley Formal Methods Workshop (LFM 1997) (1997)
Kossak, F.: Landing gear system: an ASM-based solution for the ABZ case study. In: Boniol, F., Wiels, V., Ait Ameur, Y., Schewe, K.-D. (eds.) ABZ 2014. CCIS, vol. 433, pp. 142–147. Springer, Heidelberg (2014)
Kossak, F., Illibauer, C., Geist, V., Kubovy, J., Natschläger, C., Ziebermayr, T., Kopetzky, T., Freudenthaler, B., Schewe, K.D.: A Rigorous Semantics for BPMN 2.0 Process Diagrams. Springer, Heidelberg (2015)
Kossak, F., Mashkoor, A.: How to Evaluate the Suitability of a Formal Method for Industrial Deployment? A Survey. Technical report SCCH-TR-1603, Software Competence Center Hagenberg GmbH, Hagenberg, Austria (2016). http://www.scch.at/en/rse-news/fm_comparison
Kossak, F., Mashkoor, A., Geist, V., Illibauer, C.: Improving the understandability of formal specifications: an experience report. In: Salinesi, C., van de Weerd, I. (eds.) REFSQ 2014. LNCS, vol. 8396, pp. 184–199. Springer, Heidelberg (2014)
Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley, Boston (2002)
Larsen, P.G., Wolff, S.: Development process of distributed embedded systems using VDM, Overture – Open-source Tools for Formal Modelling TR-2010-02 (2010)
Liu, X., Yand, H., Zedan, H.: Formal methods for the re-engineering of computing systems. In: Proceedings of the 21st Computer Software and Applications Conference (COMPSAC 1997), pp. 409–414 (1997)
Maoz, S., Ringert, J.O., Rumpe, B.: Semantically configurable consistency analysis for class and object diagrams. In: Whittle, J., Clark, T., Kühne, T. (eds.) MODELS 2011. LNCS, vol. 6981, pp. 153–167. Springer, Heidelberg (2011)
Mashkoor, A., Biro, M.: Towards the trustworthy development of active medical devices: a hemodialysis case study. IEEE Embed. Syst. Lett. 8(1), 14–17 (2016)
Mashkoor, A., Hasan, O., Beer, W.: Using probabilistic analysis for the certification of machine control systems. In: Cuzzocrea, A., Kittl, C., Simos, D.E., Weippl, E., Xu, L. (eds.) CD-ARES Workshops 2013. LNCS, vol. 8128, pp. 305–320. Springer, Heidelberg (2013)
Mashkoor, A., Jacquot, J.P.: Stepwise validation of formal specifications. In: 18th Asia-Pacific Software Engineering Conference (APSEC 2011), pp. 57–64. IEEE, Ho Chi Minh City, Vietnam (2011)
Mashkoor, A., Jacquot, J.P.: Utilizing Event-B for domain engineering: a critical analysis. Requirements Eng. 16(3), 191–207 (2011)
McGibbon, T.: An analysis of two formal methods: VDM and Z. Technical report, DoD Data and Analysis Center for Software (DACS) (1997). https://www.csiac.org/sites/default/files/An%20Analysis%20of%20Two%20Formal%20Methods%20-%20VDM%20and%20Z%20-%20SOAR.pdf
Merz, S.: The specification language TLA+. In: Bjørner, D., Henson, M. (eds.) Logics of Specification Languages. Monographs in Theoretical Computer Science, pp. 401–451. Springer, Heidelberg (2008)
Mirian-HosseinAbadi, S.H., Mousavi, M.R.: Making nondeterminism explicit in Z. In: Proceedings of the Iranian Computer Society Annual Conference (CSICC 2002), Tehran, Iran (2002)
Mukherjee, P., Bousquet, F., Delabre, J., Paynter, S., Larsen, P.G.: Exploring timing properties using VDM++ on an industrial application. In: Proceedings of the Second VDM Workshop (2000)
Newcombe, C.: Why Amazon chose TLA\(^+\). In: Ait Ameur, Y., Schewe, K.-D. (eds.) ABZ 2014. LNCS, vol. 8477, pp. 25–39. Springer, Heidelberg (2014)
Newcombe, C., Rath, T., Zhang, F., Munteanu, B., Brooker, M., Deardeuff, M.: How amazon web services uses formal methods. Commun. ACM 58(4), 66–73 (2015)
Pandey, S., Batra, M.: Formal methods in requirements phase of SDLC. Int. J. Comput. Appl. 70(13), 7–14 (2013)
Rainer-Harbach, M.: Methods and tools for the formal verification of software. An analysis and comparison. Diplomarbeit, Fakultät für Informatik, Technische Universität Wien. https://www.ads.tuwien.ac.at/publications/bib/pdf/rainer-harbach_11.pdf
Sifakis, J.: Formal methods and their evaluation. Position Paper Presented at FEMSYS in Munich (1997). http://www-verimag.imag.fr/~sifakis/RECH/FEMSYS/paper.ps
Spivey, J.M.: The Z Notation: A Reference Manual. Prentice-Hall Inc., Upper Saddle River (1989)
Verhoef, M., Larsen, P.G., Hooman, J.: Modeling and validating distributed embedded real-time systems with VDM++. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 147–162. Springer, Heidelberg (2006)
Wang, T., Ji, D.: Active attacking multicast key management protocol using Alloy. In: Derrick, J., Fitzgerald, J., Gnesi, S., Khurshid, S., Leuschel, M., Reeves, S., Riccobene, E. (eds.) ABZ 2012. LNCS, vol. 7316, pp. 164–177. Springer, Heidelberg (2012)
Woodcock, J., Larsen, P.G., Bicarregui, J., Fitzgerald, J.: Formal methods: practice and experience. ACM Comput. Surv. 41(4), 19 (2009)
Zave, P.: A practical comparison of Alloy and Spin. Formal Aspects Comput. 2015(2), 239–253 (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Kossak, F., Mashkoor, A. (2016). How to Select the Suitable Formal Method for an Industrial Application: A Survey. In: Butler, M., Schewe, KD., Mashkoor, A., Biro, M. (eds) Abstract State Machines, Alloy, B, TLA, VDM, and Z. ABZ 2016. Lecture Notes in Computer Science(), vol 9675. Springer, Cham. https://doi.org/10.1007/978-3-319-33600-8_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-33600-8_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-33599-5
Online ISBN: 978-3-319-33600-8
eBook Packages: Computer ScienceComputer Science (R0)