Theory and Research

Areas of Interest

Fault Tolerance and High Availability

One of my earliest system designs was the Protection Instrumentation For a Large Superconducting Magnet. This microprocessor-based system was designed to prevent the catastrophic failure of the magnet. The sensors themselves were subject to failure, requiring a fault-tolerant design involving self testing, multiple redundant sensors, and a voting scheme to arrive at a conclusion regarding the presence or absence of a dangerous condition. This paper explores the reliability of the overall detection for various redundancy and voting configurations.

Model-Based System Engineering

A design model comprises concepts and relationships that collectively describe a system design. One research foray was to model the concepts and relationships needed to represent the meaning (formal semantics) of programs. This work emphasized the ADA programming language and became my doctoral thesis, Constructive Semantics. Here’s a link to a shorter paper providing an overview.

But representing the design of systems in general requires concepts and relationships that go beyond those of programming languages. I began to apply more general diagram-based representational languages such as Entity-Relationship Diagrams, Harel StateCharts, and UML to model designs. This practical experience provided substantial insight into both the capabilities and limitations of these languages. The insight, in turn, led to the formulation of my Concept Representation Language (CRL). Current work is exploring the Active Concept Representation Language (ACRL), a blending of CRL with Constructive Semantics to provide an executable model of a design.

Visual Languages

The adage that a picture is worth a thousand words is certainly true in systems design. While text may shine in representing intricate details, a diagram does a much better job of representing relationships between concepts, particularly when we want to bring attention to complex patterns of relationships. For this reason, all of the afore-mentioned modeling languages include diagrammatic representations.

The DARPA project mentioned above explored the use of many then-prominent diagrammatic engineering notations as design interfaces. One of the things we quickly learned was that the crafting of bespoke graphical interfaces for these notations was time consuming and expensive. This lead to my development of a graphical interactive systems toolkit, an implementation architecture for such diagrams, which was later commercialized as the DV-Centro product and the publication of a related paper “Satisfying the Graphical Requirements of Visual Languages in the DV-Centro Framework.”

The architectural underpinnings required to support visual languages (e.g. UML, SysML, CRL and ACRL) remain a challenge. Tools with quality infrastructure are typically quite expensive, particularly for the researcher who wishes to experiment with the visual language itself. Many of the open-source tools either embed limiting constraints in the manner in which they allow relationships to be represented or serve as limited demonstrations of more sophisticated capabilities that can be had – for a fee.

This situation led to an experimental diagram extension to the Fyne Go-based graphical user interface toolkit, and refinements to the Python-based Gaphor toolkit to make it capable of representing visual languages other than UML and SysML (which it does quite nicely).