"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.
Inhaltsverzeichnis
A Beginner s Course on Reasoning About Imperative Programs. - Designing Algorithms in High School Mathematics. - Motivating Study of Formal Methods in the Classroom. - Formal Systems, Not Methods. - A Practice-Oriented Course on the Principles of Computation, Programming, and System Design and Analysis. - Teaching How to Derive Correct Concurrent Programs from State-Based Specifications and Code Patterns. - Specification-Driven Design with Eiffel and Agents for Teaching Lightweight Formal Methods. - Integrating Formal Specification and Software Verification and Validation. - Distributed Teaching of Formal Methods. - An Undergraduate Course on Protocol Engineering How to Teach Formal Methods Without Scaring Students. - Linking Paradigms, Semi-formal and Formal Notations. - Teaching Formal Methods in Context. - Embedding Formal Development in Software Engineering. - Advertising Formal Methods and Organizing Their Teaching: Yes, but . . . . - Retrospect and Prospect of Formal Methods Education in China. - A Survey of Formal Methods Courses in European Higher Education.