The costs of developing a formal specification are the costs of the time required for skilled engineers to understand the system requirements, chose an appropriate approach to specification and develop a formal model of the system. Cost saving arise later in the development process as there is less need for rework to correct requirements misunderstandings and the costs of system testing and debugging is reduced, as there are likely to be fewer errors in the program that has been developed.
Developing and analysing a formal specification front-loads software development costs. Figure 1 shows how software process costs are likely to be affected by the use of formal specification. When a conventional process is used, validation costs are about 50% of development costs, and implementation and design costs are about twice the costs of specification. With formal specification, specification and implementation costs are comparable and system validation costs are significantly reduced. As the development of the formal specification uncovers requirements problems, you avoid rework to correct these problems after the system has been designed.
Figure 1. Costs without and then with formal specification