Program Inspectors for Framework Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging software applications that utilize third-party frameworks or libraries is challenging due to the complexity of the code and the lack of assistance from traditional debuggers, which often require developers to understand the underlying code and its usage, leading to time-consuming and impractical debugging processes.

Innovation Solution

A debugging environment with dynamic program inspectors that can be invoked from within a debugger to inspect the runtime state of objects or code sets, providing prioritized feedback and potential remedies for identified issues, allowing developers to focus on higher-level operations rather than low-level details.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional debuggers are used to debug third-party framework code, then developers can inspect code execution, but the debugging process becomes time-consuming and impractical due to code complexity and lack of framework-specific assistance

Engineering Contradiction:
Improvedebugging effectivenessVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces program inspectors as intermediary tools that mediate between the developer and the complex third-party framework code. These inspectors specialize in analyzing specific framework components and provide targeted feedback, acting as a bridge that translates complex code execution details into actionable debugging information without requiring developers to deeply understand the underlying framework implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The debugging system is segmented into multiple specialized program inspectors, each responsible for analyzing specific aspects or components of the framework code. Instead of using a single general-purpose debugger, the system divides the debugging task into multiple focused inspections that can be independently executed and combined, making the overall debugging process more efficient and targeted.

Inventive Principle:
Principle #1Segmentation

2Productivity

If developers use frameworks and libraries to build software products, then development productivity increases, but debugging becomes more difficult due to lack of understanding of underlying code

Engineering Contradiction:
Improvesoftware development speedVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Program inspectors serve as intermediaries that handle the complexity of framework code analysis, allowing developers to work with high-level abstractions while the inspectors manage the underlying code complexity. The inspectors translate complex code structures into understandable debugging information, maintaining the productivity benefits of framework usage while mitigating the debugging difficulties.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The program inspectors perform self-service by automatically analyzing framework code and identifying issues without requiring developer intervention or deep understanding of the code. The inspectors independently execute analysis routines, generate reports, and provide recommendations, freeing developers to focus on high-level application logic while the inspection system handles the complex code analysis autonomously.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If developers inspect runtime state of framework objects manually, then they can identify bugs, but the process requires extensive knowledge of the underlying code and framework mechanics

Engineering Contradiction:
Improvebug detection accuracyVSAvoiddebugging ease
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The program inspectors act as intermediaries that perform the complex task of runtime state inspection automatically. Instead of requiring developers to manually examine runtime variables and code execution, the inspectors intercept and analyze runtime state information, translating it into meaningful debugging insights that maintain high detection accuracy while significantly improving ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical manual inspection process with an automated computational system. The program inspectors use automated analysis routines and algorithms to examine runtime state, substituting the manual mechanical process of developer inspection with an automated system that provides consistent, accurate results without requiring developer expertise in framework internals.

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

Data Source

PatentUS8972954B2Debugging method using program inspectors to debug programs developed using frameworks and libraries
Publication Date: 2015.03.03 ADOBE INC
  • US8972954B2 patent drawing
  • US8972954B2 patent drawing
  • US8972954B2 patent drawing

AI summary

A debugging method for use with computer programs that may include a number of program components such as objects within a software framework. The debugging method includes providing a debugging environment with a debugger that generates debugging information, including runtime state information, for each of the program components. The method includes identifying one of the program components for inspection within the debugging environment. The method includes using an inspector selection module to select a set of program inspectors to perform the inspection of the identified program component, e.g., by first determining the type of object or program component that has been identified or based upon a type of issue being debugged. The method includes performing the inspection with these program inspectors or scripts that each define a particular potential user error or nonstandard usage of an object, and outputting a report of the programming issues identified by the program inspectors.