Reviews and inspections are used to verify the quality of descriptions by auditing their content. Software inspection has proved to be very successful, it is reported that it can help to identify more that 60% of the errors in code(1). These techniques can be applied to any kind of description. For instance, during code inspections the reviewers verify whether the code follows the established coding conventions, and variables and functions do not have ambiguous names. Additionally, techniques like cross-checking, which help to verify the consistency of two specifications, are frequently applied to descriptions of requirements, e.g. to verify that all the entities referred in a set of use case descriptions are defined in a domain model diagram, and vice-versa.
Although the activity of review and inspection has been done by humans, current research on static analysis are providing empowering automatic tools to verify the consistency of code. For instance, compilers warn about variables that are declared and not used.
For the systems that do not have a formal description of the problem the review and inspection techniques are limited to do verification.
References
- Fagan, M.E., “Advances in software inspections,” Software Engineering, IEEE Transactions on , vol.SE-12, no.7, pp.744,751, July 1986
- How to do a code review, Google’s Engineering Practices documentation