Software Requirements Engineering
Software Requirements Engineering
REQUIREMENTS
ENGINEERING
ASIM ALI
DEPARTMENT OF COMPUTER
SCIENCE
Outlin
•e1 Requirement Engineering
• 1.1 Introduction
• 1.2 Requirements Engineering
Process
• 1.3 Understanding Requirements
ROLE OF REQUIREMENT
ENGINEERING
• Helps software engineer to better understand the
problem.
• Participants involved:
• Software Engineers
• Managers
• Customers
• Users
• 1 Requirement Engineering
• 1.1 Introduction
• 1.2 Requirements Engineering
Process
• 1.3 Understanding Requirements
• 1.4 Ground Work Establishment
• 1.4.1 Multiple Viewpoints
Recognition
• 1.4.2 Collaboration
• 1.4.3 Building Use Cases
1.1
INTRODUCTION
• Engineering discipline of establishing
user requirements and specifying software
systems
• Comprehensively RE is:
• Requirements Engineering is the process of establishing
the services that the customer requires from the system
and the constraints under which it is to be developed and
operated.
• 1 Requirement Engineering
• 1.1 Introduction
• 1.2 Requirements Engineering
Process
• 1.3 Understanding Requirements
• 1.4 Ground Work Establishment
• 1.4.1 Multiple Viewpoints Recognition
• 1.4.2 Collaboration
• 1.4.3 Building Use Cases
1.2 REQUIREMENT
ENGINEERING PROCESS
• Feasibility Study
• Find out the current user needs.
• Budget
• Requirement Analysis
• What the stakeholders require from the system.
• Requirements Definition
• Define the requirements in a form understandable to the
customer.
• Requirements Specification
• Define the requirements in detail.
1.2 REQUIREMENT
ENGINEERING PROCESS
• Requirements Document:
• Official Statement
• Include both a definition and specification
• Specify external system behavior
• Specify implementation constraints.
• Easy to change
• Work Flow
Diagramming
• Use Case
Diagramming
• Activity Diagrams
• Decision Trees
• Etc
REQUIREMENT
SPECIFICATION
• Non-functional requirements
• Non-functional requirements in software engineering refer to the characteristics of a
software system that are not related to specific functionality or behavior. They describe
how the system should perform, rather than what it should do. Examples of non-
functional requirements include: Performance, Security etc.
• Domain requirements
• Domain Req. are expectations related to a particular type of software or Purpose.
Domain requirements can be functional or nonfunctional. The common factor for domain
requirements is that they meet established standards or widely accepted feature sets
for that category of software project.
FUNCTIONAL
REQ.
• Describe functionality or system services
• Depend on the type of software, expected users and the type of system
where the software is used
• Functional user requirements may be high-level statements of what the system
should do; functional system requirements should describe the system services
in detail
• Example
• The system shall provide appropriate viewers for the user to read documents in
the document store
• When creating functional requirements, it is important to keep in mind that
they should be specific, measurable, achievable, relevant, and time-bound
(SMART). In other words, your functional requirements should:
• Be specific about what the system should do
• Be measurable so that you can tell if the system is doing it
• Be achievable within the timeframe you have set
• Be relevant to your business goals
• Be time-bound so that you can track progress