Probabilistic Program Analysis for Software Component Reliability

Components are widely seen by software engineers as an important technology to address the "software crisis''. An important aspect of components in other areas of engineering is that system reliability can be estimated from the reliability of the components. We show how comm...

Full description

Bibliographic Details
Main Author: Mason, Dave
Language:en
Published: University of Waterloo 2006
Subjects:
Online Access:http://hdl.handle.net/10012/1059
id ndltd-LACETR-oai-collectionscanada.gc.ca-OWTU.10012-1059
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-OWTU.10012-10592014-06-18T03:51:12Z Probabilistic Program Analysis for Software Component Reliability Mason, Dave Computer Science software reliability probabilistic analysis program analysis composing component reliability Components are widely seen by software engineers as an important technology to address the "software crisis''. An important aspect of components in other areas of engineering is that system reliability can be estimated from the reliability of the components. We show how commonly proposed methods of reliability estimation and composition for software are inadequate because of differences between the models and the actual software systems, and we show where the assumptions from system reliability theory cause difficulty when applied to software. This thesis provides an approach to reliability that makes it possible, if not currently plausible, to compose component reliabilities so as to accurately and safely determine system reliability. Firstly, we extend previous work on input sub-domains, or partitions, such that our sub-domains can be sampled in a statistically sound way. We provide an algorithm to generate the most important partitions first, which is particularly important when there are an infinite number of input sub-domains. We combine analysis and testing to provide useful reliabilities for the various input sub-domains of a system, or component. This provides a methodology for calculating true reliability for a software system for any accurate statistical distribution of input values. Secondly, we present a calculus for probability density functions that permits accurately modeling the input distribution seen by each component in the system - a critically important issue in dealing with reliability of software components. Finally, we provide the system structuring calculus that allows a system designer to take components from component suppliers that have been built according to our rules and to determine the resulting system reliability. This can be done without access to the actual components. This work raises many issues, particularly about scalability of the proposed techniques and about the ability of the system designer to know the input profile to the level and kind of accuracy required. There are also large classes of components where the techniques are currently intractable, but we see this work as an important first step. 2006-08-22T14:27:26Z 2006-08-22T14:27:26Z 2002 2002 Thesis or Dissertation http://hdl.handle.net/10012/1059 en Copyright: 2002, Mason, Dave. All rights reserved. University of Waterloo
collection NDLTD
language en
sources NDLTD
topic Computer Science
software reliability
probabilistic analysis
program analysis
composing component reliability
spellingShingle Computer Science
software reliability
probabilistic analysis
program analysis
composing component reliability
Mason, Dave
Probabilistic Program Analysis for Software Component Reliability
description Components are widely seen by software engineers as an important technology to address the "software crisis''. An important aspect of components in other areas of engineering is that system reliability can be estimated from the reliability of the components. We show how commonly proposed methods of reliability estimation and composition for software are inadequate because of differences between the models and the actual software systems, and we show where the assumptions from system reliability theory cause difficulty when applied to software. This thesis provides an approach to reliability that makes it possible, if not currently plausible, to compose component reliabilities so as to accurately and safely determine system reliability. Firstly, we extend previous work on input sub-domains, or partitions, such that our sub-domains can be sampled in a statistically sound way. We provide an algorithm to generate the most important partitions first, which is particularly important when there are an infinite number of input sub-domains. We combine analysis and testing to provide useful reliabilities for the various input sub-domains of a system, or component. This provides a methodology for calculating true reliability for a software system for any accurate statistical distribution of input values. Secondly, we present a calculus for probability density functions that permits accurately modeling the input distribution seen by each component in the system - a critically important issue in dealing with reliability of software components. Finally, we provide the system structuring calculus that allows a system designer to take components from component suppliers that have been built according to our rules and to determine the resulting system reliability. This can be done without access to the actual components. This work raises many issues, particularly about scalability of the proposed techniques and about the ability of the system designer to know the input profile to the level and kind of accuracy required. There are also large classes of components where the techniques are currently intractable, but we see this work as an important first step.
author Mason, Dave
author_facet Mason, Dave
author_sort Mason, Dave
title Probabilistic Program Analysis for Software Component Reliability
title_short Probabilistic Program Analysis for Software Component Reliability
title_full Probabilistic Program Analysis for Software Component Reliability
title_fullStr Probabilistic Program Analysis for Software Component Reliability
title_full_unstemmed Probabilistic Program Analysis for Software Component Reliability
title_sort probabilistic program analysis for software component reliability
publisher University of Waterloo
publishDate 2006
url http://hdl.handle.net/10012/1059
work_keys_str_mv AT masondave probabilisticprogramanalysisforsoftwarecomponentreliability
_version_ 1716669938867896320