Skip to main content

Verifying Semantic Conformance of State Machine-to-Java Code Generators

  • Conference paper
Model Driven Engineering Languages and Systems (MODELS 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6394))

Abstract

When applying model-driven engineering to safety-critical systems, the correctness of model transformations is crucial. In this paper, we investigate a novel approach to verifying the conformance to source language semantics of model-to-code transformations that uses annotations in the generated code. These annotations are inserted by the transformation and are used to guide a model checker to verify that the generated code satisfies the semantics of the source language – UML state machines in this paper. Verifying the generated output in this way is more efficient than formally verifying the transformation’s definition. The verification is performed using Java Pathfinder (JPF) [1], a model checker for Java source code. The approach has been applied to verify three UML state machine to Java code generators: one developed by us and two commercial generators (Rhapsody and Visual Paradigm). We were able to detect non-conformance in both commercial tools, which failed some semantic properties extracted from the UML specification.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Visser, W., Havelund, K., Brat, G., Park, S.J., Lerda, F.: Model checking programs. Automated Software Engineering Journal 10(2), 203–232 (2003)

    Article  Google Scholar 

  2. Necula, G.C.: Proof-carrying Code. In: Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL 1997), pp. 106–119. ACM, New York (1997)

    Chapter  Google Scholar 

  3. Colby, C., Lee, P., Necula, G.C.: A Proof-Carrying Code Architecture for Java. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 557–560. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  4. Schumann, J., Fischer, B., Whalen, M., Whittle, J.: Certification Support for Automatically Generated Programs. In: Proceedings of the 36th Annual Hawaii International Conference on System Sciences, pp. 1–10. IEEE, Los Alamitos (2003)

    Google Scholar 

  5. Denney, E., Fischer, B.: Extending Source Code Generators for Evidence-Based Software Certification. In: 2nd International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2006), pp. 138–145. ACM, New York (2006)

    Chapter  Google Scholar 

  6. Denney, E., Fischer, B.: Generating Customized Verifiers for Automatically Generated Code. In: Proceedings of the 7th International Conference on Generative Programming and Component Engineering (GPCE 2008), pp. 77–88. ACM, New York (2008)

    Chapter  Google Scholar 

  7. IBM: Rational Rhapsody, http://www-01.ibm.com/software/rational/products/rhapsody/developer/

  8. Visual Paradigm International: Visual paradigm, http://www.visual-paradigm.com/

  9. OMG: Unified Modeling Language: Superstructure version 2.1.1. OMG (February 2007)

    Google Scholar 

  10. Varró, D., Pataricza, A.: Automated formal verification of model transformations. In: Jürjens, J., Rumpe, B., France, R., Fernandez, E.B. (eds.) CSDUML 2003: Critical Systems Development in UML; Proceedings of the UML 2003 Workshop. Number TUM-I0323 in Technical Report, Technische Universität München, pp. 63–78 (September 2003)

    Google Scholar 

  11. Staats, M., Heimdahl, M.: Partial Translation Verification for Untrusted Code-Generators. In: Liu, S., Maibaum, T., Araki, K. (eds.) ICFEM 2008. LNCS, vol. 5256, pp. 226–237. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  12. Chaki, S., Ivers, J., Lee, P., Wallnau, K., Zeillberger, N.: Model-Driven Construction of Certified Binaries. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 666–681. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  13. Pnueli, A., Shtrichman, O., Siegel, M.: The Code Validation Tool CVT: Automatic Verification of a Compilation Process. Software Tools for Technology Transfer 2, 192–201 (1998)

    Article  MATH  Google Scholar 

  14. Barbosa, P.E.S., Ramalho, F., de Figueiredo, J.C.A., dos Jr., A.D.S.: An extended MDA architecture for ensuring semantics-preserving transformations. In: 32nd Annual IEEE Software Engineering Workshop, pp. 33–42 (October 2008)

    Google Scholar 

  15. Denney, E., Fischer, B., Schumann, J., Richardson, J.: Automatic Certification of Kalman Filters for Reliable Code Generation. In: IEEE Aerospace Conference, pp. 1–10. IEEE, Los Alamitos (2005)

    Chapter  Google Scholar 

  16. Baar, T., Marković, S.: A graphical approach to prove the semantic preservation of UML/OCL refactoring rules. In: Virbitskaite, I., Voronkov, A. (eds.) PSI 2006. LNCS, vol. 4378, pp. 70–83. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  17. Whittle, J., Gajanovic, B.: Model transformations should be more than just model generators. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 32–38. Springer, Heidelberg (2005)

    Google Scholar 

  18. Egea, M., Rusu, V.: Formal executable semantics for conformance in the MDE framework. Innovations System Software Engineering 6(1-2), 73–81 (2010)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ab Rahim, L., Whittle, J. (2010). Verifying Semantic Conformance of State Machine-to-Java Code Generators. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds) Model Driven Engineering Languages and Systems. MODELS 2010. Lecture Notes in Computer Science, vol 6394. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16145-2_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-16145-2_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-16144-5

  • Online ISBN: 978-3-642-16145-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics