Source Code Perspective Analysis via Dynamic Event Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging and analysis of complex software systems become unwieldy due to rigid, static tagging of source code, which becomes error-prone as code grows in size and complexity, and there is a need for efficient techniques to analyze and tag source code with dynamic and potentially unbounded perspectives without recompiling.

Innovation Solution

A compiler is configured to perform perspective analysis by determining and mapping analysis perspectives to event data generated by object code, allowing for dynamic definition and updating of perspectives without recompiling the source code, and enabling the display of source code portions exhibiting specific perspectives based on user input.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If static tagging with fixed classification is used, then ease of operation is improved, but adaptability deteriorates

Engineering Contradiction:
Improveease of tagging source codeVSAvoidability to define new perspectives
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic perspective definitions that allow analysis perspectives to be modified, added, or removed at runtime without recompiling the source code. The system maintains a mapping between dynamic perspective definitions and instrumented source code, enabling flexible adaptation to changing analysis requirements while preserving the ease of operation through automated instrumentation.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If dynamic and unbounded tag space is allowed, then adaptability is improved, but device complexity deteriorates

Engineering Contradiction:
Improvedynamic perspective definitionVSAvoidcomplexity of managing tags
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary instrumentation of source code during compilation, embedding metadata and event generation capabilities into the compiled code. This preliminary action enables the system to handle dynamic perspectives at runtime without the complexity of managing tags manually, as the infrastructure is already in place to capture and classify events according to any defined perspective.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system automatically manages the mapping between dynamic perspective definitions and instrumented source code portions. Rather than requiring manual management of complex tag mappings, the system self-services by automatically associating events with the appropriate perspectives based on the compiled metadata, reducing the complexity burden on users.

Inventive Principle:
Principle #25Self-service

3Manufacturing precision

If static tagging is used, then manufacturing precision is improved, but loss of information deteriorates

Engineering Contradiction:
Improveprecision of source code classificationVSAvoidinformation about dynamic behavior
Core Design Contradiction:
Manufacturing precisionVSLoss of information

Solution Approach 1:

The patent enables dynamic perspective definitions that can capture evolving behavioral patterns in the software system. By allowing perspectives to be modified and extended at runtime, the system maintains precise classification of events while also capturing dynamic behavior information that static tagging would miss, thus preventing information loss about system evolution.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11681508B2Source code analysis to map analysis perspectives to events
Publication Date: 2023.06.20 CISCO TECHNOLOGY INC
  • US11681508B2 patent drawing
  • US11681508B2 patent drawing
  • US11681508B2 patent drawing

AI summary

Techniques to process a source code program include, by one or more processors, determining an analysis perspective is exhibited by one or more portions of the source code program based at least in part on processing the source code program and an analysis perspective definition collection. The techniques further include storing a mapping of the analysis perspective to event data that is generated by object code when executed by one or more processors of a target computing system, wherein the object code is associated with the one or more source code program portions that exhibit the analysis perspective.