Course: Software Engineering Principles and Practices (Code: 20CS44P) Week-6: Requirement Engineering & Modelling Session No. 01
Course: Software Engineering Principles and Practices (Code: 20CS44P) Week-6: Requirement Engineering & Modelling Session No. 01
What Is Requirement?
Requirement is a condition or capability possessed by the software or system
component in order to solve a real world problem. The problems can be to
automate a part of a system, to correct shortcomings of an existing system, to
control a device, and so on.
The requirements for a system are the descriptions of what the system should
do — the services that it provides and the constraints on its operation.
These requirements reflect the needs of customers for a system that serves a
certain purpose such as controlling a device, placing an order, or finding
information.
Requirements convey the expectations of users from the software product.
The requirements can be obvious or hidden, known or unknown, expected or
unexpected from client’s point of view.
6.1.2 Importance
Designing and building an elegant computer program that solves the wrong
problem serves no one’s needs. That’s why it’s important to understand what
the customer wants before you begin to design and build a computer-based
system.
The requirement engineering provides a vision of the final software i.e. what
the software would do? This creates a sense of mutual understanding between
the customer and the software developer.
Requirement engineering also helps in defining the scope of the software i.e.
what will be the functionalities of the final software.
It also helps in perceiving the cost of the final software.
It also helps in perceiving the schedule up to which the software will be
delivered to the customer.
The requirements specifications of the software provides a base for developing the
system and this is one the most crucial steps in SDLC. Although the stakeholder is the
ultimate source of the requirements, you cannot depend on the specification stated by
a single source.
Stakeholders/Buyers
They are the persons responsible for accepting and executing the software.
They can be individuals, organizations, trusts or even the government or
public of a country.
User/Beneficiaries
These are the users of the product for which the product is intended.
Operators
They are the persons who work on the software to make the services of the
software available to its beneficiaries or the end users.
Domain Experts
They are professionals with experience and expertise of the domain in which
the software provides its services, viz. insurance, financials, banking,
communication, data transfer, networking, etc. Domain experts unwind the
Computer Science & Engineering
Department of Collegiate and Technical Education Diploma in CS&E