Abstract
Scalable formal analysis of reactive programs demands integration of modular reasoning techniques with existing analysis tools. Modular reasoning principles such as abstraction, compositional refinement, and assume-guarantee reasoning are well understood for architectural hierarchy that describes the communication structure between component processes, and have been shown to be useful. In this paper, we develop the theory of modular reasoning for behavior hierarchy that describes control structure using hierarchic modes. From Statecharts to UML, behavior hierarchy has been an integral component of many software design languages, but only syntactically. We present the hierarchic reactive modules language that retains powerful features such as nested modes, mode reuse, exceptions, group transitions, history, and conjunctive modes, and yet has a semantic notion of mode hierarchy. We present an observational trace semantics for modes that provides the basis for mode refinement. We show the refinement to be compositional with respect to the mode constructors, and develop an assume-guarantee reasoning principle.
References (32)
- Abadi, M. and Lamport, L. 1995. Conjoining specifications. ACM TOPLAS 17, 507-534.
- Alur, R., de Alfaro, L., Grosu, R., Henzinger, T., Kang, M., Majumdar, R., Mang, F., Kirsch, C., and Wang, B. 2001. Mocha: A model checking tool that exploits design structure. In Proceedings of 23rd International Conference on Software Engineering. 835-836.
- Alur, R., Grosu, R., and McDougall, M. 2000. Efficient reachability analysis of hierarchical reactive machines. In Computer Aided Verification: 12th International Conference. LNCS 1855. Springer, 280-295.
- Alur, R. and Henzinger, T. 1999. Reactive modules. Formal Methods in System Design 15, 1, 7-48. Invited submission to FLoC'96 special isuue. A preliminary version appears in Proc. 11th LICS, 1996.
- Alur, R. and Wang, B. 2001. Verifying network protocol implementations by symbolic refine- ment checking. In Computer Aided Verification: 13th International Conference. LNCS 2102. Springer, 169-181.
- Alur, R. and Yannakakis, M. 1998. Model checking of hierarchical state machines. In Proceed- ings of the Sixth ACM Symposium on Foundations of Software Engineering. 175-188.
- Behrmann, G., Larsen, K., Andersen, H., Hulgaard, H., and Lind-Nielsen, J. 1999. Verifica- tion of hierarchical state/event systems using reusability and compositionality. In TACAS '99: Fifth International Conference on Tools and Algorithms for the Construction and Analysis of Software. LNCS 1579. Springer, 163-177.
- Bhargavan, K., Gunter, C., Gunter, E., Jackson, M., Obradovic, D., and Zave, P. 1998. The village telephone system: A case study in formal software engineering. In Theorem Proving in Higher Order Logics: 11th International Conference. LNCS 1479. Springer, 49-66.
- Booch, G., Jacobson, I., and Rumbaugh, J. 1997. Unified Modeling Language User Guide. Addison Wesley.
- Chan, W., Anderson, R., Beame, P., Burns, S., Modugno, F., Notkin, D., and Reese, J. 1998. Model checking large software specifications. IEEE Transactions on Software Engineering 24, 7, 498-519.
- Clarke, E. and Emerson, E. 1981. Design and synthesis of synchronization skeletons using branching time temporal logic. In Proc. Workshop on Logic of Programs. LNCS 131. Springer, 52-71.
- Clarke, E. and Kurshan, R. 1996. Computer-aided verification. IEEE Spectrum 33, 6, 61-67.
- Grosu, R., Stefanescu, G., and Broy, M. 1998. Visual formalisms revisited. In CSD'98, International Conference on Application of Concurrency to System Design. IEEE, 41-51.
- Grümberg, O. and Long, D. 1994. Model checking and modular verification. ACM Transactions on Programming Languages and Systems 16, 3, 843-871.
- Harel, D. 1987. Statecharts: A visual formalism for complex systems. Science of Computer Programming 8, 231-274.
- Harel, D. and Naamad, A. 1996. The statemate semantics of statecharts. ACM Trans. Software Engin. Methods 5, 4, 293-333.
- Harel, D., Pnueli, A., Schmidt, J., and Sherman, R. 1987. On the formal semantics of state- charts. In Proc. 2nd IEEE Symposium on Logic in Computer Science. 54-64.
- Henzinger, T., Qadeer, S., and Rajamani, S. 1998. You assume, we guarantee: Methodology and case studies. In CAV 98: Computer-aided Verification. LNCS 1427. Springer, 521-525.
- Holzmann, G. 1997. The model checker SPIN. IEEE Trans. on Software Engineering 23, 5, 279-295.
- Huber, F., Schtz, B., Schmidt, A., and Spies, K. 1996. Autofocus -a tool for distributed systems specification. In Proceedings FTRTFT'96 -Formal Techniques in Real-Time and Fault-Tolerant Systems. Springer Verlag, LNCS 1135, 467-470.
- Jahanian, F. and Mok, A. 1987. A graph-theoretic approach for timing analysis and its imple- mentation. IEEE Transactions on Computers C-36, 8, 961-975.
- Lamport, L. 1994. The temporal logic of actions. ACM Transactions on Programming Languages and Systems 16, 3, 872-923.
- Leveson, N., Heimdahl, M., Hildreth, H., and Reese, J. 1994. Requirements specification for process control systems. IEEE Transactions on Software Engineering 20, 9, 684-707.
- Lüttgen, G., van der Beeck, M., and Cleaveland, R. 2000. A compositional approach to Statecharts semantics. In Proceedings of the Eighth International Symposium on Foundations of Software Engineering. 120-129.
- Lynch, N. and Tuttle, M. 1987. Hierarchical correctness proofs for distributed algorithms. In Proceedings of the Seventh ACM Symposium on Principles of Distributed Computing. 137-151.
- McMillan, K. 1993. Symbolic model checking: an approach to the state explosion problem. Kluwer Academic Publishers.
- McMillan, K. 1997. A compositional rule for hardware design refinement. In CAV 97: Computer- Aided Verification. LNCS 1254. 24-35.
- Milner, R. 1980. A Calculus of Communicating Systems. LNCS 92. Springer.
- Pnueli, A. and Shalev, M. 1991. What is in a step: On the semantics of statecharts. In Proc. Symposium on Theoretical Aspects of Computer Software. LNCS 526. Springer, 244-264.
- Selic, B., Gullekson, G., and Ward, P. 1994. Real-time object oriented modeling and design. J. Wiley.
- Stark, E. 1985. A proof technique for rely-guarantee properties. In FST & TCS 85, Foundations of Software Technology and Theoretical Computer Science. LNCS 206. Springer, 369-391.
- Uselton, A. and Smolka, S. 1994. A compositional semantics for statecharts using labeled transition systems. In CONCUR'94: Concurrency Theory, Fifth International Conference. LNCS 836. Springer, 2-17.