Formal methods are most frequently used to capture and define system and functional requirements. Most of the formal methods experience documented in the open literature, however, has largely taken place in European countries, especially the United Kingdom. For that matter, there are no technical journals within the United States devoted to Formal Methods. The main English-language journals are in the United Kingdom. Use of Formal Methods in Design Decomposition and refinement are two important elements of the design of software systems.
Decomposition involves the process of dividing a system into smaller elements or modules.
Refinement involves specification at different levels of abstraction, and showing that a specification at a lower level satisfies a requirement at a higher level. Formal methods, such as Z and VDM, are often used primarily for requirements specification, not design. Traditional formal specification languages can be, and have been, used to specificy module interfaces. Implementors of modules can implement a module without knowledge of the specifics of called modules. In addition, implementors of a called module can implement its specification without knowledge of the calling module, as long as the interface remains the same.