Verification of Atomicity Preservation in Model-to-Code Transformations using Generic Java Code

Dan Zhang, Dragan Bosnacki, Mark van den Brand, Cornelis Huizing, Ruurd Kuiper, Bart Jacobs, Anton Wijs

Abstract

A challenging aspect of model-to-code transformations is to ensure that the semantic behavior of the input model is preserved in the output code. When constructing concurrent systems, this is mainly difficult due to the non-deterministic potential interaction between threads. In this paper, we consider this issue for a framework that implements a transformation chain from models expressed in the state machine based domain specific language SLCO to Java. In particular, we provide a fine-grained generic solution to preserve atomicity of SLCO statements in the Java implementation. We give its generic specification based on separation logic and verify it using the verification tool VeriFast. The solution can be regarded as a reusable module to safely implement atomic operations in concurrent systems.

References

  1. Abadi, M., Flanagan, C., and Freund, S. N. (2006). Types for Safe Locking: Static Race Detection for Java. ACM Transactions on Programming Languages and Systems (TOPLAS), 28(2):207-255.
  2. Authors of This Paper (2015). SLCOtoJava Model Transformation and Verification. https://drive.google .com/- drive/u/0/folders/0B2U1DbWZemiVRVlhbElPd0Z1 NVE.
  3. Biswas, S., Huang, J., Sengupta, A., and Bond, M. D. (2014). DoubleChecker: Efficient Sound and Precise Atomicity Checking. In ACM SIGPLAN Notices, volume 49, pages 28-39. ACM.
  4. Blech, J., Glesner, S., and Leitner, J. (2005). Formal Verification of Java Code Generation from UML Models. In Fujaba Days, pages 49-56.
  5. Bos?nac?ki, D., van den Brand, M., Huizing, C., Jacobs, B., Kuiper, R., Wijs, A., and Zhang, D. (2015). Verification of Atomicity Preservation in Model-To-Code Transformations. In FACS, LNCS. Springer (accepted for publication).
  6. Chaki, S., Clarke, E., Groce, A., Jha, S., and Veith, H. (2003). Modular Verification of Software Components in C. In ICSE, pages 385-395. IEEE.
  7. Choi, J.-D., Lee, K., Loginov, A., O'Callahan, R., Sarkar, V., and Sridharan, M. (2002). Efficient and Precise Datarace Detection for Multithreaded ObjectOriented Programs. In ACM SIGPLAN Notices, volume 37, pages 258-269. ACM.
  8. Engelen, L. (2012). From Napkin Sketches To Reliable Software. PhD thesis, Eindhoven University of Technology.
  9. Engler, D. and Ashcraft, K. (2003). RacerX: Effective, Static Detection of Race Conditions and Deadlocks. In ACM SIGOPS Operating Systems Review, volume 37, pages 237-252. ACM.
  10. Farzan, A. and Madhusudan, P. (2006). Causal Atomicity. In CAV, volume 4144 of LNCS, pages 315-328. Springer.
  11. Flanagan, C. and Qadeer, S. (2003). A Type and Effect System for Atomicity. In ACM SIGPLAN Notices, volume 38, pages 338-349. ACM.
  12. Jacobs, B., Smans, J., Philippaerts, P., Vogels, F., Penninckx, W., and Piessens, F. (2011). VeriFast: A Powerful, Sound, Predictable, Fast Verifier for C and Java. In NFM, volume 6617 of LNCS, pages 41-55. Springer.
  13. Jhala, R. and Majumdar, R. (2009). Software Model Checking. ACM Computing Surveys, 41(4):21:1-21:54.
  14. Kleppe, A., Warmer, J., and Bast, W. (2005). MDA Explained: The Model Driven Architecture(TM): Practice and Promise. Addison-Wesley Professional.
  15. Kolovos, D., Rose, L., Garca-Dominguez, A., and Paige, R. (2011). The Epsilon Book. Eclipse.
  16. O'Hearn, P., Reynolds, J., and Yang, H. (2001). Local Reasoning about Programs that Alter Data Structures. In Computer Science Logic, 15th International Workshop, CSL 2001., volume 2142 of Lecture Notes in Computer Science, pages 1-19.
  17. Owicki, S. and Gries, D. (1976). Verifying Properties of Parallel Programs: An Axiomatic Approach. Commun. ACM, 19(5):279-285.
  18. Rahim, L. and Whittle, J. (2013). A Survey of Approaches for Verifying Model Transformations. Software & Systems Modeling (available online).
  19. Reynolds, J. C. (2002). Separation Logic: A Logic for Shared Mutable Data Structures. In Logic in Computer Science, 2002. Proceedings. 17th Annual IEEE Symposium on, pages 55-74. IEEE.
  20. Stenzel, K., Moebius, M., and Reif, W. (2011). Formal Verification of QVT Transformations for Code Generation. In MODELS, volume 6981 of LNCS, pages 533-547. Springer.
  21. Tuerk, T. (2009). A Formalisation of Smallfoot in HOL. In TPHOLs, volume 5674 of LNCS, pages 469-484. Springer.
  22. Visser, W., Havelund, K., Brat, G., Park, S., and Lerda, F. (2003). Model Checking Programs. Automated Software Engineering, 10(2):203-232.
  23. Wijs, A. J. (2013). Define, Verify, Refine: Correct Composition and Transformation of Concurrent System Semantics. In FACS, volume 8348 of LNCS, pages 348- 368. Springer.
  24. Wijs, A. J. and Engelen, L. J. P. (2013). Efficient Property Preservation Checking of Model Refinements. In TACAS, volume 7795 of LNCS, pages 565-579. Springer.
  25. Wijs, A. J. and Engelen, L. J. P. (2014). REFINER: Towards Formal Verification of Model Transformations. In NFM, volume 8430 of LNCS, pages 258-263. Springer.
  26. Zhang, D., Bos?nac?ki, D., van den Brand, M., Engelen, L., Huizing, C., Kuiper, R., and Wijs, A. (2014). Towards Verified Java Code Generation from Concurrent State Machines. In AMT, volume 1277 of CEUR Workshop Proc., pages 64-69. CEUR-WS.org.
Download


Paper Citation


in Harvard Style

Zhang D., Bosnacki D., van den Brand M., Huizing C., Kuiper R., Jacobs B. and Wijs A. (2016). Verification of Atomicity Preservation in Model-to-Code Transformations using Generic Java Code . In Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-168-7, pages 578-588. DOI: 10.5220/0005689405780588


in Bibtex Style

@conference{modelsward16,
author={Dan Zhang and Dragan Bosnacki and Mark van den Brand and Cornelis Huizing and Ruurd Kuiper and Bart Jacobs and Anton Wijs},
title={Verification of Atomicity Preservation in Model-to-Code Transformations using Generic Java Code},
booktitle={Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2016},
pages={578-588},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005689405780588},
isbn={978-989-758-168-7},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - Verification of Atomicity Preservation in Model-to-Code Transformations using Generic Java Code
SN - 978-989-758-168-7
AU - Zhang D.
AU - Bosnacki D.
AU - van den Brand M.
AU - Huizing C.
AU - Kuiper R.
AU - Jacobs B.
AU - Wijs A.
PY - 2016
SP - 578
EP - 588
DO - 10.5220/0005689405780588