Software Requirements and the Requirements Engineering Process - - PowerPoint PPT Presentation

software requirements and the requirements engineering
SMART_READER_LITE
LIVE PREVIEW

Software Requirements and the Requirements Engineering Process - - PowerPoint PPT Presentation

Software Requirements and the Requirements Engineering Process Chapters 5 and 6 References Software Engineering. Ian Sommerville. 6th edition. Pearson. Code Complete. Steve McConnell. (CC) The art of requirements triage. Alan M.


slide-1
SLIDE 1

Software Requirements and the Requirements Engineering Process

Chapters 5 and 6

slide-2
SLIDE 2

References

 Software Engineering. Ian Sommerville. 6th

  • edition. Pearson.

 Code Complete. Steve McConnell. (CC)  The art of requirements triage. Alan M. Davis.

  • Computer. IEEE. March 2003.

 Testing whether requirements are right. Robin

  • F. Goldsmith, JD. Go Pro Management Inc. NYC

Spin Meeting. December 2004. (RG)

 Software Requirements. Karl E. Wieger.

Windows Press.

 Dr. Gotel’s research web page  Dr. Barrett’s slides, NYU

slide-3
SLIDE 3

What is a requirement?

 It is about WHAT not HOW  Nothing can be said obvious  Requirements are the descriptions of the services

provided by a system and its operational constraints

 It may range from a high level abstract statement to

a detailed mathematical specification

 It may be as complex as a 500 pages of description  It may serve as the basis for a bid for a contract or

the basis for the contract itself

slide-4
SLIDE 4

What is requirements engineering?

 It is the process of discovering, analyzing,

documenting and validating the requirements

  • f the system

 Each software development process goes

through the phase of requirements engineering

slide-5
SLIDE 5

Why requirements?

 What are the advantages of a complete

set of documented requirements?

 Ensures the user (not the developer) drives

system functionalities

 Helps avoiding confusion and arguments  Helps minimizing the changes

 Changes in requirements are expensive.

Changing the requirements costs:

 3 x as much during the design phase  5-10 x as much during implementation  10-100 x as much after release [Code

Complete, p30]

slide-6
SLIDE 6

Why requirements?

 2/3 of finished system errors are

requirements and design errors [RG]

 A careful requirements process doesn’t

mean there will be no changes later

 Average project experiences about 25%

changes in the requirements

 This accounts for 70-80% if the rework of

the project [Code Complete, p40]

 Important to plan for requirements changes

 The case of critical applications

slide-7
SLIDE 7

Different levels of abstraction

 User requirements (abstract)

 Usually the first attempt for the description of

the requirements

 Services and constraints of the system  In natural language or diagrams  Readable by everybody  Serve business objectives

 System requirements (NOT abstract)

 Services and constraints of the system in detail  Useful for the design and development  Precise and cover all cases  Structured presentation

slide-8
SLIDE 8

Example

 User requirement: As a user who found a new job

announcement, I want to add a new position to the website so s/he can start working on doing the initial research and apply to it

 System requirement: A registered user on the academic

jobs website should be able to add a new position listing with the name of the school and academic unit, date of posting, date of expiry, application deadline, and contact and application details. The interaction fails if: the position is already listed, the application deadline is in the past, position announcement is expired, or the contact information is missing. If fails, point mistakes to user and ask the user to fix and resubmit.

slide-9
SLIDE 9

Types of requirements

Functional requirements

Services the system should provide

What the system should do or not in reaction to particular situations

Non-functional requirements

Constraints on the services or functions offered by the system

Examples: Timing constraints (e.g., one semester), constraints on the development process (CASE, language, development method…), standards etc

Domain requirements

From the application domain of the system

May be functional or non-functional

Examples: Medicine, library, physics, chemistry

Note: You can have all of user/system functional/non- functional requirements.

slide-10
SLIDE 10

User requirements

 First attempt to describe functional and non-

functional requirements

 Understandable by the user

 Problems:

 Lack of clarity - ambiguous language  Requirements confusion - functional, non-functional

requirements, design information are not distinguished

 Requirements amalgamation – several requirements

are defined as a single one

 Incompleteness – requirements may be missing  Inconsistency – requirements may contradict

themselves

slide-11
SLIDE 11

User requirements

 Guideline to minimize the issues:

 Separate requirements – separate the requirements,

separate functional and non-functional requirements, requirements must be clearly identified (e.g. by a number)

 Include a rationale for each requirement – helps clarify

reasoning behind the requirements and may be useful for evaluating potential changes in the requirements

 Invent or use a standard form/template  Distinguish requirements priorities

 Example: MoSCoW (Must, Shall, Could, Want/Will (no TBD))

 Avoid technical jargon  Testable (write test cases)  Deliverables

slide-12
SLIDE 12

System requirements

 Elaborate the user requirements to get

a precise, detailed and complete version

  • f them

 Used by designers and developers  An important aspect is how to

present/write system requirements

 Natural language is often used!

 The difference between user and

system requirements must not be thought as a detail

slide-13
SLIDE 13

System requirements

 Example: If sales for current month are below

target sales, then report is to be printed unless difference between target sales and actual sales is less than half of difference between target sales and actual sales in previous month, or if difference between target sales and actual sales for the current month is less than 5%.

 Problems:

 Difficult to read  Ambiguity: sales and actual sales, 5% of what?  Incomplete: what if sales are above target sales?

slide-14
SLIDE 14

Writing system requirements

 Natural language (informal requirements)

 Reviled by academics  But widely practiced: everybody can read them,

finding a better notation is hard

 Structured natural language

 Forms/templates are used to bring some rigor to

natural language presentations

 Graphical notations

 Using boxes, arrows… but they mean different things

to different people

 Formal specification

 Based on logic, state machines…  Hard to understand for many people

slide-15
SLIDE 15

An analogy

 Archimedes (ca. 250 bc)

 Any sphere is equal to 4 times the cone which has

its base equal to the greatest circle in the sphere and its height equal to the radius of the sphere.

 Today

 V = 4/3 pi r 3

 How is this bit of history relevant for software

requirements?

 Formal is better only if everybody understands it  It may take a long time to find a good notation  Software requirements is an area of research

slide-16
SLIDE 16

Non-functional requirements

 They can be further categorized into:

 Product requirements

 Product behavior  Ex: Timing, performance, memory, reliability,

portability, usability

 Organizational requirements

 Policies and procedures in the customer’s and

developer’s organizations

 Example: Process requirements, implementation

requirements, delivery requirements

 External requirements

 Factors externals to the system and the development

process

 Example: Interoperability, legislation, ethics

Non-functional requirements may be more critical than functional requirements. (The system may be useless…)

slide-17
SLIDE 17

Non-functional requirements

Perfor mance requirements Spac e requirements U sa bility requirements E fficiency r equirements Relia bility requirements P

  • r

tability requirem ents Inter

  • perability

requirements E thical requirements L egislative requirements Implementation requirements Standa rds requirements D elivery requirements Safety requirements Privacy requirements Pr

  • duc

t requirements O rga nizational requirements E xternal requirements N

  • n-functional

requirements

slide-18
SLIDE 18

Non-functional requirements

 It is important to be able to test/verify/check non-

functional requirements

Property Measure Speed Processed transactions/second User/Event response time Screen refresh time Size K Bytes Number of RAM chips Ease of use Training time Number of help frames Reliability Mean time to failure Probability of unavailability Rate of failure occurrence Availability Robustness Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Portability Percentage of target dependent statements Number of target systems

slide-19
SLIDE 19

Requirements documents

 Your project descriptions (Available on

the website)

 Very readable  Some ambiguities

 Examples of templates:

 Microsoft template. Karl E. Wiegers.

Software Requirements. Windows Press.

 Volere template

 http://www.volere.co.uk

slide-20
SLIDE 20

Requirement engineering

 5 important activities:

Feasibility study

Requirements elicitation and analysis

Requirements documentation

Requirements validation

Requirements management

slide-21
SLIDE 21

Requirement engineering

F easib ility stud y Requirem ents elicitation and analysis R equirem ents specification Requirem ents va lidation F easib ility rep

  • rt

System m

  • dels

U ser and sy stem req uirem ents Req uirem ents do cu m ent

slide-22
SLIDE 22

Feasibility study

 It is done at first to decide whether or not the

project is worthwhile

 Look at different perspectives:

Market analysis, financial, schedule, technical, resource, legal…

 Should make you aware of the risks

slide-23
SLIDE 23

Feasibility study

 Doing the study

Consult information sources: managers, software engineers, end users…

Based on information collection (interviews, surveys, questionnaires…)

 Should be short (2-3 weeks)

slide-24
SLIDE 24

Feasibility study

 What if the system wasn’t implemented?  What are current process problems?  Do technical resources exist?  What is the risk associated with the

technology?

 Is new technology needed? What skills?  How will the proposed project help?  How does the proposed project contribute to

the overall objectives of the organization?

 Have the benefits identified with the system

being identified clearly?

slide-25
SLIDE 25

Feasibility study

 What will be the integration problems?  What facilities must be supported by the

system?

 What is the risk associated with cost

and schedule?

 What are the potential

disadvantages/advantages?

 Are there legal issues?  Are there issues linked with the fact that

this is an offshore project?

 …