Projects

From SEWiki

This is a summary of current research projects. Follow the links for more information. Papers are elsewhere.

Software Plans

Software plans are a software analog to architectural plans. They provide a feature-oriented view of a module, simplifying the implementation of that feature. They also provide a principled way to incrementally implement and then integrate interacting features.

Follow this link to download the latest version of our prototype editor for software plans.

Bounded Exhaustive Testing with Contracts

Bounded exhaustive testing is an automated testing approach in which a region of the program's input space is tested automatically and exhaustively. Like all black-box testing approaches, BET is relatively easy to apply to large systems and can rapidly cover "easy-to-reach" code. My research in this area focuses on the problems of automatically generating structurally complex inputs and automatically validating the outputs.

Intermediate Domains for Reliability Engineering

This project seeks to establish a common, mathematically defined, intermediate domain for the definition and analysis of reliability modeling languages. The language lies at a higher level of abstraction than Markov models, easing the design of modeling languages such as dynamic fault trees and Boolean-driven Markov processes. The project is not currently active, but some more work could still be done

Software Tools for Engineering

This project seeks to develop software development methods for modeling tools used by engineers when designing critical systems. The approach combines applied formal methods and large-scale component resuse. The project is not currently active, although there is the potential for ongoing collaborative work with Kevin Sullivan at UVa and Exelix LLC.