Software Requirement Engineering
Lecture - 2
The Role of Stakeholders in Requirements Engineering
Information systems researchers define stakeholders “Those
participants in the development process together with any other
individuals, groups or organizations whose actions can influence or be
influenced by the development and use of the system whether directly
or indirectly.”
Typical stakeholders are product
managers, various types of users,
Administrators from the client side, and
software team members from the
software development side.
Fig. Different Stakeholders
The Role of Stakeholders in Requirements Engineering
• As software projects became increasingly complex, software
developers face the challenge of identifying the goals of
stakeholders who come from a diverse range of backgrounds. It may
also be very difficult to represent the essential requirements of
software in a way which is accessible to all stakeholders, as software
is effectively invisible.
• Although some researchers point out that inconsistencies between
requirements models may be desirable, as they allow further
elicitation (in capturing requirements models).
Different Levels of Requirements
• Understanding, analyzing, modeling and managing requirements
have become equally complex task. In order to deliver high quality
software systems on time and on budget, it is essential to have
properly structured and controlled requirements specifications
that are understandable, comprehensive and consistent.
• The requirements engineering process is one of the main
contributors to the success of software projects.
Different Levels of Requirements
Requirements at the Organizational Level
• The goals and strategies at the organizational level will influence
which products an organization ought to develop.
• Thus, requirements posed on products must first be evaluated on at
organizational level to ensure that they are aligned with the goals
and strategies of the organization.
• One of the main challenges faced when successfully developing
software products is that of determining how the end product will
support business objectives.
Requirements at the Product Level
One of the crucial questions is how to balance customers’ concerns
with developers’ concerns.
• Goal modeling techniques in requirements engineering serve as a
mechanism by which one can link requirements to strategic
objectives anchored in the context of the overall business strategy
model.
• Product management has to ensure that the requirements are aligned
with the goals and objectives in terms of the product.
Requirements at the Project Level
• Requirements on the product level must be packaged into parts that go
into specific projects or releases of the software.
• It is important that requirements are prioritized and selected based on
their fulfillment of both product and organizational goals and
strategies.
• Requirements may be chosen for implementation based on whether
they fulfill the needs of a specific and important customer, or whether
they potentially open up a new market segment to the organization.
• These requirements define the conditions under which the project will
be run, including issues related to project planning, risk
management, budget and cost.
Requirements Management
The quality of a software product is largely determined by the quality of
the development process used to create it. Many projects fail due to
mistakes in the understanding of requirements or the requirements have
become outdated by the time the project is delivered.
The essential practices of requirements managements are:
1. Requirements Elicitation, Specification and Modeling: This
involves understanding the needs of stakeholders, eliciting
requirements, modeling and collecting them in a repository. This is an
important stage in software development. However, for a variety of
reasons, the requirements tend to be incomplete and inconsistent.
Therefore, there is always room for improvement in these activities.
Requirements Management
2. Prioritization: It is not always easy for developers to decide which
requirements are important to customers. This activity assists project
managers with resolving conflicts, plan for staged deliveries, and make
necessary trade-off decisions.
3. Requirements Dependencies and Impact Analysis: It is important to
acknowledge that requirements change and that this may significantly
impact the software project. Several issues such as recording decisions,
understanding the effect of business changes and the use of domain
models are yet to be addressed.
4. Requirements Negotiation: Requirements engineering is essentially a
complex communication and negotiation process involving customers,
designers, project managers and maintainers. The people, or stakeholders,
involved in the process are responsible for deciding what to do, when to
do it, what information is needed, and what tools need to be used.
Requirements Management
5. Quality Assurance: The objective is to ensure that high quality
requirements are recorded in the specification document. The purpose of
quality assurance is to establish reasonable and realistic levels of
confidence when writing and managing requirements.
It is important that both customers and developers are involved in quality
assurance activities in requirements engineering as they influence the
success of a project.
Quality assurance must be addressed throughout the software lifecycle.
for example, through inspections, reviews and testing.