|
|
 |
Universal Constraint Language and Engine (UNCLE)
|
 |
 |
UNCLE is a general framework for constraint-based reasoning. Within the AADL
(Architecture Analysis and Design Language), it is applied to the problem of
reasoning about the compositionally of multiple, dynamic hardware and software
components, providing a flexible and extendable framework for the system
designer to quickly and easily specify many differing constraints that must
hold between hardware and software components. Constraint-based reasoning is
used at design time to both verify that the constraints are honored in all of
the system modes and to guarantee that components are compatible and
composable. The results of constraint-based reasoning can also be used to
generate runtime sensors to monitor system status relative to its design
constraints.
The UNCLE framework allows the system designer to easily define multiple
constraint types and constraint solvers. UNCLE then employs the correct solvers
for individual constraint types thus removing a number of difficult
representational and reasoning problems.
Features include:
 | No need to convert the constraint problem and solution to and from one
canonical form or another. |
 | Provides incremental solution - working on only the small set of a whole
problem affected by the constraint. No need to reevaluate unaffected subsystems
with respect to the new constraint. |
 | Implements with any number of reasoners/solvers (e.g., arc consistency
(AC3), novel "one step", Cplex (commercial/industrial solver). |
 | Supports all constraint types (enumerated, integer, and continuous). |
The UNCLE architecture is composed of three components that interact with
the constraint solvers provided by the user to perform constraint-based
reasoning.
 | Problem Instance Model: Stores the constraint problem's
specification, including the set of variables that are constrained, the ranges
of the variables, the definitions of the constraints, and the solvers that are
appropriate for each kind of constraint. |
 | Problem State Bookkeeper: Stores the state of the constraint problem
during solution, including reduction in variable ranges, flags marking those
constraints that have already been enforced, and any variables bound to a value
by the user. |
 | Meta-Constraint Solver Engine: Controls the incremental invocation
of each different kind of constraint solver to propagate the constraints. This
component also updates the state stored in the Bookkeeper. |
The Honeywell's DOME software tools is used as a front end to UNCLE, both to
define problem domains and make use of the UNCLE framework. Using DOME, a
system designer specifies a Domain Meta-Model and a Constraint Model for a
specific domain to define the hardware and software components of interest for
a particular design problem. The designer also defines the constraint types and
associated solvers, as well the roles specific constraint types play within the
domain. On the basis of these two models, DOME automatically generates a system
design tool that allows users of the design tool to specify the specific
instance of the design problem with which they are concerned (which hardware
instances to connect to which) and then to use UNCLE to enforce the domain's
constraints on the specific instance.
|
|
|
|