Abstract
We present a new undergraduate course in formal methods which emphasizes software specification and description instead of formal program correctness or program derivation.This course is motivated by the idea that specifications play a key role in the software development process and that precise and clear descriptions of software systems and artifacts are important. It wants to show students that some simple notions from logic and mathematics (predicates and quantifiers, set theory, maps), together with appropriate constructs for defining software components and systems, can be useful for this purpose.The course is taught using the Spec notation [1] and we first discuss why we did not choose the ubiquitous Z notation. The content of the course is then presented, followed with a brief description of an on-line WWW system that was developed to help the students do the exercices presented in the course notes.
- 1 V. Berzins and Luqi. Sb~ware Engineering with Abstractions. Addison-Wesley Publishing Co., 1991. Google Scholar
Digital Library
- 2 D. Craigen, S. Gerhart, and T. Ralston. Formal methods reality cheek: Industrial usage, iEEE Trans. on Soft. Eng., 21(2):90-98, Feb. 1995. Google Scholar
Digital Library
- 3 R. Denman, D.A. Naumann, W. Potter, and G. Richter. Derivation of programs for freshmen. In Proceedings of the ~5th SIGCSE Technical Symposium on Computer Science Education, pages 116-120. ACM SIGCSE, March 1994. ,~ Google Scholar
Digital Library
- 4 J.V. Guttag and J.l. Horning. Larch: Languages and Tools for Formal Specification. Springer-Verlag, 1993. Google Scholar
Digital Library
- 5 M. Jackson. Description is our business. Keynote address at VDM '91, 1991. Google Scholar
Digital Library
- 6 M. Jackson. Software Requirements ~ Specifications --- a lexicon of practice, principles and prejudices. ACM Press & Addison-Wesley,~1995. Google Scholar
Digital Library
- 7 J.P~. Jefferson Wadkins. Rigorous proofs of program correctness without formal logic. In Proceedings of the ~6th SIGGSE Technical Symposium on Computer Science Education, pages 307-311. ACM SIGCSE, March 1995. Google Scholar
Digital Library
- 8 C.B. Jones. Systematic Software Development using VDM. Prentice-Hall International Series in Computer Science, 1986. Google Scholar
Digital Library
- 9 K.-K. Lau, V.J. Bush, and P.J. Jinks. Towards an introductory formal progrbanming course, in Proceedings of the 25th SIGCSE Technical Symposium on Computer Science Education, pages 121-125. ACM SIGCSE, March 1994. Google Scholar
Digital Library
- 10 H. McLoughlin and K. Hely. Teaching formal programming to first year computer science students. In Proceedings of the ~Tth SIGCSE Technical Symposium on Computer Science Education, pages 155-159. AOM SIGCSE, March 1996. Google Scholar
Digital Library
- 11 J.M Wing. A specifier's introduction to formal methods. IEEE Computer, 23(9):8-24, Sept. 1990. Google Scholar
Digital Library
Index Terms
An undergraduate course in formal methods: “description is our business”
Recommendations
An undergraduate course in formal methods: “description is our business”
SIGCSE '98: Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science educationWe present a new undergraduate course in formal methods which emphasizes software specification and description instead of formal program correctness or program derivation.This course is motivated by the idea that specifications play a key role in the ...
Equivalence of formal semantics definition methods
AbstractThere are numerous methods of formally defining the semantics of computer languages. Each method has been designed to fulfil a different purpose. For example, some have been designed to make reasoning about languages as easy as possible; others ...
Formal Methods in CafeOBJ
FLOPS '02: Proceedings of the 6th International Symposium on Functional and Logic ProgrammingFormal methods are still expected to improve the practice of software engineering. The areas in which formal methods will play important roles include at least: (1) distributed component software, (2) network/system security, (3) embedded systems. ...






Comments