# US 10,372,841 B2 · Self-testing graphical component algorithm specification

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,841 B2
- Document ID: US10372841B2
- Status: Granted
- Kind: B2
- Application number: 13/662,529
- Filed: 2012-10-28
- Published: 2014-05-01
- Granted: 2019-08-06
- Earliest claimed: 2012-10-28
- Assignees: The MathWorks, Inc.
- Applicants: The MathWorks, Inc.
- Inventors: Robert O. Aberg; Peter S. Szpak; Andrew C. Grace
- Web page: https://patentgrep.com/patent/US10372841B2

## CPC

- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method automatically ensures consistency among a design model and one or more test models that test the design model. The system may include a broker adapted to construct an interface specification. The interface specification identifies the interface of the design model, e.g., its external inputs, external outputs, and initialization states. It may also identify the outputs, inputs, and initialization setting objects of the test models. Proposed changes to the design model's interface may be captured by the broker, and applied to the design model and to the test models atomically. Proposed changes to a given test model that implicate the design model's interface also may be captured, and applied to the given test model, the other test models, and the design model atomically. Default behaviors may be defined for applying the proposed changes to the other test models and the design model.

## Claims

### Claim 1

A method comprising:
storing, in a memory, an executable design model, the design model including an external interface, the external interface of the design model including:
first graphical objects for receiving input data into the design model, during execution of the design model; and
second graphical objects providing output data computed by the design model, during the execution of the design model, wherein the design model, during the execution, implements first functionality that simulates operation of a system;
associating an executable test model with the design model;
executing the test model, wherein the executing the test model includes:
providing input test data to the first graphical objects of the design model; and
receiving output test data from the second graphical objects of the design model, and further wherein the test model, during the executing the test model, implements second functionality including testing at least part of the design model, and the second functionality implemented by the test model differs from the first functionality implemented by the design model;
constructing, by a processor, an interface specification, the interface specification identifying a mapping between external outputs of the test model and the first graphical objects of the design model or between external inputs of the test model and the second graphical objects of the design model;
detecting, by the processor, a modification to the external interface of the design model, the modification to the external interface of the design model including one or more of:
removing at least one of the first graphical objects or at least one of the second graphical objects; or
adding at least one new first graphical object to the design model or at least one new second graphical object to the design mode; and
automatically modifying, by the processor, the test model to conform to the modification to the external interface of the design model, maintaining consistency among the test model and the design model, the automatically modifying including either:
based on the mapping in the interface specification, removing from the test model (i) one or more of the external outputs of the test model determined to map to the at least one of the first graphical objects of (ii) one or more of the external inputs of the test model determined to map to the at least one of the second graphical objects, or
(i) adding anew external output to the test model for interfacing with the at least one new first graphical object of the design model, or (ii) adding a new external input to the test model for interfacing with the at least one new second graphical object of the design model.

### Claim 2 (depends on 1)

The method of claim 1 wherein the modification to the external interface of the design model and the automatically modifying the test model are performed atomically.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
updating the interface specification based on the modification to the external interface of the design model and the automatically modifying the test model.

### Claim 4 (depends on 3)

The method of claim 3 wherein the modification to the external interface of the design model, the automatically modifying the test model, and the updating the interface specification are performed atomically.

### Claim 5 (depends on 1)

The method of claim 1 wherein the test model includes a plurality of test components, the method further comprising:
identifying one or more of the plurality of test components of the test model affected by the modification to the external interface of the design model, wherein
the automatically modifying includes modifying the one or more of the plurality of test components.

### Claim 6 (depends on 1)

The method of claim 1 wherein the external interface of the design model further includes at least one of:
an initialization state,
a parameter of an object of the design model, and
a control signal that controls execution of a portion of the design model.

### Claim 7 (depends on 1)

The method of claim 1 wherein
the modification to the external interface of the design model includes adding a new first graphical object to the design model, and
the automatically modifying the test model includes adding a new test component adapted to communicate with the new first graphical object of the design model.

### Claim 8 (depends on 7)

The method of claim 7 wherein the automatically modifying further includes configuring the new test component to provide a predefined value to the new first graphical object of the design model.

### Claim 9 (depends on 1)

The method of claim 1 wherein
the modification to the external interface of the design model includes adding a new first graphical object to the design model, and
the automatically modifying the test model includes altering an existing test component to communicate with the new first graphical object of the design model.

### Claim 10 (depends on 1)

The method of claim 1 wherein
the design model is specified graphically or a combination of graphically and textually, and
the test model is specified graphically, textually or a combination of graphically and textually.

### Claim 11

An apparatus comprising:
a memory;
a display; and
processing logic coupled to the memory and the display
wherein the processing logic is programmed to:
store, in the memory, an executable design model, the design model including an external interface, the external interface of the design model including:
first graphical objects for receiving input data into the design model, during execution of the design model; and
second graphical objects for providing output data computed by the design model, during the execution of the design model, wherein the design model, during the execution, implements first functionality that simulates operation of a system;
assign an executable test model to the design model, the test model having a test model interface;
execute the test model, wherein the executing the test model includes:
providing input test data to the first graphical objects of the design model; and
receiving output test data from the second graphical objects of the design model, and further wherein the test model, during the executing the test model, implements second functionality including testing at least part of the design model, and the second functionality implemented by the test model differs from the first functionality implemented by the design model;
present the test model on the display;
construct an interface specification, the interface specification identifying a mapping between the test model interface and the first graphical object of the design model or between the test model interface and the second graphical objects of the design model;
detect a modification to
the test model interface, or
the external interface of the design model;
if the modification is to the test model interface, automatically modify the external interface of the design model to conform to the modification to the test model interface, based on the mapping in the interface specification; and
if the modification is to the external interface of the design model, automatically modify the test model interface to conform to the modification to the external interface of the design model, based on the mapping in the interface specification,
maintaining consistency among the test model interface and the external interface of the design model.

### Claim 12 (depends on 11)

The apparatus of claim 11 wherein the processing logic is further programmed to:
store the design model and the test model as separate objects.

### Claim 13 (depends on 12)

The apparatus of claim 12 wherein the separate objects are stored in a single container.

### Claim 14 (depends on 13)

The apparatus of claim 13 wherein
the separate objects are files, and
the single container is selected from the group consisting of:
a folder,
a director,
a project, and
a compression-type file.

### Claim 15 (depends on 11)

The apparatus of claim 11 wherein the processing logic is further programmed to utilize the test model to test the design model during the execution of the design model.

### Claim 16 (depends on 11)

The apparatus of claim 11 wherein the processing logic is further programmed to:
generate code for the design model; and
compile the generated code for the design model for execution by a target hardware device, wherein
the target hardware device executes the compiled, generated code, and
the test model interfaces to the target hardware device executing the compiled, generated code.

### Claim 17 (depends on 16)

The apparatus of claim 16 wherein the generated code complies with a programming language selected from the group consisting of:
Ada,
Basic,
C,
C++,
C#,
SystemC,
FORTRAN,
VHDL,
Verilog, and
MATLAB.

### Claim 18 (depends on 16)

The apparatus of claim 16 wherein the processing logic is further programmed to:
generate further code for at least a portion of the test model, and
compile the generated further code for the at least a portion of the test model for execution by the target hardware device, wherein
the target hardware devices executes the compiled, generated further code.

### Claim 19

A non-transitory computer-readable medium comprising program instructions, the program instructions when executed by a processing element operable to:
store, in a memory, an executable design model, the design model including an external interface, the external interface of the design model including:
first graphical objects for receiving input data into the design model, during execution of the design model; and
second graphical objects for providing output data computed by the design model, during the execution of the design model, wherein the design model, during the execution, implements first functionality that simulates operation of a system;
assign an executable test model to the design model, the test model having a test model interface;
execute the test model, wherein the executing the test model includes:
providing input test data to the first graphical objects of the design model; and
receiving output test data from the second graphical objects of the design model, and further wherein the test model, during the executing the test model, implements second functionality including testing at least part of the design model, and the second functionality implemented by the test model differs from the first functionality implemented by the design model;
construct an interface specification that
stores the external interface of the design model, and
provides a mapping between the first graphical objects of the design model and the test model interface and the second graphical objects of the design model and the test model interface;
detect a modification to the interface specification; and
automatically update the external interface of the design model and test model interface in response to the modification to conform to the modification to the interface specification, maintaining consistency among the test model and the design model.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19 wherein the automatically update the external interface of the design model and the test model interface is implemented through a model-view-controller architecture.

### Claim 21 (depends on 19)

The non-transitory computer-readable medium of claim 19 further comprising program instructions to modify the interface specification.

### Claim 22 (depends on 21)

The non-transitory computer-readable medium of claim 21 wherein the automatically update the external interface of the design model and the test model interface and the modification to the interface specification are performed atomically.

### Claim 23 (depends on 21)

The non-transitory computer-readable medium of claim 21 wherein the design model, the test model, and the interface specification are separate objects.

### Claim 24 (depends on 19)

The non-transitory computer-readable medium of claim 19 wherein the test model performs static analysis, model coverage, or code coverage.

### Claim 25 (depends on 19)

The non-transitory computer-readable medium of claim 19 wherein the test model tests numerical outputs or execution time.

### Claim 26 (depends on 19)

The non-transitory computer-readable medium of claim 19 wherein the test model is independent from the design model.

### Claim 27

A method comprising:
storing, in a memory, an executable design model including an external interface, the external interface of the design model including:
first graphical objects for receiving input data into the design model, during execution of the design model; and
second graphical objects for providing output data computed by the design model, during the execution of the design model,
the design model pointing to a given interface as the external interface for the design model, wherein the design model, during the execution, implements first functionality that simulates operation of a system;
associating, with the design model, an executable test model having an interface, the test model pointing to the given interface as the interface for the test model;
executing the test model, wherein the executing the test model includes:
providing input test data to the first graphical objects of the design model; and
receiving output test data from the second graphical objects of the design model, and further wherein the test model, during the executing the test model, implements second functionality including testing at least part of the design model, and the second functionality implemented by the test model differs from the first functionality implemented by the design model;
constructing, by a processor, an interface specification, the interface specification identifying a mapping between the interface of the test model and the first graphical objects of the design model and between the interface of the test model and the second graphical objects of the design model;
in response to detecting, by the processor, a modification to the external interface of the design model or the interface of the test model, modifying, by the processor, the given interface, based on the mapping in the interface specification, maintaining consistency among the interface of the test model and the external interface of the design model; and
storing the given interface, the design model, and the test model in a single storage container.

### Claim 28

A method comprising:
storing, in a memory, an executable design model, the design model including an external interface, the external interface of the design model including:
first graphical objects for receiving input data into the design model, during execution of the design model; and
second graphical objects for providing output data computed by the design model, during the execution of the design model, wherein the design model, during the execution, implements first functionality that simulates operation of a system;
storing a definition of the external interface independently from the design model;
associating, by a processor coupled to the memory, an executable test model with the design model, the test model including the same, independently stored external interface as the design model to maintain consistency;
executing the test model, the test model communicating with the design model during the executing the test model, wherein the communicating includes:
providing input test data to the first graphical objects of the design model; and
receiving output test data from the second graphical objects of the design model, and further wherein the test model, during the executing the test model, implements second functionality including testing at least part of the design model, and the second functionality implemented by the test model differs from the first functionality implemented by the design model; and
storing the external interface, the design model, and the test model in a single storage container.

### Claim 29

A method comprising:
creating a single interface;
assigning, by a processor, the single interface as an external interface to an executable design model, the external interface to the design model including:
first graphical objects for receiving input data into the design model, during execution of the design model; and
second graphical objects for providing output data computed by the design model, during the execution of the design model, wherein the design model, during the execution, implements first functionality that simulates operation of a system;
assigning, by the processor, the single interface as an interface to an executable test model associated with the design model to maintain consistency;
executing the test model, the test model communicating with the design model during the executing the test model, wherein the communicating includes:
providing input test data to the first graphical objects of the design model; and
receiving output test data from the second graphical objects of the design model, and further wherein the test model, during the executing the test model, implements second functionality including testing at least part of the design model, and the second functionality implemented by the test model differs from the first functionality implemented by the design model; and
storing in a memory coupled to the processor, the single interface, the design model, and the test model in a single storage container.

### Claim 30 (depends on 1)

The method of claim 1 wherein the test model includes the design model.

### Claim 31 (depends on 11)

The apparatus of claim 11 wherein the test model includes the design model.

### Claim 32 (depends on 19)

The non-transitory computer-readable medium of claim 19 wherein the test model includes the design model.
