SlideShare a Scribd company logo
1 of 33
Requirements Engineering Professor Ian Sommerville St Andrews University
Objectives To explain what is meant by a requirement and requirements engineering To present the requirements engineering process from a number of different viewpoints To discuss problems of requirements engineering, requirements engineering methods and challenges to traditional approaches of requirements engineering
Introduction Frequently asked questions about requirements engineering
What are requirements? Requirements are defined during the early stages of a system development as a specification of what should be implemented or as a constraint of some kind on the system.  They may be: a user-level facility description,  a detailed specification of expected system behaviour, a general system property,  a specific constraint on the system, information on how to carry out some computation, a constraint on the development of the system.
Examples of requirements Functional requirements 	“If a patient is known to be allergic to a particular medication, then prescription of that medication shall result in a warning message being issued to to the prescriber” Non-functional requirements 	“The system shall be available to all clinics during normal working hours (Mon-Fri, 0830-1730). Downtime during normal working hours shall not exceed 5 seconds in any one day” Domain requirements 	“The system shall implement patient privacy provisions as set out in the 1998 Data Protection Act”
What is requirements engineering? Requirements engineering covers all of the activities involved in discovering, documenting, and maintaining a set of requirements for a computer-based system. The use of the term ‘engineering’ implies that systematic and repeatable techniques should be used to ensure that system requirements are complete, consistent, relevant, etc.
Are requirements important? European Software Process Improvement Training Initiative (1996) “The principal problem areas in software development and production are the requirements specification and the management of customer requirements” In a study of errors in embedded systems, it was found that: “... difficulties with requirements are the key root-cause of the safety-related software errors that have persisted until integration and system testing”
What happens if the requirements are wrong? The system may be delivered late and cost more than originally expected. The customer and end-users are not satisfied with the system. They may not use its facilities or may even decide to scrap it altogether. The system may be unreliable in use with regular system errors and crashes disrupting normal operation. If the system continues in use, the costs of maintaining and evolving the system are very high.
Why is requirements engineering difficult? Businesses operate in a rapidly changing environment so their requirements for system support are constantly changing.  Multiple stakeholders with different goals and priorities are involved in the requirements engineering process. System stakeholders do not have clear ideas about the system support that they need. Requirements are often influenced by political and organisational factors that stakeholders will not admit to publicly.
Can we get the requirements for an LSCITS ‘right’? Almost certainly not. The complexity of the interactions within an LSCITS and between the LSCITS and the wider STS is such that the notion of ‘correct’ requirements does not really make sense LSCITS requirements will inevitably be: An uneasy compromise between the requirements of different sets of LSCITS stakeholders Out of date as soon as they are agreed Nevertheless, we need requirements to serve as a basis for discussion about the system features and to define what is to be implemented. Progress without requirements is practically impossible
Requirements engineering processes Different views of the processes involved in requirements engineering
The systems engineering process
RE process context
RE process inputs and outputs
RE process activities
RE process iteration
Requirements engineering problems Fundamental issues that mean that establishing requirements for complex systems will always be a difficult technical and organisational problem
Requirements change System requirements reflect the world outside of the system. As this is constantly changing then the requirements will inevitably also change Technology changes Organisational changes Market changes Economic changes Political and legal changes It is often difficult to understand the implications of changes for the requirements as a whole
Stakeholder perspectives Technical perspective Objects 	Functions 	Roles ... Social perspective Certification perspective Customer perspective The problem and  the required system User perspective Interactions 	Usability Management perspective
Stakeholder uncertainty Key stakeholders have other jobs to do! Developing detailed requirements for future systems often cannot be given a high priority by the senior people who will be affected by these requirements. They therefore are unable to express their requirements except as vague, high-level descriptions There are no objective ways to compare alternative sets of requirements The impact of a system on a business is very hard to understand so therefore we cannot tell which might be the ‘best’ system for any particular business
Process variability The level of detail required in a requirements specification differs greatly depending on the type of product that is being developed A railway signalling system is a very detailed specification that can be validated by authorities outside of the organisation procuring the software A computer game specification is a storyboard with pictures and examples They use completely different processes involving different types of people to derive these specifications Scope for process standardisation and support is therefore limited
Politics and people Many system requirements are influenced by the politics in an organisation. Decisions on requirements are not made on a rational basis but are made because of the personal goals of stakeholders Requirements engineers may not understand the politics and, even when they do, they may not be able to challenge the ‘political’ requirements People providing requirements for a system may not be convinced that the system is necessary or may feel that other systems should have a higher priority. They may actively or passively refuse to cooperate in the requirements engineering process
Requirements methods and tools Techniques and CASE tools that may be used in the requirements engineering process
Scenarios What are scenarios? Scenarios are descriptions of typical ways that a particular end-user task might be carried out. By understanding what is done then requirements for computer support can be developed Applicability They are primarily useful during requirements elicitation Maturity This approach to requirements elicitation is becoming increasingly widely used. Use-cases in the UML process are closely related to scenarios Problems Time consuming to develop scenarios Focused on end-user stakeholders
Viewpoints What are viewpoints Ways of identifying stakeholders and organising the requirements from different stakeholders Applicability Different types of viewpoint have been proposed that are applicable during requirements elicitation and the development of detailed system requirements Maturity Methods have existed for many years but have not been extensively used Problems Too many viewpoints lead to an unmanageable amount of data Lack of tool support
Structured analysis methods What are structured analysis methods Methods of deriving detailed models of the problem or of the system to be developed in some well-defined notation Applicability Methods of structured analysis, such as object-oriented analysis, are applicable when developing detailed requirements from user requirements Maturity These are the most mature techniques for requirements analysis Problems End-users often do not relate to the models or have time to be involved in the process of model development
Tools for requirements engineering Tool support for requirements engineering is mostly limited to two areas Requirements analysis using structured methods Developing a set of user requirements into detailed system requirements that are expressed using different system models  UML tools for object-oriented analysis Requirements management Supporting the process of managing requirements change DOORS for managing text-based requirements The critical areas of requirements elicitation, understanding and negotiation are not well-supported by CASE tools.
Requirements management tool
Requirements challenges Some challenges for requirements engineering in the 21st century
E-commerce and globalisation E-commerce systems that are designed to serve a global customer base have new types of requirement Aesthetic requirements What image is the company trying to convey through its software systems? Marketing requirements How can the system be used to reinforce the brand and the marketing goals of the company? Multicultural requirements How can the system be designed to take into account different cultural traditions and sensitivities?
Accelerated system development The need for organisations to be more responsive means that there is increasing pressure for faster delivery of all types of system Increasing competition means that the business costs of delivering unsuitable systems are increasing Therefore The time to deliver requirements must be reduced The requirements must be a better reflection of the business needs
Off-the-shelf systems Many business systems and an increasing number of other types of system are being developed by integrating existing off-the-shelf systems How can we decide if an existing system meets a business need and what are the costs of using an existing system rather than developing detailed requirements for a custom system? How can we decide whether or not the integration of several systems meets a set of requirements especially if these include security, performance and reliability requirements?
Summary Requirements engineering is a key component of system development processes.  If we pay attention to requirements, we reduce later problems in system development and operation Requirements engineering will always be difficult because the requirements are reflections of a rapidly changing business environment ‘Traditional” requirements engineering processes will have to evolve for new types of software system and business needs

More Related Content

What's hot

Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsStephennancy
 
Software Testing
Software TestingSoftware Testing
Software TestingAbdul Basit
 
6. Administración de la Calidad de Software
6. Administración de la Calidad de Software6. Administración de la Calidad de Software
6. Administración de la Calidad de SoftwareMario A Moreno Rocha
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Abdul Basit
 
Defect Density matrix SQA
Defect Density  matrix   SQADefect Density  matrix   SQA
Defect Density matrix SQAHashim Ali
 
Requirements Engineering Process Improvement
Requirements Engineering Process ImprovementRequirements Engineering Process Improvement
Requirements Engineering Process ImprovementIan Sommerville
 
Requirement Elicitation Techniques/Methods
Requirement Elicitation Techniques/MethodsRequirement Elicitation Techniques/Methods
Requirement Elicitation Techniques/MethodsSUFYAN SATTAR
 
Testing in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareTesting in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareJosiah Renaudin
 
Software Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationSoftware Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationNishu Rastogi
 
Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013XBOSoft
 
Query Handling System
Query Handling SystemQuery Handling System
Query Handling Systemhimabindu54
 
Process and product quality Assurance
Process and product quality AssuranceProcess and product quality Assurance
Process and product quality AssuranceJoydip Bhattacharya
 
Software Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMSoftware Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMNana Sarpong
 
Software Testing
Software TestingSoftware Testing
Software TestingAndrew Wang
 
Software Project Organisation
Software Project OrganisationSoftware Project Organisation
Software Project OrganisationSavaş Şakar
 
Semana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidadSemana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidadGiovani Ramirez
 

What's hot (20)

Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
6. Administración de la Calidad de Software
6. Administración de la Calidad de Software6. Administración de la Calidad de Software
6. Administración de la Calidad de Software
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6
 
BA Techniques BABOK
BA Techniques BABOKBA Techniques BABOK
BA Techniques BABOK
 
Defect Density matrix SQA
Defect Density  matrix   SQADefect Density  matrix   SQA
Defect Density matrix SQA
 
Requirements Engineering Process Improvement
Requirements Engineering Process ImprovementRequirements Engineering Process Improvement
Requirements Engineering Process Improvement
 
Requirement Elicitation Techniques/Methods
Requirement Elicitation Techniques/MethodsRequirement Elicitation Techniques/Methods
Requirement Elicitation Techniques/Methods
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
SQA Components
SQA ComponentsSQA Components
SQA Components
 
Testing in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareTesting in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf Software
 
Software Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationSoftware Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and Specification
 
Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013
 
Query Handling System
Query Handling SystemQuery Handling System
Query Handling System
 
Process and product quality Assurance
Process and product quality AssuranceProcess and product quality Assurance
Process and product quality Assurance
 
Modelo de implementación
Modelo de implementaciónModelo de implementación
Modelo de implementación
 
Software Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMSoftware Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADM
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Software Project Organisation
Software Project OrganisationSoftware Project Organisation
Software Project Organisation
 
Semana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidadSemana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidad
 

Viewers also liked

Software Engineering Introduction
Software Engineering Introduction Software Engineering Introduction
Software Engineering Introduction sarahflieger
 
L1 overview of software engineering
L1  overview of software engineeringL1  overview of software engineering
L1 overview of software engineeringRushdi Shams
 
Java and the blockchain - introducing web3j
Java and the blockchain - introducing web3jJava and the blockchain - introducing web3j
Java and the blockchain - introducing web3jConor Svensson
 
A TOGAF Case Study
A TOGAF Case StudyA TOGAF Case Study
A TOGAF Case StudySimplilearn
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSvetlin Nakov
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement EngineeringSlideshare
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
Software Engineering UPTU
Software Engineering UPTUSoftware Engineering UPTU
Software Engineering UPTURishi Shukla
 
Algorithms in Software Engineering
Algorithms in Software EngineeringAlgorithms in Software Engineering
Algorithms in Software EngineeringMichael Rybak
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...Ashok Mohanty
 
McGregor Boyall - Work for Us 2017 Presentation
McGregor Boyall - Work for Us 2017 PresentationMcGregor Boyall - Work for Us 2017 Presentation
McGregor Boyall - Work for Us 2017 PresentationMcGregor Boyall
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing BasicsBelal Raslan
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering conceptsKomal Singh
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewWinton Winton
 
Defining Services for a Service Catalog
Defining Services for a Service CatalogDefining Services for a Service Catalog
Defining Services for a Service CatalogAxios Systems
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 
Software testing basic concepts
Software testing basic conceptsSoftware testing basic concepts
Software testing basic conceptsHưng Hoàng
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 

Viewers also liked (20)

Software Engineering Introduction
Software Engineering Introduction Software Engineering Introduction
Software Engineering Introduction
 
L1 overview of software engineering
L1  overview of software engineeringL1  overview of software engineering
L1 overview of software engineering
 
Java and the blockchain - introducing web3j
Java and the blockchain - introducing web3jJava and the blockchain - introducing web3j
Java and the blockchain - introducing web3j
 
software engineering
 software engineering software engineering
software engineering
 
Software Engineering Overview
Software Engineering Overview Software Engineering Overview
Software Engineering Overview
 
A TOGAF Case Study
A TOGAF Case StudyA TOGAF Case Study
A TOGAF Case Study
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin Nakov
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
Software Engineering UPTU
Software Engineering UPTUSoftware Engineering UPTU
Software Engineering UPTU
 
Algorithms in Software Engineering
Algorithms in Software EngineeringAlgorithms in Software Engineering
Algorithms in Software Engineering
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...
 
McGregor Boyall - Work for Us 2017 Presentation
McGregor Boyall - Work for Us 2017 PresentationMcGregor Boyall - Work for Us 2017 Presentation
McGregor Boyall - Work for Us 2017 Presentation
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 
Defining Services for a Service Catalog
Defining Services for a Service CatalogDefining Services for a Service Catalog
Defining Services for a Service Catalog
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Software testing basic concepts
Software testing basic conceptsSoftware testing basic concepts
Software testing basic concepts
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 

Similar to Requirements Engineering Process and Challenges

An overview of software requirements engineering
An overview of software requirements engineeringAn overview of software requirements engineering
An overview of software requirements engineeringIan Sommerville
 
Requirements Engineering Processes in Software Engineering SE6
Requirements Engineering Processes in Software Engineering SE6Requirements Engineering Processes in Software Engineering SE6
Requirements Engineering Processes in Software Engineering SE6koolkampus
 
Requirements Engineering Process
Requirements Engineering ProcessRequirements Engineering Process
Requirements Engineering ProcessJomel Penalba
 
software engineering
software engineeringsoftware engineering
software engineeringSnow Queenzz
 
Requirement engineering in S/W Engineering
Requirement engineering in S/W EngineeringRequirement engineering in S/W Engineering
Requirement engineering in S/W EngineeringMikel Raj
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirementsMohesh Chandran
 
System_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.pptSystem_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.pptMarissaPedragosa
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented ArchitectureVinay Rajadhyaksha
 
Requirement Engineering Processes & Eliciting Requirement
Requirement Engineering Processes & Eliciting Requirement Requirement Engineering Processes & Eliciting Requirement
Requirement Engineering Processes & Eliciting Requirement AqsaHayat3
 
Requirement Management.ppt
Requirement Management.pptRequirement Management.ppt
Requirement Management.pptSoham De
 
software requirement and architecture.pdf
software requirement and architecture.pdfsoftware requirement and architecture.pdf
software requirement and architecture.pdfwajoce8790
 
Ch 2-RE-process.pptx
Ch 2-RE-process.pptxCh 2-RE-process.pptx
Ch 2-RE-process.pptxbalewayalew
 
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Mark John Lado, MIT
 

Similar to Requirements Engineering Process and Challenges (20)

An overview of software requirements engineering
An overview of software requirements engineeringAn overview of software requirements engineering
An overview of software requirements engineering
 
W3 requirements engineering processes
W3   requirements engineering processesW3   requirements engineering processes
W3 requirements engineering processes
 
Requirements Engineering Processes in Software Engineering SE6
Requirements Engineering Processes in Software Engineering SE6Requirements Engineering Processes in Software Engineering SE6
Requirements Engineering Processes in Software Engineering SE6
 
Requirements Engineering Process
Requirements Engineering ProcessRequirements Engineering Process
Requirements Engineering Process
 
4
44
4
 
software engineering
software engineeringsoftware engineering
software engineering
 
Requirement engineering in S/W Engineering
Requirement engineering in S/W EngineeringRequirement engineering in S/W Engineering
Requirement engineering in S/W Engineering
 
L4 RE Processes
L4 RE ProcessesL4 RE Processes
L4 RE Processes
 
Chap2 RE processes
Chap2 RE processesChap2 RE processes
Chap2 RE processes
 
L2 Socio Tech Systems
L2 Socio Tech SystemsL2 Socio Tech Systems
L2 Socio Tech Systems
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirements
 
Chap3 RE elicitation
Chap3 RE elicitationChap3 RE elicitation
Chap3 RE elicitation
 
System_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.pptSystem_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.ppt
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented Architecture
 
Requirement Engineering Processes & Eliciting Requirement
Requirement Engineering Processes & Eliciting Requirement Requirement Engineering Processes & Eliciting Requirement
Requirement Engineering Processes & Eliciting Requirement
 
Requirement Management.ppt
Requirement Management.pptRequirement Management.ppt
Requirement Management.ppt
 
software requirement and architecture.pdf
software requirement and architecture.pdfsoftware requirement and architecture.pdf
software requirement and architecture.pdf
 
Ch 2-RE-process.pptx
Ch 2-RE-process.pptxCh 2-RE-process.pptx
Ch 2-RE-process.pptx
 
3-Requirements.ppt
3-Requirements.ppt3-Requirements.ppt
3-Requirements.ppt
 
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Requirements Engineering Process and Challenges

  • 1. Requirements Engineering Professor Ian Sommerville St Andrews University
  • 2. Objectives To explain what is meant by a requirement and requirements engineering To present the requirements engineering process from a number of different viewpoints To discuss problems of requirements engineering, requirements engineering methods and challenges to traditional approaches of requirements engineering
  • 3. Introduction Frequently asked questions about requirements engineering
  • 4. What are requirements? Requirements are defined during the early stages of a system development as a specification of what should be implemented or as a constraint of some kind on the system. They may be: a user-level facility description, a detailed specification of expected system behaviour, a general system property, a specific constraint on the system, information on how to carry out some computation, a constraint on the development of the system.
  • 5. Examples of requirements Functional requirements “If a patient is known to be allergic to a particular medication, then prescription of that medication shall result in a warning message being issued to to the prescriber” Non-functional requirements “The system shall be available to all clinics during normal working hours (Mon-Fri, 0830-1730). Downtime during normal working hours shall not exceed 5 seconds in any one day” Domain requirements “The system shall implement patient privacy provisions as set out in the 1998 Data Protection Act”
  • 6. What is requirements engineering? Requirements engineering covers all of the activities involved in discovering, documenting, and maintaining a set of requirements for a computer-based system. The use of the term ‘engineering’ implies that systematic and repeatable techniques should be used to ensure that system requirements are complete, consistent, relevant, etc.
  • 7. Are requirements important? European Software Process Improvement Training Initiative (1996) “The principal problem areas in software development and production are the requirements specification and the management of customer requirements” In a study of errors in embedded systems, it was found that: “... difficulties with requirements are the key root-cause of the safety-related software errors that have persisted until integration and system testing”
  • 8. What happens if the requirements are wrong? The system may be delivered late and cost more than originally expected. The customer and end-users are not satisfied with the system. They may not use its facilities or may even decide to scrap it altogether. The system may be unreliable in use with regular system errors and crashes disrupting normal operation. If the system continues in use, the costs of maintaining and evolving the system are very high.
  • 9. Why is requirements engineering difficult? Businesses operate in a rapidly changing environment so their requirements for system support are constantly changing. Multiple stakeholders with different goals and priorities are involved in the requirements engineering process. System stakeholders do not have clear ideas about the system support that they need. Requirements are often influenced by political and organisational factors that stakeholders will not admit to publicly.
  • 10. Can we get the requirements for an LSCITS ‘right’? Almost certainly not. The complexity of the interactions within an LSCITS and between the LSCITS and the wider STS is such that the notion of ‘correct’ requirements does not really make sense LSCITS requirements will inevitably be: An uneasy compromise between the requirements of different sets of LSCITS stakeholders Out of date as soon as they are agreed Nevertheless, we need requirements to serve as a basis for discussion about the system features and to define what is to be implemented. Progress without requirements is practically impossible
  • 11. Requirements engineering processes Different views of the processes involved in requirements engineering
  • 14. RE process inputs and outputs
  • 17. Requirements engineering problems Fundamental issues that mean that establishing requirements for complex systems will always be a difficult technical and organisational problem
  • 18. Requirements change System requirements reflect the world outside of the system. As this is constantly changing then the requirements will inevitably also change Technology changes Organisational changes Market changes Economic changes Political and legal changes It is often difficult to understand the implications of changes for the requirements as a whole
  • 19. Stakeholder perspectives Technical perspective Objects Functions Roles ... Social perspective Certification perspective Customer perspective The problem and the required system User perspective Interactions Usability Management perspective
  • 20. Stakeholder uncertainty Key stakeholders have other jobs to do! Developing detailed requirements for future systems often cannot be given a high priority by the senior people who will be affected by these requirements. They therefore are unable to express their requirements except as vague, high-level descriptions There are no objective ways to compare alternative sets of requirements The impact of a system on a business is very hard to understand so therefore we cannot tell which might be the ‘best’ system for any particular business
  • 21. Process variability The level of detail required in a requirements specification differs greatly depending on the type of product that is being developed A railway signalling system is a very detailed specification that can be validated by authorities outside of the organisation procuring the software A computer game specification is a storyboard with pictures and examples They use completely different processes involving different types of people to derive these specifications Scope for process standardisation and support is therefore limited
  • 22. Politics and people Many system requirements are influenced by the politics in an organisation. Decisions on requirements are not made on a rational basis but are made because of the personal goals of stakeholders Requirements engineers may not understand the politics and, even when they do, they may not be able to challenge the ‘political’ requirements People providing requirements for a system may not be convinced that the system is necessary or may feel that other systems should have a higher priority. They may actively or passively refuse to cooperate in the requirements engineering process
  • 23. Requirements methods and tools Techniques and CASE tools that may be used in the requirements engineering process
  • 24. Scenarios What are scenarios? Scenarios are descriptions of typical ways that a particular end-user task might be carried out. By understanding what is done then requirements for computer support can be developed Applicability They are primarily useful during requirements elicitation Maturity This approach to requirements elicitation is becoming increasingly widely used. Use-cases in the UML process are closely related to scenarios Problems Time consuming to develop scenarios Focused on end-user stakeholders
  • 25. Viewpoints What are viewpoints Ways of identifying stakeholders and organising the requirements from different stakeholders Applicability Different types of viewpoint have been proposed that are applicable during requirements elicitation and the development of detailed system requirements Maturity Methods have existed for many years but have not been extensively used Problems Too many viewpoints lead to an unmanageable amount of data Lack of tool support
  • 26. Structured analysis methods What are structured analysis methods Methods of deriving detailed models of the problem or of the system to be developed in some well-defined notation Applicability Methods of structured analysis, such as object-oriented analysis, are applicable when developing detailed requirements from user requirements Maturity These are the most mature techniques for requirements analysis Problems End-users often do not relate to the models or have time to be involved in the process of model development
  • 27. Tools for requirements engineering Tool support for requirements engineering is mostly limited to two areas Requirements analysis using structured methods Developing a set of user requirements into detailed system requirements that are expressed using different system models UML tools for object-oriented analysis Requirements management Supporting the process of managing requirements change DOORS for managing text-based requirements The critical areas of requirements elicitation, understanding and negotiation are not well-supported by CASE tools.
  • 29. Requirements challenges Some challenges for requirements engineering in the 21st century
  • 30. E-commerce and globalisation E-commerce systems that are designed to serve a global customer base have new types of requirement Aesthetic requirements What image is the company trying to convey through its software systems? Marketing requirements How can the system be used to reinforce the brand and the marketing goals of the company? Multicultural requirements How can the system be designed to take into account different cultural traditions and sensitivities?
  • 31. Accelerated system development The need for organisations to be more responsive means that there is increasing pressure for faster delivery of all types of system Increasing competition means that the business costs of delivering unsuitable systems are increasing Therefore The time to deliver requirements must be reduced The requirements must be a better reflection of the business needs
  • 32. Off-the-shelf systems Many business systems and an increasing number of other types of system are being developed by integrating existing off-the-shelf systems How can we decide if an existing system meets a business need and what are the costs of using an existing system rather than developing detailed requirements for a custom system? How can we decide whether or not the integration of several systems meets a set of requirements especially if these include security, performance and reliability requirements?
  • 33. Summary Requirements engineering is a key component of system development processes. If we pay attention to requirements, we reduce later problems in system development and operation Requirements engineering will always be difficult because the requirements are reflections of a rapidly changing business environment ‘Traditional” requirements engineering processes will have to evolve for new types of software system and business needs