Abstract
In recent years, many formal methods have been proposed for improving software quality. These include new specification and modeling languages, whose purpose is to precisely describe the required software behavior at a high level of abstraction, and formal verification techniques, such as model checking and theorem proving, for mechanically proving or refuting critical properties of the software. Unfortunately, while promising, these methods are rarely used in software practice. This paper describes improvements in languages, specifications and models, code quality, and code verification techniques that could, along with existing formal methods, play a major role in improving software quality.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Gargantini, A., Heitmeyer, C.: Using model checking to generate tests from requirements specifications. In: Nierstrasz, O., Lemoine, M. (eds.) ESEC 1999 and ESEC-FSE 1999. LNCS, vol. 1687, pp. 146–162. Springer, Heidelberg (1999)
Halbwachs, N.: Synchronous Programming of Reactive Systems. Kluwer Academic Publishers, Boston (1993)
Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8(3), 231–274 (1987)
Heimdahl, M.P.E., Leveson, N.: Completeness and consistency in hierarchical state-based requirements. IEEE Transactions on Software Engineering 22(6), 363–377 (1996)
Heitmeyer, C.L., Jeffords, R.D., Labaw, B.G.: Automated consistency checking of requirements specifications. ACM Transactions on Software Engineering and Methodology 5(3), 231–261 (1996)
Heitmeyer, C., Archer, M., Bharadwaj, R., Jeffords, R.: Tools for constructing requirements specifications: The SCR toolset at the age of ten. Computer Systems Science and Engineering 20(1), 19–35 (2005)
Heitmeyer, C.: Developing high assurance systems: On the role of software tools. In: Anderson, S., Felici, M., Littlewood, B. (eds.) SAFECOMP 2003. LNCS, vol. 2788, pp. 159–164. Springer, Heidelberg (2003) (invited)
Holzmann, G.J.: The model checker Spin. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)
Kirby, J., Archer, M., Heitmeyer, C.: SCR: A practical approach to building a high assurance COMSEC system. In: Proceedings, 15th Annual Computer Security Applications Conference (ACSAC 1999), Phoenix, AZ, pp. 109–118. IEEE Computer Society, Los Alamitos (1999)
The Mathworks Inc., Stateflow for use with Simulink, User’s Guide, Version 2 (Release 11). Natick, MA (1999)
McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Pub., Englewood Cliffs (1993)
Owre, S., Shankar, N., Rushby, J.: User guide for the PVS specification and verification system (Draft). Technical report, Computer Science Lab, SRI Int’l, Menlo Park, CA (1993)
Trevor, J., Morrisett, G., Grossman, D., Hicks, M., Cheney, J., Wang, Y.: Cyclone: A safe dialect of C. In: Proceedings, USENIX Annual Technical Conf., Monterey, CA, pp. 275–288 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 IFIP International Federation for Information Processing
About this paper
Cite this paper
Heitmeyer, C. (2005). Developing High Quality Software with Formal Methods: What Else Is Needed?. In: Wang, F. (eds) Formal Techniques for Networked and Distributed Systems - FORTE 2005. FORTE 2005. Lecture Notes in Computer Science, vol 3731. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11562436_2
Download citation
DOI: https://doi.org/10.1007/11562436_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29189-3
Online ISBN: 978-3-540-32084-5
eBook Packages: Computer ScienceComputer Science (R0)