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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Rhapsody tool. I-logix, inc. website, http://www.ilogix.com
Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8(3), 231–274 (1987)
Agrawal, H., Horgan, J.: Dynamic program slicing. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (1990)
Korel, B., Laski, J.W.: Dynamic program slicing. Information Processing Letters 29(3), 155–163 (1988)
Heimdahl, M.P.E., Whalen, M.W.: Reduction and slicing of hierarchical state machines. In: Intl. Symp. on Foundations of Software Engineering (FSE) (1997)
Feldman, Y.A., Schneider, H.: Simulating reactive systems by deduction. ACM Transactions on Software Engineering and Methodology (TOSEM) 2(2) (1993)
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)
Wasowski, A.: On efficient program synthesis from statecharts. In: Intl. Conf. on Languages, Compilers and Tools for Embedded Systems (LCTES) (2003)
Kohler, H.J., Nickel, U., Niere, J., Zundorf, A.: Integrating UML diagrams for production control systems. In: Intl. Conf. on Software engineering (ICSE) (2000)
Harrison, W., Barton, C., Raghavachari, M.: Mapping UML designs to Java. In: Intl. Conf. on Object-oriented Prog. Sys. and Languages (OOPSLA) (2000)
Stateflow tool. The MathWorks, inc. website, http://www.mathworks.com
Harel, D., Gery, E.: Executable object modeling with statecharts. IEEE Computer 30(7) (1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)
Wang, T., Roychoudhury, A.: Using compressed bytecode traces for slicing Java programs. In: Intl. Conf. on Software Engineering (ICSE) (2004)
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)
Wang, T., Roychoudhury, A.: Hierarchical dynamic slicing. In: International Symposium on Software Testing and Analysis (ISSTA) (2007)
Shuttle_Control_System. New rail-technology Paderborn, http://www.cs.uni-paderborn.de/cs/ag-schaefer/CaseStudies/ShuttleSystem
CTAS. Center TRACON automation system, http://www.ctas.arc.nasa.gov
MOST Cooperation, http://www.mostcooperation.com
JSlice: dynamic slicing tool for Java. T. Wang and A. Roychoudhury, National University of Singapore, http://jslice.sourceforge.net
Wang, T., Roychoudhury, A.: Dynamic slicing on Java bytecode traces. ACM Transactions on Programming Languages and Systems (TOPLAS) 30(2) (2008)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)