Abstract
Real-time systems are becoming increasingly widespread, often in safety-critical applications. It is therefore crucial that these systems be correct; however, there are few automated tools for analyzing concurrency and timing properties of these systems. The PARTS toolset uses a Petri-net-based reachability analysis to analyze program specifications written in an Ada-83 subset. Our simple time Petri nets are specifically aimed at facilitating real-time analysis. In order to control the state-explosion problem, PARTS employs several optimization techniques aimed at state-space reduction. In this paper we discuss our approach and we report on extensive experiments with several examples of real-time specifications based on Ada 83. When possible, we also compare our experimental results with results obtained by other approaches to real-time analysis.
Similar content being viewed by others
References
Alur, R. and Dill, D. 1994. Automata for modelling real–time systems. Theoretical Computer Science, 126(2):183–235.
Avrunin, G.S., Buy, U.A., Corbett, J.C., Dillon, L.K., and Wileden, J.C. 1991. Automated analysis of concurrent systems with the constrained expression toolset. IEEE Trans. Softw. Eng., 17(11):1204–1222.
Avrunin, G.S., Corbett, J.C., Dillon, L.K., and Wileden, J.C. 1994. Automated derivation of time bounds in uniprocessor concurrent systems. IEEE Trans. Softw. Eng., 20(9):708–719.
Bellettini, C., Felder, M., and Pezzè, M. 1993. Merlot: A tool for analysis of real–time specifications. In Proceedings of the Seventh International Workshop on Software Specification and Design, Redondo Beach, California, Dec. 1993. pp. 110–119.
Belluomini, W. and Myers, C.J. 1998. Verification of timed systems using POSETs. In Proc. 1998 Computer–Aided Verification, CAV'98, Vancouver, Canada, June 1998. Springer–Verlag. vol. 1427 of Lecture Notes in Computer Science.
Bengtsson, J., Larsen, K.G., Larsson, F., Pettersson, P., Wang, Y., and Weise, C. 1998. New Generation of UPPAAL. In Int. Workshop on Software Tools for Technology Transfer, June 1998.
Berry, G. 1994. Reactive programming. In J.J. Marciniak, editor, Encyclopedia of Software Engineering. New York, New York: John Wiley & Sons, Inc., vol. 2, pp. 1005–1006.
Berry, G. and Gonthier, G. 1992. The synchronous programming language Esterel, design, semantics, implementation. Science of Computer Programming, 19(2):87–152.
Berthelot, G. 1987. Checking properties of nets using transformations. In G. Rozenberg, editor, Advances in Petri Nets 1985. Springer–Verlag, pp. 19–40.
Berthomieu, B. and Diaz, M. 1991. Modeling and verification of time dependent systems using time Petri nets. IEEE Trans. Softw. Eng., 17(3):259–273.
Bjørner, N., Browne, A., Chang, E., Colón, M., Kapur, A., Manna, Z., Sipma, H., and Uribe, T.E. 1996. STeP: Deductive–algorithmic verification of reactive and real–time systems. In Computer–Aided Verification: 8th International Conference, CAV '96. Springer–Verlag, July 1996, pp. 415–418. LNCS, vol. 1102.
Bozga, M., Daws, C., Maler, O., Olivero, A., Tripakis, S., and Yovine, S. 1998. Kronos: A model–checking tool for real–time systems. In Proc. 1998 Computer–Aided Verification, CAV'98, Vancouver, Canada, June 1998. Springer–Verlag. vol. 1427 of Lecture Notes in Computer Science.
Bryant, R.E. 1992. Symbolic boolean manipulation with ordered binary–decision diagrams. ACM Comput. Surv., 24(3):293–318.
Bucci, G. and Vicario, E. 1995. Compositional validation of time–critical systems using communicating time Petri nets. IEEE Trans. Softw. Eng., 21(12):969–992.
Burch, J., Clarke, E., McMillan, K., Dill, D., and Hwang, L. 1990. Symbolic model checking: 1020 states and beyond. In Proceedings of the Fifth Annual IEEE Symposium on Logic in Computer Science, pp. 428–439.
Buy, U. and Sloan, R. 1993. A Petri–net–based approach to real–time program analysis. In Proceedings of the Seventh International Workshop on Software Specification and Design, Dec. 1993. pp. 56–60.
Buy, U. and Sloan, R.H. 1994. Analysis of real–time programs with simple time Petri nets. In Proc. 1994 Internat. Sympos. on Software Testing and Analysis, Aug. 1994, pp. 228–239.
Campos, S., Clarke, E., Marrero, W., and Minea, M. 1995. Verus: A tool for quantitative analysis of finite–state real–time systems. In Second ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Real–Time Systems, June 1995, pp. 75–84.
Campos, S., Clarke, E., Marrero, W., Minea, M., and Hiraishi, H. 1994. Computing quantitative characteristics of finite–state real–time systems. In IEEE Real–Time Systems Symposium.
Cha, S.S., Leveson, N.G., and Shimeall, T.J. 1988. Safety verification in MURPHY using fault tree analysis. In Proceedings of the Tenth International Conference on Software Engineering, April 1988, pp. 377–386.
Corbett, J.C. 1996a. Constructing abstract models of concurrent real–time software. In S.J. Zeil, editor, Proceedings of the 1996 International Symposium on Software Testing and Analysis (ISSTA), San Diego, California, Jan. 1996, pp. 250–260.
Corbett, J.C. 1996b. Evaluating deadlock detection methods for concurrent software. IEEE Trans. Softw. Eng., 22(3):161–179.
Corbett, J.C. and Avrunin, G.S. 1993. A practical technique for bounding the time between events in concurrent real–time systems. In T. Ostrand and E. Weyuker, editors, Proc. 1993 Internat. Sympos. on Software Testing and Analysis, Cambridge, Massachusetts, June 1993. ACM, pp. 110–116.
Cormen, T.H., Leiserson, C.E., and Rivest, R.L. 1990. Introduction to Algorithms. MIT Press/McGraw–Hill New York, New York.
Dijkstra, E.W. 1959. A note on two problems in connexion with graphs. Numerische Mathematik, 1:269–271.
Duri, S., Buy, U., Devarapalli, R., and Shatz, S.M. 1994. Application and experimental evaluation of state space reduction methods for deadlock analysis in Ada. ACM Trans. Software Engineering and Methodology, 3(4):340–380.
Fernandez, J.C. and Mounier, L. 1992. On the fly verification of behavioral equivalences and preorders. In K.G. Larsen and A. Skou, editors, Computer–Aided Verification: 3rd Internat. Conf., CAV '91, Springer–Verlag, pp. 181–191. LNCS, vol. 575.
Gerber, R. and Lee, I. 1992. A layered approach to automating the verification of real–time systems. IEEE Trans. Softw. Eng., 18(9):768–783.
Ghezzi, C., Mandrioli, D., Morasca, S., and Pezzè, M. 1989. A general way to put time in Petri nets. In Proc. 5th Internat. Workshop on Software Specifications and Design, Pittsburgh, Pennsylvania, May 1989, pp. 60–67.
Ghezzi, C., Mandrioli, D., Morasca, S., and Pezzè, M. 1991. A unified high–level Petri net formalism for time–critical systems. IEEE Trans. Softw. Eng., 17(2):160–172.
Godefroid, P. and Wolper, P. 1992. Using partial orders for the efficient verification of deadlock freedom and safety properties. In K.G. Larsen and A. Skou, editors, Computer–Aided Verification: 3rd Internat. Conf., CAV '91, Springer–Verlag, 1992, pp. 332–342. LNCS, vol. 575.
Halbwachs, N., Lagnier, F., and Ratel, C. 1992. Programming and verifying real–time systems by means of the synchronous data–flow language Lustre. IEEE Trans. Softw. Eng., 18(9):785–793.
Härbour, M.G. Klein, M.H., and Lehoczky, J.P. 1994. Timing analysis for fixed–priority scheduling of hard real–time systems. IEEE Trans. Softw. Eng., 20(1):13–28.
Heitmeyer, C., Jeffords, R., and Labaw, B. 1993. A benchmark for comparing different approaches for specifying and verifying real–time systems. In Proc. Tenth Internat. Workshop on Real–Time Operating Systems and Software, May 1993.
Henzinger, T.A., Ho, P.–H., and Wong–Toi, H. 1997a. HYTECH: A model checker for hybrid systems. Software Tools for Technology Transfer, 1997a. An earlier version appeared in (Henzinger et al. 1997b).
Henzinger, T.A., Ho, P.–H., and Wong–Toi, H. 1997b. HYTECH: A symbolic model checker for hybrid systems. In O. Grumberg, editor, Computer Aided Verification: 9th Internat. Conf., CAV 97. Springer–Verlag, 1997b. pp. 460–463. LNCS, vol. 1254.
Henzinger, T.A., Nicollin, X., Sifakis, J., and Yovine, S. 1994. Symbolic model checking for real–time systems. Information and Computation, 111:193–244.
Jahanian, F. and Mok, A.K. 1994. Modechart: A specification language for real–time systems. IEEE Trans. Softw. Eng., 20(12):933–947.
Jahanian, F. and Stuart, D.A. 1988. A method for verifying properties of Modechart specifications. In Proc. Real–Time Systems Sympos., Dec. 1988, pp. 12–21.
Jensen, K. 1997. Coloured Petri Nets: Basic Concepts, Analysis Methods and Practical Use. Springer–Verlag, New York, New York. vol. 3 of Monographs in Theoretical Computer Science.
Köbler, J., Schöning, U., and Torán, J. 1992. Graph isomorphism is low for PP. Computational Complexity, 2(4):301–330.
Kopetz, H. 1997. Real–Time Systems: Design Principles for Distributed Embedded Applications, Boston, Massachusetts: Kluwer Academic Publishers, vol. 395 of The Kluwer International Series in Engineering and Computer Science.
Kristensen, L.M., Christensen, S., and Jensen, K. 1998. The practitioner's guide to coloured Petri nets. Software Tools for Technology Transfer, 2(2):98–132.
Larsen, K.G., Pettersson, P., and Yi, W. 1997. UPPAAL in a Nutshell. Int. Journal on Software Tools for Technology Transfer, 1(1–2):134–152.
Lawford, M. and Wonham, W.M. 1995. Equivalence preserving transformations for timed transition models. IEEE Transactions on Automatic Control, 40(7):1167–1179.
Liu, C.L. and Layland, J.W. 1973. Scheduling algorithms for multi–programming in a hard real–time environment. J. ACM, 20(1):46–61.
Merlin, P.M. and Farber, D.J. 1976. Recoverability of communication protocols—implications of a theoretical study. IEEE Trans. Communications, COM–24(9):1036–1043.
Murata, T. 1989. Petri nets: Properties, analysis and applications. Proceedings of the IEEE, 77(4):541–580.
Murata, T., Shenker, B., and Shatz, S.M. 1989. Detection of Ada static deadlocks using Petri net invariants. IEEE Trans. Softw. Eng., 15(3):314–326.
Nicollin, X., Sifakis, J., and Yovine, S. 1992. Compiling real–time specifications into extended automata. IEEE Trans. Softw. Eng., 18(9):794–804.
Ostroff, J.S. 1997. A visual toolset for the design of real–time discrete–event systems. IEEE Transactions on Control Systems Technology, 5(3):320–337.
Ramchandani, C. 1976. Analysis of asynchronous concurrent systems using timed Petri nets. Research Report MAC–TR 120, Massachusetts Institute of Technology, Feb. 1976.
Schütz, W. 1994. Fundamental issues in testing distributed real–time systems. Real–Time Systems, 7(2):129–157.
Shatz, S.M., Mai, K., Black, C., and Tu, S. 1990. Design and implementation of a Petri net–based toolkit for Ada tasking analysis. IEEE Transactions on Parallel Distributed Systems, 1(4):424–441.
Sloan, R.H. and Buy, U. 1996. Reduction rules for time Petri nets. Acta Inf., 33(7):687–706.
Sloan, R.H. and Buy, U. 1997. Stubborn sets for real–time Petri nets. Formal Methods in System Design, 11(1):23–40.
Starke, P.H. 1991. Reachability analysis of Petri nets using symmetries. Syst. Anal. Model. Simul., 8:293–303.
Stuart, D.A. 1990. Implementing a verifier for real–time systems. In Proceedings 11th Real–Time Systems Symposium, Lake Buena Vista, Florida, Dec. 1990. IEEE, pp. 62–71.
Tu, S., Shatz, S.M., and Murata, T. 1990. Applying Petri net reduction to support Ada–tasking deadlock analysis. In Proc. Eleventh Internat. Conference on Distributed Computing Systems, Paris, France, pp. 96–103.
U.S. Department of Defense, Washington, D.C. 1983. Reference Manual for the Ada Programming Language, ANSI/MIL–STD–1815A edition, Jan. 1983.
Valmari, A. 1988. Error detection by reduced reachability graph generation. In Proc. of the Ninth European Workshop on the Application and Theory of Petri Nets, Venice, Italy, pp. 95–112.
Valmari, A. 1991. A stubborn attack on state explosion. In E.M. Clarke and R.P. Kurshan, editors, Computer–Aided Verification: 2nd Internat. Conf., CAV '90. Springer–Verlag, 1991, pp. 156–165. LNCS, vol. 531.
Vlachogiannis, E. 1994. On translating Ada programs into Petri nets: Issues and an object–oriented implementation. Master's thesis, University of Illinois, Chicago, Illinois.
Yang, J., Mok, A.K., and Wang, F. 1993. Symbolic model checking for event–driven real–time systems. In Proc. Real–Time Systems Symposium Dec. 1993. IEEE, pp. 23–32.
Yoneda, T., Shibayama, A., Schlingloff, B.–H., and Clarke, E.M. 1993. Efficient verification of parallel real–time systems. In C. Courcoubetis, editor, Computer–Aided Verification: 5th Internat. Conf., CAV '93. Springer–Verlag, 1993, pp. 321–332. LNCS, vol. 697.
Yovine, S. 1997. A verification tool for real–time systems. Software Tools for Technology Transfer, 1(12):123–133.
Yovine, S. 1998. Model–checking timed automata. In Embedded Systems. Springer–Verlag, Oct. 1998. vol. 1494 of Lecture Notes in Computer Science.
Zuberek, W.M. 1991. Timed Petri nets: Definitions, properties, and applications. Microelectronics and Reliability, 31(4):627–644.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Buy, U., Sloan, R. Automatic Real-Time Analysis of Reactive Systems with the PARTS Toolset. Automated Software Engineering 8, 227–273 (2001). https://doi.org/10.1023/A:1011235419951
Issue Date:
DOI: https://doi.org/10.1023/A:1011235419951