SlideShare a Scribd company logo
Requirements Engineering
CT056-3-2
Introduction to Requirements
Engineering
Lecture 2
CT056-3-2-Requirements Engineering Introduction to RE
Topic & Structure of the lesson
• Subcomponents of Requirements Engineering
– Requirements Development
– Requirements Management
• Significance of RE
• Why Requirements Engineering?
• What is a Requirement?
– Types of Requirements
• Requirements Prioritization
Slide 2 (of 19)
CT056-3-2-Requirements Engineering Introduction to RE
Learning Outcomes
By the end of this lecture, YOU should be
able to:
•To define RE and its subcomponents
•To classify requirements
Slide 3 (of 19)
CT056-3-2-Requirements Engineering Introduction to RE
Key Terms you must be able to use
If you have mastered this topic, you should be able
to use the following terms correctly in your
assignments and exams:
– Requirements Engineering
– Requirements Development
– Requirements Management
– Functional and Non-functional Requirements
– Requirements Constraints
– Requirements Prioritization
Slide 4 (of 19)
CT056-3-2-Requirements Engineering Introduction to RE
Subcomponents of requirements
engineering
Requirements Engineering
Requirements
Development
Requirements
Management
Elicitation Analysis Specification Validation
CT056-3-2-Requirements Engineering Introduction to RE
Requirements Development
Involves:-
• Identifying the product’s expected user classes
• Eliciting needs from user class
• Understanding user tasks, goals and business objectives
• Analyzing user information, distinguishing task goals,
functional and non-functional requirements
• Transforming user needs to requirements specification
CT056-3-2-Requirements Engineering Introduction to RE
Requirements Management
• Is the establishing and maintaining an agreement with
the customer on the requirements for the software
project
• The agreement is embodies in the written requirement
specification
• Req. Mgt. Activities :-
– Define requirements baseline
– Review proposed changes
– Incorporate approved requirements
– Keeping project plans
– Tracing individual requirements, from design to source code
– Tracking requirements status
CT056-3-2-Requirements Engineering Introduction to RE
Requirements Engineering
• The process of establishing the services that the
customer requires from a system and the
constraints under which it operates and is
developed.
• The requirements themselves are the
descriptions of the system services and
constraints that are generated during the
requirements engineering process.
Ian Sommerville
Slide 5 (of 19)
CT056-3-2-Requirements Engineering Introduction to RE
Requirements Engineering (def)
Requirements Engineering (RE) is a set of
activities concerned with identifying and
communicating the purpose of a software
intensive system, and the contexts in which it will
be used. Hence, RE acts as the bridge between
the real-world needs of users, customers, and
other constituencies affected by a software
system, and the capabilities and opportunities
afforded.
[Easterbrook, Chapter 1]
CT056-3-2-Requirements Engineering Introduction to RE
Requirements Engineering (def)
Software requirements engineering is the science
and discipline concerned with establishing and
documenting software requirements.
[Thayer and Dorfman:
Software Requirements Engineering]
CT056-3-2-Requirements Engineering Introduction to RE
Requirements Engineering (def)
… can be defined as the systematic process of
developing requirements through an iterative
co-operative process of analyzing the problem,
documenting the resulting observations in a variety
of representation formats, and checking the
accuracy of the understanding gained.
[Macaulay: Requirements Engineering]
CT056-3-2-Requirements Engineering Introduction to RE
"The hardest single part of building a software system is deciding
precisely what to build. No other part of the conceptual work is as
difficult as establishing the detailed technical requirements, including all
the interfaces to people, to machines, and to the software systems. No
other part of the work so cripples the resulting system if done wrong.
No other part is more difficult to rectify later".
Fred Brooks, "No Silver Bullet",
IEEE Computer,1987
Author of The Mythical Man-mon
Slide 6 (of 19)
CT056-3-2-Requirements Engineering Introduction to RE Slide 7 (of 19)
CT056-3-2-Requirements Engineering Introduction to RE Slide 8 (of 19)
CT056-3-2-Requirements Engineering Introduction to RE
Developers’ and Users’ Views
Developers’ View Of Users Users View Of Developers
CT056-3-2-Requirements Engineering Introduction to RE
Learning from each other
Users, customers,
managers, domain
experts, and
developers share
different skills,
backgrounds, and
expectations.
CT056-3-2-Requirements Engineering Introduction to RE
Developing a shared vision
Requirements emerge
from a process of
co-operative learning in
which they are explored,
prioritized, negotiated,
evaluated, and
documented.
CT056-3-2-Requirements Engineering Introduction to RE
The 10 top reasons for not doing
requirements
10. We don’t need requirements, we’re using objects/java/web/….
9. The users don’t know what they want
8. We already know what the users want
7. Who cares what the users want?
6. We don’t have time to do requirements
5. It’s too hard to do requirements
4. My boss frowns when I write requirements
3. The problem is too complex to write requirements
2. It’s easier the change the system later than to do the requirements up front
1. We have already started writing code, and we don’t want to spoil it
Volere Requirements Resources http://www.volere.co.uk
CT056-3-2-Requirements Engineering Introduction to RE
“I held my entire program up for 4+ weeks due to unclear,
unwritten requirements. Took some heat for that in the beginning,
but the deep dive requirements effort is highlighting a Silicon spin
we didn't know about, standards that we don't support, other post
launch requirements nobody considered…all of this causing us
and mgmt to question the viability of the product. BTW, this is all
stuff we wouldn't have realized until it smacked us in the face 6
months from now. Spending a month now prevented us from
spending millions before a conscious decision.”
From : Reflections on a Successful Corporate Requirements Engineering Training
Curriculum, Erik Simmons, Intel Corporation, 2005
CT056-3-2-Requirements Engineering Introduction to RE
Stakeholders issues
Steve McConnell, in his book Rapid Development, details a
number of ways users can inhibit requirements gathering:
• Users don't understand what they want or users don't have a clear idea
of their requirements
• Users won't commit to a set of written requirements
• Users insist on new requirements after the cost and schedule
have been fixed.
• Communication with users is slow
• Users often do not participate in reviews or are incapable of doing so.
• Users are technically unsophisticated
• Users don't understand the development process.
• Users don't know about present technology.
CT056-3-2-Requirements Engineering Introduction to RE
Why Software Projects Fail
CT056-3-2-Requirements Engineering Introduction to RE
Contribution of Requirements
Defects
CT056-3-2-Requirements Engineering Introduction to RE
Why Requirements Engineering?
• Scope the problem
• Understand the problem
• for the client as well as the architect
• Basis for design
• Contract between client/user and builders
• agreement on what has to be built
CT056-3-2-Requirements Engineering Introduction to RE
Understand the Domain
What is important?
Which things are stable and which change?
How does the project add to an organizations' success
CT056-3-2-Requirements Engineering Introduction to RE
Initial Steps in RE process
• What are the drivers?
– Stakeholders & concerns
• What are the constraints?
– Economical/technical/organisational
• What is the scope of the system?
CT056-3-2-Requirements Engineering Introduction to RE
Twin Peaks Process
Separate but concurrent development of requirements & architecture
WHAT:
problem
structuring
HOW:
solution
structuring
Progressing understanding of architecture & design provides a
basis for discovering further system requirements and vice versa
There is interaction between available solutions and requirements
CT056-3-2-Requirements Engineering Introduction to RE
Slide by Gerrit Muller, ESI, 2007
CT056-3-2-Requirements Engineering Introduction to RE
What is a Requirement ?
• A statement about the proposed system that all
stakeholders agree must be made true in order
for the customer’s problem to be adequately
solved.
– Short and concise piece of information
– Says something about the system
– All the stakeholders have agreed that it is valid
– It helps solve the customer’s problem
– Contract between customer and builder
CT056-3-2-Requirements Engineering Introduction to RE
Example Requirement Template
CT056-3-2-Requirements Engineering Introduction to RE
Errors
Up to 30-50% of the errors found further downstream the
development process are due to errors in the
requirements.
•Requirements errors are typically non-clerical.
•incorrect facts 49%
•omissions 31%
•inconsistencies 13%
•ambiguities 5%
•Requirements errors can be detected.
•Review by authors 23%
•Review by others 10%
CT056-3-2-Requirements Engineering Introduction to RE
Users of requirements document
CT056-3-2-Requirements Engineering Introduction to RE
Types of Requirements
• User requirements:
The description of the functions that the system has to fulfil
for its environment in terms of the users interacting with the
system, e.g. in the form of use cases.
•Software requirements:
The software requirements are a translation and a more
precise description of the user requirements, in terms for
software engineers.
CT056-3-2-Requirements Engineering Introduction to RE
Types of Requirements -
Functional and extra-functional requirements
•Functional requirements
•Statements of services the system should provide, how the system
should react to particular inputs and how the system should behave in
particular situations.
• Extra-functional or non-functional requirements
•constraints on the services or functions offered by the system such as
timing constraints, constraints on the development process,
standards, Availability, Security, Reliability, Timeliness, etc.
•Domain requirements
Requirements that come from the application domain of the system
and that reflect characteristics of that domain. Requirements other
than specific needs of the user
• standard user interfaces to all databases
• Because of copyright requirements all documents to be deleted upon arrival
CT056-3-2-Requirements Engineering Introduction to RE
• 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 but functional system requirements
should describe the system services in
detail.
Functional requirements
CT056-3-2-Requirements Engineering Introduction to RE
Eg. Of functional Requirements
– What inputs the system should accept
– What outputs the system should produce
– What data the system should store that other
systems might use
– What computations the system should
perform
CT056-3-2-Requirements Engineering Introduction to RE
The LIBSYS system
• A library system that provides a single
interface to a number of databases of
articles in different libraries.
• Users can search for, download and print
these articles for personal study.
CT056-3-2-Requirements Engineering Introduction to RE
Examples of functional
requirements
• The user shall be able to search either all of the
initial set of databases or select a subset from it.
• The system shall provide appropriate viewers for
the user to read documents in the document
store.
• Every order shall be allocated a unique identifier
(ORDER_ID) which the user shall be able to copy
to the account’s permanent storage area.
CT056-3-2-Requirements Engineering Introduction to RE
Non-functional requirements
• These define system properties and constraints
e.g. reliability, response time and storage
requirements. Constraints are I/O device
capability, system representations, etc.
• Process requirements may also be specified
mandating a particular CASE system,
programming language or development method.
• Non-functional requirements may be more critical
than functional requirements. If these are not met,
the system is useless.
CT056-3-2-Requirements Engineering Introduction to RE
Types of extra-functional requirements
CT056-3-2-Requirements Engineering Introduction to RE
Non-functional classifications
• Product requirements
– Requirements which specify that the delivered product must
behave in a particular way e.g. execution speed, reliability, etc.
• Organisational requirements
– Requirements which are a consequence of organisational policies
and procedures e.g. process standards used, implementation
requirements, etc.
• External requirements
– Requirements which arise from factors which are external to the
system and its development process e.g. interoperability
requirements, legislative requirements, etc.
CT056-3-2-Requirements Engineering Introduction to RE
Examples of Extra Functional Req:
Reliability
Typically expressed in terms of
for repairable systems
• Mean Time Between Failures (MTBF)
• Number of hours that pass before a component fails
• E.g. 2 failures per million hours:
• MTBF = 10^6 / 2 = 0,5 * 10^6 hr
for non-repairable systems
• Mean Time To Failure (MTTF)
• Mean time expected until the first failure of a system
• Is a statistical value over a long period of time
• Mean Time To Repair (MTTR) Availability
CT056-3-2-Requirements Engineering Introduction to RE
Examples XFR: Maintainability
Maintainability
The average person time required to fix a category 3 defect
(including testing and documentation upgrade) shall not
exceed two person days.
CT056-3-2-Requirements Engineering Introduction to RE
Constraints
Constraints are not negotiable
Constraints concerning the environment and technology of the system.
• Platform
• Technology to be used
Constraints concerning the project plan and development methods
• Development process (methodology) to be used
• Cost and delivery date
– Often put in contract or project plan instead
CT056-3-2-Requirements Engineering Introduction to RE
Constraints
Constraint restrict how the requirements are to be
implemented.
• Interface Requirements.
How external interfaces with other systems must be done.
• Communication Interfaces.
The networks and protocols to be used.
• Hardware Interfaces.
The computer hardware the software is to execute on.
• Software Interfaces.
How the software should be compatible with other software:
applications,compilers, operating systems, programming languages,
database management systems.
• User Interfaces.
Style, format, messages
CT056-3-2-Requirements Engineering Introduction to RE
Requirements on Requirements (1)
Each individual requirement should be :
• Important/necessary for the solution of the current
problem
• Unique
• Unambiguous
• Logically consistent
• Not over-constrain the design of the system
• Atomic: not consist of multiple separate requirements
CT056-3-2-Requirements Engineering Introduction to RE
Requirements on Requirements (2)
The set of requirements together should be:
• Complete
• Expressed using a clear and consistent notation
– at the same level of detail
• Without duplication
CT056-3-2-Requirements Engineering Introduction to RE
Requirements on Requirements (3)
S Specific
To-the-point, precise
M Measurable
Quantifiable and verifiable
A Acceptable (to the stakeholders)
Accessible, understandable (for the user)
Achievable(technically/planning/economically)
R Realistic
Deducible to the real business drivers
T Testable
CT056-3-2-Requirements Engineering Introduction to RE
Let’s consider
CT056-3-2-Requirements Engineering Introduction to RE
Requirements
Prioritization
CT056-3-2-Requirements Engineering Introduction to RE
The Cost of Traditional BRUF
Big Requirements Up Front
Source: Jim Johnson of the Standish Group, Keynote Speech XP 2002
Pie chart shows percentage of functionality used by stakeholders
“Successful” Projects Still Have Significant Waste
Pareto-rule applies: 20% of functionality delivers 80% of value
CT056-3-2-Requirements Engineering Introduction to RE
Prioritizing Requirements
• MIL STD:
• Must have, will have, may have
• RUP: MoSCoW
Must have
Should have
Could have
Won’t have
Criteria: indicate importance
Alternative criteria: volitility, cost to realize, risk, ..
CT056-3-2-Requirements Engineering Introduction to RE
Cost-Value Prioritization of Requirements
Motivation for Prioritization:
• Focus development effort
– Allocate resources based on importance
• Make trade-offs between conflicting
goals, such as quality, cost and time-to-market
CT056-3-2-Requirements Engineering Introduction to RE
Cost-Value Prioritization of Requirements
Process:
1.Review requirements for clarity and completeness (by Requirements
Engineers)
2.Assess relative value of requirements in pair wise
manner (Customers and users)
3.Assess relative cost of realizing requirements in pair wise manner (by
experienced SW Engineers)
4.Calculate (value, cost)-pairs (using AHP*)
5.Plot requirements as (value, cost)-pairs
6.Prioritize
CT056-3-2-Requirements Engineering Introduction to RE
Requirements Prioritization
Example
CT056-3-2-Requirements Engineering Introduction to RE
Summary
• Requirements set out what the system should do
and define constraints on its operation and
implementation
• Functional requirements set out services the
system should provide
• Non-functional requirements constrain the
system being developed or the development
process
• User requirements are high-level statements of
what the system should do
CT056-3-2-Requirements Engineering Introduction to RE
Summary
• User requirements should be written in natural
language, tables and diagrams
• System requirements are intended to
communicate the functions that the system
should provide
• System requirements may be written in
structured natural language, a PDL or in a formal
language
• A software requirements document is an agreed
statement of the system requirements
CT056-3-2-Requirements Engineering Introduction to RE
Next session
Software Development Life Cycle

More Related Content

PPTX
Requirements Engineering (CS 5032 2012)
PDF
Requirements Engineering
PPT
Requirement Engineering
PPTX
Requirements Engineering Processes
PPT
requirement engineering
PPT
PPTX
03 requirement engineering_process
PPT
Ch07-Moving into Design
Requirements Engineering (CS 5032 2012)
Requirements Engineering
Requirement Engineering
Requirements Engineering Processes
requirement engineering
03 requirement engineering_process
Ch07-Moving into Design

What's hot (20)

PDF
Requirement Engineering
PDF
Requirement engineering process
PPTX
Architecture vs Design
PPT
24 dssa and_product_lines
PPT
Software Architecture
PDF
Software Architecture and Design Introduction
PDF
Bank managment system
PPTX
EC8791 Requirement-Specifications-Quality assurance techniques
PDF
Unit 2 analysis and software requirements
PPTX
software requirements
PPTX
Software Requirement Specification
PDF
Software engineering Unit-2
PDF
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
PPTX
Unit iv -Documenting and Implementation of Software Architecture
PPTX
Unit iii-Architecture in the lifecycle
PPT
Software architecture design ppt
PDF
Selenium - A Trending Automation Testing Tool
PDF
Software architecture for developers by Simon Brown
PPTX
Requirements engineering activities
PPT
Software engg. pressman_ch-6 & 7
Requirement Engineering
Requirement engineering process
Architecture vs Design
24 dssa and_product_lines
Software Architecture
Software Architecture and Design Introduction
Bank managment system
EC8791 Requirement-Specifications-Quality assurance techniques
Unit 2 analysis and software requirements
software requirements
Software Requirement Specification
Software engineering Unit-2
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Unit iv -Documenting and Implementation of Software Architecture
Unit iii-Architecture in the lifecycle
Software architecture design ppt
Selenium - A Trending Automation Testing Tool
Software architecture for developers by Simon Brown
Requirements engineering activities
Software engg. pressman_ch-6 & 7
Ad

Viewers also liked (20)

PPT
CCNA Security 05- securing the management plane
PDF
Cisco CCNP
PPTX
Building Up Network Security: An Introduction
PPT
CCNA Security 09- ios firewall fundamentals
PPT
CCNA Security 011- implementing ios-based ips
PPT
CCNA Security 03- network foundation protection
PPT
CCNA Security 07-Securing the local area network
PPT
7 Tips on Dealing with a Bully at Work
PPT
Bullying & harrassment in the workplace
PDF
CCNP Security-Firewall
PPT
CCNA Security 010-configuring cisco asa
PPT
CCNA Security 012- cryptographic systems
PPT
CCNA Security 02- fundamentals of network security
PPTX
Workplace Bullying
PPT
CCNA Security 06- AAA
PPT
CCNA Security - Chapter 1
PPTX
20 Rules of Change Management in Organizations by Catherine Adenle
PPTX
Virtualization 101: Everything You Need To Know To Get Started With VMware
PDF
Growth Hacking - 10 Key Checklist
PPT
Network Security Threats and Solutions
CCNA Security 05- securing the management plane
Cisco CCNP
Building Up Network Security: An Introduction
CCNA Security 09- ios firewall fundamentals
CCNA Security 011- implementing ios-based ips
CCNA Security 03- network foundation protection
CCNA Security 07-Securing the local area network
7 Tips on Dealing with a Bully at Work
Bullying & harrassment in the workplace
CCNP Security-Firewall
CCNA Security 010-configuring cisco asa
CCNA Security 012- cryptographic systems
CCNA Security 02- fundamentals of network security
Workplace Bullying
CCNA Security 06- AAA
CCNA Security - Chapter 1
20 Rules of Change Management in Organizations by Catherine Adenle
Virtualization 101: Everything You Need To Know To Get Started With VMware
Growth Hacking - 10 Key Checklist
Network Security Threats and Solutions
Ad

Similar to Week 1 lecture 2 - introduction to re (20)

PPTX
Requirements Engineering for LSCITS
PDF
2_Requirments( Engineering & Software & User and System) & System Stakeholde...
PPTX
REQUIREMENTS ANALYSIS AND MODELLING.pptx
PDF
Requirement Engineering Challenges in Development of Software Applications an...
PPT
Presentation of se
PDF
Se lec-uosl-8
PDF
Software Requirements and Specifications
PDF
Software requirements full sides & concepts
PPTX
UNIT-II MMB.pptx
PPTX
IT1204 - Software Engineering - L4
PPTX
Lecture 1 - Requirement Engineering.pptx
PPTX
SRE.pptx
PDF
PPTX
OOSE_ Developing Requirements Modelling with Classes
PPT
REQUIREMENT ENGINEERING
PPT
05 REQUIREMENT ENGINEERING for students of
PDF
Improving the Quality of Requirements in Middleware Requirements Specifications
PPTX
Unit2 Software engineering UPTU
PPTX
Requirement engineering in S/W Engineering
PPTX
04 fse understandingrequirements
Requirements Engineering for LSCITS
2_Requirments( Engineering & Software & User and System) & System Stakeholde...
REQUIREMENTS ANALYSIS AND MODELLING.pptx
Requirement Engineering Challenges in Development of Software Applications an...
Presentation of se
Se lec-uosl-8
Software Requirements and Specifications
Software requirements full sides & concepts
UNIT-II MMB.pptx
IT1204 - Software Engineering - L4
Lecture 1 - Requirement Engineering.pptx
SRE.pptx
OOSE_ Developing Requirements Modelling with Classes
REQUIREMENT ENGINEERING
05 REQUIREMENT ENGINEERING for students of
Improving the Quality of Requirements in Middleware Requirements Specifications
Unit2 Software engineering UPTU
Requirement engineering in S/W Engineering
04 fse understandingrequirements

Week 1 lecture 2 - introduction to re

  • 1. Requirements Engineering CT056-3-2 Introduction to Requirements Engineering Lecture 2
  • 2. CT056-3-2-Requirements Engineering Introduction to RE Topic & Structure of the lesson • Subcomponents of Requirements Engineering – Requirements Development – Requirements Management • Significance of RE • Why Requirements Engineering? • What is a Requirement? – Types of Requirements • Requirements Prioritization Slide 2 (of 19)
  • 3. CT056-3-2-Requirements Engineering Introduction to RE Learning Outcomes By the end of this lecture, YOU should be able to: •To define RE and its subcomponents •To classify requirements Slide 3 (of 19)
  • 4. CT056-3-2-Requirements Engineering Introduction to RE Key Terms you must be able to use If you have mastered this topic, you should be able to use the following terms correctly in your assignments and exams: – Requirements Engineering – Requirements Development – Requirements Management – Functional and Non-functional Requirements – Requirements Constraints – Requirements Prioritization Slide 4 (of 19)
  • 5. CT056-3-2-Requirements Engineering Introduction to RE Subcomponents of requirements engineering Requirements Engineering Requirements Development Requirements Management Elicitation Analysis Specification Validation
  • 6. CT056-3-2-Requirements Engineering Introduction to RE Requirements Development Involves:- • Identifying the product’s expected user classes • Eliciting needs from user class • Understanding user tasks, goals and business objectives • Analyzing user information, distinguishing task goals, functional and non-functional requirements • Transforming user needs to requirements specification
  • 7. CT056-3-2-Requirements Engineering Introduction to RE Requirements Management • Is the establishing and maintaining an agreement with the customer on the requirements for the software project • The agreement is embodies in the written requirement specification • Req. Mgt. Activities :- – Define requirements baseline – Review proposed changes – Incorporate approved requirements – Keeping project plans – Tracing individual requirements, from design to source code – Tracking requirements status
  • 8. CT056-3-2-Requirements Engineering Introduction to RE Requirements Engineering • The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed. • The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process. Ian Sommerville Slide 5 (of 19)
  • 9. CT056-3-2-Requirements Engineering Introduction to RE Requirements Engineering (def) Requirements Engineering (RE) is a set of activities concerned with identifying and communicating the purpose of a software intensive system, and the contexts in which it will be used. Hence, RE acts as the bridge between the real-world needs of users, customers, and other constituencies affected by a software system, and the capabilities and opportunities afforded. [Easterbrook, Chapter 1]
  • 10. CT056-3-2-Requirements Engineering Introduction to RE Requirements Engineering (def) Software requirements engineering is the science and discipline concerned with establishing and documenting software requirements. [Thayer and Dorfman: Software Requirements Engineering]
  • 11. CT056-3-2-Requirements Engineering Introduction to RE Requirements Engineering (def) … can be defined as the systematic process of developing requirements through an iterative co-operative process of analyzing the problem, documenting the resulting observations in a variety of representation formats, and checking the accuracy of the understanding gained. [Macaulay: Requirements Engineering]
  • 12. CT056-3-2-Requirements Engineering Introduction to RE "The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to the software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later". Fred Brooks, "No Silver Bullet", IEEE Computer,1987 Author of The Mythical Man-mon Slide 6 (of 19)
  • 15. CT056-3-2-Requirements Engineering Introduction to RE Developers’ and Users’ Views Developers’ View Of Users Users View Of Developers
  • 16. CT056-3-2-Requirements Engineering Introduction to RE Learning from each other Users, customers, managers, domain experts, and developers share different skills, backgrounds, and expectations.
  • 17. CT056-3-2-Requirements Engineering Introduction to RE Developing a shared vision Requirements emerge from a process of co-operative learning in which they are explored, prioritized, negotiated, evaluated, and documented.
  • 18. CT056-3-2-Requirements Engineering Introduction to RE The 10 top reasons for not doing requirements 10. We don’t need requirements, we’re using objects/java/web/…. 9. The users don’t know what they want 8. We already know what the users want 7. Who cares what the users want? 6. We don’t have time to do requirements 5. It’s too hard to do requirements 4. My boss frowns when I write requirements 3. The problem is too complex to write requirements 2. It’s easier the change the system later than to do the requirements up front 1. We have already started writing code, and we don’t want to spoil it Volere Requirements Resources http://www.volere.co.uk
  • 19. CT056-3-2-Requirements Engineering Introduction to RE “I held my entire program up for 4+ weeks due to unclear, unwritten requirements. Took some heat for that in the beginning, but the deep dive requirements effort is highlighting a Silicon spin we didn't know about, standards that we don't support, other post launch requirements nobody considered…all of this causing us and mgmt to question the viability of the product. BTW, this is all stuff we wouldn't have realized until it smacked us in the face 6 months from now. Spending a month now prevented us from spending millions before a conscious decision.” From : Reflections on a Successful Corporate Requirements Engineering Training Curriculum, Erik Simmons, Intel Corporation, 2005
  • 20. CT056-3-2-Requirements Engineering Introduction to RE Stakeholders issues Steve McConnell, in his book Rapid Development, details a number of ways users can inhibit requirements gathering: • Users don't understand what they want or users don't have a clear idea of their requirements • Users won't commit to a set of written requirements • Users insist on new requirements after the cost and schedule have been fixed. • Communication with users is slow • Users often do not participate in reviews or are incapable of doing so. • Users are technically unsophisticated • Users don't understand the development process. • Users don't know about present technology.
  • 21. CT056-3-2-Requirements Engineering Introduction to RE Why Software Projects Fail
  • 22. CT056-3-2-Requirements Engineering Introduction to RE Contribution of Requirements Defects
  • 23. CT056-3-2-Requirements Engineering Introduction to RE Why Requirements Engineering? • Scope the problem • Understand the problem • for the client as well as the architect • Basis for design • Contract between client/user and builders • agreement on what has to be built
  • 24. CT056-3-2-Requirements Engineering Introduction to RE Understand the Domain What is important? Which things are stable and which change? How does the project add to an organizations' success
  • 25. CT056-3-2-Requirements Engineering Introduction to RE Initial Steps in RE process • What are the drivers? – Stakeholders & concerns • What are the constraints? – Economical/technical/organisational • What is the scope of the system?
  • 26. CT056-3-2-Requirements Engineering Introduction to RE Twin Peaks Process Separate but concurrent development of requirements & architecture WHAT: problem structuring HOW: solution structuring Progressing understanding of architecture & design provides a basis for discovering further system requirements and vice versa There is interaction between available solutions and requirements
  • 27. CT056-3-2-Requirements Engineering Introduction to RE Slide by Gerrit Muller, ESI, 2007
  • 28. CT056-3-2-Requirements Engineering Introduction to RE What is a Requirement ? • A statement about the proposed system that all stakeholders agree must be made true in order for the customer’s problem to be adequately solved. – Short and concise piece of information – Says something about the system – All the stakeholders have agreed that it is valid – It helps solve the customer’s problem – Contract between customer and builder
  • 29. CT056-3-2-Requirements Engineering Introduction to RE Example Requirement Template
  • 30. CT056-3-2-Requirements Engineering Introduction to RE Errors Up to 30-50% of the errors found further downstream the development process are due to errors in the requirements. •Requirements errors are typically non-clerical. •incorrect facts 49% •omissions 31% •inconsistencies 13% •ambiguities 5% •Requirements errors can be detected. •Review by authors 23% •Review by others 10%
  • 31. CT056-3-2-Requirements Engineering Introduction to RE Users of requirements document
  • 32. CT056-3-2-Requirements Engineering Introduction to RE Types of Requirements • User requirements: The description of the functions that the system has to fulfil for its environment in terms of the users interacting with the system, e.g. in the form of use cases. •Software requirements: The software requirements are a translation and a more precise description of the user requirements, in terms for software engineers.
  • 33. CT056-3-2-Requirements Engineering Introduction to RE Types of Requirements - Functional and extra-functional requirements •Functional requirements •Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. • Extra-functional or non-functional requirements •constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, Availability, Security, Reliability, Timeliness, etc. •Domain requirements Requirements that come from the application domain of the system and that reflect characteristics of that domain. Requirements other than specific needs of the user • standard user interfaces to all databases • Because of copyright requirements all documents to be deleted upon arrival
  • 34. CT056-3-2-Requirements Engineering Introduction to RE • 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 but functional system requirements should describe the system services in detail. Functional requirements
  • 35. CT056-3-2-Requirements Engineering Introduction to RE Eg. Of functional Requirements – What inputs the system should accept – What outputs the system should produce – What data the system should store that other systems might use – What computations the system should perform
  • 36. CT056-3-2-Requirements Engineering Introduction to RE The LIBSYS system • A library system that provides a single interface to a number of databases of articles in different libraries. • Users can search for, download and print these articles for personal study.
  • 37. CT056-3-2-Requirements Engineering Introduction to RE Examples of functional requirements • The user shall be able to search either all of the initial set of databases or select a subset from it. • The system shall provide appropriate viewers for the user to read documents in the document store. • Every order shall be allocated a unique identifier (ORDER_ID) which the user shall be able to copy to the account’s permanent storage area.
  • 38. CT056-3-2-Requirements Engineering Introduction to RE Non-functional requirements • These define system properties and constraints e.g. reliability, response time and storage requirements. Constraints are I/O device capability, system representations, etc. • Process requirements may also be specified mandating a particular CASE system, programming language or development method. • Non-functional requirements may be more critical than functional requirements. If these are not met, the system is useless.
  • 39. CT056-3-2-Requirements Engineering Introduction to RE Types of extra-functional requirements
  • 40. CT056-3-2-Requirements Engineering Introduction to RE Non-functional classifications • Product requirements – Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc. • Organisational requirements – Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc. • External requirements – Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
  • 41. CT056-3-2-Requirements Engineering Introduction to RE Examples of Extra Functional Req: Reliability Typically expressed in terms of for repairable systems • Mean Time Between Failures (MTBF) • Number of hours that pass before a component fails • E.g. 2 failures per million hours: • MTBF = 10^6 / 2 = 0,5 * 10^6 hr for non-repairable systems • Mean Time To Failure (MTTF) • Mean time expected until the first failure of a system • Is a statistical value over a long period of time • Mean Time To Repair (MTTR) Availability
  • 42. CT056-3-2-Requirements Engineering Introduction to RE Examples XFR: Maintainability Maintainability The average person time required to fix a category 3 defect (including testing and documentation upgrade) shall not exceed two person days.
  • 43. CT056-3-2-Requirements Engineering Introduction to RE Constraints Constraints are not negotiable Constraints concerning the environment and technology of the system. • Platform • Technology to be used Constraints concerning the project plan and development methods • Development process (methodology) to be used • Cost and delivery date – Often put in contract or project plan instead
  • 44. CT056-3-2-Requirements Engineering Introduction to RE Constraints Constraint restrict how the requirements are to be implemented. • Interface Requirements. How external interfaces with other systems must be done. • Communication Interfaces. The networks and protocols to be used. • Hardware Interfaces. The computer hardware the software is to execute on. • Software Interfaces. How the software should be compatible with other software: applications,compilers, operating systems, programming languages, database management systems. • User Interfaces. Style, format, messages
  • 45. CT056-3-2-Requirements Engineering Introduction to RE Requirements on Requirements (1) Each individual requirement should be : • Important/necessary for the solution of the current problem • Unique • Unambiguous • Logically consistent • Not over-constrain the design of the system • Atomic: not consist of multiple separate requirements
  • 46. CT056-3-2-Requirements Engineering Introduction to RE Requirements on Requirements (2) The set of requirements together should be: • Complete • Expressed using a clear and consistent notation – at the same level of detail • Without duplication
  • 47. CT056-3-2-Requirements Engineering Introduction to RE Requirements on Requirements (3) S Specific To-the-point, precise M Measurable Quantifiable and verifiable A Acceptable (to the stakeholders) Accessible, understandable (for the user) Achievable(technically/planning/economically) R Realistic Deducible to the real business drivers T Testable
  • 49. CT056-3-2-Requirements Engineering Introduction to RE Requirements Prioritization
  • 50. CT056-3-2-Requirements Engineering Introduction to RE The Cost of Traditional BRUF Big Requirements Up Front Source: Jim Johnson of the Standish Group, Keynote Speech XP 2002 Pie chart shows percentage of functionality used by stakeholders “Successful” Projects Still Have Significant Waste Pareto-rule applies: 20% of functionality delivers 80% of value
  • 51. CT056-3-2-Requirements Engineering Introduction to RE Prioritizing Requirements • MIL STD: • Must have, will have, may have • RUP: MoSCoW Must have Should have Could have Won’t have Criteria: indicate importance Alternative criteria: volitility, cost to realize, risk, ..
  • 52. CT056-3-2-Requirements Engineering Introduction to RE Cost-Value Prioritization of Requirements Motivation for Prioritization: • Focus development effort – Allocate resources based on importance • Make trade-offs between conflicting goals, such as quality, cost and time-to-market
  • 53. CT056-3-2-Requirements Engineering Introduction to RE Cost-Value Prioritization of Requirements Process: 1.Review requirements for clarity and completeness (by Requirements Engineers) 2.Assess relative value of requirements in pair wise manner (Customers and users) 3.Assess relative cost of realizing requirements in pair wise manner (by experienced SW Engineers) 4.Calculate (value, cost)-pairs (using AHP*) 5.Plot requirements as (value, cost)-pairs 6.Prioritize
  • 54. CT056-3-2-Requirements Engineering Introduction to RE Requirements Prioritization Example
  • 55. CT056-3-2-Requirements Engineering Introduction to RE Summary • Requirements set out what the system should do and define constraints on its operation and implementation • Functional requirements set out services the system should provide • Non-functional requirements constrain the system being developed or the development process • User requirements are high-level statements of what the system should do
  • 56. CT056-3-2-Requirements Engineering Introduction to RE Summary • User requirements should be written in natural language, tables and diagrams • System requirements are intended to communicate the functions that the system should provide • System requirements may be written in structured natural language, a PDL or in a formal language • A software requirements document is an agreed statement of the system requirements
  • 57. CT056-3-2-Requirements Engineering Introduction to RE Next session Software Development Life Cycle