Basically, and roughly speaking, requirements engineering, which is
also called in short, RE, is the process
of establishing the services that the customer requires
from the software system. In addition to that, requirements
engineering also has to do with the constraints
under which the system operates and is developed. Requirements
engineering is a very important activity for several
reasons. In particular, as we also saw in earlier
lessons, many errors are made in requirement specifications. So many
errors are made because we don't do requirements engineering in
the right way. And many of these errors are not
being detected early. But they could be if we were
to do RE in the right way. And, unfortunately, not
detecting these errors can dramatically increase software costs. So that's
the reason why requirements engineering is important, and why it
is important to do it in the right way. The final
result of the requirements engineering process is a software
requirements specification that we also called SRS. We will discuss
SRS later in more details and also when we talk
about the projects for the course. For now, it is
enough to say that the software requirements specification and
the requirements engineering, in general, should focus on what the
proposed system is intended to do, and not on the
how it will do it. In fact, how the system
will do what it is required to do is something that we
will discuss when we talk about design of a system in later phases.