Software Requirement Engineering Lecture - 2

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 11

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.

You might also like