Introduction to use of formal methods in software and hardware

To be formal a method must have a systematic and repeatable process for verifying the consequences of a specification. Verifications can be manual, partially mechanized, or fully mechanized. Formal representations can be tabular, graphical, notational, expressed in a formal (programming) language, or any combination thereof. Barriers to adoption and reasons for adoption are discussed. The examples presented show successful commercial as well as safety critical applications and show that formal specifications can be understood by users.<<ETX>>

[1]  Nancy G. Leveson,et al.  Analyzing Software Safety , 1983, IEEE Transactions on Software Engineering.

[2]  Dan Craigen,et al.  Case study: Darlington nuclear generating station [software-driven shutdown systems] , 1994, IEEE Software.

[3]  D. Craigen,et al.  Case study: Traffic Alert and Collision-Avoidance System , 1994, IEEE Software.

[4]  R. B. Hurley,et al.  Decision Tables in Software Engineering , 1983 .

[5]  S. Bradley,et al.  Outsourcing and industrial decline , 1992 .

[6]  Edmond Schonberg,et al.  Programming with Sets: An Introduction to SETL , 1986 .

[7]  David Harel,et al.  On visual formalisms , 1988, CACM.

[8]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[9]  Stephen M. McMenamin,et al.  Essential systems analysis , 1984 .

[10]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[11]  Fred B. Schneider,et al.  A Logical Approach to Discrete Math , 1993, Texts and Monographs in Computer Science.

[12]  V. Klenk Understanding Symbolic Logic , 1983 .

[13]  David Lorge Parnas,et al.  Assessment of safety-critical software in nuclear power plants , 1991 .

[14]  J. B. Wordsworth Specifying and refining programs with Z , 1988 .

[15]  Ed Dubinsky,et al.  Learning discrete mathematics with ISETL , 1989 .

[16]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

[17]  David Lorge Parnas,et al.  Inspection of Safety-Critical Software Using Program-Function Tables , 2001, IFIP Congress.

[18]  Carmen J. Trammell,et al.  Adopting Cleanroom Software Engineering with a Phased Approach , 1994, IBM Syst. J..

[19]  Nancy G. Leveson,et al.  Requirements Specification for Process-Control Systems , 1994, IEEE Trans. Software Eng..

[20]  Samuel C. Lee Modern Switching Theory and Digital Design , 1978 .

[21]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.

[22]  R.C. Linger,et al.  Cleanroom process model , 1994, IEEE Software.

[23]  D. L. Parnas,et al.  Using documentation as a software design medium , 1981, The Bell System Technical Journal.

[24]  F. W. Kellaway,et al.  Advanced Engineering Mathematics , 1969, The Mathematical Gazette.

[25]  Nancy G. Leveson,et al.  Software Requirements Analysis for Real-Time Process-Control Systems , 1991, IEEE Trans. Software Eng..