Software Design For Reliability and Reuse

The Pacific Software Research Center (PacSoft) was an organization at the OGI School of Science and Engineering that developed and experimentally evaluated software component generation techniques that integrated topics from formal methods, software engineering, domain analysis, functional programming, program transformation systems, and language implementation. SDRR was a method for domain engineering that we developed under DoD grants from Air Force Material Command (F19628-93-C-0069). We developed an approach to creating executable domain specific languages (DSL) to be used in the frontend of application generators:

A DSL is a small, usually declarative, language expressive over the distinguishing characteristics of a set of programs in a particular problem domain. This set of programs is often called a software family and the distinguishing characteristics are called variabilities.
-- Lisa Walton, 1996

In addition to the working definition above, my primary contributions to this research were the development of a method for designing DSLs that supported correct-by-construction proofs that all generated programs met certain criteria, and the implementation of a Message Specification Language (MSL)for a military Command and Control System. MSL was incorporated into the front end of a software component generator that produced Ada modules for an actual C3I system, and a software engineering experiment demonstrated that this approach to software reuse was a marked improvement over existing methods.

In Phase II of the project we collaborated with Lucent Technologies in an attempt to integrate our approach with their existing domain engineering approach (the FAST process). My contribution to this research was a study of how their domain analysis products could be mined to determine appropriate models for the design of DSLs (Walton and Hook 96).

Language Design and Software Engineering Publications