SlideShare a Scribd company logo
1 of 15
Conquering
Complex
and
Changing
Systems
Object-Oriented
Software
Engineering
Chapter 4,
Requirements
Elicitation
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2
Software Lifecycle Activities
Application
Domain
Objects
SubSystems
class...
class...
class...
Implementat
ion Domain
Objects
Source
Code
Test
Cases
?
Expressed in
Terms Of
Structured By
Implemented
By
Realized By Verified
By
System
Design
Object
Design
Implemen-
tation
Testing
class....?
Requirements
Elicitation
Use Case
Model
Requirements
Analysis
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3
Requirements Elicitation Activities
Requirement:
 A feature the system must have
 A constraint the system must satisfy
Identify
 actors
 scenarios
 use cases
 relationships among use cases
 nonfunctional requirements
 participating objects
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4
Requirements Elicitation Concepts
 Functional requirements
 Interaction between system & actors
 Avoid specifying how the system works
 Nonfunctional requirements
 Examples include
 Performance
 Accuracy
 Documentation
 Pseudo requirements
 Imposed by client
 E.g., Cappello requires:
– Java implementation
– Runs in student lab
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5
Requirement Document Desiderata
 Correct
 The client agrees that it represents the reality
 Complete
 The client agrees that all relevant scenarios are described
 Consistent
 Unambiguous
 There is only 1 way to interpret the specification
 Realistic
 All features can be implemented subject to all constraints
 Verifiable
 Requirements & constraints are testible
 Traceable
 For each system function there is some requirement[s]
 For each requirement there is some system function[s]
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6
Identify Actors
Questions whose answers identify the actors:
 Which user groups does the system support to do their work?
 Which user groups execute the system’s primary functions?
 Which user groups execute the system’s secondary functions?
 E.g., maintain or administer the system
 With which external systems does the system interact?
 E.g., hardware or software
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7
Identify Scenarios
Scenario
 A description of what actors do as they use the system
 For each scenario, there is a:
 Use case
 Acceptance test case
Questions for identifying scenarios:
 What tasks to the actors want the system to perform?
 What data does the actor need?
 Who creates, modifies, removes that data?
 Which external changes affect the system’s state?
 How is the change communicated to the system? (what actor?)
 Under what circumstances?
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8
Elements of a Scenario Description
 Scenario name warehouseOnFire
 Actor instances Bob, Alice: FieldOfficer
John: Dispatcher
 Flow of events 1. Bob, driving in partrol car notices smoke
coming out of warehouse. Partner Alice
activates Report Emergency from laptop.
2. Alice enters building’s address, location,
emergency level. Requests fire unit,
paramedics. Confirms input. Awaits ack.
3. John is alerted by his workstation’s beep.
Acks report. Allocates fire & paramedic units to
Incident site; returns ETA to Alice.
4. Alice receives ack and ETA.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9
Identify Use Cases
 A scenario is an instance of a use case.
 Partition the set of scenarios into use cases.
 Keep this set compact
 Modify scenarios to increase their uniformity.
 Use case format follows.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10
Elements of a Use Case Description
 Use case name ReportEmergency
 Actor[s] Initiated by FieldOfficer
Communicates with Dispatcher
 Entry conditions FieldOfficer initiates ReportEmergency
function on her laptop
 Flow of events 1. FieldOfficer fills form: select emergency
level, type, location, description, possible
responses. Submits form;
2. Dispatcher acks report. Creates Incident
in DB: Invoke OpenIncident use case.
Selects response; Sends ETA.
 Exit conditions FieldOfficer receives ETA.
 Special requirements Ack report within 30 sec. Send ETA
within 30 more sec.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11
Refine the Use case model
Iterate the following steps:
 Define a horizontal slice (i.e., many high-level scenarios) to
define the scope of the system.
 Validate the use case model with the user.
 Detail a vertical slice.
 Validate with the user.
 In extreme programming, you design, implement, test [and
integrate] this vertical slice, before tackling the next vertical
slice.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12
Identify Relationships Among Actors & Use Cases
 Access control – which actors access which functionality – is
represented with use cases.
 Extend relation
 ConnectionDown use case:
 Entry condition:
– Connection between FieldOfficer & Dispatcher fails before
EmergencyReport is submitted
 Event flow:
– FieldOfficer notifies Dispatcher via voice channel
 Heuristics:
 Use extend relation for exceptions, optional, or rare behavior.
 Use include relation for behavior common to 2 or more use cases.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13
Identify Initial Analysis Objects
It may be one of the system objects if it is a:
 Term developers/users need to clarify to understand a use case;
 Recurring noun in the use case model;
 Real-world object the system needs to track (e.g., FieldOfficer)
 Real-world process the system needs to track (e.g.,
EmergencyOperationPlan)
 Use cases (e.g., ReportEmergency)
 Application domain term
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14
Identify Nonfunctional Requirements
Investigate the following:
 User interface – level of expertise of user
 Documentation – User manual? The system design should be
documented. What about development process?
 Hardware considerations – What assumptions are made?
 Software – Ditto.
 Error handling – philosophy (e.g., tolerates failure of any single
system component).
 Physical environment – what assumptions are made about
power supply, cooling, etc.
 Physical security
 Resource – constraints on power, memory, etc.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15
To Do List
 Project definition
 Complete a project description that the customer agrees to.
 Research
 Initial identification of actors & event flows
 Document unresolved issues/ambiguities
 Create a draft Requirements Analysis Document (RAD)
 While (there are unresolved items) do:
 Resolve an item on list of issues/ambiguities;
 Modify RAD accordingly;
 Insert new, more detailed unresolved items;

More Related Content

Similar to Requirements Elicitation Chapter

Requirements analysis
Requirements analysisRequirements analysis
Requirements analysisasimnawaz54
 
Lecture 11 understanding requirements (3)
Lecture 11   understanding requirements (3)Lecture 11   understanding requirements (3)
Lecture 11 understanding requirements (3)IIUI
 
Ch 1-Introduction.ppt
Ch 1-Introduction.pptCh 1-Introduction.ppt
Ch 1-Introduction.pptbalewayalew
 
Refining The System Definition
Refining The System DefinitionRefining The System Definition
Refining The System DefinitionSandeep Ganji
 
Complex System Engineering
Complex System EngineeringComplex System Engineering
Complex System EngineeringEmmanuel Fuchs
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIINi
 
Requirement Engineering.pdf
Requirement Engineering.pdfRequirement Engineering.pdf
Requirement Engineering.pdfMuhammad Imran
 
From Use case to User Story
From Use case to User StoryFrom Use case to User Story
From Use case to User StoryKunta Hutabarat
 
Graphical Password Authenticationimp.docx2
Graphical Password Authenticationimp.docx2Graphical Password Authenticationimp.docx2
Graphical Password Authenticationimp.docx2Raghu Vamsy Sirasala
 
05 fse requirementsengineering
05 fse requirementsengineering05 fse requirementsengineering
05 fse requirementsengineeringMohesh Chandran
 
27 pso business_requirements
27 pso business_requirements27 pso business_requirements
27 pso business_requirementsMarcelo Mesti
 
6. ch 5-understanding requirements
6. ch 5-understanding requirements6. ch 5-understanding requirements
6. ch 5-understanding requirementsDelowar hossain
 
BoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docx
BoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docxBoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docx
BoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docxjasoninnes20
 
Object oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysisObject oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysisAbhilasha Lahigude
 
Software Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustrySoftware Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustryLeif Bloomquist
 

Similar to Requirements Elicitation Chapter (20)

Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
Lecture 11 understanding requirements (3)
Lecture 11   understanding requirements (3)Lecture 11   understanding requirements (3)
Lecture 11 understanding requirements (3)
 
Ch 1-Introduction.ppt
Ch 1-Introduction.pptCh 1-Introduction.ppt
Ch 1-Introduction.ppt
 
Refining The System Definition
Refining The System DefinitionRefining The System Definition
Refining The System Definition
 
M azhar
M azharM azhar
M azhar
 
Use case Modeling
Use case ModelingUse case Modeling
Use case Modeling
 
Complex System Engineering
Complex System EngineeringComplex System Engineering
Complex System Engineering
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
 
Requirement Engineering.pdf
Requirement Engineering.pdfRequirement Engineering.pdf
Requirement Engineering.pdf
 
From Use case to User Story
From Use case to User StoryFrom Use case to User Story
From Use case to User Story
 
Graphical Password Authenticationimp.docx2
Graphical Password Authenticationimp.docx2Graphical Password Authenticationimp.docx2
Graphical Password Authenticationimp.docx2
 
05 fse requirementsengineering
05 fse requirementsengineering05 fse requirementsengineering
05 fse requirementsengineering
 
Bridge
BridgeBridge
Bridge
 
27 pso business_requirements
27 pso business_requirements27 pso business_requirements
27 pso business_requirements
 
6. ch 5-understanding requirements
6. ch 5-understanding requirements6. ch 5-understanding requirements
6. ch 5-understanding requirements
 
BoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docx
BoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docxBoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docx
BoardSprintUser Story ScenarioDesignDevelopmentTestUAT Release1U .docx
 
Object oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysisObject oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysis
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Software Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustrySoftware Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace Industry
 
cheatsheet.pdf
cheatsheet.pdfcheatsheet.pdf
cheatsheet.pdf
 

More from KUMKUMOKUSSIA

2_ProgrammingOnAndroidDevice.pdf
2_ProgrammingOnAndroidDevice.pdf2_ProgrammingOnAndroidDevice.pdf
2_ProgrammingOnAndroidDevice.pdfKUMKUMOKUSSIA
 
Advanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptx
Advanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptxAdvanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptx
Advanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptxKUMKUMOKUSSIA
 
Massage oriented communication.pptx
Massage oriented communication.pptxMassage oriented communication.pptx
Massage oriented communication.pptxKUMKUMOKUSSIA
 
Chapter 1 android.pdf
Chapter 1 android.pdfChapter 1 android.pdf
Chapter 1 android.pdfKUMKUMOKUSSIA
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project ManagementKUMKUMOKUSSIA
 

More from KUMKUMOKUSSIA (9)

2_ProgrammingOnAndroidDevice.pdf
2_ProgrammingOnAndroidDevice.pdf2_ProgrammingOnAndroidDevice.pdf
2_ProgrammingOnAndroidDevice.pdf
 
Advanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptx
Advanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptxAdvanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptx
Advanced_Networking_Principles_and_Protocols_Lecture_3_part2.pptx
 
Quiz.pptx
Quiz.pptxQuiz.pptx
Quiz.pptx
 
Massage oriented communication.pptx
Massage oriented communication.pptxMassage oriented communication.pptx
Massage oriented communication.pptx
 
Chapter 3.pptx
Chapter 3.pptxChapter 3.pptx
Chapter 3.pptx
 
Chapter 1 android.pdf
Chapter 1 android.pdfChapter 1 android.pdf
Chapter 1 android.pdf
 
chapter 4.pptx
chapter 4.pptxchapter 4.pptx
chapter 4.pptx
 
Multimedia Systems
Multimedia SystemsMultimedia Systems
Multimedia Systems
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project Management
 

Recently uploaded

Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 

Recently uploaded (20)

Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 

Requirements Elicitation Chapter

  • 2. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 Software Lifecycle Activities Application Domain Objects SubSystems class... class... class... Implementat ion Domain Objects Source Code Test Cases ? Expressed in Terms Of Structured By Implemented By Realized By Verified By System Design Object Design Implemen- tation Testing class....? Requirements Elicitation Use Case Model Requirements Analysis
  • 3. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Requirements Elicitation Activities Requirement:  A feature the system must have  A constraint the system must satisfy Identify  actors  scenarios  use cases  relationships among use cases  nonfunctional requirements  participating objects
  • 4. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 Requirements Elicitation Concepts  Functional requirements  Interaction between system & actors  Avoid specifying how the system works  Nonfunctional requirements  Examples include  Performance  Accuracy  Documentation  Pseudo requirements  Imposed by client  E.g., Cappello requires: – Java implementation – Runs in student lab
  • 5. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 Requirement Document Desiderata  Correct  The client agrees that it represents the reality  Complete  The client agrees that all relevant scenarios are described  Consistent  Unambiguous  There is only 1 way to interpret the specification  Realistic  All features can be implemented subject to all constraints  Verifiable  Requirements & constraints are testible  Traceable  For each system function there is some requirement[s]  For each requirement there is some system function[s]
  • 6. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 Identify Actors Questions whose answers identify the actors:  Which user groups does the system support to do their work?  Which user groups execute the system’s primary functions?  Which user groups execute the system’s secondary functions?  E.g., maintain or administer the system  With which external systems does the system interact?  E.g., hardware or software
  • 7. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 Identify Scenarios Scenario  A description of what actors do as they use the system  For each scenario, there is a:  Use case  Acceptance test case Questions for identifying scenarios:  What tasks to the actors want the system to perform?  What data does the actor need?  Who creates, modifies, removes that data?  Which external changes affect the system’s state?  How is the change communicated to the system? (what actor?)  Under what circumstances?
  • 8. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 Elements of a Scenario Description  Scenario name warehouseOnFire  Actor instances Bob, Alice: FieldOfficer John: Dispatcher  Flow of events 1. Bob, driving in partrol car notices smoke coming out of warehouse. Partner Alice activates Report Emergency from laptop. 2. Alice enters building’s address, location, emergency level. Requests fire unit, paramedics. Confirms input. Awaits ack. 3. John is alerted by his workstation’s beep. Acks report. Allocates fire & paramedic units to Incident site; returns ETA to Alice. 4. Alice receives ack and ETA.
  • 9. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Identify Use Cases  A scenario is an instance of a use case.  Partition the set of scenarios into use cases.  Keep this set compact  Modify scenarios to increase their uniformity.  Use case format follows.
  • 10. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10 Elements of a Use Case Description  Use case name ReportEmergency  Actor[s] Initiated by FieldOfficer Communicates with Dispatcher  Entry conditions FieldOfficer initiates ReportEmergency function on her laptop  Flow of events 1. FieldOfficer fills form: select emergency level, type, location, description, possible responses. Submits form; 2. Dispatcher acks report. Creates Incident in DB: Invoke OpenIncident use case. Selects response; Sends ETA.  Exit conditions FieldOfficer receives ETA.  Special requirements Ack report within 30 sec. Send ETA within 30 more sec.
  • 11. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11 Refine the Use case model Iterate the following steps:  Define a horizontal slice (i.e., many high-level scenarios) to define the scope of the system.  Validate the use case model with the user.  Detail a vertical slice.  Validate with the user.  In extreme programming, you design, implement, test [and integrate] this vertical slice, before tackling the next vertical slice.
  • 12. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 Identify Relationships Among Actors & Use Cases  Access control – which actors access which functionality – is represented with use cases.  Extend relation  ConnectionDown use case:  Entry condition: – Connection between FieldOfficer & Dispatcher fails before EmergencyReport is submitted  Event flow: – FieldOfficer notifies Dispatcher via voice channel  Heuristics:  Use extend relation for exceptions, optional, or rare behavior.  Use include relation for behavior common to 2 or more use cases.
  • 13. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 Identify Initial Analysis Objects It may be one of the system objects if it is a:  Term developers/users need to clarify to understand a use case;  Recurring noun in the use case model;  Real-world object the system needs to track (e.g., FieldOfficer)  Real-world process the system needs to track (e.g., EmergencyOperationPlan)  Use cases (e.g., ReportEmergency)  Application domain term
  • 14. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14 Identify Nonfunctional Requirements Investigate the following:  User interface – level of expertise of user  Documentation – User manual? The system design should be documented. What about development process?  Hardware considerations – What assumptions are made?  Software – Ditto.  Error handling – philosophy (e.g., tolerates failure of any single system component).  Physical environment – what assumptions are made about power supply, cooling, etc.  Physical security  Resource – constraints on power, memory, etc.
  • 15. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15 To Do List  Project definition  Complete a project description that the customer agrees to.  Research  Initial identification of actors & event flows  Document unresolved issues/ambiguities  Create a draft Requirements Analysis Document (RAD)  While (there are unresolved items) do:  Resolve an item on list of issues/ambiguities;  Modify RAD accordingly;  Insert new, more detailed unresolved items;