“Professional engineers can often be distinguished from other designers by the engineers’ ability to use mathematical models to describe and 1 analyze their products.” This observation by Parnas describes the de facto professional standards in all classical engineering disciplines (civil, mechanical, electrical, etc.). Unf- tunately, it is in sharp contrast with current (industrial) practice in software design, where mathematical models are hardly used at all, even by those who, 2 in Holloway’s words “aspire to be engineers.” The rare exceptions are certain critical applications, where mathematical techniques are used under the general name formal methods. Yet,thesamecharacteristicsthatmakeformalmethodsanecessityincritical applicationsmakethemalsoadvantageousineverydaysoftwaredesignatvarious levels from design e?ciency to software quality. Why, then, is education failing with respect to formal methods? – failing to convince students, academics and practitioners alike that formal methods are truly pragmatic; – failing to overcome a phobia of formality and mathematics; – failing to provide students with the basic skills and understanding required toadoptamoremathematicalandlogicalapproachtosoftwaredevelopment. Until education takes these failings seriously, formal methods will be an obscure byway in software engineering, which in turn will remain severely impoverished as a result.
Author(s): Kung-Kiu Lau (auth.), C. Neville Dean, Raymond T. Boute (eds.)
Series: Lecture Notes in Computer Science 3294
Edition: 1
Publisher: Springer-Verlag Berlin Heidelberg
Year: 2004
Language: English
Pages: 252
Tags: Software Engineering; Computers and Education; Logics and Meanings of Programs; Mathematical Logic and Formal Languages; Data Structures
Front Matter....Pages -
A Beginner’s Course on Reasoning About Imperative Programs....Pages 1-16
Designing Algorithms in High School Mathematics....Pages 17-31
Motivating Study of Formal Methods in the Classroom....Pages 32-46
Formal Systems, Not Methods....Pages 47-64
A Practice-Oriented Course on the Principles of Computation, Programming, and System Design and Analysis....Pages 65-84
Teaching How to Derive Correct Concurrent Programs from State-Based Specifications and Code Patterns....Pages 85-106
Specification-Driven Design with Eiffel and Agents for Teaching Lightweight Formal Methods....Pages 107-123
Integrating Formal Specification and Software Verification and Validation....Pages 124-139
Distributed Teaching of Formal Methods....Pages 140-152
An Undergraduate Course on Protocol Engineering – How to Teach Formal Methods Without Scaring Students....Pages 153-165
Linking Paradigms, Semi-formal and Formal Notations....Pages 166-184
Teaching Formal Methods in Context....Pages 185-202
Embedding Formal Development in Software Engineering....Pages 203-213
Advertising Formal Methods and Organizing Their Teaching: Yes, but .......Pages 214-224
Retrospect and Prospect of Formal Methods Education in China....Pages 225-234
A Survey of Formal Methods Courses in European Higher Education....Pages 235-248
Back Matter....Pages -