# US 11,442,850 B2 · Identifying software dependencies using controller code models

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

- Number: US 11,442,850 B2
- Document ID: US11442850B2
- Status: Granted
- Kind: B2
- Application number: 17/536,466
- Filed: 2021-11-29
- Published: 2022-03-17
- Granted: 2022-09-13
- Earliest claimed: 2019-03-25
- Assignees: Aurora Labs Ltd.
- Applicants: Aurora Labs Ltd.
- Inventors: Zohar Fox; Carmit Sahar
- Web page: https://patentgrep.com/patent/US11442850B2

## CPC

- G06F 30/33: Design verification, e.g. functional simulation or model checking
- G06F 8/34: Graphical or visual programming
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/73: Program documentation
- G06F 8/75: Structural analysis for program understanding
- G06F 11/3604: Analysis of software for verifying properties of programs (testing of software G06F11/3668)
- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- G06F 11/362: Debugging of software
- G06F 11/3692: {for test results analysis}
- G06F 16/9014: {hash tables}
- G06F 17/18: for evaluating statistical data {, e.g. average values, frequency distributions, probability functions, regression analysis (forecasting specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06F 18/24: Classification techniques
- G06F 21/52: during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow}
- G06F 21/563: {by source code analysis}
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F 21/577: {Assessing vulnerabilities and evaluating computer system security}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06N 20/00: Machine learning
- H04L 9/3247: {involving digital signatures}
- G06F 30/15: Vehicle, aircraft or watercraft design
- G10H 1/0058: {Transmission between separate instruments or between individual components of a musical system (G10H1/0083 takes precedence)}
- H04L 2209/84: Vehicles
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G10H: ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE

## Abstract

Disclosed herein are techniques for identifying software dependencies based on functional line-of-code behavior and relation models. Techniques include accessing a first line-of-code behavior and relation model representing execution of functions of a first portion of executable code, the first portion of executable code being associated with a first symbol; detecting a change to the first portion of executable code; constructing, based on the changed first portion of executable code, a second line-of-code behavior and relation model representing execution of functions of the changed first portion of executable code; determining, based on the constructed second model, a dependency between (i) the changed first portion of executable code or the first symbol and (ii) a second symbol; and generating, based on the determined difference, a report identifying the dependency.

## Claims

### Claim 1

A non-transitory computer-readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for identifying software dependencies based on functional models, comprising:
constructing, based on a change to first controller code configured for a first controller, a model representing execution of functions on the first controller according to the changed first controller code;
determining, based on operating the model remotely from the first controller and a second controller, a dependency between the changed first controller code and second controller code configured for the second controller;
determining a change in functionality of the second controller code based on the change to the first controller code;
determining a functional equivalence status between the second controller code with the change in functionality and the second controller code without the change in functionality; and
generating, based on the determined dependency, a report identifying the functional equivalence status.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the model comprises at least one of a variable, buffer, function, call, object, or segment of code.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, the operations further comprising determining the dependency by operating the model remotely from the first and second controllers.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the first and second controllers are part of a group of electronic control units (ECUs) associated with a vehicle.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the model is generated through a machine learning process.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the model is generated through a statistical or dynamic process.

### Claim 7 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein:
the second controller code with the change in functionality comprises first symbols;
the second controller code without the change in functionality comprises second symbols; and
determining a functional equivalence status comprises determining a degree of equivalence between the first and second symbols.

### Claim 8 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the report identifies at least one instance of functionality drift.

### Claim 9 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the report includes a warning.

### Claim 10 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the change to the first controller code comprises a simulated change made by a user.

### Claim 11 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein at least one of the first controller or the second controller is a virtual controller.

### Claim 12 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the determined dependency includes a strength of association between symbols of the first controller code and the second controller code.

### Claim 13 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the first controller is associated with implementing a first function in a system and the second controller is associated with implementing a second function in a system.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein:
the system is a vehicle; and
the first function and second function are vehicle functions.

### Claim 15

A computer-implemented method for identifying software dependencies based on functional models, the method comprising:
constructing, based on a change to first controller code configured for a first controller, a model representing execution of functions on the first controller according to the changed first controller code;
determining, based on operating the model remotely from the first controller and a second controller, a dependency between the changed first controller code and second controller code configured for the second controller;
determining a change in functionality of the second controller code based on the change to the first controller code;
determining a functional equivalence status between the second controller code with the change in functionality and the second controller code without the change in functionality; and
generating, based on the determined dependency, a report identifying the functional equivalence status.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, further comprising determining the dependency by operating the model remotely from the first and second controllers.

### Claim 17 (depends on 15)

The computer-implemented method of claim 15, wherein the model is generated through a statistical or dynamic process.

### Claim 18 (depends on 15)

The computer-implemented method of claim 15, wherein:
the second controller code with the change in functionality comprises first symbols;
the second controller code without the change in functionality comprises second symbols; and
determining a functional equivalence status comprises determining a degree of equivalence between the first and second symbols.

### Claim 19 (depends on 15)

The computer-implemented method of claim 15, wherein the report identifies at least one instance of functionality drift.

### Claim 20 (depends on 15)

The computer-implemented method of claim 15, wherein the change to the first controller code comprises a simulated change made by a user.
