| I am a member of the
Dependability Research
Group in the Department of
Computer Science at the
University of Virginia. I have the following major research interests:
Survivable embedded software systems
Software is a human work product, and
there is no way to guarantee that it will not contain design flaws.
These flaws are much less likely to exist, however, if software is
smaller or simpler and thus easier for its designers to comprehend. I
am working on transitioning survivability, a concept from the domain
of networked systems, to the domain of safety-critical systems.
Building survivable systems will allow designers to define core
function that can maintain safety but is comprehensible, and use it as
a fallback in the event that the fully complex function of a system is
no longer maintainable because of some failure in system hardware or
the activation of a software design fault.
Situated formalisms
When developing any formalism for a
software system, from an abstract formal specification to a source
code implementation, developers focus on the formal properties of what
they build. These formal properties, however, are not able to convey
an intuition of how the software should perform in its intended
environment. Developers often include notes to themselves in the form
of "meaningful" variable names or source code comments, but this is ad
hoc and insufficient when building safety-critical computing systems.
I am working to develop a structure for formalisms that includes
natural language content to situate them in terms of their operating
environment.
Accident investigation
Safety and risk are closely
related. Describing a system as safe implies that the risks of
operating the system have been reduced to an acceptable level.
Failures of safety-critical software and electronic programmable
systems are evidence that the risks of operating the systems are
higher than previously thought. Although undesirable, they can provide
valuable feedback on the quality of the processes used to produce the
systems and on the validity of the arguments used to assure their
safety. Just as safety assurance during development focuses on
reducing the predicted risk of system operation to an acceptable
level, the objective of failure analysis is to reduce the actual risk
observed from failures to the level previously thought to have been
achieved.
|