Skip to main content

Abstract

Model-driven software development involves constructing behavioral models from informal English requirements. These models are then used to guide software construction. The compilation of behavioral models into software is the topic of many existing research works. There also exist a number of UML-based modeling tools which support such model compilation. In this paper, we show how Statechart models can be validated/debugged by (a) generating code from the Statechart models, (b) employing established software debugging methods like program slicing on the generated code, and (c) relating the program slice back to the Statechart level. Our study is presented concretely in terms of dynamic slicing of Java code produced from Statechart models. The slice produced at the code level is mapped back to the model level for enhanced design comprehension. We use the open-source JSlice tool for dynamic slicing of Java programs in our experiments. We present results on a wide variety of real-life control systems which are modeled as Statecharts (from the informal English requirements) and debugged using our methodology. We feel that our debugging methodology fits in well with design flows in model-driven software development.

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 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.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. Rhapsody tool. I-logix, inc. website, http://www.ilogix.com

  2. Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8(3), 231–274 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  3. Agrawal, H., Horgan, J.: Dynamic program slicing. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (1990)

    Google Scholar 

  4. Korel, B., Laski, J.W.: Dynamic program slicing. Information Processing Letters 29(3), 155–163 (1988)

    Article  MATH  Google Scholar 

  5. Heimdahl, M.P.E., Whalen, M.W.: Reduction and slicing of hierarchical state machines. In: Intl. Symp. on Foundations of Software Engineering (FSE) (1997)

    Google Scholar 

  6. Feldman, Y.A., Schneider, H.: Simulating reactive systems by deduction. ACM Transactions on Software Engineering and Methodology (TOSEM) 2(2) (1993)

    Google Scholar 

  7. Nguyen, K.D., Sun, Z., Thiagarajan, P.S., Wong, W.-F.: Model-driven SoC design via executable UML to systemc. In: IEEE Real-time Systems Symp (RTSS) (2004)

    Google Scholar 

  8. Wasowski, A.: On efficient program synthesis from statecharts. In: Intl. Conf. on Languages, Compilers and Tools for Embedded Systems (LCTES) (2003)

    Google Scholar 

  9. Kohler, H.J., Nickel, U., Niere, J., Zundorf, A.: Integrating UML diagrams for production control systems. In: Intl. Conf. on Software engineering (ICSE) (2000)

    Google Scholar 

  10. Harrison, W., Barton, C., Raghavachari, M.: Mapping UML designs to Java. In: Intl. Conf. on Object-oriented Prog. Sys. and Languages (OOPSLA) (2000)

    Google Scholar 

  11. Stateflow tool. The MathWorks, inc. website, http://www.mathworks.com

  12. Harel, D., Gery, E.: Executable object modeling with statecharts. IEEE Computer 30(7) (1997)

    Google Scholar 

  13. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

  14. Wang, T., Roychoudhury, A.: Using compressed bytecode traces for slicing Java programs. In: Intl. Conf. on Software Engineering (ICSE) (2004)

    Google Scholar 

  15. Guo, L., Roychoudhury, A., Wang, T.: Accurately choosing execution runs for software fault localization. In: Mycroft, A., Zeller, A. (eds.) CC 2006. LNCS, vol. 3923, pp. 80–95. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  16. Wang, T., Roychoudhury, A.: Hierarchical dynamic slicing. In: International Symposium on Software Testing and Analysis (ISSTA) (2007)

    Google Scholar 

  17. Shuttle_Control_System. New rail-technology Paderborn, http://www.cs.uni-paderborn.de/cs/ag-schaefer/CaseStudies/ShuttleSystem

  18. CTAS. Center TRACON automation system, http://www.ctas.arc.nasa.gov

  19. MOST Cooperation, http://www.mostcooperation.com

  20. JSlice: dynamic slicing tool for Java. T. Wang and A. Roychoudhury, National University of Singapore, http://jslice.sourceforge.net

  21. Wang, T., Roychoudhury, A.: Dynamic slicing on Java bytecode traces. ACM Transactions on Programming Languages and Systems (TOPLAS) 30(2) (2008)

    Google Scholar 

  22. Gyimóthy, T., Beszédes, Á., Forgács, I.: An efficient relevant slicing method for debugging. In: 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 303–321 (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Guo, L., Roychoudhury, A. (2008). Debugging Statecharts Via Model-Code Traceability. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. ISoLA 2008. Communications in Computer and Information Science, vol 17. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-88479-8_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-88479-8_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-88478-1

  • Online ISBN: 978-3-540-88479-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics