In the present day, object-oriented software engineering methods use powerful modeling techniques to assist with the analysis and design of software systems. Modeling using computer-aided software engineering (CASE) tools to render and automatically check the consistency of the models is the common practice in many development environments.
Advanced modeling methods, such as the unified modeling language, extend these documentation capabilities and can be used to describe the entire system without the use of traditional documentary texts.
The use of the Object Oriented models for documentation may be acceptable for commercial developments but is often not possible for military or government contracts. Commercial software developments usually have a shorter lifecycle with more frequent revisions than military applications. Time to market is a major concern with commercial developments, and because their maintenance will be performed in-house, commercial developers can safely sacrifice documentation for speed.
A military system, however, is rarely developed in-house and is often maintained or upgraded by a contractor rather than a developer. In addition, many military developments involve safety-critical systems where careful testing to clearly defined requirements is required for a successful system's implementation. Therefore, sufficient documentation must be available to describe the system requirements for the software tester and maintainer. ...