A Bi-Disciplinary Research Project

Galileo is a bi-disciplinary research and development project between the Departments of Computer Science and Electrical and Computer Engineering at the University of Virginia.  Joanne Bechta Dugan (ECE) and Kevin Sullivan (CS) are the co-principal investigators leading the project.  The project pursues fundamental research in two areas.  One is probabilistic risk assessment, in general, and dynamic fault tree modeling for reliability modeling and analysis of fault tolerant systems, in particular (Dugan).  The other is and software design and engineering, in general, focusing on the design of software tools for engineering modeling and analysis, in particular (Sullivan). 

The Project Name and Logos

The Galileo project and tool take their names and logos from Galileo Galilei (1564-1642), the first person known to have developed mathematical models of failure phenomena.  The cantilevered beam drawing, by Galileo, illustrates his apparatus for gathering data on the failure characteristics of beams under load.   Galileo's equations expressing a general failure rule were not correct, but the use of mathematical methods to characterize and predict failure phenomena turned out to be a pillar of modern dependability engineering.  The Galileo software tool for reliability engineering of complex, fault tolerant systems is one of innumerable examples of the basic approach that Galileo pioneered some 400 years ago.

Software Engineering Research

From the software engineering research perspective, dynamic fault tree analysis provides a driving application that is interesting, important, and in which there is a demand for innovation.  Some of the fundamental software engineering research issues that we address in this application context include evaluation of methods of formal specification and validation, software architecture, software evolution, and specification-based verification.  The project also provides a wonderful environment for students, both graduate and undergraduate, to learn about software engineering, in practice. 

Reliability Engineering Research

From the reliability engineering research perspective, the software engineering element is useful in two ways.  First, while the basic mathematical and algorithmic innovations are clearly in reliability engineering, the effort of mapping these novel concepts to rigorous, validated software specifications and well crafted architectural designs significantly helps to debug and clarify the basic formulations.  Second, the software engineering research sub-team manages the design and evolution of an innovative, effective software tool that embodies the core concepts in a form amenable to dissemination and use in practice. Feedback from empowered users, in turn, becomes an important driver of further development of the both the core concepts and the supporting software tool.

The Galileo Fault Tree Analysis Tool

The project is organized around the ongoing development of Galileo, an experimental software tool for dynamic fault tree analysis tool.  Galileo provides unique value to users in three basic dimensions:

  • ease of use at low cost based on the use of mass-market applications suites for user interface components
  • a case for the dependability of analysis functions based on formal specification and specification-based testing
  • and support for a range of innovative dynamic fault tree modeling constructs and efficient analysis algorithms

In terms of modeling, Galileo embodies the results of years of investments in dynamic fault tree analysis, including earlier work on the Hybrid Automated Reliability Predictor (HARP), Monte Carlo Integrated HARP (MCI-HARP), and the Dynamic Innovative Fault Tree tool (DIFTree).  Galileo significantly extends this line of work with a range of innovative modeling and analysis features:

  • automatic modularization of fault trees and independent solution of modules
  • efficient solution of static sub-trees using binary decision diagrams
  • efficient solution of dynamic sub-trees using Markov-based techniques
  • multiple time-to-failure distributions  (fixed, exponential, lognormal, Weibull)
  • static and dynamic coverage modeling
  • phased mission modeling and analysis 
  • sensitivity analysis
  • common cause groups (next major version)
  • uncertainty analysis (next major version)
  • diagnostic decision trees (next major version)
  • cutset and cutsequence generation (next major version)