Uploaded by Mohammed Alakhras

03- Software Requirements(2 slides per page)

advertisement
17/04/1444
Software Requirements
Muhammad Rabee Shaheen, Ph.D
What is a requirement?
It may range from a high-level abstract statement of a
service or of a system constraint to a detailed
mathematical functional specification.
This is inevitable as requirements may serve a dual
function





May be the basis for a bid (proposal) for a contract - therefore
must be open to interpretation;
May be the basis for the contract itself - therefore must be
defined in detail;
Both these statements may be called requirements.
2
1
17/04/1444
Requirements Engineering
Is important:


Engineering is about developing solutions to problems


Errors cost more the longer they go undetected


Cost of correcting a requirements error is 100 times greater in
the maintenance phase than in the requirement phase
Experience from failed software development projects


A good solution is only possible if the engineer fully understands
the problem
Failure to understand and manage requirements is the biggest
single cause of the cost and schedule over-runs
Analysis of safety problems


Safety-related errors tend to be errors in specifying requirements;
While non-safety errors tend to be errors in implementing
requirements
3
Present State of Practice
Requirements are difficult to uncover
Requirements change
Over-reliance on CASE tools
Tight project schedule
Communication barriers
Market-driven software development
Lack of resources







4
2
17/04/1444
Present State of Practice
Requirements are difficult to uncover




Difficulty to identify all the requirements
The description is always incomplete at start
Users & developers must resort to trial and error to identify
problems & solutions
Requirements change
Over-reliance on CASE tools
Tight project schedule
Communication barriers
Market-driven software development
Lack of resources






5
Present State of Practice …
Requirements are difficult to uncover
Requirements change





No user can come up with a complete list of requirements at
the outset (complete list are got gradually)
Project schedule is seldom adjusted to reflect all modifications
Hard to justify spending resources to make a SRS perfect!

Because requirements will soon change anyway
Over-reliance on CASE tools
Tight project schedule
Communication barriers
Market-driven software development
Lack of resources





6
3
17/04/1444
Present State of Practice
Requirements are difficult to uncover
Requirements change
Over-reliance on CASE tools





must not rely on requirements engineering tools without first
understanding and establishing requirements engineering
principles, techniques and process.
must have realistic expectations from the tools
Tight project schedule
Communication barriers
Market-driven software development
Lack of resources




7
Present State of Practice
Requirements are difficult to uncover
Requirements change
Over-reliance on CASE tools
Tight project schedule






Lack of planning or unreasonable customer demand 
insufficient time to do decent job
It is customary to reduce time (for analyze requirement), for
early start of designing & coding  disaster
Communication barriers
Market-driven software development
Lack of resources



8
4
17/04/1444
Present State of Practice
Requirements are difficult to uncover
Requirements change
Over-reliance on CASE tools
Tight project schedule
Communication barriers








RE is communication intensive activity
Users & developers have different vocabularies, backgrounds
Users prefer natural language, while developers want more
precise specifications

depending on just one may misunderstanding and confusion
Market-driven software development
Lack of resources


9
Present State of Practice






Requirements are difficult to uncover
Requirements change
Over-reliance on CASE tools
Tight project schedule
Communication barriers
Market-driven software development



Today, software are developed to satisfy anonymous customers
Keep customers coming back to buy upgrades
Lack of resources
10
5
17/04/1444
Present State of Practice







Requirements are difficult to uncover
Requirements change
Over-reliance on CASE tools
Tight project schedule
Communication barriers
Market-driven software development
Lack of resources

resource may not not be enough, therefore the most
important can be implemented first
11
Type of Requirements

Known requirements


Unknown requirements


Something a stakeholder believes to be implemented
Not needed right now or needed by another stakeholder
Undreamt requirements

Stakeholder may not be able to think of new requirements due
to limited domain knowledge
These requirements could be functional
or nonfunctional ones
12
6
17/04/1444
Types of Requirement

User requirements


Statements in natural language plus diagrams of the services the
system provides and its operational constraints. Written for
customers.
System requirements

A structured document setting out detailed descriptions of the
system’s functions, services and operational constraints. Defines what
should be implemented so may be part of a contract between client
and contractor
13
Ex: Mental Health Care-Patient
Management System
14
7
17/04/1444
Essential Requirements Process

Understanding the problem

Use data gathering techniques to elicit requirements


Model and analyze the problem

Use some modeling method(s)


Structured analysis, OO analysis, Formal analysis
Attain agreement on the nature of the problem




Interviews, Questionnaires, Observation, Prototyping
Validation
Conflict resolution
Negotiation
Communicate the problem

Specification, documentation, review meetings
15
Essential Requirements Process

Manage change as the problem evolves

Requirements continue to evolve throughout software
development
16
8
17/04/1444
What vs. How

Requirements should specify what but not how

What refers to a system’s purpose



How refers to a system’s structure and behavior



It is external to the system
It is a property of the application domain
It is internal to the system
It is property of the machine domain
Requirements only exists in the application domain

Need to draw a boundary around the app. Domain

Which things are part of the problem you are analyzing and which are
not?
17
Functional vs. non-functional

Functional requirements



Fundamental functions of the system
Describe system services or functions
Non-functional requirements

Constraints/obligations



Compatibility with (and reuse of) legacy systems
Compliance with interface standards, data format,
communication protocols, …
Quality requirements (soft goals)



Security, Safety
Availability, Usability
Portability
18
9
17/04/1444
Functional requirements for the MHC-PMS



A user shall be able to search the appointments lists for
all clinics.
The system shall generate each day, for each clinic, a list
of patients who are expected to attend appointments
that day.
Each staff member using the system shall be uniquely
identified by his or her 8-digit employee number.
19
Requirements imprecision (inaccuracy)



Problems arise when requirements are not precisely
stated.
Ambiguous requirements may be interpreted in different
ways by developers and users.
Consider the term ‘search’ in requirement 1


User intention – search for a patient name across all appointments in
all clinics;
Developer interpretation – search for a patient name in an individual
clinic. User chooses clinic then search.
20
10
17/04/1444
Requirements eng. activities
known as requirements gathering. Requirements are identified with the
help of customer & existing systems processes, if available
Known also as requirements verification. It is carried out to improve the
quality of SRS.
is the end product of requirements elicitation and analysis. Known as SRS
Starts with requirement elicitation. Requirements are analyzed in order
to identify inconsistencies, defects, omissions, etc. Requirements are
described in terms of relationships and also resolve conflicts, if any.
21
Elicitation

Identify potential sources of requirements




Goals [why the system is being developed]
Domain knowledge (The customer has knowledge of the
business application being written and what it is supposed
to do, this is the domain knowledge)
Stakeholders (A person, group, or organization that is
actively involved in a project, is affected by its outcome, or
can influence its outcome)
Operating environment


May be constrained by existing software and hardware
Organizational environment

Legal issues of keeping personal data, safety issues
22
11
17/04/1444
Requirements Elicitation Activities

Application domain understanding


Problem understanding


The details of the specific customer problem where the system
will be applied must be understood
Business understanding


is knowledge of the general area where the system is applied
You must understand how systems interact and contribute to
overall business goals
Understanding the needs and constraints of the system
stakeholders

You must understand, in detail, the specific needs of people
who require system support in their work
23
Requirements Analysis

Discover problems, incompleteness, inconsistencies
in the elicited requirements




Complete: it should include descriptions of all facilities
required
Consistence: it should be no conflicts or contradictions in
the descriptions of the system facilities
Detect and resolve conflicts
Feedback to stakeholders to resolve them through the
negotiation process
24
12
17/04/1444
Requirements Validation



Check that requirements define the system which the
customer really needs
Cost of fixing a requirement >> repairing design or
coding errors
Req. val. Process:





Validity checks [any set of requirements is inevitably a compromise across
the stakeholder community]
Consistency checks [no conflict]
Completeness [all functions]
Realism checks [technology, can actually be implemented, budget and
schedule]
Verifiability [customer and contractor, set of test]
25
Requirements Valid. tech

One or more:



Requirements reviews, by reviewers team who check for errors and
inconsistencies
Prototyping, executable model is demonstrated to end-users and
customers
Test-case generation, [writing test before code XP]
26
13
17/04/1444
Software Requirements Document

Official statement of what the system developers should
implement


Called also SRS
Includes:


User requirements for a system
Detailed specification of the system requirements
Agile development methods argue that requirements change so rapidly that
a requirements document is out of date as soon as it is written, so the
effort is largely wasted. Rather than a formal document, approaches such as
Extreme Programming collect user requirements incrementally and write
these on cards as user stories. The user then prioritizes requirements for
implementation in the next increment of the system.
27
Requirements Document’s Users
System Customers
Specify the requirements and read them to check that
they meet their needs.
Customers specify changes to the requirements.
Managers
Use the document to plan a bid for the system and to
plan the system development process.
System Engineers
Use the requirements to understand what system is to
be developed.
System Test Engineers
Use the requirements to develop validation tests for
the system.
System Maintenance
Engineers
Use the requirements to understand the system and
the relationships between its parts.
28
14
17/04/1444
Requirements Management

Requirements always change
1. Systems are usually developed to address problems that cannot be
completely defined. Because the problem cannot be fully defined, the
software requirements are bound to be incomplete.
2. The business and technical environment of the system always changes.
New hardware, new legislation and regulations.
3. The people who pay for a system and the users of that system are
rarely the same people.
Since the problem is constantly changing, The system requirements must
then also evolve to reflect this changed problem view.
29
Requirements Management …

Requirements management is the process of
understanding and controlling changes to system
requirements




keep track of individual requirements
maintain links between dependent requirements
so that you can assess the impact of requirements changes.
The process of requirements management should start as
soon as a draft version of the requirements document is
available.
 start planning how to manage changing requirements
during the requirements elicitation process
30
15
17/04/1444
Last word


There are more to talk about requirements
For more info read:



Mastering the Requirements Process
Software Requirements
Requirements Engineering
31
16
Download