This article describes the rigorous application of formal methods of s
oftware development to a system software development project within a
conventional industrial software development environment. This project
applied formal methods to a small part (one subsystem) of the develop
ment of a release of a system software product, The formal methods VDM
and B were used to specify, design and implement the administration s
ubsystem of a product that was otherwise developed along conventional
lines. Support tools were used to assist with the use of both methods
throughout the development lifecycle. Metrics for effort and quality w
ere collected from the project and compared with historical metrics fo
r similar projects to allow the impact of formal methods on cost and q
uality to be assessed. This article briefly outlines the product being
developed and the subsystem to which formal methods were applied. The
environment in which this development was performed and the particula
r approach used are described. The results of this industrial applicat
ion of formal methods and the lessons learned by the project are discu
ssed at some length. (C) 1997 Elsevier Science B.V.