Skip to main content
Log in

A feature-based classification of formal verification techniques for software models

  • Overview Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

Software models are the core development artifact in model-based engineering (MBE). The MBE paradigm promotes the use of software models to describe structure and behavior of the system under development and proposes the automatic generation of executable code from the models. Thus, defects in the models most likely propagate to executable code. To detect defects already at the modeling level, many approaches propose to use formal verification techniques to ensure the correctness of these models. These approaches are the subject of this survey. We review the state of the art of formal verification techniques for software models and provide a feature-based classification that allows us to categorize and compare the different approaches.

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

Access this article

Subscribe and save

Springer+ Basic
EUR 32.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 excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others

Notes

  1. Note that there exist two classification schemes, namely the safety-liveness [1] and the safety-progress classification [29].

  2. Weak bisimulation allows internal steps for which no corresponding step in the opposite system may exist.

  3. In general, a constraint or assertion c over a transition system with initial state \(\iota \) and transition relation T is said to be inductive if \(\iota \Rightarrow c\) (base case) and \(c \wedge T \Rightarrow c'\) (induction step) holds where \(c'\) denotes the constraint in the next state.

  4. The source files for Isabelle/HOL are available from http://www.irit.fr/~Martin.Strecker/Publications/proofs_graph_transformations.tgz.

  5. With version 4.5.2 of Groove (build: 20120606174037), the verification requires 13413.8ms on an Intel Core i5 2.67Ghz with 8GB of RAM running Gentoo Linux with OpenJDK 1.6. Taking into consideration that Groove was in its infancy when the comparison was performed in 2004, this improved result reflects the development efforts of past years. In contrast, SPIN, the verification back-end of CheckVML has been under active development since the 1980s [12]. However, we cannot provide up-to-date runtimes for CheckVML as it is currently not available to the public.

  6. Available from http://groove.sourceforge.com.

  7. Available from https://www.eclipse.org/henshin/downloads.php.

  8. Available from http://www.ti.inf.uni-due.de/research/tools/augur2/.

  9. A MEL theory is deterministic if its equations, interpreted from left to right, are confluent and terminating such that every term can be rewritten into a unique normal form.

  10. For an introduction to term rewriting refer to [6] and [14].

  11. For an RWL theory to be executable as a system module has to be coherent [35, p. 136].

  12. Available from ftp://moment.dsic.upv.es/releases/20070727/.

  13. Unfortunately, SOCLe does not seem to be available to the public anymore.

  14. Available from http://www.modelevolution.org/prototypes/mococl.

References

  1. Alpern, B., Schneider, F.B.: Recognizing safety and liveness. Distrib. Comput. 2(3), 117–126 (1987)

    Article  MATH  Google Scholar 

  2. Amrani, M., Dingel, J., Lambers, L., Lúcio, L., Salay, R., Selim, G., Syriani, E., Wimmer, M.: Towards a model transformation intent catalog. In: Proceedings of the 1st Workshop on the Analysis of Model Transformations (AMT’12), ACM, pp. 3–8 (2012)

  3. Amrani, M., Lúcio, L., Selim, G., Combemale, B., Dingel, J., Vangheluwe, H., Le Traon, Y., Cordy, J.R.: A tridimensional approach for studying the formal verification of model transformations. In: Proceedings of the 5th International Conference on Software Testing, Verification, and Validation (ICST’12), IEEE Computer Society, pp. 921–928 (2012)

  4. Anastasakis, K., Bordbar, B., Georg, G., Ray., I : UML2Alloy: A challenging model transformation. In: Proceedings of the 10th International Conference on Model Driven Engineering Languages and Systems (MODELS’07), volume 4735 of LNCS, pp. 436–450. Springer (2007)

  5. Arendt, T., Biermann, E., Jurack, S., Krause, C., Taentzer, G.: Henshin: Advanced concepts and tools for in-place EMF model transformations. In Proceedings of the 13th International Conference on Model Driven Engineering Languages and Systems (MODELS’10), volume 6394 of LNCS, pp. 121–135. Springer (2010)

  6. Baader, F., Nipkow, T.: Term Rewriting and all That. Cambridge University Press, Cambridge (1998)

    Book  MATH  Google Scholar 

  7. Balasubramanian, D., Pasareanu, C., Karsai, G., Lowry, M.: Polyglot: systematic analysis for multiple statechart formalisms. In: Proceedings of the 19th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’13), volume 7795 of LNCS, pp. 523–529. Springer (2013)

  8. Baldan, P., Corradini, A., König, B.: A static analysis technique for graph transformation systems. In: Proceedings of the 12th International Conference on Concurrency Theory (CONCUR’01), volume 2154 of LNCS, pp. 381–395. Springer (2001)

  9. Baresi, L., Rafe, V., Rahmani, A.T.: An efficient solution for model checking graph transformation systems. Electr. Notes. Theor. Comput. Sci. 213(1), 3–21 (2008)

  10. Baresi, L., Spoletini, P.: On the use of alloy to analyze graph transformation systems. In: Proceedings of the 3rd International Conference on Graph Transformations (ICGT’06), volume 4178 of LNCS, pp. 306–320. Springer (2006)

  11. Bashir, R.S., Lee, S.P., Khan, S.U.R., Chang, V., Farid, S.: Uml models consistency management: Guidelines for software quality manager. Int. J. Inf. Manag. 36(6), 883–899 (2016)

    Article  Google Scholar 

  12. Ben-Ari, M.: Principles of the Spin Model Checker. Springer, Berlin (2008)

    MATH  Google Scholar 

  13. Bérard, B., Bidoit, M., Finkel, A., Laroussinie, F., Petit, A., Petrucci, L., Schnoebelen, P.: Systems and Software Verification: Model-Checking Techniques and Tools. Springer, Berlin (2001)

    Book  MATH  Google Scholar 

  14. Bezem, M., Klop, J.W., de Vrijer, R., (eds). Term rewriting systems, volume 55 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge (2003)

  15. Bezivin, Jean: On the unification power of models. Softw. Syst. Model. 4, 171–188 (2005)

    Article  Google Scholar 

  16. Del Bianco, V., Lavazza, L., Mauri, M.: Model checking UML specifications of real time software. In: Proceeding of the 8th International Conference on Engineering of Complex Computer Systems (ICECCS’02), pp. 203–212. IEEE Computer Society (2002)

  17. Biere, A., Cimatti, A., Clarke, E.M., Zhu, Y.: Symbolic model checking without BDDs. In: Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS’99), volume 1579 of LNCS, pp. 193–207. Springer (1999)

  18. Biere, A., Heule, M., van Maaren, H., Walsh, T., (eds). Handbook of Satisfiability, volume 185 of Frontiers in Artificial Intelligence and Applications. IOS Press (2009)

  19. Biermann, E., Ermel, C., Taentzer, G.: Formal foundation of consistent EMF model transformations by algebraic graph transformation. Softw. Syst. Model. 11(2), 227–250 (2012)

    Article  Google Scholar 

  20. Bill, R., Gabmeyer, S., Kaufmann, P., Seidl, M.: OCL meets CTL: towards CTL-extended OCL model checking. In: Proceedings of the MODELS 2013 OCL Workshop, volume 1092 of CEUR Workshop Proceedings, pp. 13–22. CEUR-WS.org (2013)

  21. Boehm, B.W.: Software Engineering Economics, 2nd edn. Prentice Hall PTR, Upper Saddle River (1981)

    MATH  Google Scholar 

  22. Börger, E., Stärk, R.: Abstract State Machines. A Method for High-Level System Design and Analysis. Springer, Berlin (2003)

    MATH  Google Scholar 

  23. Boronat, A., Heckel, R., Meseguer, J.: Rewriting logic semantics and verification of model transformations. In : Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering (FASE’09), volume 5503 of LNCS, pages 18–33. Springer (2009)

  24. Boronat, A., Meseguer, J.: Algebraic semantics of OCL-constrained metamodel specifications. In: Proceedings of the 47th International Conference on Objects, Components, Models and Patterns (TOOLS’09), volume 33 of Lecture Notes in Business Information Processing, pp. 96–115. Springer (2009)

  25. Boronat, A., Meseguer, J.: An algebraic semantics for MOF. Form. Asp. Comput. 22(3–4), 269–296 (2010)

    Article  MATH  Google Scholar 

  26. Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput. 35(8), 677–691 (1986)

    Article  MATH  Google Scholar 

  27. Büttner, F., Egea, M., Cabot, J., Gogolla, M.: Verification of ATL transformations using transformation models and model finders. In Proceedings of the 14th International Conference on Formal Methods and Software Engineering (ICFEM’12), volume 7635 of LNCS, pages 198–213. Springer (2012)

  28. Calegari, D., Szasz, N.: Verification of model transformations. Electr. Notes Theor. Comput. Sci. 292, 5–25 (2013)

    Article  Google Scholar 

  29. Chang, E., Manna, Z., Pnueli, A.: The safety-progress classification. In: Logic and Algebra of Specification, volume 94 of NATO ASI Series, pages 143–202. Springer (1993)

  30. Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Workshop on Logics of Programs, volume 131 of LNCS, pp. 52–71. Springer (1981)

  31. Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement for symbolic model checking. J. ACM 50(5), 752–794 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  32. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)

    MATH  Google Scholar 

  33. Clarke, E.M., Gupta, A., Jain, H., Veith, H.: Model checking: back and forth between hardware and software. In: Proceedings of the 1st International Conference on Verified Software: Theories, Tools, Experiments (VSTTE’05), volume 4171 of LNCS, pp. 251–255. Springer (2005)

  34. Clarke, E.M., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Proceedings of the 10th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’04), volume 2988 of LNCS, pp. 168–176. Springer (2004)

  35. Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, CL. (eds.) All About Maude - A High-Performance Logical Framework: How to Specify, Program and Verify Systems in Rewriting Logic, volume 4350 of LNCS. Springer, Berlin (2007)

  36. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL’77), pp. 238–252. ACM (1977)

  37. Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Syst. J. 45(3), 621–645 (2006)

    Article  Google Scholar 

  38. De Moura, L.M., Bjørner, N.: Z3: an efficient SMT solver. In Proceedings of the 14th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS’08), volume 4963 of LNCS, pages 337–340. Springer (2008)

  39. Distefano, D., Katoen, J.P., Rensink, A.: On a temporal logic for object-based systems. In: Proceedings of the 4th International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS’00), volume 49 of IFIP Advances in Information and Communication Technology, pp. 305–325. Springer (2000)

  40. Dong, W., Wang, J., Qi, X., Qi, Z.: Model checking UML statecharts. In: Proceedings of the 8th Asia-Pacific Software Engineering Conference (APSEC’01), pp. 363–370. IEEE Computer Society (2001)

  41. Dowek, G., Felty, A., Herbelin, H., Huet, G., Murthy, C., Parent, C., Paulin-Mohring, C., Werner, B.: The COQ Proof Assistant: User’s Guide: Version 5.6. INRIA, Paris (1992)

  42. Dubrovin, J., Junttila, T.A.: Symbolic model checking of hierarchical uml state machines. In: Proceedings of the 8th International Conference on Application of Concurrency to System Design (ACSD’08), pp. 108–117. IEEE (2008)

  43. Eén, N., Sörensson, N.: An Extensible SAT-solver. In: Proceedings of the 6th Intertnational Conference on Theory and Applications of Satisfiability Testing (SAT’04), volume 2919 of LNCS, pp. 502–518. Springer (2003)

  44. Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series). Springer, Berlin (2006)

    MATH  Google Scholar 

  45. Ehrig, H., Ermel, C.: Semantical correctness and completeness of model transformations using graph and rule transformation. In: Proceedings of the 4th International Conference on Graph Transformation (ICGT’08). Volume 5214 of LNCS, pp. 194–210. Springer (2008)

  46. Ehrig, H., König, B.: Deriving bisimulation congruences in the dpo approach to graph rewriting with borrowed contexts. Math. Struct. Comput. Sci. 16(6), 1133–1163 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  47. Eshuis, R.: Symbolic model checking of UML activity diagrams. ACM Trans. Softw. Eng. Methodol. 15(1), 1–38 (2006)

    Article  Google Scholar 

  48. Fecher, H., Schönborn, J., Kyas, M., de Roever, W.P.: 29 new unclarities in the semantics of UML 2.0 state machines. In: Proceedings of the 7th International Conference on Formal Methods and Software Engineering (ICFEM’05), volume 3785 of Lecture Notes in Computer Science, pp. 52–65. Springer (2005)

  49. Gabmeyer, S., Brosch, P., Seidl, M.: A classification of model checking-based verification approaches for software models. In: Proceedings of the STAF Workshop on Verification of Model Transformations (VOLT’13), pp. 1–7 (2013)

  50. Gagnon, P., Mokhati, F., Badri, M.: Applying model checking to concurrent UML models. J. Object Technol. 7(1), 59–84 (2008)

    Article  Google Scholar 

  51. Garavel, H., Lang, F., Mateescu, R., Serwe, W.: CADP 2011: a toolbox for the construction and analysis of distributed processes. STTT 15(2), 89–107 (2013)

    Article  MATH  Google Scholar 

  52. Giese, H., Lambers, L.: Towards automatic verification of behavior preservation for model transformation via invariant checking. In: Proceedings of the 6th International Conference on Graph Transformation (ICGT’12), Volume 7562 of LNCS, pp. 249–263. Springer (2012)

  53. Gnesi, S., Latella, D., Massink, M.: Model checking UML statechart diagrams using JACK. In: Proceeding of the 4th IEEE International Symposium on High-Assurance Systems Engineering (HASE’99), pp. 46–55. IEEE Computer Society (1999)

  54. Gogolla, M., Büttner, F., Cabot, J.: Initiating a Benchmark for UML and OCL Analysis Tools. In: Proceedings 7th International Conference Tests and Proofs (TAP’13). LNCS 7942, pp. 115–132. Springer, Berlin (2013)

  55. Gogolla, M., Büttner, F., Richters, M.: USE: A UML-based specification environment for validating UML and OCL. Sci. Comput. Progr. 69(1–3), 27–34 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  56. Gogolla, M., Hilken, F.: Model validation and verification options in a contemporary UML and OCL analysis tool. In: Proceedings of the International Conference on Modellierung (MODELLIERUNG’16). GI, LNI 254, pp. 203–218 (2016)

  57. González, C.A., Cabot, J.: Formal verification of static software models in MDE: a systematic review. Inf. Softw. Technol. 56(8), 821–838 (2014)

    Article  Google Scholar 

  58. Grumberg, O., Meller, Y., Yorav, K.: Applying software model checking techniques for behavioral UML models. In: Proceedings of the 18th International Symposium on Formal Methods (FM’12), volume 7436 of LNCS, pp. 277–292. Springer (2012)

  59. Habel, A., Plump, D.: Relabelling in graph transformation. In: Proceedings of the 1st International Conference on Graph Transformation (ICGT’02), volume 2505 of LNCS, pp. 135–147. Springer (2002)

  60. Harel, D., Kozen, D., Tiuryn, J.: Dynamic Logic. MIT Press, Cambridge (2000)

    Book  MATH  Google Scholar 

  61. Heckel, R.: Compositional verification of reactive systems specified by graph transformation. In: Proceedings of the 1st International Conference on Fundamental Approaches to Software Engineering (FASE’98), volume 1382 of LNCS, pp. 138–153. Springer (1998)

  62. Hermann, F., Hülsbusch, M., König, B.: Specification and verification of model transformations. ECEASST 30, 20 (2010)

    Google Scholar 

  63. Hilken, F., Niemann, P., Gogolla, M., Wille, R.: Filmstripping and Unrolling: a comparison of verification approaches for UML and OCL behavioral models. In: Proceedings 8th International Conference Tests and Proofs (TAP’14), pp. 99–116. Springer, LNCS 8570 (2014)

  64. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

  65. Hülsbusch, M., König, B., Rensink, A., Semenyak, M., Soltenborn, C., Wehrheim, H.: Showing full semantics preservation in model transformation: a comparison of techniques. In: Proceedings of the 8th International Conference on Integrated Formal Methods (IFM’10), volume 6396 of LNCS, pp. 183–198. Springer (2010)

  66. Hülsbusch, M., König, B., Rensink, A., Semenyak, M., Soltenborn, C., Wehrheim, H.: Showing full semantics preservation in model transformation: a comparison of techniques. Technical report TR-CTIT-10-09, Centre for Telematics and Information Technology, University of Twente (2012)

  67. Jackson, D.: Automating first-order relational logic. In: Proceeding of the 8th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE’00), pages 130–139. ACM (2000)

  68. Jackson, D.: Alloy: a lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. 11(2), 256–290 (2002)

    Article  Google Scholar 

  69. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2012). Rev. edition

    Google Scholar 

  70. Järvisalo, M., Le Berre, D., Roussel, O., Simon, L.: The International SAT solver competitions. AI Mag. 33(1), 6 (2012)

    Google Scholar 

  71. Jhala, R., Majumdar, R.: Software model checking. ACM Comput. Surv. 41(4), 21 (2009)

    Article  Google Scholar 

  72. Ji, L., Ma, J., Shan, Z.: Research on model checking technology of UML. In: Proceedings of the 2012 Internatrional Conference on Computer Science Service System (CSSS’12), pp. 2337–2340. IEEE (2012)

  73. Jouault, F., Kurtev, I.: Transforming models with ATL. In: Satellite Events at the MoDELS 2005 Conference, volume 3844 of LNCS, pp. 128–138. Springer (2005)

  74. Jussila, T., Dubrovin, J., Junttila, T., Latvala, T., Porres, I.: Model checking dynamic and hierarchical UML state machines. In: Models in Software Engineering, Workshops and Symposia at MoDELS 2006, volume 4364 of LNCS, p. 15. Springer (2007)

  75. Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-021, Software Engineering Institute, Carnegie Mellon University (1990)

  76. Kastenberg, H., Rensink, A.: Model Checking dynamic states in GROOVE. In: Model Checking Software, volume 3925 of LNCS, pp. 299–305. Springer (2006)

  77. Kaufmann, P., Kronegger, M., Pfandler, A., Seidl, M., Widl, Magdalena: Intra- and interdiagram consistency checking of behavioral multiview models. Comput. Lang. Syst. Struct. 44, 72–88 (2015)

    MATH  Google Scholar 

  78. The KIV system. http://www.informatik.uni-augsburg.de/lehrstuehle/swt/se/kiv/, (2012). Accessed 06 Jun 2013

  79. Knapp, A., Mossakowski, T.: Multi-view consistency in UML. CoRR, abs/1610.03960 (2016)

  80. Knapp, A., Wuttke, J.: Model checking of UML 2.0 interactions. In: Models in Software Engineering, Workshops and Symposia at MoDELS 2006, volume 4364 of LNCS, p. 42–51. Springer (2007)

  81. König, B., Kozioura, V.: Counterexample-guided abstraction refinement for the analysis of graph transformation systems. In: Proceedings of the 12th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS’06), volume 3920 of LNCS, pp. 197–211. Springer (2006)

  82. König, B., Kozioura, V.: Augur 2: a new version of a tool for the analysis of graph transformation systems. Electr. Notes Theor. Comput. Sci. 211, 201–210 (2008)

    Article  Google Scholar 

  83. König, B., Kozioura, V.: Towards the verification of attributed graph transformation systems. Proceedings of the 4th International Conference on Graph Transformation (ICGT’08). Volume 5214 of LNCS, pp. 305–320. Springer (2008)

  84. Kovács, L., Voronkov, A.: First-order theorem proving and vampire. In: Computer Aided Verification, volume 8044 of LNCS, pp. 1–35. Springer (2013)

  85. Kozen, D.: Results on the propositional mu-calculus. Theor. Comput. Sci. 27, 333–354 (1983)

    Article  MATH  Google Scholar 

  86. Kyas, M., Fecher, H., de Boer, F.S., Jacob, J., Hooman, Jozef, van der Zwaag, Mark, Arons, Tamarah, Kugler, Hillel: Formalizing UML models and OCL constraints in PVS. Electr. Notes Theor. Comput. Sci. 115, 39–47 (2005)

    Article  Google Scholar 

  87. Al-Lail, M., Abdunabi, R., France, R., Ray, I.: An approach to analyzing temporal properties in UML class models. In: Proceedings of the 10th International Workshop on Model Driven Engineering, Verification and Validation (MoDeVVa’13), volume 1069 of CEUR Workshop Proceedings, pp. 77–86. CEUR-WS.org (2013)

  88. Lam, V.S.W., Padget, J.A.: Symbolic model checking of UML statechart diagrams with an integrated approach. In: Proceedings of the 11th IEEE International Conference on the Engineering of Computer-Based Systems (ECBS’04), pp. 337–347. IEEE Computer Society (2004)

  89. Leivant, D.: Higher order logic. In: Handbook of Logic in Artificial Intelligence and Logic Programming (2), pp. 229–322. Oxford University Press (1994)

  90. Lilius, J., Paltor, I.P.: vUML: A tool for verifying UML models. In: Proceedings of the 14th IEEE International Conference on Automated Software Engineering (ASE’99), pp. 255–258. IEEE Computer Society (1999)

  91. Lima, V., Talhi, C., Mouheb, D., Debbabi, M., Wang, Lingyu, Pourzandi, Makan: Formal verification and validation of UML 2.0 sequence diagrams using source and destination of messages. Electr. Notes Theor. Comput. Sci. 254, 143–160 (2009)

    Article  Google Scholar 

  92. Malek, M.: The art of creating models and models integration. In: Model-Based Software and Data Integration, volume 8 of Communications in Computer and Information Science, pp. 1–7. Springer (2008)

  93. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer, Berlin (1992)

    Book  MATH  Google Scholar 

  94. Manning, G., Plump, D.: The GP programming system. ECEASST 10, 13 (2008)

    Google Scholar 

  95. McCune, W.: Prover9 and Mace4. http://www.cs.unm.edu/~mccune/prover9/ (2005–2010). Accessed 22 Feb 2017

  96. McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Publishers, Berlin (1993)

    Book  MATH  Google Scholar 

  97. Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theor. Comput. Sci. 96(1), 73–155 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  98. Meseguer, J.: Membership algebra as a logical framework for equational specification. In: Proceedings of the 12th International Workshop on Recent Trends in Algebraic Development Techniques (WADT’97), volume 1376 of LNCS, pp. 18–61. Springer (1997)

  99. Meseguer, J.: Twenty years of rewriting logic. Form. Asp. Comput. 81(7–8), 721–781 (2012)

    MathSciNet  MATH  Google Scholar 

  100. Mikk, E., Lakhnech, Y., Siegel, M., Holzmann, G.J.: Implementing Statecharts in PROMELA/SPIN. In: Proceedings of the 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques (WIFT’98), pp. 90–101. IEEE Computer Society (1998)

  101. Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)

    Google Scholar 

  102. Mozaffari, M., Harounabadi, A.: Verification and validation of UML 2.0 sequence diagrams using colored petri nets. In: Proceedings of the 3rd International Conference on Communication Software and Networks (ICCSN’11), pp. 117–121. IEEE (2011)

  103. Mullins, J., Oarga, R.: Model checking of extended OCL constraints on UML models in SOCLe. In: Proceedings of the 9th International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS’07), volume 4468 of LNCS, pp. 59–75. Springer (2007)

  104. Muram, F.U.L., Tran, H., Zdun, U.: A model checking based approach for containment checking of uml sequence diagrams. In: Proceedings of the 23rd Asia-Pacific Software Engineering Conference. (APSEC’16) (2016)

  105. Murata, T.: Petri nets: properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989)

    Article  Google Scholar 

  106. Narayanan, A., Karsai, G.: Towards verifying model transformations. Electr. Notes Theor. Comput. Sci. 211, 191–200 (2008)

    Article  MATH  Google Scholar 

  107. Niewiadomski, A., Penczek, W., Szreter, M.: A new approach to model checking of UML state machines. Fundam. Inform. 93(1–3), 289–303 (2009)

    MathSciNet  MATH  Google Scholar 

  108. Niewiadomski, A., Penczek, W., Szreter, M.: Towards checking parametric reachability for UML state machines. In: Proceedings of the 7th International Andrei Ershov Memorial Conference on Perspectives of Systems Informatics (PSI’09), volume 5947 of LNCS, pp. 319–330. Springer (2009)

  109. Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL : a proof assistant for higher-order logic, volume 2283 of LNCS. Springer (2002)

  110. Ober, I., Graf, S., Ober, I.: Validation of UML models via a mapping to communicating extended timed automata. In: Proceedings of the 11th International Workshop on Model Checking Software (SPIN’04), volume 2989 of LNCS, pp. 127–145. Springer (2004)

  111. Ober, I., Graf, S., Ober, I.: Validating timed UML models by simulation and verification. Int. J. Softw. Tool. Technol. Transf. 8(2), 128–145 (2006)

    Article  Google Scholar 

  112. Object Management Group OMG. Model Driven Architecture (MDA) Guide V1.0.1. http://www.omg.org/mda/ (2006). Accessed 22 Feb 2017

  113. Object Management Group OMG. Object Constraint Language (OCL) V2.2. http://www.omg.org/spec/OCL/2.2/ (2010). Accessed 22 Feb 2017

  114. Object Management Group OMG. OMG meta object facility (MOF) 2.0 Query/View/ transformation specification V1.1. http://www.omg.org/spec/QVT/1.1/ (2011). Accessed 22 Feb 2017

  115. Object Management Group OMG. OMG meta object facility (MOF) core specification V2.4.1. http://www.omg.org/spec/MOF/2.4.1/ (2011). Accessed 22 Feb 2017

  116. Object Management Group OMG. OMG unified modeling language (OMG UML), infrastructure V2.4.1. http://www.omg.org/spec/UML/2.4.1/ (2011). Accessed 22 Feb 2017

  117. Object Management Group OMG. OMG unified modeling language (OMG UML), superstructure V2.4.1. http://www.omg.org/spec/UML/2.4.1/, (2011). Accessed 22 Feb 2017

  118. Oubelli, M.A., Younsi, N., Amirat, A., Menasria, A.: From UML 2.0 Sequence diagrams to PROMELA code by graph transformation using AToM3. In: Proceedings of the 3rd International Conference on Computer Science and its Applications (CIIA’11), volume 825 of CEUR Workshop Proceedings CEUR-WS.org (2011)

  119. Owre, S., Rushby, J.M., Shankar, N.: PVS: A prototype verification system. In: Proceedings of the 11th International Conference on Automated Deduction (CADE’92), volume 607 of LNCS, pp. 748–752. Springer (1992)

  120. Petri, C.A., Reisig, W.: Petri net. Scholarpedia 3(4), 6477 (2008)

    Article  Google Scholar 

  121. Pnueli, A.: The temporal logic of programs. In: Proceedings of the 18th Annual Symposium on Foundations of Computer Science (FOCS’77), pp. 46–57. IEEE Computer Society (1977)

  122. Poernomo, I., Terrell, J.: Correct-by-construction model transformations from partially ordered specifications in Coq. In: Formal Methods and Software Engineering, volume 6447 of LNCS, pp. 56–73. Springer (2010)

  123. Porres, I.: Modeling and analyzing software behavior in UML. Number 34 in TUCS dissertations. Turku Centre for Computer Science (2001)

  124. Poskitt, C.M., Plump, D.: Hoare-style verification of graph programs. Fundam. Inform. 118(1–2), 135–175 (2012)

    MathSciNet  MATH  Google Scholar 

  125. Poskitt, C.M., Plump, D.: Verifying total correctness of graph programs. ECEASST 61, 20 (2013)

    Google Scholar 

  126. Rahim, L.A., Whittle, J.: A survey of approaches for verifying model transformations. Soft. Syst. Model. 14, 1–26, (2013)

  127. Rensink, A.: The GROOVE simulator: a tool for state space generation. In: Proceedings of the 2nd International Workshop on Applications of Graph Transformations with Industrial Relevance (AGTIVE’03), volume 3062 of LNCS, pp. 479–485. Springer (2003)

  128. Rensink, A., Schmidt, Á., Varró, D.: Model checking graph transformations: a comparison of two approaches. In: Proceedings of the 2nd International Conference on Graph Transformations (ICGT’04), volume 3256 of LNCS, pp. 226–241. Springer (2004)

  129. Rensink, A., Zambon, E.: Neighbourhood abstraction in GROOVE. ECEASST 32, 13 (2010)

    Google Scholar 

  130. Rensink, A., Zambon, E.: Pattern-based graph abstraction. In: Proceedings of the 6th International Conference on Graph Transformation (ICGT’12), Volume 7562 of LNCS, pp. 66–80. Springer (2012)

  131. Dwyer, M.B., Hatcliff, J.: Bogor: an extensible and highly-modular software model checking framework. In: Proceedings of the 11th ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE’03), pp. 267–276. ACM (2003)

  132. Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations. World Scientific (1997)

  133. Runge, O., Ermel, C., Taentzer, G.: AGG 2.0–new features for specifying and analyzing algebraic graph transformations. In: Proceedings of teh 4th International Symposium on Applications of Graph Transformations with Industrial Relevance (AGTIVE’11), volume 7233 of LNCS, pp. 81–88. Springer (2011)

  134. Schichl, H.: Models and history of modeling. In: Modeling Languages in Mathematical Optimization, Applied Optimization, chapter 2, pp. 25–36. Springer (2004)

  135. Schinz, I., Toben, T., Mrugalla, C., Westphal, B.: The rhapsody UML verification environment. In: Proceedings of the 2nd International Conference on Software Engineering and Formal Methods (SEFM’04), pp. 174–183. IEEE Computer Society (2004)

  136. Schmidt, A., Varró, D.: CheckVML: a tool for model checking visual modeling languages. In: Proceedings of the 6th International Conference on The Unified Modeling Language and Applications (UML’03), volume 2863 of LNCS, pp. 92–95. Springer (2003)

  137. Schürr, A.: Specification of graph translators with triple graph grammars. In: Proceedings of the 20th International Workshop on Graph-Theoretic Concepts in Computer Science (WG’94), volume 903 of LNCS, pp. 151–163. Springer (1994)

  138. Seidewitz, Ed: What models mean. Softw. IEEE 20(5), 26–32 (2003)

    Article  Google Scholar 

  139. Selic, B.: The pragmatics of model-driven development. Softw. IEEE 20(5), 19–25 (2003)

    Article  Google Scholar 

  140. Selic, B.: The theory and practice of modern modeling language design for model-based software engineering. In: Companion Volume of the 10th International Conference on Aspect-Oriented Software Development (AOSD’11), pp. 53–54. ACM (2011)

  141. Sendall, S., Kozaczynski, W.: Model Transformation: the heart and soul of model-driven software development. Technical report, Swiss Federal Institute of Technology in Lausanne (EPFL) (2003)

  142. Shen, W., Compton, K.J., Huggins, J.: A toolset for supporting UML static and dynamic model checking. In: Proceedings of the 26th International Computer Software and Applications Conference (COMPSAC’02), pp. 147–152. IEEE Computer Society (2002)

  143. Anthony, J.H.: Simons and Ian Graham. 30 Things that Go Wrong in Object Modelling with UML 1.3. Behavioral Specifications of Businesses and Systems, volume 523 of The Springer International Series in Engineering and Computer Science, pp. 237–257. Springer (1999)

  144. Siveroni, I., Zisman, A., Spanoudakis, G.: Property Specification and Static Verification of UML Models. In: Proceedings of the 3rd International Conference on Availability, Reliability and Security (ARES’08), pp. 96–103. IEEE Computer Society (2008)

  145. Smullyan, R.M.: First-Order Logic. Courier Dover Publications, New York (1995)

    MATH  Google Scholar 

  146. Sørensen, M.H., Urzyczyin, P. (eds.): Lectures on the Curry-Howard Isomorphism, volume 149 of Studies in Logic and the Foundations of Mathematics. Elsevier, Amsterdam (2006)

  147. Stahl, T., Völter, M., Bettin, J., Haase, A., Helsen, S.: Model-driven Software Development: Technology, Engineering, Management. Wiley, New York (2006)

  148. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework. The Eclipse Series., 2nd edn. Pearson Eduction, Inc, Upper Saddle River (2008)

    Google Scholar 

  149. Stenzel, K., Moebius, N., Reif, W.: Formal verification of QVT transformations for Code generation. In: Proceedings of the 14th International Conference on Model Driven Engineering Languages and Systems (MODELS’11), volume 6981 of LNCS, pp. 533–547. Springer (2011)

  150. Strecker, Martin: Modeling and verifying graph transformations in proof assistants. Electr. Notes Theor. Comput. Sci. 203(1), 135–148 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  151. Strecker, M.: Interactive and automated proofs for graph transformations. Available at: http://www.irit.fr/~Martin.Strecker/Publications/proofs_graph_transformations.html (2012). Accessed 22 Feb 2017

  152. ter Beek, M.H., Fantechi, A., Gnesi, S., Mazzanti, F.: A state/event-based model-checking approach for the analysis of abstract system properties. Sci. Comput. Program. 76(2), 119–135 (2011)

    Article  MATH  Google Scholar 

  153. Torlak, E., Jackson, D.: Kodkod: a relational model finder. In: Proceedings of the 13th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS’07), volume 4424 of LNCS, pp. 632–647. Springer (2007)

  154. Troya, Javier, Vallecillo, Antonio: A rewriting logic semantics for ATL. J. Object Technol. 10(5), 1–29 (2011)

    Google Scholar 

  155. Varró, D.: Automated formal verification of visual modeling languages by model checking. Softw. Syst. Model. 3(2), 85–113 (2004)

    Article  MathSciNet  Google Scholar 

  156. Weidenbach, C., Dimova, D., Fietzke, A., Kumar, R., Suda, M., Wischnewski, P.: SPASS version 3.5. In: Proceedings of the 22nd International Conference on Automated Deduction (CADE’09), volume 5663 of Lecture Notes in Computer Science, pp. 140–145. Springer (2009)

  157. Zhang, S.J., Liu, Y.: An automatic approach to model checking UML state machines. In: Proceedings of the 4th International Conference on Secure Software Integration and Reliability Improvement (SSIRI’10), pp. 1–6. IEEE Computer Society (2010)

  158. Ziemann, P., Gogolla, M.: OCL extended with temporal logic. In: Proceedings of the 5th International Andrei Ershov Memorial Conference on Perspectives of Systems Informatics (PSI’03), volume 2890 of LNCS, pp. 351–357. Springer (2003)

Download references

Acknowledgements

We want to thank the participants of the Volt 2013 workshop for valuable discussions and suggestions of improvement on an initial version of this work; in particular, Moussa Amrani, Leen Lambers, Tihamer Levendovszky, and Manuel Wimmer (in alphabetic order) as well as the anonymous reviewers.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sebastian Gabmeyer.

Additional information

Communicated by Dr. Benoit Baudry.

This work has been funded by the Vienna Science and Technology Fund (WWTF) under Grant ICT10-018 and the Austrian Science Fund (FWF) under Grant S11408-N23.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Gabmeyer, S., Kaufmann, P., Seidl, M. et al. A feature-based classification of formal verification techniques for software models. Softw Syst Model 18, 473–498 (2019). https://doi.org/10.1007/s10270-017-0591-z

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-017-0591-z

Keywords

Navigation