580 likes | 852 Views
Introducing Bayesian Nets in AgenaRisk An example based on Software Defect Prediction. Typical Applications. Predicting reliability of critical systems Software defect prediction Aircraft accident traffic risk Warranty return rates of electronic parts
E N D
Introducing Bayesian Nets in AgenaRisk An example based on Software Defect Prediction
Typical Applications • Predicting reliability of critical systems • Software defect prediction • Aircraft accident traffic risk • Warranty return rates of electronic parts • Operational risk in financial institutions • Hazards in petrochemical industry
Typical Applications • Predicting reliability of critical systems • Software defect prediction • Aircraft accident traffic risk • Warranty return rates of electronic parts • Operational risk in financial institutions • Hazards in petrochemical industry
Typical Applications • Predicting reliability of critical systems • Software defect prediction • Aircraft accident traffic risk • Warranty return rates of electronic parts • Operational risk in financial institutions • Hazards in petrochemical industry
Typical Applications • Predicting reliability of critical systems • Software defect prediction • Aircraft accident traffic risk • Warranty return rates of electronic parts • Operational risk in financial institutions • Hazards in petrochemical industry
Typical Applications • Predicting reliability of critical systems • Software defect prediction • Aircraft accident traffic risk • Warranty return rates of electronic parts • Operational risk in financial institutions • Hazards in petrochemical industry
Typical Applications • Predicting reliability of critical systems • Software defect prediction • Aircraft accident traffic risk • Warranty return rates of electronic parts • Operational risk in financial institutions • Hazards in petrochemical industry
A Detailed Example • What follows is a demo of a simplified version of a Bayesian net model to provide more accurate predictions of software defects • Many organisations worldwide have now used models based around this one
Operational defects Predicting software defects The number of operational defects (i.e. those found by customers) is what we are really interested in predicting
Residual Defects Operational defects Predicting software defects We know this is clearly dependent on the number of residual defects.
Residual Defects Operational usage Operational defects Predicting software defects But it is also critically dependent on the amount of operational usage. If you do not use the system you will find no defects irrespective of the number there.
Defects Introduced Residual Defects Operational usage Operational defects Predicting software defects The number of residual defects is determined by the number you introduce during development….
Defects Introduced Defects found and fixed Residual Defects Operational usage Operational defects Predicting software defects …minus the number you successfully find and fix
Defects Introduced Defects found and fixed Residual Defects Operational usage Operational defects Predicting software defects Obviously defects found and fixed is dependent on the number introduced
Defects Introduced Problem complexity Defects found and fixed Residual Defects Operational usage Operational defects Predicting software defects The number introduced is influenced by problem complexity…
Design process quality Defects Introduced Problem complexity Defects found and fixed Residual Defects Operational usage Operational defects Predicting software defects ….and design process quality
Design process quality Defects Introduced Problem complexity Testing Effort Defects found and fixed Residual Defects Operational usage Operational defects Predicting software defects Finally, how many defects you find is influenced not just by the number there to find but also by the amount of testing effort
A Model in action Here is that very simple model with the probability distributions shown
A Model in action We are looking at an individual software component in a system
A Model in action The prior probability distributions represent our uncertainty before we enter any specific information about this component.
A Model in action So the component is just as likely to have very high complexity as very low
A Model in action and the number of defects found and fixed in testing is in a wide range where the median value is about 20.
A Model in action As we enter observations about the component the probability distributions update
Here we have entered the observation that this component had 0 defects found and fixed in testing
The model is doing forward inference to predict defects in operation…..
..and backwards inference to make deductions about design process quality.
but actually the most likely explanation is very low testing quality.
https://intranet.dcs.qmul.ac.uk/courses/coursenotes/DCS235/ then the expected number of operational defects increases
https://intranet.dcs.qmul.ac.uk/courses/coursenotes/DCS235/ and we become even more convinced of the inadequate testing
https://intranet.dcs.qmul.ac.uk/courses/coursenotes/DCS235/ So far we have made no observation about operational usage.
https://intranet.dcs.qmul.ac.uk/courses/coursenotes/DCS235/ If, in fact, the operational usage is high…
Then we have an example of a component with no defects in test ..
But suppose we find out that the test quality was very high.
We are now pretty convinced that the module will be fault free in operation
…And the ‘explanation’ is that the design process is likely to be very high quality
A Model in action we reset the model and this time use the model to argue backwards
A Model in action Suppose we know that this is a critical component that has a requirement for 0 defects in operation…
The model looks for explanations for such a state of affairs.
The most obvious way to achieve such a result is to not use the component much.
Then the model adjusts the beliefs about the other uncertain variables.