Component-Based Software Development: Case Studies

DICK HAMLET
Portland State University, Portland, OR, USA
hamlet@cs.pdx.edu
DAVE MASON and DENISE WOIT
Ryerson Polytechnic University, Toronto, Ontario, Canada
{dmason,dwoit}@sarg.ryerson.ca
Abstract. 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.
A solution to the dilemma is presented in a new theory of component-based design. The component developer performs measurements and provides a component description in such a way that the component buyer can later factor in usage information without repeating the measurements. The heart of the theory is a method of calculating how an operational profile is transformed by one component to be presented to the next component in a system.
The theory originated in an investigation of system reliability to be calculated from component...