IDE Code Change Impact Prediction via Runtime Intelligence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in assessing the performance impact of code changes within integrated development environments (IDEs), leading to inefficient code and extended technology downtime due to the difficulty in identifying the cause of issues, which results in poor customer experiences and prolonged debugging processes.

Innovation Solution

An integrated development environment (IDE) is enhanced with features that determine and display user-understandable performance impact indications of code changes, providing runtime intelligence through predictive analytics and performance metrics at the class and method level, enabling developers to proactively identify and address issues before production.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually assess code performance through traditional debugging methods, then they can identify functional errors, but the process becomes cumbersome and extends technology downtime

Engineering Contradiction:
Improvecode functionalityVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary performance impact analysis on code changes before they are deployed to production. By evaluating the performance implications of code modifications in advance, the system enables developers to identify and address performance issues during the development phase, preventing them from reaching production and thereby reducing debugging time and technology downtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides automated feedback to developers about the performance impact of their code changes. This feedback mechanism delivers actionable insights directly to developers, enabling them to understand performance implications without manual assessment, thus reducing the time required for performance evaluation and debugging.

Inventive Principle:
Principle #23Feedback

2Reliability

If developers use traditional code assessment methods, then they can determine if code works, but they cannot identify performance inefficiencies such as large increases in processing latency

Engineering Contradiction:
Improvecode functionalityVSAvoidperformance measurement
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The system replaces manual performance assessment mechanisms with automated performance impact analysis. By using computational methods to automatically evaluate performance metrics such as processing latency, the system provides precise performance measurements without requiring manual intervention, thereby enhancing measurement precision while maintaining functional assessment capabilities.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If developers deploy code at high velocity using micro-service architectures, then productivity increases, but the ability to assess performance impact of code changes deteriorates

Engineering Contradiction:
Improvecode deployment velocityVSAvoidperformance assessment complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system enables self-service performance impact assessment by automatically analyzing code changes and providing performance insights without requiring complex manual assessment processes. This automated approach allows developers to maintain high deployment velocity while obtaining accurate performance evaluations, as the system handles the complex analysis tasks independently.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10635566B1Predicting code change impact within an integrated development environment
Publication Date: 2020.04.28 CISCO TECHNOLOGY INC
  • US10635566B1 patent drawing
  • US10635566B1 patent drawing
  • US10635566B1 patent drawing

AI summary

In one embodiment, an integrated development environment (IDE) is maintained on a computing device for managing software code for one or more software programs. At the IDE on the computing device, one or more code changes to the software code are determined between a given version of the software code and a subsequent version of the software code, and then a performance impact of each of the one or more code changes is determined. The IDE (or IDE plugin) prepares user-understandable indications of the performance impact of the one or more code changes, and displays the user-understandable indications of the performance impact in a graphical user interface (GUI) when a respective code change is displayed in the GUI.