Software Project Management Brochure Template Page 7

ADVERTISEMENT

Software Project Management
7
Requirements Engineering
Requirements engineering is the discipline of gathering, analyzing, and formally
specifying the user's needs, in order to use them as analysis components when
developing a software system [18], [44]. Requirements must be oriented towards
the user's real needs, not towards the development team and the project
managers.
Almost all software development processes one way or another stress
requirements analysis and specification as one of their core workflows. The
reasons are simple. It is necessary to manage requirements as well as possible
because a small change to requirements can profoundly affect the project's cost
and schedule, since their definition underlies all design and implementation [40].
Unfortunately, in most practical projects it is not possible to freeze the
requirements at the beginning of the project and not to change them.
Requirements develop over time, and their development is a learning process,
rather than a gathering one. The intended result of this process is a structured but
evolving set of agreed, well understood, and carefully documented requirements
[25]. This implies the need for requirements traceability, i.e. the ability to
describe and follow the life of a requirement, in both a forward and backward
direction, ideally through the whole system's life cycle.
The importance of constantly involving the users in the process of
requirements analysis and specifications cannot be overemphasized. Only the
users know their domain properly, and for that reason they should certainly
participate in defining the system's functions, designing them, and evaluating
their implementation and testing. The users should also participate in creating,
verifying, and updating the requirements specification document for the project.
The users should share with the developers the responsibility for the
requirements' completeness and consistency. It is the project managers' duty to
establish and maintain good relations with the users throughout the development
process, as well as to consult them whenever the project gets stuck due to the
development team's lack of domain understanding.
It is essential to make as explicit as possible all the requirements that reflect
the user's work and the tasks that the software system under development is
supposed to automate. Any situation in which users can find themselves when
doing their job is the context that must be taken into account through
requirements engineering. It is equally important not to concentrate on a single
user's task, but to cover communication between users when the task requires
collaboration.
There is a wide spectrum of techniques for requirements engineering.
Whatever technique is applied, it is always desirable to involve the user to
increase the correctness of the requirements specification. Some of the
techniques are:
structured interviews and questionnaires that the user fills in (inquiry-
based requirements gathering);

ADVERTISEMENT

00 votes

Related Articles

Related forms

Related Categories

Parent category: Business