Qing Yi, Jianwei Niu, Anitha R. Marneni


We present a finite-state-machine-based language, iFSM, to seamlessly integrate the behavioral logic and implementation strategies of object-oriented abstractions and prevent them from being out-of-sync. We provide a transformation engine which automatically translates iFSM specifications to lower-level C++/Java class implementations that are similar in style to manually written code. Further, we automatically verify that these implementations are consistent with their behavior models by translating iFSM specifications into the input language of model checker NuSMV.


  1. Bagge, O. S., Kalleberg, K. T., Haveraaen, M., and Visser, E. (2003). Design of the CodeBoost transformation system for domain-specific optimisation of C++ programs. In Binkley, D. and Tonella, P., editors, Third International Workshop on Source Code Analysis and Manipulation (SCAM 2003), pages 65-75, Amsterdam, The Netherlands. IEEE Computer Society Press.
  2. Balasubramanian, K., Krishna, A. S., Turkay, E., Balasubramanian, J., Parsons, J., Gokhale, A., and Schmidt, D. C. (2005). Applying model-driven development to distributed real-time and embedded avionics systems. International Journal of Embedded Systems. Special issue on Design and Verification of Real-time Embedded Software.
  3. Baxter, I., Pidgeon, P., and Mehlich, M. (2004). Dms: Program transformations for practical scalable software evolution. In Proceedings of the International Conference on Software Engineering. IEEE Press.
  4. Beyer, D., Chlipala, A. J., and Majumdar, R. (2004). Generating tests from counterexamples. In Proceedings of the 26th International Conference on Software Engineering (ICSE), pages 326-335.
  5. Bravenboer, M., Kalleberg, K. T., Vermaas, R., and Visser, E. (2008). Stratego/XT 0.17. A language and toolset for program transformation. Science of Computer Programming.
  6. Chaki, S., Clarke, E., and Groce, A. (2004). Modular verification of software components in c. Transactions of Software Engineering, 1(8).
  7. Cimatti, A. and et. al. (2002). NuSMV Version 2: An OpenSource Tool for Symbolic Model Checking. In CAV, volume 2404 of LNCS.
  8. Clarke, E. M., Grumberg, O., and Peled, D. A. (1999). Model Checking. MIT Press.
  9. Das, M. and et. al. (2002). Esp: path-sensitive program verification in polynomial time. In PLDI 7802, pages 57-68.
  10. Erwig, M. and Ren, D. (2002). A rule-based language for programming software updates. SIGPLAN Not., 37(12):88-97.
  11. Futamura, Y., Konishi, Z., and Gl├╝ck, R. (2002). Wsdfu: program transformation system based on generalized partial computation. The essence of computation: complexity, analysis, transformation, pages 358-378.
  12. Goguen, J. A. and Burstall, R. M. (1992). Institutions: abstract model theory for specification and programming. J. ACM, 39(1):95-146.
  13. Gray, J., Bapty, T., and Neema, S. (2001). Handling crosscutting constraints in domain-specific modeling. In Communications of the ACM, pages 87-93.
  14. Harel, D. (1987). Statecharts: A visual formalism for complex systems. Science of Comp. Prog., 8(3).
  15. Harel, D. and Naamad, A. (1996). The statemate semantics of statecharts. ACM Trans. Softw. Eng. Methodol., 5(4):293-333.
  16. Huang, S. S., Zook, D., and Smaragdakis, Y. (2005). Statically safe program generation with safegen. In Generative Programming and Component Engineering.
  17. Kawaguchi, M., Rondon, P., and Jhala, R. (2009). Typebased data structure verification. In PLDI 7809, pages 304-315.
  18. Kleppe, A., Warmer, J., and Bast, W. (2003). MDA Explained: The Model Driven Architecture Practice and Promise. Addison Wesley.
  19. Knapp, A. and Merz., S. (2002). Model checking and code generation for uml state machines and collaborations. In Proc. 5th Wsh. Tools for System Design and Verification, pages 59-64.
  20. Kogekar, A., Kaul, D., Gokhale, A., Vandal, P., Praphamontripong, U., Gokhale, S., Zhang, J., Lin, Y., and Gray, J. (2006). Model-driven generative techniques for scalable performability analysis of distributed systems. In In Proceedings of the NSF NGS Workshop, International Conference on Parallel and Distributed Processing Symposium (IPDPS). IEEE.
  21. Levine, J. R., Mason, T., and Brown, D. (1992). Lex & Yacc. O'Reilly & Associates.
  22. Necula, G. C. (1997). Proof-carrying code. In POPL'97, pages 106-119.
  23. Niu, J., Atlee, J. M., and Day, N. A. (2003). Template semantics for model-based notations. IEEE Transactions on Software Engineering, 29(10):866-882.
  24. Owre, S., Rushby, J., and Shankar, N. (1992). PVS: A prototype verification system. In CADE.
  25. Poizat, P., Choppy, C., and Royer, J.-C. (1999). From informal requirements to coop: A concurrent automata approach. In Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II, pages 939-962.
  26. Prout, A., Atlee, J. M., Day, N. A., and Shaker, P. (2008). Semantically configurable code generation. In MoDELS, pages 705-720.
  27. Wasowski, A. (2003). On efficient program synthesis from statecharts. In LCTES 7803: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, pages 163-170, New York, NY, USA. ACM.
  28. Whalen, M. W. (2000). High-integrity code generation for state-based formalisms. In ICSE 7800: Proceedings of the 22nd international conference on Software engineering, pages 725-727, New York, NY, USA. ACM.
  29. Yi, Q., Seymour, K., You, H., Vuduc, R., and Quinlan, D. (2007). POET: Parameterized optimizations for empirical tuning. In Workshop on Performance Optimization for High-Level Languages and Libraries.

Paper Citation

in Harvard Style

Yi Q., Niu J. and R. Marneni A. (2011). COLLECTIVE SPECIFICATION AND VERIFICATION OF BEHAVIOR MODELS AND OBJECT-ORIENTED IMPLEMENTATIONS . In Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-77-5, pages 15-24. DOI: 10.5220/0003439300150024

in Bibtex Style

author={Qing Yi and Jianwei Niu and Anitha R. Marneni},
booktitle={Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,},

in EndNote Style

JO - Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,
SN - 978-989-8425-77-5
AU - Yi Q.
AU - Niu J.
AU - R. Marneni A.
PY - 2011
SP - 15
EP - 24
DO - 10.5220/0003439300150024