Multi-phase Code Analysis System for Real-time Issue Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing analysis tools for detecting application correctness issues are limited as they only analyze compiled code, lack integration with primary development tools, and do not provide real-time feedback or automated solutions, leading to inefficiencies in identifying and addressing performance and other issues during the development process.

Innovation Solution

The system integrates with editors, compilers, and debuggers to provide real-time feedback and automated solutions by analyzing code at design-time, compile-time, and run-time, using a rule-based approach to identify issues and offer guidelines and recommended fixes, with the ability to automate the application of these solutions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If existing analysis tools are used to detect application correctness issues, then some issues can be identified, but the detection fidelity is very low and many issues fall through the cracks

Engineering Contradiction:
Improvedetection fidelityVSAvoideffectiveness in identifying issues
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the code analysis process into multiple distinct phases: design-time analysis of source code, compile-time analysis of intermediate code, and run-time analysis of executable code. Each phase uses specialized analyzers optimized for that specific stage, thereby improving detection fidelity without overwhelming the development process. This segmentation allows each analyzer to focus on specific issue types appropriate to its phase, reducing false negatives.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary analysis actions at design-time by analyzing source code before compilation occurs. This early detection phase identifies potential correctness issues, performance problems, and security vulnerabilities in the source code itself, allowing developers to correct issues before they manifest in compiled or runtime environments. This preliminary action significantly improves detection fidelity by catching issues at their origin.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If analysis tools operate only at compile time, then code can be analyzed in compiled form, but real-time feedback during development is not provided

Engineering Contradiction:
Improvefeedback delayVSAvoidintegration with development workflow
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The patent transforms the static, batch-oriented analysis process into a dynamic, continuous process that adapts to different development stages. The system dynamically switches between design-time, compile-time, and run-time analysis modes based on the current development phase. This dynamic approach provides real-time feedback during coding activities while seamlessly integrating with the natural development workflow, eliminating both delay and integration friction.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements multi-phase feedback loops where analysis results are immediately returned to developers at each stage. Design-time analyzers provide feedback in the source code editor, compile-time analyzers provide feedback during the build process, and run-time analyzers provide feedback during execution. This continuous feedback mechanism eliminates delays by providing immediate guidance to developers throughout the entire development lifecycle.

Inventive Principle:
Principle #23Feedback

3Reliability

If separate analysis steps are added to the development path, then code analysis can be performed, but the development process becomes more complex and requires manual interpretation

Engineering Contradiction:
Improvecode qualityVSAvoiddevelopment process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the code analysis functionality directly into the existing development environment tools that developers already use. The analyzers are integrated into the IDE, build system, and runtime execution environment, combining multiple functions (coding, building, running, and analyzing) into a unified workflow. This merging eliminates the need for separate analysis steps while maintaining high code quality through continuous automated analysis.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements self-service automation where the analysis system automatically detects issues, provides diagnostic information, and even applies corrections without requiring manual developer intervention. The system serves itself by automatically interpreting analysis results and taking corrective actions, such as fixing common bugs or suggesting optimizations, thereby reducing development process complexity while maintaining high reliability through automated quality assurance.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10339032B2System for monitoring and reporting performance and correctness issues across design, compile and runtime
Publication Date: 2019.07.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10339032B2 patent drawing
  • US10339032B2 patent drawing
  • US10339032B2 patent drawing

AI summary

Technologies are disclosed for providing developers with rule output indicating that issues are or may be present in the code they are developing. Such rule output can include or be accompanied by guidelines and/or best practices structured to aid developers in becoming aware of and resolving the issues. In one example, this involves identifying the issues, making available a mechanism of further investigating the issues, and providing best practices and/or recommended solutions for the issues. Finally, the technologies disclosed may automate application of the recommended solutions. The notifications and accompanying guidance/automation and the like can be provided at design-time, compile-time, and/or run-time with the notifications and accompanying guidance/automation integrated into editors, compilers, debuggers, and other development environment tools providing true real-time and in situ development experience.