Requirements Engineering for Software and Systems

It has been estimated that by 2009 automated approaches to requirements engi-neering will reduce development costs by 30%. In addition, because of the use of these tools, user satisfaction with medium to large systems will improve from "fair" to "good" in that timeframe. Finally, by 2009, maintenance and enhancement costs for medium to large systems developed using such tools will decline by 10% (Light 2005).
Word processors, databases, spreadsheets, content analyzers, concept mapping programs, automated requirements checkers, and so on are all tools of interest to the requirements engineer. But the most celebrated requirements tools are large commercial packages that provide a high level of integrated functionality. The chief feature of these programs is the ability to represent and organize all "typical" requirements engineering objects such as use cases, scenarios, and user stories. Support for user-defined entities is also usually provided. Other typical functionalities for these large, commercial requirements engineering tools include
multi-user support and version control
online collaboration support
customizable user interfaces
built-in support for standards templates (such as IEEE 12207 and IEEE 830)
verification and validation tools
customizable functionality through a programmable interface
support for traceability
user-defined glossary support (Heindl 2006)
We have already discussed automated requirements analysis via the NASA ARM tool in Chapter 5. And verification and validation features are an important component of any automated requirements engineering tool. Indeed, the more sophisticated commercial requirements engineering tools provide other requirements checking, tracing, and archiving features. These are shown in Table 8.1.