Abstract
A controversial issue in the formal methods community is the degree to which mathematical sophistication and theorem proving skills should be needed to apply a formal method. A fundamental assumption of this paper is that formal methods research has produced several classes of analysis that can prove useful in software development. However, to be useful to software practitioners, most of whom lack advanced mathematical training and theorem proving skills, current formal methods need a number of additional attributes, including more user-friendly notations, completely automatic (i.e., pushbutton) analysis, and useful, easy to understand feedback. Moreover, formal methods need to be integrated into a standard development process. I discuss additional research and engineering that is needed to make the current set of formal methods more practical. To illustrate the ideas, I present several examples, many taken from the SCR (Software Cost Reduction) requirements method, a formal method that software developers can apply without theorem proving skills, knowledge of temporal and higher order logics, or consultation with formal methods experts.
This work was supported by the Office of Naval Research and SPAWAR.
Preview
Unable to display preview. Download preview PDF.
References
R. J. Anderson et al. “Model checking large software specifications.” Proc. 4 th ACM SIGSOFT Symp. Foundations of Software Eng., October 1996.
M. Archer, C. Heitmeyer, and S. Sims. “TAME: A PVS Interface to Simplify Proofs for Automata Models.” Proc. User Interfaces for Theorem Provers 1998 (UITP 98), Eindhoven, Netherlands, July 13–15, 1998.
S. Bensalem, Y. Lakhnech, and Hassen SaÏdi. “Powerful techniques for the automatic generation of invariants.” Proc. 8 th Intern. Conf. on Computer-Aided Verification, CAV ’96, New Brunswick, NJ, July 1996.
S. Bensalem, Y. Lakhnech, and S. Owre. “Computing abstractions of infinite state systems compositionally and automatically.” Proc. 10 th Intern. Conf. on Computer-Aided Verification, CAV ’98, Vancouver, BC, Canada, June–July 1998.
R. Bharadwaj and C. Heitmeyer. “Model checking complete requirements specifications using abstraction.” Automated Software Eng. Journal (to appear).
E. M. Clarke, E. A. Emerson and A. P. Sistla. “Automatic verification of finite-state concurrent systems using temporal logic specifications.” ACM Transactions on Programming Languages and Systems 8(2):244–263, 1986.
S. Easterbrook and J. Callahan. “Formal methods for verification and validation of partial specifications: A case study.” Journal of Systems and Software, 1997.
S. Faulk et al. “Experience applying the CoRE method to the Lockheed C-130J.” Proc. 9 th Annual Computer Assurance Conf. (COMPASS ’94), June 1994.
D. Harel. “Statecharts: a visual formalism for complex systems.” Science of Computer Programming 8(1): 231–274, Jan. 1987.
M. P. E. Heimdahl and N. Leveson. “Completeness and consistency analysis in hierarchical state-based requirements.” IEEE Trans. on Software Eng. SE-22(6), pp. 363–377, Jun. 1996.
C. Heitmeyer, R. Jeffords, and B. Labaw. “Automated consistency checking of requirements specifications.” ACM Trans. Software Eng. and Method. 5(3), 1996.
C. Heitmeyer, J. Kirby, and B. Labaw. “Tools for formal specification, verification, and validation of requirements.” Proc. 12 th Annual Conf. on Computer Assurance (COMPASS ’97), June 1997.
C. Heitmeyer, J. Kirby, B. Labaw, and R. Bharadwaj. “SCR*: A Toolset for specifying and analyzing software requirements.” Proc. 10 th Intern. Conf. on Computer-Aided Verification, CAV ’98, Vancouver, BC, Canada, June–July 1998.
C. Heitmeyer, J. Kirby, and B. Labaw. “Applying the SCR requirements method to a weapons control panel: An experience report.” Proc. 2 nd Workshop on Formal Methods in Software Practice (FMSP’98), St. Petersburg, FL, March 1998.
R. Jeffords and C. Heitmeyer. “Automatic generation of state invariants from requirements specifications.” Proc. 6 th ACM SIGSOFT Symposium Foundations of Software Eng., November 1998 (accepted for publication).
M. Kaufmann and J S. Moore. ACL2: An industrial strength theorem prover for a logic based on common Lisp. IEEE Trans. on Software Eng. SE-23(4), Apr. 1997.
R. Kurshan. Formal verification in a commercial setting. Proc. Design Automation Conference, June 1997.
D. Lending and N. L. Chervany. “CASE tools: Understanding the reasons for non-use,” ACM Computer Personnel 19(2), Apr. 1998.
C. Loiseaux, S. Graf, J. Sifakis, A. Bouajjani, and S. Bensalem. “Property preserving abstractions for the verification of concurrent systems.” Formal Methods in System Design 6, 1–35, 1995.
G. Lowe. “Breaking and fixing the Needham-Schroeder Public-Key Protocol using FDR.” In Tools and Algorithms for the Construction of Systems, Margaria and Steffen, eds., LNCS 1055, Springer-Verlag, 147–166, 1996.
Sam Owre, John Rushby, Natarajan Shankar, Friedrich von Henke. “Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS.” IEEE Transactions on Software Engineering, vol. 21, no. 2, pp. 107–125, Feb. 1995.
S. Miller. “Specifying the mode logic of a flight guidance system in CoRE and SCR.” Proc. 2 nd Workshop on Formal Methods in Software Practice (FMSP’98), St. Petersburg, FL, March 1998.
D. Y. W. Park et al. “Checking properties of safety-critical specifications using efficient decision procedures.” Proc. 2 nd Workshop on Formal Methods in Software Practice (FMSP’98), St. Petersburg, FL, March 1998.
D. Peled. “A toolset for message sequence charts.” Proc. 10 th Intern. Conf. on Computer-Aided Verification, CAV ’98, Vancouver, BC, Canada, June–July 1998.
S. T. Probst. “Chemical process safety and operability analysis using symbolic model checking.” PhD thesis, Carnegie-Mellon Univ., Pittsburgh, PA, 1996.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Heitmeyer, C. (1998). On the need for practical formal methods. In: Ravn, A.P., Rischel, H. (eds) Formal Techniques in Real-Time and Fault-Tolerant Systems. FTRTFT 1998. Lecture Notes in Computer Science, vol 1486. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055332
Download citation
DOI: https://doi.org/10.1007/BFb0055332
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65003-4
Online ISBN: 978-3-540-49792-9
eBook Packages: Springer Book Archive