Professional Documents
Culture Documents
Lecture 5
Lecture 5
Lecture 5
[These slides are adapted from Software Engineering: A Practitioner’s Approach, Roger
S. Pressman © 2015 & Software Engineering, Ian Somerville © 2015 ]
Requirements
Engineering- I
Topics Covered
✧ Requirements Engineering
✧ User and System Requirements
✧ Functional and Non-Functional Requirements
Learning Outcomes
✧ Understand the concepts of user and system requirements and why
these requirements should be written in different ways;
✧ Understand the differences between functional and non-functional
software requirements;
Requirements Engineering
✧ Clearly defined requirements are essential signs on the road that
leads to a successful project.
✧ They establish a formal agreement between a client and a provider
that they are both working to reach the same goal.
✧ High-quality, detailed requirements also help mitigate financial risks
and keep the project on a schedule.
✧ According to the Business Analysis Body of Knowledge (BABOK)
definition, requirements are a usable representation of a need.
Requirements Engineering
It is essential that the software engineering team understand the requirements of a
problem before the team tries to solve the problem.
RE establishes a solid base for design and construction. Without it, resulting
software has a high probability of not meeting customer needs.
Requirements Engineering
Requirements describe the function of the system from the client's viewpoint.
The requirements establish the system's functionality, constraints, and goals.
The requirements must be understandable by both the client and the
development staff.
In other words: A function, constraint or other property that the system must
provide to fill the needs of the system’s intended user(s)
Engineering: implies that systematic and repeatable techniques should be used
Requirement Engineering means that requirements for a product are defined,
managed and tested systematically
Types of Requirements
BABOK, which is a recognized set of business analysis industry standards, offers the following
classification of requirements.
• Business Requirements
• User (Stakeholder) Requirements
• Product / Solution Requirements : Functional Requirements and Nonfunctional Requirements
Business Requirements
• These include high-level statements of goals, objectives, and needs.
• Business requirements do not include any details or specific features.
• They just state the problem and the business objective to be achieved such as
increased revenue/throughput/customer reach, reduced expenses/errors, improved
customer service, etc.
User (Stakeholder) Requirements
• The needs of discrete stakeholder groups (top-level managers, non-management
staff, customers, etc.) are specified to define what they expect from a particular
solution.
• This group serves as a bridge between the generalized business requirements and
specific solution requirements. They are outlined in a User Requirements
Specification and can include, for example, ability to create various reports, view
order history and status, manage customer databases, etc.
Product / Solution Requirements
Solution requirements describe specific characteristics that a product must have to
meet the needs of the stakeholders and the business itself.
• Functional Requirements define what a product must do, what its features and
functions are.
• Nonfunctional Requirements describe the general properties of a system. They are
also known as quality attributes.
What is a Requirement?
✧ A statement of what:
▪ The system must do or
▪ Characteristics it must have
✧ Analysis requirement written from businessperson perspective ( focus on the “what”
of system)
✧ They focus on business user need so they usually are called business requirements
(or user requirements).
✧ Later requirements (in design phase), business requirements evolve to become more
technical and they describe “how” the system will be implemented.
✧ Requirements in design are written from the developer perspective, and they
usually called system requirements.
✧ Business requirement and System requirement are used interchangeably.
Requirements in Software Development
Feasibility and
Planning Requirements All process
models include a
requirements
activity
Design
Operation and
Implementation Maintenance
Difference between a user requirement and
a requirements specification
Describes
problem
Specifies
Analyzes Develops
We receive “customer
problem statement,” not the
requirements!
Software Engineer
Requirement vs Specification in Software Engineering
A functional requirement defines a system or its component. A non-functional requirement defines the quality attribute of a software system.
It places constraints on “How should the software system fulfill the functional re-
It specifies “What should the software system do?”
quirements?”
Helps you verify the functionality of the software. Helps you to verify the performance of the software.
Functional and Non-functional
Requirements
Requirements are often classified as functional or non-functional
requirements
Functional Requirements
The definition of a functional requirement is:
Slide 31
Nonfunctional Requirements
In Robertson and Robertson (2006), the authors identify the following eight classes of
non-functional requirement:
• look-and-feel requirements – the spirit of the product’s appearance;
• usability requirements – the product’s ease of use, and any special usability
considerations;
• performance requirements – how fast, how safe and how accurate the functionality
must be;
• maintainability and portability requirements – expected changes, and the time
allowed to make them;
• security requirements – the security and confidentiality of the product;
• cultural and political requirements – special requirements that come about because of
the people involved in the product’s development and operation;
• legal requirements –Laws of the state
Slide 32
Look-and-feel Requirements
Slide 33
Usability Requirements
Usability is the degree of ease with which the user will interact with your products to achieve
required goals effectively and efficiently.
Usability focuses on the appearance of the user interface and how people interact with it.
What color are the screens? How big are the buttons?
Slide 34
Performance Requirements
Slide 35
Maintainability and Portability Requirements
A portable application (portable app) is a software product designed to be easily moved from one computing
environment to another.
Security Requirements
Cultural Requirements
Legal Requirements
The laws and standards that apply to the product
Conflicting Requirements
✧ Conflicting requirements are when a customer asks you to make
the system do two things you can't possibly do at the same
time-