Requirements Engineering for Software and Systems

Various types of techniques can be used to describe functionality in any system, and the 2003 study that has been repeatedly referenced was intended to discover the prevalence of various specification techniques that were used (Neill and Laplante). Many of the findings with respect to elicitation techniques have been reported already but not with respect to representation approaches.
Generally, there are three approaches to requirements representation: formal, informal, and semi-formal. Requirements specifications can adhere to strictly one or another of these approaches, but usually, they contain elements of at least two of these approaches (informal and one other). Formal representations have a rigorous, mathematical basis, and we will explore these further in Chapter 7. But even formal requirements specifications documents will have elements of informal or semi-formal specification.
Informal requirements representation techniques cannot be completely transliterated into a rigorous mathematical notation. Informal techniques include natural language (that is, human languages), flowcharts, ad hoc diagrams, and most of the elements that you may be used to seeing in systems requirements specifications (SRS). In fact, all SRS documents will have some informal elements. We can state this fact with confidence because even the most formal requirements specification documents have to use natural language, even if it is just to introduce a formal element. We will therefore spend most of the discussion on requirements representation using informal techniques.
Finally, semi-formal representation techniques include those that, while appearing informal, have at least a partial formal basis (e.g., many of the diagrams...