Projects:Intermediate Domains for Reliability Engineering Languages

From SEWiki

Computational modeling and analysis is now essential in all engineering disciplines. Engineers use domain-specific languages to create system models, which are then analyzed to infer certain system properties. In order to model more complex systems, researchers are developing increasingly sophisticated languages whose constructs correspond more closely to concepts in the domain.

An example DFT
Enlarge
An example DFT

For example, reliability engineers developed fault tree models in the 1960's to model combinations of failures in complex systems. In the 1990's increasingly complex, fault-tolerant, computer-based systems led researchers to extend the fault tree language to support the modeling of order-dependent failures. More recent work has added the ability to model uncovered failures, and to model systems having multiple phases of operation. Such advances are meant to provide engineers with a high-level language for creating models that more accurately represent the system being modeled. The figure to the right shows a fault tree.

The increasing complexity of today's systems has led reliability engineering researchers to develop high-level modeling languages with complex semantics. High-level languages are intuitive because they have been designed using domain-specific syntax and semantics. For example, the spare gate in the dynamic fault tree language is used to model the use and failure of spare components in systems. The spare gate idea can be well-understood by practitioners.

Unfortunately, the complex interactions between seemingly simple high-level language constructs such as the spare gate can be difficult to understand. Traditional approaches to defining reliability modeling notations have been semi-formal. A semi-formal definition has a well-defined syntax but an imprecise or incomplete semantic definition. For example, the syntax may be specified formally in a mathematical notation such as BNF grammars, but the semantics may be only illustrated by showing the precise meaning for a set of examples. Semi-formal definitions can lead to ambiguous semantics and untrustworthy tools, because such limited examples can not capture the subtle interactions between modeling constructs which occur in general. Engineers must use these languages and tools with a large degree of care to avoid the risk of invalid results.

An example BDMP
Enlarge
An example BDMP

Secondly, today's reliability modeling languages are developed independently. Consider the following three reliability languages: reliability block diagrams (RBD), dynamic fault trees (DFT), and Boolean-Driven Markov Processes (BDMP). RBDs are a fairly simple notation whose meaning can be expressed in terms of probabilistic equations, and whose implementation can be in terms of mathematically-based solver libraries. DFTs and BDMPs are new languages being developed by researchers which are higher-level, and whose semantics can be expressed in terms of Markov chains. The figure to the right shows a BDMP.

The mapping of DFTs and BDMPs to low-level Markov chains is more difficult. This difficulty arises both in the design of the language and its implementation. As new reliability languages are developed, researchers must complete the difficult semantic mapping from the high-level language to the low-level language. Many times, problems that were previously overcome in the semantic definition of other languages must again be addressed in the new language.

In addition to the difficulties in design, today's implementation methods prevent developers from benefiting from the implementation effort already invested in existing languages. To have justifiable confidence in the software, independent implementations of these languages must be verified independently, despite the fact that much of the code is similar.

Intermediate language illustration
Enlarge
Intermediate language illustration

In this project we extend previous work on the formal definition of reliability modeling languages, demonstrating that formally defined intermediate languages can address the difficulties of independently developed languages. The figure to the right illustrates the basic idea.