18
G. Fey and R. Drechsler
the observer of the system and would immediately allow to judge the consistency
of explanations with the actual behavior. Potentially this serves as the basis for an
autonomous diagnosis loop.
Non-functional aspects like reaction time or power consumption similarly require
self-reflexive functionality in the system, e.g., to determine the current processing
load or current sensors and a prediction on future activities. This again can be seen
as a model of the environment within the digital system.
1.5.2 Automated Inference
Manually enhancing a design for self-explanation may be time consuming. Thus,
further automation is useful. Technically, one option to automatically derive explanations is the use of model checking engines. Given a precise specification of
an observable action in terms of a formal language, model checking can derive
all possible ways to execute this observable action. For each execution trace the
causes can automatically be derived along the lines of [11] by debugging only input
changes or [24] by backtracing dependency graphs. Logic queries [3] may serve
as a monolithic natural tool to identify causes, potentially at a high computational
cost. Enhancements enable all of these techniques to identify not only a single set
of causes but all possible sets of causes. Deriving these causes in terms of inputs
of a functional unit and then continuing to preceding functional units allows to
automatically derive well-formed explanations. Completeness must be ensured by
formalizing all observable actions properly. Completeness of observable actions
could be checked similar to completeness of a set of properties using a similar
approach like [14].
1.6 Conclusions
Future complex systems driving real-world processes must be self-explaining.
Naturally, our proposal is just one technical solution that cannot consider many of
the alternative ways to create a self-explaining system.
We provided a formal notion of self-explanation, a conceptual framework, and a
proof-of-concept realization. We studied a robot controller as a use case. We gave
an idea on how to automatically provide self-explanations. The extension to reactive
systems in general and to systems where new actions may be defined on-the-fly
remains for future work.
G. Fey and R. Drechsler
the observer of the system and would immediately allow to judge the consistency
of explanations with the actual behavior. Potentially this serves as the basis for an
autonomous diagnosis loop.
Non-functional aspects like reaction time or power consumption similarly require
self-reflexive functionality in the system, e.g., to determine the current processing
load or current sensors and a prediction on future activities. This again can be seen
as a model of the environment within the digital system.
1.5.2 Automated Inference
Manually enhancing a design for self-explanation may be time consuming. Thus,
further automation is useful. Technically, one option to automatically derive explanations is the use of model checking engines. Given a precise specification of
an observable action in terms of a formal language, model checking can derive
all possible ways to execute this observable action. For each execution trace the
causes can automatically be derived along the lines of [11] by debugging only input
changes or [24] by backtracing dependency graphs. Logic queries [3] may serve
as a monolithic natural tool to identify causes, potentially at a high computational
cost. Enhancements enable all of these techniques to identify not only a single set
of causes but all possible sets of causes. Deriving these causes in terms of inputs
of a functional unit and then continuing to preceding functional units allows to
automatically derive well-formed explanations. Completeness must be ensured by
formalizing all observable actions properly. Completeness of observable actions
could be checked similar to completeness of a set of properties using a similar
approach like [14].
1.6 Conclusions
Future complex systems driving real-world processes must be self-explaining.
Naturally, our proposal is just one technical solution that cannot consider many of
the alternative ways to create a self-explaining system.
We provided a formal notion of self-explanation, a conceptual framework, and a
proof-of-concept realization. We studied a robot controller as a use case. We gave
an idea on how to automatically provide self-explanations. The extension to reactive
systems in general and to systems where new actions may be defined on-the-fly
remains for future work.
