ABSTRACT

This chapter discusses what many practitioners believe is the most important part of software engineering: development of a software system’s requirements. It begins by introducing some typical problems of requirements engineering. The chapter then illustrates how these problems occur regardless of which software development life cycle model is used, whether there is a set of known customers who will provide feedback during requirements gathering, or whether it is hoped that the product will determine its own set of customers after it is delivered. It evaluates the requirements we develop. The requirements engineering process should be thought of as beginning with the things that are known about the project’s purpose and ending with a set of requirements. These include such things as the environment in which the software system is to operate, the purpose of the system (as perceived by its potential users or customers), and the orga-nization’s basic goals.