Software Engineering Education, B.-Z. Barta, S.L. Hung, and K.R. Cox (eds.),
IFIP Transactions A: Computer Science and Technology, vol. A-40,
Elsevier, Amsterdam, The Netherlands, pp. 189-197 (1993)

Formal or Informal, Practical or Impractical:
Towards Integrating Formal Methods with Informal Practices
in Software Engineering Education

T.H. Tse 2



Two conflicting schools of thought have been dominating software engineering education. One school stresses on the popular software development methodologies, but horror stories on poorly designed systems are not uncommon. The other school advocates formal methods, but most practitioners regard them as impractical. We recommend that we should bridge the gap between the formal and informal by bringing theory to existing practice. The formalism should be used as a working tool behind popular software development methodologies. Students should not be trained as craftsmen who consider software development as an art and learn only from past mistakes. Nor should they be trained as mathematicians who are more comfortable with theory than applications. Software engineers must be educated as real "engineers" who are competent with industrial practices as well as the mathematical foundation directly supporting them.

1. Part of this research was done at the Programming Research Group of the University of Oxford under an ACU Visiting Fellowship. The research is also supported in part by a grant of the Hong Kong Research Grants Council.
2. Department of Computer Science, The University of Hong Kong, Pokfulam, Hong Kong.


  Cumulative visitor count