An Integrated Toolset for Specifying, Testing and Debugging Complex Software-Intensive Systems

University of California Microelectronics Innovation and Computer Research Opportunities (MICRO) UCM-20880

Co-Principal Investigators:

Debra J. Richardson
Information and Computer Science Department
University of California
Irvine, CA 92717-3425

Laura K. Dillon
Computer Science Department
3115 Engineering Building
Michigan State University
East Lansing, MI 48824

Project Summary. Complex systems have critical behavioral requirements that require advanced testing and debugging technology to enable high assurance in system dependability. Furthermore, competent testing necessitates a thorough understanding of required behavior, which is only reliably achievable when requirements are formally specified. Analysis and testing should be done throughout the development process, beginning with analysis of behavioral requirements and continuing through design and coding. In addition, critical system behaviors should be perpetually tested; their run-time behavior should be checked not only during development but also during operation. Moreover, complex systems are evolving systems -- that is, they are continually modified to meet new needs throughout development, maintenance, reuse, and reengineering -- and require testing throughout evolution. The goal of this project is to enhance software dependability and to reduce the costs of developing and maintaining software. The project is developing an integrated toolset that will lead to dramatic improvements in the specification, testing and debugging of complex software-intensive systems.

The project is exploring the use of advanced testing technology by developing a toolset that combines and refines several advanced technologies including: GIL, a language with tools for intuitively specifying and reasoning about temporal properties of complex systems; TAOS, a testing toolkit and environment that supports test artifact production, automated test execution, formal behavior verification, and test adequacy measurement; ProDAG, a tool that analyzes the dependences between software components to identify components whose behavior may be affected by others. The completed toolset will provide capabilities for formal specification of critical behavioral requirements, formal reasoning about specified requirements, continuous testing to provide assurance of behavioral correctness and/or detect failures, assisted debugging to reason about the cause of a failure, and cost-effective testing of evolving software systems.

Laura K. Dillon <>
Last modified: Mon Jan 19 12:38:24 EST 1998