Composing Software Components

A Software-testing Perspective

This volume describes a ten-year investigation into the underlying principles of component-based software development (CBSD). The startling contents include graphic representations of component behavior during testing as well as more than a dozen case studies.

Related Titles

Software components and component-based software development (CBSD) are acknowledged as the best approach for constructing quality software at reasonable cost. Composing Software Components: A Software-testing Perspective describes a 10-year investigation into the underlying principles of CBSD. By restricting attention
to the simplest cases, startling results are obtained:
• Components are tested using only executable code. Their behavior is recorded and presented graphically.
• Functional and non-functional behavior of systems synthesized from components are calculated from component tests alone. No access to components themselves is required.
• Fast, accurate tools support every aspect of CBSD from design through debugging.
Case studies of CBSD also illuminate software testing in general, particularly an expanded role for unit testing and the treatment of non-functional software properties.
This unique book:
• Contains more than a dozen case studies of fully worked-out component synthesis, with revealing insights into fundamental testing issues.
• Presents an original, fundamental theory of component composition that includes persistent state and concurrency, based on functional software testing rather than proof-of-programs.
• Comes with free supporting software with tutorial examples and data for replication of examples. The Perl software has been tested on Linux, Macintosh, and Windows platforms. Full documentation is provided.
• Includes anecdotes and insights from the author’s 50-year career in computing as systems programmer, manager, researcher, and teacher.
Composing Software Components: A Software-testing Perspective will help software researchers and practitioners to understand the underlying principles of component testing. Advanced students in computer science, engineering, and mathematics can also benefit from the book as a supplemental text and reference.