SlideShare une entreprise Scribd logo
1  sur  52
Dependable software development ,[object Object]
Software dependability ,[object Object],[object Object]
Dependability achievement ,[object Object],[object Object],[object Object],[object Object],[object Object]
Fault minimisation ,[object Object],[object Object],[object Object]
Fault removal costs a C o s t p e r e r r o r d e l e t e d F e w N u m b e r o f r e s i d u a l e r r o r s M a n y V e r y f e w
Fault-free software development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Structured programming ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Error-prone constructs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Error-prone constructs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Information hiding ,[object Object],[object Object],[object Object],[object Object],[object Object]
A queue specification in Java interface Queue { public void put (Object o) ; public void remove (Object o) ; public int size () ; } //Queue
Signal declaration in Java
Reliable software processes ,[object Object],[object Object],[object Object]
Process validation activities ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fault tolerance ,[object Object],[object Object],[object Object]
Fault tolerance actions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Approaches to fault tolerance ,[object Object],[object Object],[object Object],[object Object],[object Object]
Exception management ,[object Object],[object Object],[object Object]
Exceptions in Java class SensorFailureException extends Exception { SensorFailureException (String msg) { super (msg) ; Alarm.activate (msg) ; } } // SensorFailureException  class Sensor { int readVal () throws SensorFailureException { try { int theValue = DeviceIO.readInteger () ; if (theValue < 0) throw new SensorFailureException (&quot;Sensor failure&quot;) ; return theValue ; } catch (deviceIOException e) { throw new SensorFailureException (“ Sensor read error ”) ; } } // readVal }  // Sensor
Programming with exceptions ,[object Object],[object Object]
A temperature controller ,[object Object],[object Object],[object Object],[object Object]
Freezer controller (Java) ©Ian Sommerville 2000 Dependable Software Development Slide  class FreezerController  { Sensor tempSensor = new Sensor () ; Dial tempDial = new Dial () ; float freezerTemp = tempSensor.readVal () ; final float dangerTemp = (float) -18.0 ; final long coolingTime = (long) 200000.0 ; public void run ( )  throws InterrupedException { try { Pump.switchIt (Pump.on) ; do { if (freezerTemp > tempDial.setting ()) if (Pump.status == Pump.off) { Pump.switchIt (Pump.on) ; Thread.sleep (coolingTime) ;  } else if (Pump.status == Pump.on) Pump.switchIt (Pump.off) ; if (freezerTemp > dangerTemp) throw new FreezerTooHotException () ; freezerTemp = tempSensor.readVal () ; } while (true) ; }  // try block catch (FreezerTooHotException f) {  Alarm.activate ( ) ;  } catch (InterruptedException e) { System.out.println (“Thread exception”) ; throw  new InterruptedException ( ) ;  } } //run } // FreezerController
Fault detection ,[object Object],[object Object],[object Object]
Fault detection ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],Type system extension
PositiveEvenInteger ©Ian Sommerville 2000 Dependable Software Development Slide  class PositiveEvenInteger { int val = 0 ; PositiveEvenInteger (int n) throws NumericException { if (n < 0 | n%2 == 1) throw new NumericException () ; else val = n ; } // PositiveEvenInteger public void assign (int n) throws NumericException { if (n < 0 | n%2 == 1) throw new NumericException (); else val = n ; } // assign int toInteger () { return val ; } //to Integer boolean equals (PositiveEvenInteger n) { return (val == n.val) ; } // equals } //PositiveEven
Damage assessment ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Damage assessment techniques
Java class with damage   assessment class RobustArray { // Checks that all the objects in an array of objects // conform to some defined constraint boolean [] checkState ; CheckableObject [] theRobustArray ; RobustArray (CheckableObject [] theArray) { checkState = new boolean [theArray.length] ; theRobustArray = theArray ; } //RobustArray public void assessDamage () throws ArrayDamagedException { boolean hasBeenDamaged = false ; for (int i= 0; i <this.theRobustArray.length ; i ++) { if (! theRobustArray [i].check ()) { checkState [i] = true ; hasBeenDamaged = true ; } else checkState [i] = false ; } if (hasBeenDamaged) throw new ArrayDamagedException () ; } //assessDamage } // RobustArray ©Ian Sommerville 2000 Dependable Software Development Slide
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fault recovery
[object Object],[object Object],[object Object],[object Object],[object Object],Forward recovery
[object Object],[object Object],Backward recovery
Safe sort procedure ,[object Object],[object Object],[object Object],[object Object]
Safe sort procedure (Java) class SafeSort { static void sort ( int [] intarray, int order ) throws SortError { int [] copy = new int [intarray.length]; // copy the input array for (int i = 0; i < intarray.length ; i++) copy [i] = intarray [i] ; try { Sort.bubblesort (intarray, intarray.length, order) ; if (order == Sort.ascending) for (int i = 0; i <= intarray.length-2 ; i++) if (intarray [i] > intarray [i+1]) throw new SortError () ; else for (int i = 0; i <= intarray.length-2 ; i++) if (intarray [i+1] > intarray [i]) throw new SortError () ; } // try block catch (SortError e ) { for (int i = 0; i < intarray.length ; i++) intarray [i] = copy [i] ; throw new SortError (&quot;Array not sorted&quot;) ; } //catch } // sort } // SafeSort ©Ian Sommerville 2000 Dependable Software Development Slide
Key points ,[object Object],[object Object],[object Object],[object Object]
Fault tolerant architecture ,[object Object],[object Object],[object Object],[object Object]
Hardware fault tolerance ,[object Object],[object Object],[object Object],[object Object]
Hardware reliability with TMR
Output selection ,[object Object],[object Object],[object Object]
Fault tolerant software architectures ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Design diversity ,[object Object],[object Object],[object Object],[object Object],[object Object]
Software analogies to TMR ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
N-version programming
Output comparison ,[object Object],[object Object]
N-version programming ,[object Object],[object Object]
Recovery blocks
Recovery blocks ,[object Object],[object Object],[object Object]
Problems with design diversity ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Specification dependency ,[object Object],[object Object],[object Object]
Is software redundancy needed? ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Key points
Key points ,[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-conceptsmedsherb
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface designPreeti Mishra
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.pptKomal Garg
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPMgarishma bhatia
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design Saqib Raza
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
Software Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software TestingSoftware Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software TestingKostCare
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101QA Hannah
 
Direct linking loader
Direct linking loaderDirect linking loader
Direct linking loaderbabyparul
 
Assembler design options
Assembler design optionsAssembler design options
Assembler design optionsMohd Arif
 
Defects in software testing
Defects in software testingDefects in software testing
Defects in software testingsandeepsingh2808
 
debugging - system software
debugging - system softwaredebugging - system software
debugging - system softwareVicky Shan
 

Tendances (20)

Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-concepts
 
Software testing
Software testingSoftware testing
Software testing
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface design
 
Presentation on Agile Testing
Presentation on Agile TestingPresentation on Agile Testing
Presentation on Agile Testing
 
White Box Testing
White Box Testing White Box Testing
White Box Testing
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
 
Monitors
MonitorsMonitors
Monitors
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box Testing
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPM
 
Software testing
Software testing Software testing
Software testing
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
White box ppt
White box pptWhite box ppt
White box ppt
 
Software Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software TestingSoftware Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software Testing
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101
 
Direct linking loader
Direct linking loaderDirect linking loader
Direct linking loader
 
Types of testing
Types of testingTypes of testing
Types of testing
 
Assembler design options
Assembler design optionsAssembler design options
Assembler design options
 
Defects in software testing
Defects in software testingDefects in software testing
Defects in software testing
 
debugging - system software
debugging - system softwaredebugging - system software
debugging - system software
 

Similaire à Dependable Software Development in Software Engineering SE18

Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault ToleranceAnkit Singh
 
Automating The Process For Building Reliable Software
Automating The Process For Building Reliable SoftwareAutomating The Process For Building Reliable Software
Automating The Process For Building Reliable Softwareguest8861ff
 
KYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptx
KYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptxKYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptx
KYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptxAniSyafrina1
 
Code coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspectiveCode coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspectiveEngineering Software Lab
 
Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective   Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective Engineering Software Lab
 
Software reliability
Software reliabilitySoftware reliability
Software reliabilityAnand Kumar
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance SystemEhsan Ilahi
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis Engineering Software Lab
 
Monitor(karthika)
Monitor(karthika)Monitor(karthika)
Monitor(karthika)Nagarajan
 
Different Techniques Of Debugging Selenium Based Test Scripts.pdf
Different Techniques Of Debugging Selenium Based Test Scripts.pdfDifferent Techniques Of Debugging Selenium Based Test Scripts.pdf
Different Techniques Of Debugging Selenium Based Test Scripts.pdfpCloudy
 
Critical System Specification in Software Engineering SE17
Critical System Specification in Software Engineering SE17Critical System Specification in Software Engineering SE17
Critical System Specification in Software Engineering SE17koolkampus
 
Ch13-Software Engineering 9
Ch13-Software Engineering 9Ch13-Software Engineering 9
Ch13-Software Engineering 9Ian Sommerville
 
SE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingSE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingAmr E. Mohamed
 
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...mwpeexdvjgtqujwhog
 
Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questionsBABAR MANZAR
 

Similaire à Dependable Software Development in Software Engineering SE18 (20)

Ch20
Ch20Ch20
Ch20
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault Tolerance
 
Automating The Process For Building Reliable Software
Automating The Process For Building Reliable SoftwareAutomating The Process For Building Reliable Software
Automating The Process For Building Reliable Software
 
KYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptx
KYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptxKYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptx
KYS SSD - SOMMERVILE CH13-SECURE PROGRAMMING.pptx
 
Ch13.pptx
Ch13.pptxCh13.pptx
Ch13.pptx
 
Code coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspectiveCode coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspective
 
Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective   Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 
Ch13
Ch13Ch13
Ch13
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance System
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Monitor(karthika)
Monitor(karthika)Monitor(karthika)
Monitor(karthika)
 
Different Techniques Of Debugging Selenium Based Test Scripts.pdf
Different Techniques Of Debugging Selenium Based Test Scripts.pdfDifferent Techniques Of Debugging Selenium Based Test Scripts.pdf
Different Techniques Of Debugging Selenium Based Test Scripts.pdf
 
Critical System Specification in Software Engineering SE17
Critical System Specification in Software Engineering SE17Critical System Specification in Software Engineering SE17
Critical System Specification in Software Engineering SE17
 
Ch13-Software Engineering 9
Ch13-Software Engineering 9Ch13-Software Engineering 9
Ch13-Software Engineering 9
 
Chapter 2 program-security
Chapter 2 program-securityChapter 2 program-security
Chapter 2 program-security
 
SE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingSE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software Testing
 
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
 
Lecture 20-21
Lecture 20-21Lecture 20-21
Lecture 20-21
 
Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questions
 

Plus de koolkampus

Local Area Networks in Data Communication DC24
Local Area Networks in Data Communication DC24Local Area Networks in Data Communication DC24
Local Area Networks in Data Communication DC24koolkampus
 
Bit Oriented Protocols in Data Communication DC23
Bit Oriented Protocols in Data Communication DC23Bit Oriented Protocols in Data Communication DC23
Bit Oriented Protocols in Data Communication DC23koolkampus
 
Data Link Control in Data Communication DC20
Data Link Control in Data Communication DC20Data Link Control in Data Communication DC20
Data Link Control in Data Communication DC20koolkampus
 
Error Detection and Correction in Data Communication DC18
Error Detection and Correction in Data Communication DC18Error Detection and Correction in Data Communication DC18
Error Detection and Correction in Data Communication DC18koolkampus
 
TDM in Data Communication DC16
TDM in Data Communication DC16TDM in Data Communication DC16
TDM in Data Communication DC16koolkampus
 
Radio Communication Band(Data Communication) DC14
Radio Communication Band(Data Communication) DC14Radio Communication Band(Data Communication) DC14
Radio Communication Band(Data Communication) DC14koolkampus
 
Connectors in Data Communication DC12
Connectors in Data Communication DC12Connectors in Data Communication DC12
Connectors in Data Communication DC12koolkampus
 
Transmission of Digital Data(Data Communication) DC11
Transmission of Digital Data(Data Communication) DC11Transmission of Digital Data(Data Communication) DC11
Transmission of Digital Data(Data Communication) DC11koolkampus
 
Analog to Digital Encoding in Data Communication DC9
Analog to Digital Encoding in Data Communication DC9Analog to Digital Encoding in Data Communication DC9
Analog to Digital Encoding in Data Communication DC9koolkampus
 
Signal with DC Component(Data Communication) DC7
Signal with DC Component(Data Communication) DC7Signal with DC Component(Data Communication) DC7
Signal with DC Component(Data Communication) DC7koolkampus
 
Layer Examples in Data Communication CD4
Layer Examples in Data Communication CD4Layer Examples in Data Communication CD4
Layer Examples in Data Communication CD4koolkampus
 
OSI Model (Data Communication) DC3
OSI Model (Data Communication) DC3OSI Model (Data Communication) DC3
OSI Model (Data Communication) DC3koolkampus
 
Basic Concepts in Data Communication DC1
Basic Concepts in Data Communication DC1Basic Concepts in Data Communication DC1
Basic Concepts in Data Communication DC1koolkampus
 
Token Passing in Data Communication DC25
Token Passing in Data Communication DC25Token Passing in Data Communication DC25
Token Passing in Data Communication DC25koolkampus
 
Data Link Protocols in Data Communication DC22
Data Link Protocols in Data Communication DC22Data Link Protocols in Data Communication DC22
Data Link Protocols in Data Communication DC22koolkampus
 
Flow Control in Data Communication DC21
Flow Control in Data Communication DC21Flow Control in Data Communication DC21
Flow Control in Data Communication DC21koolkampus
 
CRC in Data Communication DC19
CRC in Data Communication DC19CRC in Data Communication DC19
CRC in Data Communication DC19koolkampus
 
Telephone Networn in Data Communication DC17
Telephone Networn in Data Communication DC17Telephone Networn in Data Communication DC17
Telephone Networn in Data Communication DC17koolkampus
 
Multiplexing in Data Communication DC15
Multiplexing in Data Communication DC15Multiplexing in Data Communication DC15
Multiplexing in Data Communication DC15koolkampus
 
Transmission Media in Data Communication DC13
Transmission Media in Data Communication DC13Transmission Media in Data Communication DC13
Transmission Media in Data Communication DC13koolkampus
 

Plus de koolkampus (20)

Local Area Networks in Data Communication DC24
Local Area Networks in Data Communication DC24Local Area Networks in Data Communication DC24
Local Area Networks in Data Communication DC24
 
Bit Oriented Protocols in Data Communication DC23
Bit Oriented Protocols in Data Communication DC23Bit Oriented Protocols in Data Communication DC23
Bit Oriented Protocols in Data Communication DC23
 
Data Link Control in Data Communication DC20
Data Link Control in Data Communication DC20Data Link Control in Data Communication DC20
Data Link Control in Data Communication DC20
 
Error Detection and Correction in Data Communication DC18
Error Detection and Correction in Data Communication DC18Error Detection and Correction in Data Communication DC18
Error Detection and Correction in Data Communication DC18
 
TDM in Data Communication DC16
TDM in Data Communication DC16TDM in Data Communication DC16
TDM in Data Communication DC16
 
Radio Communication Band(Data Communication) DC14
Radio Communication Band(Data Communication) DC14Radio Communication Band(Data Communication) DC14
Radio Communication Band(Data Communication) DC14
 
Connectors in Data Communication DC12
Connectors in Data Communication DC12Connectors in Data Communication DC12
Connectors in Data Communication DC12
 
Transmission of Digital Data(Data Communication) DC11
Transmission of Digital Data(Data Communication) DC11Transmission of Digital Data(Data Communication) DC11
Transmission of Digital Data(Data Communication) DC11
 
Analog to Digital Encoding in Data Communication DC9
Analog to Digital Encoding in Data Communication DC9Analog to Digital Encoding in Data Communication DC9
Analog to Digital Encoding in Data Communication DC9
 
Signal with DC Component(Data Communication) DC7
Signal with DC Component(Data Communication) DC7Signal with DC Component(Data Communication) DC7
Signal with DC Component(Data Communication) DC7
 
Layer Examples in Data Communication CD4
Layer Examples in Data Communication CD4Layer Examples in Data Communication CD4
Layer Examples in Data Communication CD4
 
OSI Model (Data Communication) DC3
OSI Model (Data Communication) DC3OSI Model (Data Communication) DC3
OSI Model (Data Communication) DC3
 
Basic Concepts in Data Communication DC1
Basic Concepts in Data Communication DC1Basic Concepts in Data Communication DC1
Basic Concepts in Data Communication DC1
 
Token Passing in Data Communication DC25
Token Passing in Data Communication DC25Token Passing in Data Communication DC25
Token Passing in Data Communication DC25
 
Data Link Protocols in Data Communication DC22
Data Link Protocols in Data Communication DC22Data Link Protocols in Data Communication DC22
Data Link Protocols in Data Communication DC22
 
Flow Control in Data Communication DC21
Flow Control in Data Communication DC21Flow Control in Data Communication DC21
Flow Control in Data Communication DC21
 
CRC in Data Communication DC19
CRC in Data Communication DC19CRC in Data Communication DC19
CRC in Data Communication DC19
 
Telephone Networn in Data Communication DC17
Telephone Networn in Data Communication DC17Telephone Networn in Data Communication DC17
Telephone Networn in Data Communication DC17
 
Multiplexing in Data Communication DC15
Multiplexing in Data Communication DC15Multiplexing in Data Communication DC15
Multiplexing in Data Communication DC15
 
Transmission Media in Data Communication DC13
Transmission Media in Data Communication DC13Transmission Media in Data Communication DC13
Transmission Media in Data Communication DC13
 

Dernier

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Dernier (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Dependable Software Development in Software Engineering SE18

  • 1.
  • 2.
  • 3.
  • 4.
  • 5. Fault removal costs a C o s t p e r e r r o r d e l e t e d F e w N u m b e r o f r e s i d u a l e r r o r s M a n y V e r y f e w
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. A queue specification in Java interface Queue { public void put (Object o) ; public void remove (Object o) ; public int size () ; } //Queue
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Exceptions in Java class SensorFailureException extends Exception { SensorFailureException (String msg) { super (msg) ; Alarm.activate (msg) ; } } // SensorFailureException class Sensor { int readVal () throws SensorFailureException { try { int theValue = DeviceIO.readInteger () ; if (theValue < 0) throw new SensorFailureException (&quot;Sensor failure&quot;) ; return theValue ; } catch (deviceIOException e) { throw new SensorFailureException (“ Sensor read error ”) ; } } // readVal } // Sensor
  • 20.
  • 21.
  • 22. Freezer controller (Java) ©Ian Sommerville 2000 Dependable Software Development Slide class FreezerController { Sensor tempSensor = new Sensor () ; Dial tempDial = new Dial () ; float freezerTemp = tempSensor.readVal () ; final float dangerTemp = (float) -18.0 ; final long coolingTime = (long) 200000.0 ; public void run ( ) throws InterrupedException { try { Pump.switchIt (Pump.on) ; do { if (freezerTemp > tempDial.setting ()) if (Pump.status == Pump.off) { Pump.switchIt (Pump.on) ; Thread.sleep (coolingTime) ; } else if (Pump.status == Pump.on) Pump.switchIt (Pump.off) ; if (freezerTemp > dangerTemp) throw new FreezerTooHotException () ; freezerTemp = tempSensor.readVal () ; } while (true) ; } // try block catch (FreezerTooHotException f) { Alarm.activate ( ) ; } catch (InterruptedException e) { System.out.println (“Thread exception”) ; throw new InterruptedException ( ) ; } } //run } // FreezerController
  • 23.
  • 24.
  • 25.
  • 26. PositiveEvenInteger ©Ian Sommerville 2000 Dependable Software Development Slide class PositiveEvenInteger { int val = 0 ; PositiveEvenInteger (int n) throws NumericException { if (n < 0 | n%2 == 1) throw new NumericException () ; else val = n ; } // PositiveEvenInteger public void assign (int n) throws NumericException { if (n < 0 | n%2 == 1) throw new NumericException (); else val = n ; } // assign int toInteger () { return val ; } //to Integer boolean equals (PositiveEvenInteger n) { return (val == n.val) ; } // equals } //PositiveEven
  • 27.
  • 28.
  • 29. Java class with damage assessment class RobustArray { // Checks that all the objects in an array of objects // conform to some defined constraint boolean [] checkState ; CheckableObject [] theRobustArray ; RobustArray (CheckableObject [] theArray) { checkState = new boolean [theArray.length] ; theRobustArray = theArray ; } //RobustArray public void assessDamage () throws ArrayDamagedException { boolean hasBeenDamaged = false ; for (int i= 0; i <this.theRobustArray.length ; i ++) { if (! theRobustArray [i].check ()) { checkState [i] = true ; hasBeenDamaged = true ; } else checkState [i] = false ; } if (hasBeenDamaged) throw new ArrayDamagedException () ; } //assessDamage } // RobustArray ©Ian Sommerville 2000 Dependable Software Development Slide
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Safe sort procedure (Java) class SafeSort { static void sort ( int [] intarray, int order ) throws SortError { int [] copy = new int [intarray.length]; // copy the input array for (int i = 0; i < intarray.length ; i++) copy [i] = intarray [i] ; try { Sort.bubblesort (intarray, intarray.length, order) ; if (order == Sort.ascending) for (int i = 0; i <= intarray.length-2 ; i++) if (intarray [i] > intarray [i+1]) throw new SortError () ; else for (int i = 0; i <= intarray.length-2 ; i++) if (intarray [i+1] > intarray [i]) throw new SortError () ; } // try block catch (SortError e ) { for (int i = 0; i < intarray.length ; i++) intarray [i] = copy [i] ; throw new SortError (&quot;Array not sorted&quot;) ; } //catch } // sort } // SafeSort ©Ian Sommerville 2000 Dependable Software Development Slide
  • 35.
  • 36.
  • 37.
  • 39.
  • 40.
  • 41.
  • 42.
  • 44.
  • 45.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.