• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Probabilistic Program Analysis for Software Component Reliability (2002)

by Dave Mason
Add To MetaCart

Tools

Sorted by:
Results 1 - 3 of 3

Properties of Software Systems Synthesized from Components

by Dick Hamlet, Dave Mason, Denise Woit , 2003
"... Software components are today the most promising approach to dealing with the complexity and uneven quality of software systems. The design-using-components paradigm has been extremely successful in almost every engineering field, with its benefits of rapid, routine, reliable system construction. Th ..."
Abstract - Cited by 6 (2 self) - Add to MetaCart
Software components are today the most promising approach to dealing with the complexity and uneven quality of software systems. The design-using-components paradigm has been extremely successful in almost every engineering field, with its benefits of rapid, routine, reliable system construction. The central dilemma of software design using components is that component developers cannot know how their components will be used and so cannot describe component properties for an unknown, arbitrary situation; but if the component customer (system designer) must determine relevant properties of each component before using it, component-based development loses much of its appeal. In technical terms, component behavior depends on the operational profile the component sees when in place in a larger system; in turn, that profile depends both on system usage and the internal structure of the system, neither of which can be known to the component developer.

Software component composition: subdomainbased testing-theory foundation

by Dick Hamlet - J. Software Testing, Verification and Reliability , 2007
"... Composition of software elements into assemblies (systems) is a fundamental aspect of software development. It is an important strength of formal mathematical specification that the descriptions of elements can be precisely composed into the descriptions of assemblies. Testing, on the other hand, is ..."
Abstract - Cited by 2 (1 self) - Add to MetaCart
Composition of software elements into assemblies (systems) is a fundamental aspect of software development. It is an important strength of formal mathematical specification that the descriptions of elements can be precisely composed into the descriptions of assemblies. Testing, on the other hand, is usually thought to be “non-compositional. ” Testing provides information about any executable software element, but testing descriptions have not been combined to describe assemblies of elements. The underlying reason for the compositional deficiency of testing is that tests are samples. When two elements are composed, the input samples (test points) for the first lead to an output sample, but it does not match the input test points of the second, following element. The current interest in software components and component-based software development (CBSD) provides an ideal context for investigating elements and assemblies. In CBSD, the elements (components) are analyzed without knowledge of the system(s) to be later assembled. A fundamental testing theory of component composition must use measured component properties (test results) to predict system properties. This paper proposes a testing-based theory of software component composition based on subdomains. It shows how to combine subdomain tests of components into testing predictions for arbitrarily complex assemblies formed by sequence, conditional, and iteration constructions. The basic construction of the theory applies to functional behavior, but the theory can also predict system non-functional properties from component subdomain tests. Compared to the alternative of actually building and testing a system, the theoretical predictions are computationally more efficient. The theory can also be described as an exercise in modeling. Components are replaced by abstractions derived from testing them, and these models are manipulated to model system behavior.

Smalltalk Metaprogramming supports Probabilistic Program Analysis

by Dave Mason
"... Program paths (equivalently program input subdomains) are interesting for a variety of purposes in software engineering, including testing, reliability, and estimating of resource requirements. The full potential of paths is often not realized because it is difficult to generate the most important p ..."
Abstract - Add to MetaCart
Program paths (equivalently program input subdomains) are interesting for a variety of purposes in software engineering, including testing, reliability, and estimating of resource requirements. The full potential of paths is often not realized because it is difficult to generate the most important paths from the – potentially infinite – set of possible paths for a program. This paper introduces two probabilistic algorithms to generate paths based on an operational profile describing the probability distribution of the possible inputs. The first is a theoretically clean, but implementationally difficult algorithm based on program continuations. The second is a more practical, but less accurate algorithm based on Monte Carlo techniques. Prototype implementations of both algorithms are briefly examined. Smalltalk provides the ideal testbed for these ideas because of its metaprogramming capabilities. These implementations utilize: dynamic code generation, full object orientation, and first-class continuations – a combination of features found in very few other languages.
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University