Natural Language Processing Techniques in Requirements Engineering

Natural Language Processing Techniques in Requirements Engineering

A. Egemen Yilmaz (Ankara University Faculty of Engineering, Turkey) and I. Berk Yilmaz (Ankara University Faculty of Engineering, Turkey)
DOI: 10.4018/978-1-60960-509-4.ch002
OnDemand PDF Download:
List Price: $37.50


Requirement analysis is the very first and crucial step in the software development processes. Stating the requirements in a clear manner, not only eases the following steps in the process, but also reduces the number of potential errors. In this chapter, techniques for the improvement of the requirements expressed in the natural language are revisited. These techniques try to check the requirement quality attributes via lexical and syntactic analysis methods sometimes with generic, and sometimes domain and application specific knowledge bases.
Chapter Preview


System/software requirement quality is one of the most important drivers for the success of a final system/software related product. A study showed that the user involvement is the most important factor for the success of the software development projects (Standish Group, 1995). Moreover, even in the cases where the user involvement is sufficient, the success is dependent on clear statement of the requirements, which appears as the third most important factor on the list. In addition, another study showed that the underlying reason for 85% of the software errors is nothing but the requirement defects (Young, 2001). On the other hand, if such defects could not be fixed at the early phases of the projects, the cost of fixing the error would dramatically increases at each phase of the development life cycle as seen in Table 1 (Young, 2001). Defects detected during requirement analysis and design phases could reduce the rework effort between 40% and 50% (Boehm, 1981; Boehm & Basili, 2001; Gause & Weinberg, 1989).

Table 1.
Relative cost of fixing an error (Young, 2001)
Phase in which the Error is FoundRelative Cost
Requirements Analysis1
Coding & Unit Test10
Development Testing15-40
Acceptance Testing30-70

All the above studies support that, effective customer interaction and defect-free requirement engineering processes are the key factors for successful system/software development.

Pohl’s requirement engineering process model (Pohl, 1994), depicted in Figure 1, might be considered as a reference for the improvement the software requirement quality. Pohl’s model suggests focusing on the three dimensions seen in Figure 1. Stakeholders of the requirement engineering process should perform a progress on the specification, representation and agreement dimensions. Hence, tools supporting progress in any of those three dimensions would increase the success rates of software development projects.

Figure 1.

Pohl’s requirement engineering model (Adapted from Pohl, 1994)

The applicability of natural language processing techniques is best understood via the following two-phase requirement engineering model. Figure 2 depicts a high level representation of these two stages.

Figure 2.

Requirementengineering phases

Complete Chapter List

Search this Book: