<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>What I Want in a (Computational) Partner</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Christopher Landauer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Topcy House Consulting</institution>
          ,
          <addr-line>Thousand Oaks, California, 91362</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This is a position paper about some stringent conditions that we should expect any computational partners to satisfy before we are willing to trust them with non-trivial tasks, and the methods we expect to use to build systems that satisfy them. We have implemented many of the methods we describe to demonstrate some of these properties before, but we have not collected them into a single implementation where they can reinforce or interfere with each other. This paper is a preliminary description of a design of such an implementation, which we are in the process of defining and constructing.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The structure of the paper is as follows: it will start with
some context and a list of relevant tasks and locations for
which computer assistance could be extremely helpful.</p>
      <p>Then comes the first main part of the paper: the set of
characteristics and responsibilities that should be expected,
These include predictability (we can know what it is likely to
do), interpretability (we can follow what it is doing), and
explainability (we can understand why it did whatever it did),
guarantees of behavior, graceful degradation, reputation and
trust management, and continual improvement.</p>
      <p>The second main part of the paper is about the “enablers”,
that is, the methods and approaches that we think will lead to
systems that can satisfy all of these expectations to the extent
required (there is, of course, an application-dependent
engineering decision about how much of each of these properties
is needed). The chief enablers are Computational
Reflection, Model-Based Operation, and Speculative Simulation,
each of which will be explained in that part of the paper.</p>
      <p>The paper follows this description with a list of problems,
that is, major difficulties with these application areas that we
think every computing system will have to address if it is to
be used in that environment. We are sure that this list is far
from complete, and will likely never be complete, but we are
expecting that it is complete enough to proceed.</p>
      <p>
        Finally, the paper closes with a few notes about our
conclusions and prospects. In the interests of space, it does
not discuss the integration of models and components that
is well-described in earlier papers on Self-Awareness and
Self-Modeling
        <xref ref-type="bibr" rid="ref15">Landauer and Bellman (1999)</xref>
        <xref ref-type="bibr" rid="ref16">Landauer and
Bellman (2002)</xref>
        <xref ref-type="bibr" rid="ref12 ref21">Landauer (2013)</xref>
        .
      </p>
      <p>We are not at all suggesting that this is the only way to
address these issues, or even that these are the only
important issues; only that we think that all of these issues are
important and must be addressed, and that this approach has
gained enough coherence and completion, with supporting
computational methods, to attempt an implementation.</p>
      <p>
        There is a large literature in multiple communities that
addresses some of these problems: organic computing
        <xref ref-type="bibr" rid="ref25">Wu¨rtz
(2008)</xref>
        <xref ref-type="bibr" rid="ref23">Mu¨ller-Schloer et al. (2011)</xref>
        , which is largely about
the system qualities needed to enable collections of largely
autonomous systems to be effective in complex real-world
environments, interwoven and self-integrating systems
        <xref ref-type="bibr" rid="ref2">Bellman et al. (2021)</xref>
        , which are concerned with the difficult
and dynamic boundaries between cooperating systems, and
how much a system needs to know about its own
behaviors and capabilities to integrate effectively into a team, and
even explainable artificial intelligence, though that is
currently largely limited to explaining a few classes of learning
algorithms.
      </p>
      <sec id="sec-1-1">
        <title>Context</title>
        <p>The context of this work is a software-managed system (also
called constructed complex system, cyber-physical system,
technical system) in a difficult environment: complex,
dynamic, remote, hazardous, malicious or even actively
hostile, or all of the above. These systems will go places we
cannot (or should not) go, or provide physical or
computational assistance when we do.</p>
      </sec>
      <sec id="sec-1-2">
        <title>Relevant Tasks and Locations</title>
        <p>The kinds of tasks we are expecting to be relevant are quite
varied:
• search and rescue (remember also that dogs and other
animals may be helping);
• medical maintenance, prevention and intervention,
emergencies;
• IED (Improvised Explosive Devices) and other bombs,
also biological, chemical, or radiation threat detection;
• shelter / road / bridge / space station construction;
• scientific exploration; and
• cooperative / competitive games.</p>
        <p>We are not so much interested in autonomous vehicles, not
because it is not important or prominent today, but because
we are waiting for that area to have a purpose beyond
taking people where they want to go (unless that counts as a
competitive game in a hostile environment).</p>
        <p>The potential locations in which these activities might
take place are also varied:
• inside a building or other structure, perhaps collapsed and
/ or unstable;
• outside buildings in an urban area;
• in a remote wilderness area (forest and jungle, hill and
canyon, ice and rocks and tundra);
• airborne, surface maritime, or undersea;
• active conflict zone; and
• off-planet, either on another or in space.</p>
        <p>Some of these tasks are obviously more relevant to some of
these locations than others, and we do not expect any system
to manage all (or even more than one or two) of them the
way we generally expect humans to be able to do.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Characteristics and Responsibilities</title>
      <p>The first main point in this paper is our current list of the
desired and / or expected characteristics and responsibilities
of such a system:
• predictability and interpretability and explainability;
• verification and validation;
• flexibility vs assurance;
• reputation and trust management;
• continual improvement; and
• power assist.</p>
      <p>To our mind, some of the most important properties of a
system are its predictability (we can know for our own
planning what it is likely to do), interpretability (we can
recognize and follow what it is doing), and explainability (we
can understand why it did whatever it did and not something
else). These properties allow us to build a viable mental
model of what that system is, which we can (indeed, must)
use for our own planning. An important aspect of these
properties is the notion of an “audit trail”, that is, a
description of what was and was not done and why (essential
elements of the decision process that made the choice and the
information used to do so), with the implications of making
alternative choices (this is much more than the usual kind of
audit trail that records only what was done). It is also
important to be able to know what can be expected in different
situations, before those situations occur.</p>
      <p>These explanation will necessarily involve multiple
levels of detail, not only the usual multiple time and space
scopes (range of consideration) and scales (resolution
detail), but also multiplicity and granularity in the semantic
domain detail (which could be a superficial summary or more
detailed descriptive terminology; each is useful for different
purposes).</p>
      <p>We expect these systems to undergo verification and
validation (see any Software Engineering book for these terms)
as usual at design / test / deployment time, but also
continually at run time (not just to satisfy requirements, which is
verification, but also to satisfy expectations, which is
validation).</p>
      <p>
        A perennial trade-off in system design is flexibility vs.
assurance. The issue is to balance the flexibility of
adaptive behavior with the assurance of (semi-)predictable
behavior. We are strongly on the side of emphasizing
flexibility, with explicit processes that limit it when appropriate.
This requires behavioral constraint management, to account
for guarantees of behavior, both safety and liveness (these
terms and related ones are defined in
        <xref ref-type="bibr" rid="ref1">Alpern and Schneider
(1986)</xref>
        ).
      </p>
      <p>
        If the environment stays within the specified constraints,
then the system will behave as advertised (this is called
an “assumption - guarantee” model in
        <xref ref-type="bibr" rid="ref11">Kwiatkowska et al.
(2010)</xref>
        and
        <xref ref-type="bibr" rid="ref7">Chilton et al. (2013)</xref>
        ; this model has been
studied for quite some time).
      </p>
      <p>We want the system to exhibit graceful degradation,
which means, that if the environment does not stay within
the expected constraints, then the system will only
gradually lose capability (up to a certain catastrophic level of
pernicious behavior). In this sense, we want the system to be
robust and resilient. A system is robust if it can maintain
function in the face of disruptive efforts or effects. A system
is resilient if it can restore function in the aftermath of a
disruption. These definitions are of course dependent on the
meanings of “maintain” and “restore” (and “disruption”),
but those meanings can be turned into graded measurements,
both for how much a system is disrupted and how much and
how quickly and how well it recovers. They are also clearly
task- and location-specific.</p>
      <p>Another area where design engineering often fails is in the
notion of “appropriate efficiency”. We know that efficiency
is the enemy of robustness, and we are expecting this
system to be extremely robust. We are willing to spend a little
efficiency to gain that robustness.</p>
      <p>Reputation and trust management are also essential. Not
only do we want the system to do the right thing, it must
be trusted that it does the right thing, that it will do the
right thing under increasingly varied and difficult
circumstances, and that it will tell us when it cannot, hopefully
before that happens. The system should provide deficiency
and degradation announcements, so we know what we can
expect. There also needs to be a method for new role
negotiation, based on a system’s current or projected degraded
or enhanced capability. The mechanisms and processes of
establishing and maintaining trust are well-studied in the
literature, but we are also expecting the system to have notions
of trust of its own behavior, something like a self-assessment
of reliability (e.g., if it tries to perform a certain action, will
that action occur?).</p>
      <p>There are some other aspects of the system that are not as
important to us at first, but that will become important if we
want to use these systems.</p>
      <p>There should be a way for human operators to over-ride
almost anything, with varying levels of justification effort
required. Of course, that can become problematic in
timeand life-critical decisions. There should be a kind of “power
assist” mode (as in power steering and power brakes in
automobiles), where the system lets its operators drive it under
certain circumstances, with little or no decision making (just
providing low level support to operator selected actions).
This becomes even more useful if we instrument everything
and analyze it later, to suggest operating improvements.</p>
      <p>
        Finally, we expect the system to analyze itself for
continual improvement along several paths. It will be improving
current behaviors by streamlining behavior combinations: if
decisions are made the same way every time, they can be
compiled out of the code until the relevant part of the
environment changes (this process is called “partial evaluation”
        <xref ref-type="bibr" rid="ref8">Jones (1996)</xref>
        ; it can be very useful in conjunction with a
process that watches for relevant environmental changes).
      </p>
      <p>We do not by any means think that these are all the
important properties, but we think they are enough to make system
behavior more amenable to difficult applications.</p>
    </sec>
    <sec id="sec-3">
      <title>Enablers</title>
      <p>
        The second main point of this paper is that we believe that
all of this is feasible: there is a set of enablers that we
believe can supply these aforementioned properties. They have
played a prominent role in recent work in Self-Aware and
Self-Adaptive Systems (see
        <xref ref-type="bibr" rid="ref22">Lewis et al. (2016)</xref>
        ,
        <xref ref-type="bibr" rid="ref5">Bellman
et al. (2017)</xref>
        ,
        <xref ref-type="bibr" rid="ref10">Kounev et al. (2017)</xref>
        ,
        <xref ref-type="bibr" rid="ref2">Bellman et al. (2021)</xref>
        ,
        <xref ref-type="bibr" rid="ref3">Bellman et al. (2020)</xref>
        ), and we are using several results and
approaches from that area in this design.
      </p>
      <p>Among the most important ones we have used are
Computational Reflection, Model-Based Operation, and
Speculative Simulation (there are others, but these are the three
we wish to discuss here).</p>
      <p>
        A Computationally Reflective system has access to all of
its own internal computation and decision processes, can
reason about its capabilities and behavior, and can change
that behavior when and as appropriate (see
        <xref ref-type="bibr" rid="ref9">Kiczales et al.
(1991)</xref>
        <xref ref-type="bibr" rid="ref6">Buschmann (1996)</xref>
        for a description of reflection, or
        <xref ref-type="bibr" rid="ref15">Landauer and Bellman (1999)</xref>
        for a description of our
approach). In addition to whatever external expectations there
are, it engages in a process we call “continual
contemplation”, examining its own activity for anomalies and potential
improvements.
      </p>
      <p>
        For our purposes, the easiest way to do this is through
models (this is “Model-Based Operation”). The way we
use the term, “model-based operation” is more than
modelbased design or engineering (as in
        <xref ref-type="bibr" rid="ref24">Schmidt (2006)</xref>
        ), which
make extensive use of modeling during system design and
development. All system knowledge and processes are
maintained as models, which can be examined as part of
the decision processes, and exercised or interpreted to
produce the system’s behaviors. That way, when the system
changes the models, it changes its own behavior. In some
applications requiring extreme flexibility, even the model
interpreter can be one of the models, so the very notation in
which the system is written can change.
      </p>
      <p>
        In that sense, we call these systems “self-modeling” (as
described in
        <xref ref-type="bibr" rid="ref16">Landauer and Bellman (2002)</xref>
        ,
        <xref ref-type="bibr" rid="ref12 ref21">Landauer et al.
(2013)</xref>
        ). While there are many ways such a system might be
implemented, we have shown the efficacy of Wrappings as
one way to do these things. Wrappings are described in
        <xref ref-type="bibr" rid="ref15">Landauer and Bellman (1999)</xref>
        ,
        <xref ref-type="bibr" rid="ref12 ref21">Landauer (2013)</xref>
        , and in many
other papers. We will not describe them here for lack of
space, except to say that they provide a Knowledge-based
integration infrastructure that is extremely flexible and
expressive.
      </p>
      <p>
        For us, modeling is pervasive throughout the lifetime of
the system (we have written about this issue in
        <xref ref-type="bibr" rid="ref17 ref18">Landauer and
Bellman (2015</xref>
        a),
        <xref ref-type="bibr" rid="ref17 ref18">Landauer and Bellman (2015</xref>
        b),
        <xref ref-type="bibr" rid="ref19 ref20">Landauer
and Bellman (2016</xref>
        a), for example). In fact, we expect the
system itself to build models, as a way of coping with the
vagaries and hazards of its environment, by retaining essential
properties of it for analysis and planning, as well as
perspective views of how those models change in time.
      </p>
      <p>That puts model construction at the center of our
considerations. The system will perform, as part of its continual
contemplation, what we call “Behavior Mining”, an
examination of the event and action history, for the purpose of
discovering persistent structures or event patterns that can be
used for system improvement. This includes history
maintenance and management, so the system has access to the
activity. Machine Learning techniques can be valuable here,
but they are just one of the possible approaches (e.g.,
grammatical and event pattern inference), and in any case, they
do not usually address data in the form of partially ordered
sets of multiple-resolution descriptions of events.</p>
      <p>
        This process entails a continual identification of common
structures and behaviors, based on internal activity
indicators. Our Wrapping integration infrastructure (see
        <xref ref-type="bibr" rid="ref15">Landauer and Bellman (1999)</xref>
        ,
        <xref ref-type="bibr" rid="ref16">Landauer and Bellman (2002)</xref>
        ,
        <xref ref-type="bibr" rid="ref12 ref21">Landauer (2013)</xref>
        ) facilitates such access, encapsulation of
commonly co-occurring activities, and bottom-up evolution
of empirical system structures (the structures change in
response to behavior changes).
      </p>
      <p>Another significant model process is Model Deficiency
Analysis, based on the discovery of anomalies, such as
noticing unusual or unexpected behavior (e.g., “that’s
peculiar”), the discovery of novelty, including the exploitation of
side effects, and other model evaluations (e.g., for resource
cost-effectiveness reliability).</p>
      <p>
        To manage all of this complexity of knowledge
embodied in models, we use processes we have called Dynamic
Knowledge Management (see
        <xref ref-type="bibr" rid="ref13">Landauer (2017)</xref>
        and
        <xref ref-type="bibr" rid="ref19 ref20">Landauer and Bellman (2016</xref>
        b)), including knowledge
refactoring and constructive forgetting.
      </p>
      <p>
        The third enabler, Speculative Simulation, is a way for the
system to try decisions out before committing to them, or
just explore the space of possibilities (much like the “play”
described in
        <xref ref-type="bibr" rid="ref4">Bellman (2013)</xref>
        ). This kind of analysis includes
actions and adaptations, and clearly requires models of the
effects of system choices. Most of the “what-if” scenario
descriptions that we have seen are for risk management,
usually from a business standpoint, but sometimes for
engineering design. We have not seen any good ones for
opportunity exploitation, that is, how to recognize that a certain
process or resource could save time or improve accuracy, but
this ability is clearly useful for systems in complex
environments.
      </p>
      <p>This is one of the hard parts, but also the most exciting
for us. We are expecting the system to act as an
experimental scientist, exploring and attempting to explain its
environment. To make this effective, the system needs methods for
hypothesis generation, experimental design, and experiment
evaluation.</p>
      <p>The most important and difficult questions to be answered
here are:
• How does the system decide it needs to do an experiment?</p>
      <p>When it doesn’t know something.
• How does it decide that it needs to know something it
doesn’t know? There are missing steps in an analysis or
explanation.
• How does it know something is missing? There are
processes for completing analyses or explanations that can
identify that something is missing (it is still quite hard to
determine what exactly is missing).</p>
      <p>In some sense, this system is being constructed to explore
approaches and potential answers to these questions.</p>
    </sec>
    <sec id="sec-4">
      <title>Problems</title>
      <p>There is of course a myriad of potential problems. The
unfortunate part is that most of them cannot be overcome, only
mitigated, and some not even that. On the other hand, it is
our contention that almost all these same problems apply no
matter what kind of system is constructed and deployed.</p>
      <p>Bad models. When you live by your models, you die by
your models: it is known that computer programs are
easier to subvert when they are formally proven than otherwise
(don’t attack the object being protected, attack the protector
by side-stepping the formal model). The only thing we can
do here is call for help. This is the one of these problems
that is caused by our emphasis on models, but we prefer the
model-based approach anyway for its ability to be analyzed.</p>
      <p>Lack of data. There are many things we can try to do:
go get more, find workarounds (some workarounds can be
planned in advance, in anticipation of certain kinds and
levels of data unavailability). We can have the system make
best guesses, using some kind of hazard-risk-consequence
map, with a corresponding sensitivity analysis over potential
decisions (which ones have the worst consequences, which
ones can the system afford to treat in its current state).</p>
      <p>
        Hardware failures are foreseeable from years of
reliability studies, but specific instances are largely unpredictable.
They are related to the second most difficult category.
Unforeseen circumstances and consequences, about which
there are only a few things we can do, none of which are
guaranteed to work at all (we have only the barest minimum
of available responses to this problem
        <xref ref-type="bibr" rid="ref14">Landauer (2019)</xref>
        ).
We can design the system with numerous and varied
backups (alternative ways to carry out some tasks) and failsafes
(consistent levels of reduced functionality), that may provide
enough time for a problem to be addressed or even solved.
      </p>
      <p>And of course, the most difficult of all. Reliability of
humans and other partners. We hope their training and
knowledge suffices, as they hope ours does.</p>
      <p>There are others, of course, but these are at least among
the most pernicious and persistent ones.</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and Prospects</title>
      <p>We hope this note contains enough description to explain
why we think that an implementation can be constructed,
what we intend its basic structure to be, and how we
expect the system to satisfy the original expectations. We
know that it does not explain how all of these properties will
be achieved, because in many cases, the answer is not yet
known. We expect that this kind of system architecture will
allow us to study these (and other) hard questions. We think
that systems with these capabilities could be acceptable as
computational partners.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Alpern</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Schneider</surname>
            ,
            <given-names>F. B.</given-names>
          </string-name>
          (
          <year>1986</year>
          ).
          <article-title>Recognizing safety and liveness</article-title>
          .
          <source>Distributed Computing</source>
          ,
          <volume>2</volume>
          :
          <fpage>117</fpage>
          -
          <lpage>126</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Botev</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diaconescu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Esterle</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gruhl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>P. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>P. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pournaras</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Tomforde</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2021</year>
          ).
          <article-title>Self-improving system integration: Mastering continuous change</article-title>
          .
          <source>FGCS: Future Generation Computing Systems</source>
          , Special Issue on SISSY,
          <volume>117</volume>
          :
          <fpage>29</fpage>
          -
          <lpage>46</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dutt</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Esterle</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Herkersdorf</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jantsch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>P. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Platzner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>TaheriNejad</surname>
            , N., and Tammema¨e,
            <given-names>K.</given-names>
          </string-name>
          (
          <year>2020</year>
          ).
          <article-title>Self-aware cyber-physical systems</article-title>
          .
          <source>ACM Transactions on Cyber-Physical Systems (TCPS).</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>Sos behaviors: Self-reflection and a version of structured “playing” may be critical for the verification and validation of complex systems of systems</article-title>
          .
          <source>In CSD&amp;M 2013: The Fourth International Conference on Complex Systems Design &amp; Management.</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , Go¨tz,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Lewis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            , and
            <surname>Esterle</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          (
          <year>2017</year>
          ).
          <article-title>Self-modeling and selfawareness</article-title>
          . In Kounev, S.,
          <string-name>
            <surname>Kephart</surname>
            ,
            <given-names>J. O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Milenkoski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Zhu</surname>
          </string-name>
          , X., editors,
          <source>Self-Aware Computing Systems, chapter 9</source>
          , pages
          <fpage>279</fpage>
          -
          <lpage>304</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Buschmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          (
          <year>1996</year>
          ).
          <article-title>Reflection</article-title>
          . In Vlissides,
          <string-name>
            <given-names>J. M.</given-names>
            ,
            <surname>Coplien</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            , and
            <surname>Kerth</surname>
          </string-name>
          , N. L., editors,
          <source>Pattern Languages of Program Design</source>
          <volume>2</volume>
          , chapter
          <volume>17</volume>
          , pages
          <fpage>271</fpage>
          -
          <lpage>294</lpage>
          . Addison-Wesley.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Chilton</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jonsson</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Kwiatkowska</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>Assumeguarantee reasoning for safe component behaviours</article-title>
          . In Paˇsaˇreanu, C. S. and Salau¨n, G., editors,
          <source>FACS 2012: Formal Aspects of Component Software</source>
          , volume
          <volume>7684</volume>
          of Lecture Notes in Computer Science. Springer.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>N. D.</given-names>
          </string-name>
          (
          <year>1996</year>
          ).
          <article-title>Partial evaluation</article-title>
          .
          <source>Computing Surveys</source>
          ,
          <volume>28</volume>
          (
          <issue>3</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Kiczales</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>des Rivie`res</article-title>
          , J., and
          <string-name>
            <surname>Bobrow</surname>
            ,
            <given-names>D. G.</given-names>
          </string-name>
          (
          <year>1991</year>
          ).
          <article-title>The Art of the Meta-Object Protocol</article-title>
          . MIT Press.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Kounev</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bencomo</surname>
          </string-name>
          , N., Ca´mara, J.,
          <string-name>
            <surname>Diaconescu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Esterle</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Geihs</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , Go¨tz,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Inverardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Kephart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            , and
            <surname>Zisman</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          (
          <year>2017</year>
          ).
          <article-title>The notion of self-aware computing</article-title>
          . In Kounev, S.,
          <string-name>
            <surname>Kephart</surname>
            ,
            <given-names>J. O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Milenkoski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Zhu</surname>
          </string-name>
          , X., editors,
          <source>Self-Aware Computing Systems, chapter 1</source>
          , pages
          <fpage>3</fpage>
          -
          <lpage>16</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Kwiatkowska</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Norman</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parker</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Qu</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>Assume-guarantee verification for probabilistic systems</article-title>
          . In Esparza, J. and
          <string-name>
            <surname>Majumdar</surname>
          </string-name>
          , R., editors,
          <source>TACAS</source>
          <year>2010</year>
          :
          <article-title>Tools and Algorithms for the Construction and Analysis of Systems</article-title>
          , volume
          <volume>6015</volume>
          of Lecture Notes in Computer Science. Springer.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>Infrastructure for studying infrastructure</article-title>
          .
          <source>In Proceedings ESOS 2013: Workshop on Embedded SelfOrganizing Systems</source>
          , San Jose, California.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2017</year>
          ).
          <article-title>Mitigating the inevitable failure of knowledge representation</article-title>
          .
          <source>In Proceedings 2nd M@RT: The 2nd International Workshop on Models@run.time for Self-aware Computing Systems</source>
          , Columbus, Ohio.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2019</year>
          ).
          <article-title>What do I do now? Nobody told me how to do this</article-title>
          .
          <source>In Proceedings M@RT</source>
          <year>2019</year>
          , The 14th International Workshop on Models@run.time, Munich, Germany.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          (
          <year>1999</year>
          ).
          <article-title>Generic programming, partial evaluation, and a new programming paradigm</article-title>
          . In
          <string-name>
            <surname>McGuire</surname>
          </string-name>
          , G., editor,
          <source>Software Process Improvement</source>
          , pages
          <fpage>108</fpage>
          -
          <lpage>154</lpage>
          . Idea Group Publishing.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          (
          <year>2002</year>
          ).
          <article-title>Self-modeling systems</article-title>
          . In Laddaga, R. and
          <string-name>
            <surname>Shrobe</surname>
          </string-name>
          , H., editors,
          <source>Self-Adaptive Software</source>
          , volume
          <volume>2614</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>238</fpage>
          -
          <lpage>256</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          (
          <year>2015a</year>
          ).
          <article-title>Automatic model assessment for situation awareness</article-title>
          .
          <source>In Proceedings CogSIMA</source>
          <year>2015</year>
          :
          <article-title>The 2015 IEEE International Multi-Disciplinary Conference on Cognitive Methods in Situation Awareness and Decision Support, Orlando</article-title>
          , Florida.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          (
          <year>2015b</year>
          ).
          <article-title>System development at run time</article-title>
          .
          <source>In Proceedings M@RT 2015: The 10th International Workshop on Models@Run-Time</source>
          , Ottawa, Canada.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          (
          <year>2016a</year>
          ).
          <article-title>Model-based cooperative system engineering and integration</article-title>
          .
          <source>In Proceedings SiSSy 2016: The 3rd Workshop on Self-Improving System Integration</source>
          , Wu¨rzburg, Germany.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          (
          <year>2016b</year>
          ).
          <article-title>Self-modeling systems need models at run time</article-title>
          .
          <source>In Proceedings M@RT 2016: The 11th International Workshop on Models@run.time, Palais du Grand Large</source>
          , Saint Malo, Brittany, France.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bellman</surname>
            ,
            <given-names>K. L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>P. R.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>Selfmodeling for adaptive situation awareness</article-title>
          .
          <source>In Proceedings of CogSIMA</source>
          <year>2013</year>
          :
          <article-title>The 2013 IEEE International InterDisciplinary Conference on Cognitive Methods for Situation Awareness</article-title>
          and
          <string-name>
            <given-names>Decision</given-names>
            <surname>Support</surname>
          </string-name>
          , San Diego, California.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>P. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Platzner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rinner</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trresen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Yao</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          (
          <year>2016</year>
          ).
          <source>Self-Aware Computing Systems: An Engineering Approach</source>
          . Springer, 1st edition.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          <article-title>Mu¨ller-</article-title>
          <string-name>
            <surname>Schloer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmeck</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Ungerer</surname>
          </string-name>
          , T., editors (
          <year>2011</year>
          ).
          <article-title>Organic Computing - A Paradigm Shift for Complex Systems</article-title>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>D. C.</given-names>
          </string-name>
          (
          <year>2006</year>
          ).
          <article-title>Model-driven engineering: Introduction to the special issue</article-title>
          .
          <source>IEEE Computer</source>
          ,
          <volume>39</volume>
          :
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <article-title>Wu¨rtz</article-title>
          , R. P., editor (
          <year>2008</year>
          ).
          <source>Organic Computing</source>
          . Springer.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>