Automated Data Flow Discovery in Application Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods are inefficient for tracking the execution of code from user interactions to the backend and end user in large code bases, particularly due to complex data flows and lack of automated approaches, leading to increased debugging time.

Innovation Solution

A method and system for automatically discovering application components that populate a user interface element by building a directed graph from application code, identifying matching code and data store elements, and creating a map of trees using Natural Language Processing (NLP) techniques to trace data flows across application layers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If manual documentation is written to track data flows, then understanding of code execution is improved, but time consumption and maintenance burden increase significantly

Engineering Contradiction:
Improvedata flow tracking informationVSAvoiddocumentation time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system enables self-service by automatically generating data flow tracking information through instrumentation of the codebase. The framework instruments backend code to capture data flow information, eliminating the need for manual documentation while providing up-to-date tracking data automatically

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by instrumenting the codebase during the development phase rather than requiring post-hoc manual documentation. The data flow tracking infrastructure is built in advance, allowing automatic generation of tracking information as code is executed

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If search in IDE is used to trace code execution, then some code paths can be found, but comprehensive tracking across multiple layers is insufficient

Engineering Contradiction:
Improvecode execution trackingVSAvoidautomated tracking capability
Core Design Contradiction:
Loss of informationVSExtent of automation

Solution Approach 1:

The system introduces an intermediary framework that sits between the backend code and the observer. This framework instruments the code to capture data flow information and presents it through a unified interface, enabling comprehensive automated tracking that goes beyond simple IDE search capabilities

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the codebase into instrumentable units and applies tracking instrumentation systematically across different layers (frontend, backend, data storage). This segmentation allows comprehensive coverage of data flows across multiple application layers while maintaining manageability

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If clear architecture is built from scratch, then data flow tracking becomes easier, but development time and complexity increase for existing applications

Engineering Contradiction:
Improvedata flow traceabilityVSAvoidarchitecture complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system extracts data flow tracking functionality as a separate, independent framework that can be applied to existing architectures without requiring complete architectural redesign. The instrumentation layer is extracted from the core business logic, allowing tracking capabilities to be added without fundamentally changing the application architecture

Inventive Principle:
Principle #2Taking out (Extraction)

4Loss of information

If manual tracking of data flows is performed, then understanding of code paths is improved, but debugging time increases significantly

Engineering Contradiction:
Improveexecution path informationVSAvoiddebugging efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system implements feedback by automatically capturing and presenting data flow information as code is executed. The instrumentation framework provides real-time feedback about data flow paths, allowing developers to understand execution paths without manual tracking, thereby improving debugging efficiency

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9984105B2Automatic discovery of code and data stores that populate a user interface element
Publication Date: 2018.05.29 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9984105B2 patent drawing
  • US9984105B2 patent drawing
  • US9984105B2 patent drawing

AI summary

Automatically discovering application components that populate a user interface element may be provided. A directed graph may be built from an application code implementing a backend layer of an application. A code element in the application code may be identified that matches an input element of a user interface of the application. A data store element of a data store implementing data layer of the application may be identified that matches the input element. For the input element, a map of trees may be built tracing through the directed graph based on the code element and the data store element that are identified. The map of trees may be grouped based on at least matching of annotations of the trees in the map, a similarity of begin and end points of the trees in the map and matching of the end points of the trees in the map.