Professional Documents
Culture Documents
ENGINEERING
ASIM ALI
DEPARTMENT OF COMPUTER SCIENCE
Outline
• 1 Requirement Engineering
• 1.1 Introduction
• 1.2 Requirements Engineering Process
• 1.3 Understanding Requirements
ROLE OF REQUIREMENT ENGINEERING
• 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
• The process of breaking down user requirements into their components and
studying these to develop a set of system requirements.
• The three major goals of this process are:
• Achieve agreement among developers and customers.
• Provide a basis for design.
• Provide a basis for Verification and Validation (V&V)
PROCESS MODELS
• Analysis works with raw requirements as elicited from the system stakeholders.
• “Have we got the right requirements?” is the key question to be answered at this stage.
• Validation works with final draft of the requirements document i.e. with
negotiated and agreed requirements.
• “Have we got the requirements right?” is the key question to be answered at this stage.
REQUIREMENT V & V: INPUTS AND OUTPUTS
Requirements Management
REQUIREMENT MANAGEMENT KEY ACTIVITIES
• ‘The ability to describe and follow the life of a requirement, in both forwards and
backwards direction (i.e. from its origins, through its development and specification, to
its subsequent deployment and use, and through all periods of on-going refinement and
iteration in any of these phases’
• To ensure the object of the requirements conforms to the requirements by associating each
requirement with the object via the traceability matrix.
• Concerned with documenting the life of a requirement.
• To find the origin of each requirement and track every change which was made to this
requirement
WHAT IS SOFTWARE REQUIREMENT?
• Functional requirements
• Statements of services that the system should provide, how the system should react to
particular inputs and how the system should behave in particular situations
• 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.
• There are many different types of requirements ranging from high level
business requirements down to detailed technical requirements that specify a
complex part of a computer algorithm or hardware device.
User requirements: These requirements describe what the end-user wants from
the software system. User requirements are usually expressed in natural
language and are typically gathered through interviews, surveys, or user
feedback.
System requirements: These requirements specify the technical characteristics
of the software system, such as its architecture, hardware requirements, software
components, and interfaces. System requirements are typically expressed in
technical terms and are often used as a basis for system design.
Business requirements: These requirements describe the business goals and
objectives that the software system is expected to achieve. Business
requirements are usually expressed in terms of revenue, market share, customer
satisfaction, or other business metrics.
Regulatory requirements: These requirements specify the legal or regulatory
standards that the software system must meet. Regulatory requirements may
include data privacy, security, accessibility, or other legal compliance
requirements.
Interface requirements: These requirements specify the interactions between the
software system and external systems or components, such as databases, web
services, or other software applications.
• Design requirements: These requirements describe the technical
design of the software system. They include information about the
software architecture, data structures, algorithms, and other
technical aspects of the software.
CHARACTERISTICS OF EFFECTIVE REQUIREMENTS
• There should be only one way to interpret the requirement. Sometimes ambiguity
is introduced by undefined acronyms:
• REQ1 The system shall not accept passwords longer than 15 characters.
• It is not clear what the system is supposed to do:
• The system shall not let the user enter more than 15 characters.
• The system shall truncate the entered string to 15 characters.
• The system shall display an error message if the user enters more than 15 characters.