Annotated Forests Propagate Code Annotations for Dependency Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for analyzing the effects of conditions on computing systems, such as call graphs, are limited in their ability to propagate annotations effectively across complex software systems, making it difficult to identify dependencies and errors within large software systems.

Innovation Solution

Annotated forests are created to represent relationships between code segments, allowing annotations to be propagated from child nodes to parent nodes, enabling the identification of dependencies, errors, and protocol usage across the entire system, with the ability to analyze these relationships and provide tangible results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If annotations are propagated through the entire call forest to identify all dependencies, then the completeness of dependency identification is improved, but the computational time and complexity increase significantly

Engineering Contradiction:
Improvecompleteness of dependency identificationVSAvoidcomputational time for annotation propagation
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent pre-computes and stores annotation information in a database during system initialization or code analysis phases. This preliminary action allows the annotation data to be readily available when needed for dependency identification, avoiding the need to re-traverse the entire call forest during debugging or analysis operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables selective propagation of annotations based on specific criteria such as error types, protocol categories, or depth limits. Instead of propagating all annotations through the entire call forest uniformly, the system applies annotation propagation locally to specific regions or paths that are relevant to the current analysis task, reducing unnecessary computational overhead.

Inventive Principle:
Principle #3Local quality

2Device complexity

If the annotation propagation is limited to a specified depth or subset of nodes, then the computational complexity is reduced, but the completeness of system-wide dependency analysis deteriorates

Engineering Contradiction:
Improvecomputational complexity of annotation propagationVSAvoidcompleteness of dependency information
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The patent introduces a database as an intermediary layer between the call forest structure and the analysis tools. The database stores pre-computed annotation information from the entire call forest, allowing queries to retrieve complete dependency information without traversing the full call forest structure. This intermediary enables complete information retrieval while maintaining low computational complexity during query operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary annotation propagation to populate the database with complete dependency information. This one-time comprehensive analysis stores all necessary annotation data, allowing subsequent analyses to retrieve information efficiently without re-performing the full propagation process.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If annotations are propagated to all parent nodes up to root nodes, then the visibility of protocol usage and errors is improved, but the data processing volume increases

Engineering Contradiction:
Improvevisibility of protocol usage and errorsVSAvoidvolume of propagated annotation data
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent implements selective annotation propagation where different types of annotations (e.g., protocol usage, errors, warnings) are propagated to different extents based on their relevance and priority. Critical information such as errors and security vulnerabilities are propagated to all parent nodes for maximum visibility, while less critical annotations are propagated selectively to reduce data volume.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The database serves as an intermediary that filters, aggregates, and indexes annotation data before presenting it to users. Instead of raw propagation data being directly displayed, the database processes the information to eliminate duplicates, aggregate related annotations, and prioritize critical information, reducing the effective data volume while maintaining visibility of important protocol usage and errors.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8918766B2Analysis of propagated information using annotated forests
Publication Date: 2014.12.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8918766B2 patent drawing
  • US8918766B2 patent drawing
  • US8918766B2 patent drawing

AI summary

Annotation information associated with entities of a computing system can be added to a forest generated from the entities where the structure of the forest reflects relationships between the entities. Annotations associated with a child node can be propagated to all parent nodes of the child node all the way up to one or more root nodes of the annotated forest. Annotations associated with a child node can be propagated to a specified depth or place or at nodes with one or more particular characteristics or annotations. The propagation can be performed on-demand to all or some subset of nodes. The annotated forest can be analyzed to determine nodes to which a set of conditions apply.