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)
|