Education is vital to the success of the
formal methods. There are different
kinds of audiences:
—Our research peers. Some of our greatest skeptics are our own colleagues.
We can overcome this skepticism by
collaborating with them and their
students on systems that they care
about.
—Practitioners. Technology transfer
should be taken very seriously from
the very beginning. The recent spread
of formal methods is directly related
to efforts made by researchers in
teaching their techniques to industry.
For effective technology transfer,
however, we must keep in mind that
success for industry depends on
timely delivery, continuously enhanced functionality, understanding
customers’ needs, reuse of legacy
code, commitment to quality, elimination of errors, cost-effective development, and real-time performance.
—Students at all levels. Some graduate
programs now incorporate formal
methods in their curricula [Garlan et
al. 1995; Oxford University 1996]. Educators are starting to consider teaching formal methods at the undergraduate level. Students need to
understand not just how to build single stand-alone programs from
scratch, but also how to construct
large systems, perhaps using off-theshelf components, and how to maintain legacy code; they need to know
not just how to code, but also how to
do high-level system design.