Sei sulla pagina 1di 29

Requirement Engineering Process

Lecture 2

Processes

A process is an organized set of activities which transforms inputs to


outputs
Process descriptions encapsulate knowledge and allow it to be reused
Examples of process descriptions
Instruction manual for a dishwasher
Cookery book
Procedures manual for a bank
Quality manual for software development

Design Processes

Processes which involve creativity, interactions between a wide range of different


people, engineering judgment and background knowledge and experience

Examples of design processes


Writing a book
Designing a processor chip
Requirements engineering

Requirement Engineering Process

Software Requirement
Engineering
Lecture 2
Instructor: Saima Imtiaz

RE Process Activities

Requirements Elicitation
The

process through which the customers, buyers, or


users of a software system discover, reveal,
articulate, and understand their requirements

Requirement Analysis
The

process of reasoning about the requirements that


have been elicited
Involves examining requirements for conflicts or
inconsistencies, combining related requirements, and
identifying missing requirements

RE Process Activities

Requirements Specification
The

process of recording the requirements in one or


more forms, including natural language and formal,
symbolic, or graphical representations

Requirement Validation
The

process of confirming with the customer or user


of the software that the specified requirements are
valid, correct, and complete.

Requirement Management
The

process of managing all the activities carried out


during RE

RE process - inputs and outputs


Existing
systems
information
Agreed
requirements

Stakeholder
needs
Organisational
standards
Regulations

Requirements
engineeringprocess

System
specification
System
models

Domain
information
Kotonya and Sommerville (1998)

Requirement Management

A systematic approach to eliciting, organizing


and documenting requirements of the system
and
A process that establishes and maintains
agreement between customer and project team
and on changing requirements of system.

Why we need RM

It is difficult

Organize requirements
Prioritize requirements
Control access to requirements
Provide resources for requirements

Importance of Requirement Engineering

Benefits from a High-Quality Requirements


Process

Fewer requirement defects


Reduced development rework
Fewer unnecessary features
Faster development
Fewer miscommunications
Reduced scope creep
Reduced project chaos
More accurate system testing estimates
Higher customer and team member satisfaction

Software Types

Types of project

Source of Requirements:

Customer-driven

Market-driven

developed for a specific customer, but want to market the software eventually

Internal or In-house

involve a developer who needs to develop a system to be sold in the market


Single system vs. Product Family (product line)

Hybrid

involve a specific customer who needs a system to solve a specific problem


One-off (bespoke)

Some employees of a company needs a system to solve a specific problem.


The system is developed by the employees of the same company.
May or may not involve consultant(s)

New system vs. Upgrade to existing system

LEVELS OF REQUIREMENTS

Levels of Requirements

Business Requirements

User Requirements

Describe tasks the user must be able to


accomplish with the product or system

Functional Requirements

High level objectives of the organization or


customer requesting system or product

The software functionality the developers


must build into the product to enable
users to accomplish their tasks, thereby
satisfying the business requirements

Non-functional Requirements

These are constraints on the services or


functions offered by the system. They
include timing constraints, constraints on
the development process,
implementation constraints, security,
standards etc

BUSINESS REQUIREMENTS

Represent high-level objectives of the organization


or customer who requests the system.

Typically come from the funding sponsor for a project, the


acquiring customer, the manager of the actual users, the
marketing department, or a product visionary.

Describe why the organization is implementing the


systemthe objectives the organization hopes to
achieve.
Recorded in a vision and scope document,
sometimes called a project charter or a market
requirements document.
Defining the project scope is the first step in
controlling the common problem of scope creep.

BUSINESS RULES

Corporate policies, government regulations, industry


standards, etc.
Business
rules
are
not
themselves
software
requirements because they exist outside the boundaries
of any specific software system.
However, they often restrict who can perform certain use
cases or they dictate that the system must contain
functionality to comply with the pertinent rules.
Example 1: License Inspection Project

Business Rule: A driver must have a valid License

Possible business requirements to enforce these rules:

Police officer to inspect driver's license.

Quiz # 01

Quiz # 01
Lecture week 1 and 2 ( till slide 16)

USER REQUIREMENTS

Describe user goals or tasks that the users must be


able to perform with the product.
Valuable ways to represent user requirements include
use cases
scenario descriptions
event-response tables
An example of a use case is "Make a Reservation" using
an airline, or a hotel web site.

FUNCTIONAL REQUIREMENTS

Specify the software functionality that the


developers must build into the product to enable
users to accomplish their tasks, thereby satisfying
the business requirements.
Almost any action, e.g. calculate, inspect, publish,
or most other active verbs can be a functional
requirement.
Example:
The product shall predict which road sections will freeze
within the selected time parameters.
The user shall be able to search either the entire database
of patients or select a subset from it (admitted patients, or
patients with asthma, etc.)

SYSTEM REQUIREMENTS

The top-level requirements for a product that


contains multiple subsystemsthat is, a
system (IEEE 1998c).
A system can be all software or it can include
both software and hardware subsystems.
People are a part of a system, too, so certain
system functions might be allocated to human
beings.

NFRs/QUALITY ATTRIBUTES

Non-Functional Requirements (NFR) include


performance goals and descriptions of quality
attributes.
Quality attributes augment the description of
the product's functionality by describing the
product's characteristics in various dimensions
that are important either to users or to
developers.
Characteristics that relate to the system as a
whole
usability,

portability, efficiency, and robustness etc.

Examples: NFRs

OTHER NON-FUNCTIONAL REQUIREMENTS

External interfaces between the system and the


outside world.
Constraints that impose restrictions on the
choices available to the developer for design
and construction of the product.
Constraints

do not affect the external behavior of the


system, but must be fulfilled to meet technical,
business, or contractual obligations.
Example: The system development process and
deliverable documents shall conform to the MIL-STD2167A

Example: Constraints

FURPS+ Classification of Requirements

Functional
Non-Functional (NFRs)
Usability
The ease with which the system can be learned
and operated by the intended users.
Help, documentation, required training time, task
times for typical tasks, conformance to usability
standards, etc.
Reliability
Allowed MTBF (Mean Time Between Failures)
Maximum defect rate allowed per KLOC
Recoverability, etc.

FURPS+ Classification of Requirements


Performance

Response time, throughput,


Average, maximum response time for a transaction
Number of customers/transactions the system can
accommodate
Example:
Buyers want to complete sales processing very
quickly. One bottleneck is external payment
authorization. Our goal: authorization in less than 1
minute, 90% of the time.

Supportability:

Supportability is the ability of the software to be easily


modified to accommodate enhancements and repairs
Maintainability, adaptability, configurability, etc.

FURPS+ Classification Cont.

+ indicates additional constraints such as:

Design Constraints

Interface constraints

i.e. protocols for interaction with external systems

Implementation Constraints

E.g. requiring a relational database

Required platform, implementation language

Physical constraints

Hardware devices

FURPS+ Classification Examples

"The persistence will be handled by a relational database"

FURPS+ Type?

+ design constraint.

"The database will be Oracle 8i" FURPS+


+ implementation constraint.

Type?

"The system will run seven days a week, twenty-four hours per
day" FURPS+ Type?
R reliability requirement.

THE END
ANY QUESTIONS?

THANK YOU

Potrebbero piacerti anche