skip to main content
article

A strategy for efficiently verifying requirements

Published:01 September 2003Publication History
Skip Abstract Section

Abstract

This paper describes a compositional proof strategy for verifying properties of requirements specifications. The proof strategy, which may be applied using either a model checker or a theorem prover, uses known state invariants to prove state and transition invariants. Two proof rules are presented: a standard incremental proof rule analogous to Manna and Pnueli's incremental proof rule and a compositional proof rule. The advantage of applying the compositional rule is that it decomposes a large verification problem into smaller problems which often can be solved more efficiently than the larger problem. The steps needed to implement the compositional rule are described, and the results of applying the proof strategy to two examples, a simple cruise control system and a real-world Navy system, are presented. In the Navy example, compositional verification %based on the compositional proof using either theorem proving or model checking was three times faster than verification %model checking using based on the standard incremental (noncompositional) rule. In addition to the two above rules for proving invariants, a new compositional proof rule is presented for circular assume-guarantee proofs of invariants. While in principle the strategy and %the rules described for proving invariants may be applied to any state-based specification with parallel composition of components, the specifications in the paper are expressed in the SCR (Software Cost Reduction) tabular notation, the auxiliary invariants used in the proofs are automatically generated invariants, and the verification is supported by the SCR tools.

References

  1. M. Abadi and L. Lamport. Conjoining specifications. ACM Trans. Prog. Lang. and Sys., 17(3):507--535, May 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Alur and T. A. Henzinger. Computer-aided verification. draft book manuscript, Sept. 1999.]]Google ScholarGoogle Scholar
  3. R. Alur and T. A. Henzinger. Reactive modules. Formal Methods in Sys. Design, 15:7--48, July 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Archer. TAME: Using PVS strategies for special-purpose theorem proving. Annals of Mathematics and Artificial Intelligence, 29(1--4), February 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. G. Berry and G. Gonthier. The Esterel synchronous program-ming language: Design, semantics, implementation. Science of Computer Programming, 19, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Bharadwaj. A framework for the formal analysis of multi-agent systems. In Proc. Formal Aspects of Multi-Agent Systems (FAMAS'03), Warsaw, Poland, Apr. 2003. ETAPS 2003.]]Google ScholarGoogle Scholar
  7. R. Bharadwaj and C. Heitmeyer. Model checking com-plete requirements specifications using abstraction. Auto-mated Software Engineering Journal, 6(1), Jan. 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. Bharadwaj and S. Sims. Salsa: Combining constraint solvers with BDDs for automatic invariant checking. In Proc. Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2000), Berlin, Mar. 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. M. Chandy and J. Misra. Proofs of networks of processes. IEEE Trans. Softw. Engin., SE-7(4):417--426, Apr. 1981.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Y. Choi and M. P. E. Heimdahl. Model checking RSML-e requirements. In Proc. 7th IEEE Int'l Symp. on High Assurance Sys. Engin. (HASE'02), Tokyo, Japan, Oct. 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Cimatti et al. NuSMV 2: An open source tool for symbolic model checking. In Proc. Computer-Aided Verification (CAV 2002), Copenhagen, Denmark, July 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. M. Clarke, O. Grumberg, and D. A. Peled. Model Check-ing. MIT press, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Graf and H. Saidi. Construction of abstract state graphs with PVS. In O. Grumberg, editor, Proc. 9th International Conference on Computer Aided Verification (CAV'97),volume 1254, pages 72--83. Springer Verlag, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Halbwachs, F. Lagnier, and C. Ratel. Programming and verifying real-time systems by means of the synchronous data-flow language LUSTRE. IEEE Trans. Softw. Engin., 18(9):785--793, Sept. 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. Heitmeyer. Software Cost Reduction. In J. J. Marciniak, editor, Encyclopedia of Software Engineering. John Wiley & Sons, Inc., New York, NY, second edition, 2002.]]Google ScholarGoogle Scholar
  16. C. Heitmeyer, M. Archer, R. Bharadwaj, R. Jeffords, and J. Kirby, Jr. Tools for tabular specification and analysis of requirements. Technical report, Naval Research Laboratory, Washington, DC, 2003. To appear.]]Google ScholarGoogle Scholar
  17. C. Heitmeyer, J. Kirby, B. Labaw, M. Archer, and R. Bharadwaj. Using abstraction and model checking to detect safety violations in requirements specifications. IEEE Trans. on Softw. Eng., 24(11), Nov. 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. C. Heitmeyer, J. Kirby, Jr., B. Labaw, and R. Bharadwaj. SCR*: A toolset for specifying and analyzing software requirements. In Proc. Computer-Aided Verification, 10th Annual Conf. (CAV'98), Vancouver, Canada, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. L. Heitmeyer, R.D. Jeffords, and B.G.Labaw. Automated consistency checking of requirements specifications. ACM Transactions on Software Engineering and Methodology, 5(3):231--261, April--June 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. G. J. Holzmann. The model checker SPIN. IEEE Transactions on Software Engineering, 23(5):279--295, May 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. Jeffords and C. Heitmeyer. Automatic generation of state invariants from requirements specifications. In Proc. Sixth ACM SIGSOFT Symp. on Foundations of Software Engineering, Nov. 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. D. Jeffords and C. L. Heitmeyer. An algorithm for strengthening state invariants generated from requirements specifica-tions. In Proc. of the Fifth IEEE International Symposium on Requirements Engineering, Aug. 2001.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Kirby, Jr. Example NRL/SCR software requirements for an automobile cruise control and monitoring system. Technical Report TR-87-07, Wang Institute of Graduate Studies, 1987.]]Google ScholarGoogle Scholar
  24. J. Kirby, Jr., M. Archer, and C. Heitmeyer. SCR: A practical approach to building a high assurance COMSEC system. In Proceedings of the 15th Annual Computer Security Applications Conference (ACSAC '99). IEEE Computer Society Press, Dec. 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Y. Lakhnech, S. Bensalem, S. Berezin, and S. Owre. Incremental verification by abstraction. In T. Margaria and W. Yi, editors, Proc. Tools and Algorithms for Construction and Analysis of Systems (TACAS'01), number 2031 in LNCS, pages 98--112. Springer-Verlag, Apr. 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Z. Manna et al. STeP: the Stanford Temporal Prover. Techni-cal Report STAN-CS-TR-94-1518, Stanford Univ., Stanford, CA, June 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. Springer-Verlag, New York, NY, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. K. L. McMillan. Getting Started with SMV: User's Manual. Cadence Berkeley Laboratories, Berkeley, CA, Mar. 1999.]]Google ScholarGoogle Scholar
  30. K. L. McMillan. A methodology for hardware verification using compositional model checking. Science of Comput. Prog., 37:279--309, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. K. S. Namjoshi and R. J. Trefler. On the completeness of compositional reasoning. In E. A. Emerson and A. P. Sistla, editors, Proc. Computer-Aided Verification (CAV'00), Chicago, IL, July 2000. LNCS 1855, Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. D. L. Parnas and J. Madey. Functional documentation for computer systems. Science of Computer Programming, 25(1):41--61, Oct. 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. A. Pnueli. In transition from global to modular temporal reasoning about programs. In K. R. Apt, editor, Proc. NATO Adv. Study Inst. on Logics and Models of Concurrent Systems,La Colle-sur-Loup, France, Oct. 1984. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. J. Ramish. Empirical studies of compositional abstraction. Technical report, Naval Research Laboratory, Washington, DC, 2003. Draft.]]Google ScholarGoogle Scholar
  35. H. Saïdi and N. Shankar. Abstract and model check while you prove. In Proc. Computer-Aided Verification (CAV99), Trento,Italy, July 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. N. Shankar, S. Owre, and J. Rushby. The PVS proof checker: A reference manual. Technical report, Computer Science Lab, SRI Intern., Menlo Park, CA, 1993.]]Google ScholarGoogle Scholar
  37. A. J. van Schouwen. The A-7 requirements model: Re-examination for real-time systems and an application for monitoring systems. Technical Report TR 90-276, Queen's Univ., Kingston, ON, Canada, 1990.]]Google ScholarGoogle Scholar

Index Terms

  1. A strategy for efficiently verifying requirements

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGSOFT Software Engineering Notes
                ACM SIGSOFT Software Engineering Notes  Volume 28, Issue 5
                September 2003
                382 pages
                ISSN:0163-5948
                DOI:10.1145/949952
                Issue’s Table of Contents
                • cover image ACM Conferences
                  ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
                  September 2003
                  394 pages
                  ISBN:1581137435
                  DOI:10.1145/940071

                Copyright © 2003 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 September 2003

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader