The following is a quote from Master thesis of Eric Miotto:
Challenges in the Integration of domain-specific and scientific bodies of knowledge in Model-Driven Engineering
the point is that the system is already implemented and it is needed to return again to its design and construction to fix the problems – this can be very expensive and there is the risk to introduce new unanticipated bugs. We can name this approach as construction by-correction– a working system is obtained by means of repeated constructions and verification.On the contrary, in other mature engineering fields, the system (let it be a bridge or a chip) is not immediately built, but it is first modeled using patterns and solutions apt for its class, devised so to permit the verification of relevant properties. This way it is not necessary to build the system to detect its defects, but they can be found in the design phase, with the great advantage that it is known exactly how to deal with them and that further problems will be properly detected thanks to the employed patterns and solutions. The construction of a system is started only when the design meets all the requirements (to a certain degree). We can refer to this approach as correctness-by-construction – a working system is built by means of proven modeling and design.