SE Unit-II
SE Unit-II
Software Engineering[210253]
7
Requirements Engineering
• Definition: Description and Specifications of a
system
• The process of establishing the services that the
customer requires from a system and the constraints
under which it operates and is developed
• Requirements may be functional or non-functional
– Functional requirements describe system services
or functions
– Non-functional requirements is a constraint on the
system or on the development process
What is a Requirement?
System end-users
System Client engineers
Requirements
System architects
Software developers
Non-Functional
Requirements
Functional Testing like System, Integration, End to End, API Non-Functional Testing like Performance, Stress, Usability,
testing, etc are done. Security testing, etc are done.
Usually easy to define. Usually more difficult to define.
Example
Example
1) Emails should be sent with a latency of no greater than 12
1) Authentication of user whenever he/she logs into the
hours from such an activity.
system.
2) The processing of each request should be done within 10
2) System shutdown in case of a cyber attack.
seconds
3) A Verification email is sent to user whenever he/she
3) The site should load in 3 seconds when the number of
registers for the first time on some software system.
simultaneous users are > 10000
Domain requirements
• Domain requirements are derived from the application domain of
the system rather than from the specific needs of the system users.
1.Identifying Stakeholders
• Sommerville and Sawyer [Som97] define a stakeholder as “anyone
who benefits in a direct or indirect way from the system which is
being developed.”
Ex : business operations managers, product managers, marketing
people, internal and external customers, end users, consultants,
product engineers, software engineers, support and maintenance
engineers, and others.
• Each stakeholder has a different view of the system, achieves
different benefits, and is open to different risks if the development
effort should fail. 19
Groundwork For Understanding of Software Requirements
1. Normal requirements
2. Expected requirements
3. Exciting requirements
30
Quality Function Deployment cont..
1. Normal requirements :
▪ The objectives and goals that are stated for a product or system during
meetings with the customer.
2. Expected requirements :
▪ These requirements are understood to the product or system and may be so
fundamental that the customer does not openly state them.
3. Exciting requirements :
-For example, software for a new mobile phone comes with standard
features, but is coupled with a set of unexpected capabilities (e.g.,
multi touch screen, visual voice mail) that delight every user of the
product.
32
3. Usage Scenarios
33
4. Elicitation Work Products
The work products produced as a consequence of requirements elicitation will vary
depending on the size of the system or product to be built. For most systems, the
work products include :
• A statement of need and feasibility.
• A bounded statement of scope for the system or product.
• A list of customers, users, and other stakeholders who participated
in requirements elicitation.
• A description of the system’s technical environment.
• A list of requirements (preferably organized by function)
• A set of usage scenarios
Each of these work products is reviewed by all people who have participated in
requirements elicitation.
34
Developing Use Cases
Actors
Actors are external entities that interact with the system. These can include users, other systems, or
hardware devices.
Use Cases
Use cases are like scenes in the play. They represent specific things your system can do. In the online
shopping system, examples of use cases could be “Place Order,” “Track Delivery,” or “Update
Product Information”. Use cases are represented by ovals.
System Boundary
The system boundary is a visual representation of the scope or limits of the system you are modeling.
It defines what is inside the system and what is outside.
Example : Safe Home
45
Negotiating Requirements
• In reality, you may have to enter into a negotiation with one or more
stakeholders.
• In most cases, stakeholders are asked to balance functionality, performance,
and other product or system characteristics against cost and time-to-market.
• The intent of this negotiation is to develop a project plan that meets
stakeholder needs while at the same time reflecting the real-world constraints
(e.g., time, people, budget) that have been placed on the software team.
• The best negotiations strive for a “win-win” result. That is, stakeholders win
by getting the system or product that satisfies the majority of their needs
and you (as a member of the software team) win by working to realistic and
achievable budgets and deadlines.
58
Validating Requirements
Introduction:
As each element of the requirements model is created, it is examined for
inconsistency, omissions, and ambiguity.
The requirements represented by the model are prioritized by the
stakeholders and grouped within requirements packages that will be
implemented as software increments.
•Is each requirement consistent with the overall objectives for the
system/product?
61
Thank you