SlideShare a Scribd company logo
Software Requirement
Engineering
AQDAS TANVIR
Requirement Engineering
• Objective:
To understand Issues in Requirements Engineering, to understand and
apply Requirements Engineering Process, to understand and use
Requirements Elicitation and Specification, to understand and use
Formal Techniques, to understand modelling and analysis of Non-
Functional Requirements
• Reference Book:
•Hull, Jackson, and Dick, Requirements Engineering, 2004, Springer
•Karl E. Wiegers, Software Requirements, 2nd Edition, 2003, Microsoft Press
•Loucopoulos and Karakostas, System Requirements Engineering, McGraw-
Hill , 1995
•Kotonya and Sommerville, Requirements Engineering: Processes and
Techniques, John Wiley Sons, 1998.
Lecture 1-Outline
-Requirement Engineering
-Role of Requirement Engineering in Software Development
-Problems with requirements practices
- Requirements engineering tasks
Requirement Engineering
• 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 by software-intensive technologies.
Role of Requirement Engineering in
Software Development
• Requirements engineering (RE) is the most important
area of Software engineering and possibly of the
entire software life cycle. Because errors produced at
this stage, if undetected until a later stage of
software development, can be very costly.
• If it can specify the requirement specification correctly,
errors of later stages will be less. Hence software
developments and maintenance cost will be less
moreover customer will get their desire system.
Role of Requirement Engineering in Software
Development (Cont…)
• The cost of fixing errors:
– One of the best-known investigations of the economics of software
development was a series of studies conducted in the 1970’s by Barry
Boehm. Boehm investigated the cost to fix errors in the development
of large software systems.
– Most of the projects followed a fairly standard sequence of phases:
requirements analysis, design, coding (programming), development
testing, acceptance testing and operation. Errors made in a particular
phase cost more to fix the longer they are left undetected, so that, for
example, a programming error that is not discovered until acceptance
testing will cost ten times as much to fix than if it is found during
programming. A requirements error not found until after delivery will
cost a hundred times more to fix.
– The explanation is fairly simple –the longer a problem goes unnoticed,
the more subsequent design decisions are based on it, and hence the
more work it will take to unpick them.
Role of Requirement Engineering in Software
Development (Cont…)
• Boehm’s data invites a number of conclusions, the main one of
which is that the strict sequence of phases described above (known
as the waterfall model) may not be the best way to manage a large
project – an iterative approach may be more suitable.
• The conclusions concerning the relative cost of fixing errors do not
necessarily depend on the order in which things are done, because
the cost driver is not the length of time that an error goes
undetected, but the number of other decisions that are based on it.
• Errors made in understanding the requirements will always have
the potential for greatest cost to fix, because so many other design
decisions depend on them. Clearly, time invested in understanding
the requirements early in a project can have a significant payoff.
The Problems with our
Requirements Practices
• We have trouble understanding the requirements that we do acquire
from the customer
• We often record requirements in a disorganized manner
• We spend far too little time verifying what we do record
• We allow change to control us, rather than establishing mechanisms
to control change
• Most importantly, we fail to establish a solid foundation for the
system or software that the user wants built
9
The Problems with our Requirements
Practices (continued)
• Many software developers argue that
– Building software is so compelling that we want to jump right in (before
having a clear understanding of what is needed)
– Things will become clear as we build the software
– Project stakeholders will be able to better understand what they need
only after examining early iterations of the software
– Things change so rapidly that requirements engineering is a waste of time
– The bottom line is producing a working program and that all else is
secondary
• All of these arguments contain some truth, especially for small
projects that take less than one month to complete
• However, as software grows in size and complexity, these arguments
begin to break down and can lead to a failed software project
10
A Solution: Requirements
Engineering
• Begins during the communication activity and continues into the modeling
activity
• Builds a bridge from the system requirements into software design and
construction
• Allows the requirements engineer to examine
– the context of the software work to be performed
– the specific needs that design and construction must address
– the priorities that guide the order in which work is to be completed
– the information, function, and behavior that will have a profound impact on the
resultant design
11
Requirements Engineering Tasks
• Seven distinct tasks
– Inception
– Elicitation
– Elaboration
– Negotiation
– Specification
– Validation
– Requirements Management
• Some of these tasks may occur in parallel and all are adapted to the
needs of the project
• All strive to define what the customer wants
• All serve to establish a solid foundation for the design and
construction of the software
12
Requirements Engineering Tasks (Cont…)
• Inception
– During inception, the requirements engineer asks a set of questions to
establish…
• A basic understanding of the problem
• The people who want a solution
• The nature of the solution that is desired
• The effectiveness of preliminary communication and collaboration
between the customer and the developer
Requirements Engineering Tasks (Cont…)
• Elicitation
– Gathering requirements in detail
– Eliciting requirements is difficult because of
• Problems of scope in identifying the boundaries of the system or
specifying too much technical detail rather than overall system
objectives
• Problems of understanding what is wanted, what the problem
domain is, and what the computing environment can handle
(Information that is believed to be "obvious" is often omitted)
• Problems of volatility because the requirements change over time
Requirements Engineering Tasks (Cont…)
Elaboration
• During elaboration, the software engineer takes the information obtained
during inception and elicitation and begins to expand and refine it
• Elaboration focuses on developing a refined technical model of software
functions, features, and constraints
• It is an analysis modeling task
– Use cases are developed
– Domain classes are identified along with their attributes and relationships
– State machine diagrams are used to capture the life on an object
• The end result is an analysis model that defines the functional,
informational, and behavioral domains of the problem
Requirements Engineering Tasks (Cont…)
• Negotiation
– During negotiation, the software engineer reconciles the conflicts
between what the customer wants and what can be achieved given
limited business resources
– Requirements are ranked (i.e., prioritized) by the customers, users, and
other stakeholders
– Risks associated with each requirement are identified and analyzed
– Rough guesses of development effort are made and used to assess the
impact of each requirement on project cost and delivery time
– Using an iterative approach, requirements are eliminated, combined
and/or modified so that each party achieves some measure of
satisfaction
16
Requirements Engineering Tasks (Cont…)
• Specification
– A specification is the final work product produced by the requirements
engineer
– It is normally in the form of a software requirements specification
– It serves as the foundation for subsequent software engineering activities
– It describes the function and performance of a computer-based system
and the constraints that will govern its development
– It formalizes the informational, functional, and behavioral requirements
of the proposed software in both a graphical and textual format
17
Requirements Engineering Tasks (Cont…)
• Validation
– During validation, the work products produced as a result of
requirements engineering are assessed for quality
– The specification is examined to ensure that
• all software requirements have been stated unambiguously
• inconsistencies, omissions, and errors have been detected and
corrected
• the work products conform to the standards established for the
process, the project, and the product
– The formal technical review serves as the primary requirements
validation mechanism
• Members include software engineers, customers, users, and
other stakeholders
18
Requirements Engineering Tasks (Cont…)
• Requirement Management
– During requirements management, the project team performs a set
of activities to identify, control, and track requirements and changes
to the requirements at any time as the project proceeds
– Each requirement is assigned a unique identifier
– The requirements are then placed into one or more traceability tables
– These tables may be stored in a database that relate features,
sources, dependencies, subsystems, and interfaces to the
requirements
– A requirements traceability table is also placed at the end of the
software requirements specification
19

More Related Content

Similar to Lecture 1 - Requirement Engineering.pptx

Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
Syed Zaid Irshad
 
Seminar on Project Management by Rj
Seminar on Project Management by RjSeminar on Project Management by Rj
Seminar on Project Management by Rj
Shree M.L.Kakadiya MCA mahila college, Amreli
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
Noor Ul Hudda Memon
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
Mohamed Shahpoup
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
ShudipPal
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of
AssadLeo1
 
Sdlc phases
Sdlc phasesSdlc phases
Sdlc phases
Janu Jahnavi
 
Sdlc phases
Sdlc phasesSdlc phases
Sdlc phases
Janu Jahnavi
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
LeahRachael
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
Taymoor Nazmy
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
UnknownPerson201264
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
ADARSHN40
 
Software engineering
Software engineeringSoftware engineering
Software engineering
DivyaSharma458
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineeringArun Nair
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
YousefYassin5
 
req engg (1).ppt
req engg (1).pptreq engg (1).ppt
req engg (1).ppt
WaniHBisen
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Md.Nazmul Islam
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process Models
Ahsan Rahim
 

Similar to Lecture 1 - Requirement Engineering.pptx (20)

Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Seminar on Project Management by Rj
Seminar on Project Management by RjSeminar on Project Management by Rj
Seminar on Project Management by Rj
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of
 
Sdlc phases
Sdlc phasesSdlc phases
Sdlc phases
 
Sdlc phases
Sdlc phasesSdlc phases
Sdlc phases
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
 
req engg (1).ppt
req engg (1).pptreq engg (1).ppt
req engg (1).ppt
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process Models
 

Recently uploaded

一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
9a93xvy
 
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
jyz59f4j
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
garcese
 
Can AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI preludeCan AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI prelude
Alan Dix
 
Borys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior designBorys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior design
boryssutkowski
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
ameli25062005
 
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
pmgdscunsri
 
Mohannad Abdullah portfolio _ V2 _22-24
Mohannad Abdullah  portfolio _ V2 _22-24Mohannad Abdullah  portfolio _ V2 _22-24
Mohannad Abdullah portfolio _ V2 _22-24
M. A. Architect
 
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
9a93xvy
 
Moldes de letra 3D Alfabeto completo esp
Moldes de letra 3D Alfabeto completo espMoldes de letra 3D Alfabeto completo esp
Moldes de letra 3D Alfabeto completo esp
Hess9
 
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Mansi Shah
 
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
708pb191
 
一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理
一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理
一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理
smpc3nvg
 
PDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in NoidaPDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in Noida
PoojaSaini954651
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
cy0krjxt
 
vernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdfvernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdf
PrabhjeetSingh219035
 
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
Febless Hernane
 
一比一原版(BU毕业证)波士顿大学毕业证如何办理
一比一原版(BU毕业证)波士顿大学毕业证如何办理一比一原版(BU毕业证)波士顿大学毕业证如何办理
一比一原版(BU毕业证)波士顿大学毕业证如何办理
peuce
 
Research 20 slides Amelia gavryliuks.pdf
Research 20 slides Amelia gavryliuks.pdfResearch 20 slides Amelia gavryliuks.pdf
Research 20 slides Amelia gavryliuks.pdf
ameli25062005
 
RTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,DRTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,D
cy0krjxt
 

Recently uploaded (20)

一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
 
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
 
Can AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI preludeCan AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI prelude
 
Borys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior designBorys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior design
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
 
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
 
Mohannad Abdullah portfolio _ V2 _22-24
Mohannad Abdullah  portfolio _ V2 _22-24Mohannad Abdullah  portfolio _ V2 _22-24
Mohannad Abdullah portfolio _ V2 _22-24
 
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
 
Moldes de letra 3D Alfabeto completo esp
Moldes de letra 3D Alfabeto completo espMoldes de letra 3D Alfabeto completo esp
Moldes de letra 3D Alfabeto completo esp
 
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
 
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
 
一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理
一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理
一比一原版(Brunel毕业证书)布鲁内尔大学毕业证成绩单如何办理
 
PDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in NoidaPDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in Noida
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
 
vernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdfvernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdf
 
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
 
一比一原版(BU毕业证)波士顿大学毕业证如何办理
一比一原版(BU毕业证)波士顿大学毕业证如何办理一比一原版(BU毕业证)波士顿大学毕业证如何办理
一比一原版(BU毕业证)波士顿大学毕业证如何办理
 
Research 20 slides Amelia gavryliuks.pdf
Research 20 slides Amelia gavryliuks.pdfResearch 20 slides Amelia gavryliuks.pdf
Research 20 slides Amelia gavryliuks.pdf
 
RTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,DRTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,D
 

Lecture 1 - Requirement Engineering.pptx

  • 2. Requirement Engineering • Objective: To understand Issues in Requirements Engineering, to understand and apply Requirements Engineering Process, to understand and use Requirements Elicitation and Specification, to understand and use Formal Techniques, to understand modelling and analysis of Non- Functional Requirements • Reference Book: •Hull, Jackson, and Dick, Requirements Engineering, 2004, Springer •Karl E. Wiegers, Software Requirements, 2nd Edition, 2003, Microsoft Press •Loucopoulos and Karakostas, System Requirements Engineering, McGraw- Hill , 1995 •Kotonya and Sommerville, Requirements Engineering: Processes and Techniques, John Wiley Sons, 1998.
  • 3. Lecture 1-Outline -Requirement Engineering -Role of Requirement Engineering in Software Development -Problems with requirements practices - Requirements engineering tasks
  • 4. Requirement Engineering • 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 by software-intensive technologies.
  • 5.
  • 6. Role of Requirement Engineering in Software Development • Requirements engineering (RE) is the most important area of Software engineering and possibly of the entire software life cycle. Because errors produced at this stage, if undetected until a later stage of software development, can be very costly. • If it can specify the requirement specification correctly, errors of later stages will be less. Hence software developments and maintenance cost will be less moreover customer will get their desire system.
  • 7. Role of Requirement Engineering in Software Development (Cont…) • The cost of fixing errors: – One of the best-known investigations of the economics of software development was a series of studies conducted in the 1970’s by Barry Boehm. Boehm investigated the cost to fix errors in the development of large software systems. – Most of the projects followed a fairly standard sequence of phases: requirements analysis, design, coding (programming), development testing, acceptance testing and operation. Errors made in a particular phase cost more to fix the longer they are left undetected, so that, for example, a programming error that is not discovered until acceptance testing will cost ten times as much to fix than if it is found during programming. A requirements error not found until after delivery will cost a hundred times more to fix. – The explanation is fairly simple –the longer a problem goes unnoticed, the more subsequent design decisions are based on it, and hence the more work it will take to unpick them.
  • 8. Role of Requirement Engineering in Software Development (Cont…) • Boehm’s data invites a number of conclusions, the main one of which is that the strict sequence of phases described above (known as the waterfall model) may not be the best way to manage a large project – an iterative approach may be more suitable. • The conclusions concerning the relative cost of fixing errors do not necessarily depend on the order in which things are done, because the cost driver is not the length of time that an error goes undetected, but the number of other decisions that are based on it. • Errors made in understanding the requirements will always have the potential for greatest cost to fix, because so many other design decisions depend on them. Clearly, time invested in understanding the requirements early in a project can have a significant payoff.
  • 9. The Problems with our Requirements Practices • We have trouble understanding the requirements that we do acquire from the customer • We often record requirements in a disorganized manner • We spend far too little time verifying what we do record • We allow change to control us, rather than establishing mechanisms to control change • Most importantly, we fail to establish a solid foundation for the system or software that the user wants built 9
  • 10. The Problems with our Requirements Practices (continued) • Many software developers argue that – Building software is so compelling that we want to jump right in (before having a clear understanding of what is needed) – Things will become clear as we build the software – Project stakeholders will be able to better understand what they need only after examining early iterations of the software – Things change so rapidly that requirements engineering is a waste of time – The bottom line is producing a working program and that all else is secondary • All of these arguments contain some truth, especially for small projects that take less than one month to complete • However, as software grows in size and complexity, these arguments begin to break down and can lead to a failed software project 10
  • 11. A Solution: Requirements Engineering • Begins during the communication activity and continues into the modeling activity • Builds a bridge from the system requirements into software design and construction • Allows the requirements engineer to examine – the context of the software work to be performed – the specific needs that design and construction must address – the priorities that guide the order in which work is to be completed – the information, function, and behavior that will have a profound impact on the resultant design 11
  • 12. Requirements Engineering Tasks • Seven distinct tasks – Inception – Elicitation – Elaboration – Negotiation – Specification – Validation – Requirements Management • Some of these tasks may occur in parallel and all are adapted to the needs of the project • All strive to define what the customer wants • All serve to establish a solid foundation for the design and construction of the software 12
  • 13. Requirements Engineering Tasks (Cont…) • Inception – During inception, the requirements engineer asks a set of questions to establish… • A basic understanding of the problem • The people who want a solution • The nature of the solution that is desired • The effectiveness of preliminary communication and collaboration between the customer and the developer
  • 14. Requirements Engineering Tasks (Cont…) • Elicitation – Gathering requirements in detail – Eliciting requirements is difficult because of • Problems of scope in identifying the boundaries of the system or specifying too much technical detail rather than overall system objectives • Problems of understanding what is wanted, what the problem domain is, and what the computing environment can handle (Information that is believed to be "obvious" is often omitted) • Problems of volatility because the requirements change over time
  • 15. Requirements Engineering Tasks (Cont…) Elaboration • During elaboration, the software engineer takes the information obtained during inception and elicitation and begins to expand and refine it • Elaboration focuses on developing a refined technical model of software functions, features, and constraints • It is an analysis modeling task – Use cases are developed – Domain classes are identified along with their attributes and relationships – State machine diagrams are used to capture the life on an object • The end result is an analysis model that defines the functional, informational, and behavioral domains of the problem
  • 16. Requirements Engineering Tasks (Cont…) • Negotiation – During negotiation, the software engineer reconciles the conflicts between what the customer wants and what can be achieved given limited business resources – Requirements are ranked (i.e., prioritized) by the customers, users, and other stakeholders – Risks associated with each requirement are identified and analyzed – Rough guesses of development effort are made and used to assess the impact of each requirement on project cost and delivery time – Using an iterative approach, requirements are eliminated, combined and/or modified so that each party achieves some measure of satisfaction 16
  • 17. Requirements Engineering Tasks (Cont…) • Specification – A specification is the final work product produced by the requirements engineer – It is normally in the form of a software requirements specification – It serves as the foundation for subsequent software engineering activities – It describes the function and performance of a computer-based system and the constraints that will govern its development – It formalizes the informational, functional, and behavioral requirements of the proposed software in both a graphical and textual format 17
  • 18. Requirements Engineering Tasks (Cont…) • Validation – During validation, the work products produced as a result of requirements engineering are assessed for quality – The specification is examined to ensure that • all software requirements have been stated unambiguously • inconsistencies, omissions, and errors have been detected and corrected • the work products conform to the standards established for the process, the project, and the product – The formal technical review serves as the primary requirements validation mechanism • Members include software engineers, customers, users, and other stakeholders 18
  • 19. Requirements Engineering Tasks (Cont…) • Requirement Management – During requirements management, the project team performs a set of activities to identify, control, and track requirements and changes to the requirements at any time as the project proceeds – Each requirement is assigned a unique identifier – The requirements are then placed into one or more traceability tables – These tables may be stored in a database that relate features, sources, dependencies, subsystems, and interfaces to the requirements – A requirements traceability table is also placed at the end of the software requirements specification 19