User Augmented Reverse Engineering for Codebase Visualization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphical representation tools for codebases and databases are limited in their ability to handle complex codebases, fail to determine the actual function of a codebase, and struggle to locate bugs, especially when encountering boundary conditions such as memory limitations or external dependencies, and lack user interaction for focused representation.

Innovation Solution

User augmented reverse engineering allows users to focus graphical representations by selecting specific elements, pause or resume generation, and input solutions to boundary conditions, enabling the system to continue generating a representation even when encountering limitations like memory constraints or external dependencies, by prompting users for input and providing interfaces for user-defined solutions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static analysis is used to generate graphical representations, then the representation can be created without running the code, but the analysis cannot resolve boundaries, determine actual function, or locate bugs

Engineering Contradiction:
Improvespeed of generating graphical representationVSAvoidaccuracy of codebase analysis
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent combines static analysis and runtime analysis into a hybrid approach. The system performs static analysis to generate initial graphical representations and identifies boundaries, then uses runtime analysis to resolve those boundaries by observing actual program execution. This merging allows the system to maintain the speed advantage of static analysis while gaining the accuracy of runtime observation for determining actual functions and locating bugs.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces an intermediary component that acts as a bridge between static and runtime analysis. This intermediary identifies boundaries during static analysis and selectively applies runtime analysis only to those boundary areas, rather than performing full runtime analysis. This mediator approach resolves the contradiction by using runtime analysis only where needed to improve accuracy while maintaining overall efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If runtime analysis is used to determine actual function, then the actual behavior can be observed, but the analysis may fail if bugs prevent complete execution and only follow specific courses of action

Engineering Contradiction:
Improveaccuracy of function determinationVSAvoidcompleteness of graphical representation
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary static analysis before runtime analysis to identify boundaries and potential issues. By preparing the analysis plan in advance and identifying areas that need runtime observation, the system can focus runtime resources on critical paths and handle execution failures more effectively. This preliminary action ensures that even if runtime execution fails at certain points, the system has already gathered valuable information from static analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent accepts that runtime analysis may only follow specific courses of action due to bugs or execution failures, and treats this partial action as sufficient for certain analysis goals. Rather than requiring complete execution coverage, the system uses the partial runtime data obtained to resolve specific boundaries and complement the static analysis results, achieving reliable function determination without needing full execution completeness.

Inventive Principle:
Principle #16Partial or excessive action

3Quantity of substance

If the graphical representation includes all elements of a large codebase, then complete coverage is achieved, but the representation becomes difficult to navigate and focus on specific elements

Engineering Contradiction:
Improvecompleteness of codebase coverageVSAvoidusability of graphical representation
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent segments the graphical representation into multiple views or levels of detail. Instead of displaying all codebase elements in a single overwhelming diagram, the system divides the representation into manageable segments that can be explored individually. Users can navigate between different segments or focus on specific areas of interest while maintaining access to the complete codebase structure when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds navigational dimensions to the graphical representation, allowing users to explore the codebase structure through multiple layers or levels. Rather than presenting a flat, two-dimensional diagram containing all elements, the system introduces additional navigational dimensions that enable users to drill down into specific areas or overview the entire codebase, making the large-scale representation more usable without sacrificing completeness.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Productivity

If the analysis process is fully automated, then efficiency is improved, but the system cannot handle boundary conditions requiring user input or judgment

Engineering Contradiction:
Improveautomation efficiencyVSAvoidability to handle boundary conditions
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic analysis system that can switch between fully automated operation and interactive user-assisted operation based on the situation. During normal analysis, the system operates automatically for efficiency. When boundary conditions are encountered that require user judgment or input, the system dynamically transitions to an interactive mode, allowing users to provide input, then returns to automated operation. This dynamic adaptability maintains high productivity while handling complex boundary conditions effectively.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2583171B1User augmented reverse engineering
Publication Date: 2020.06.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2583171B1 patent drawingFigure 1
  • EP2583171B1 patent drawingFigure 2
  • EP2583171B1 patent drawingFigure 3

AI summary

Disclosed herein is user augmented reverse engineering, where, in one embodiment, during the generation of a graphical representation of a codebase, database, binary and the like, users may be provided with an option to 'focus.' For example, during the graphical generation of a large codebase, a user may select one or things to limit the extent of the graphical representation generation. In another embodiment, a graphical generation may encounter one or more pre-defined boundary conditions. Upon encountering a boundary condition, the generation of the graphical representation may determine that it is unable to complete the graphical generation within a pre-defined set of requirements without additional instructions. Thus, the graphical generation may complete and then prompt a user for solutions to any boundary conditions it has encountered, or the generation may pause at each boundary condition it encounters and prompt a user for a solution to the boundary condition.