Cross-Language Dependency Extraction in Multi-Code Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current techniques are inefficient in extracting cross-language dependencies and estimating code change impact in software systems developed using multiple programming languages, as they focus on dependencies within individual languages and lack a comprehensive perspective across all sources of information, leading to complex and imperceptible visualization of interactions between software artifacts.

Innovation Solution

The method involves constructing dependency graphs and networks of co-committed files using predefined graph metrics to analyze and visualize cross-language dependencies, estimating code change impact, and recommending source files for bug localization without relying on meta-documentation, thereby simplifying the understanding and maintenance of multi-language systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If current techniques are used to extract dependencies within individual languages, then dependencies can be extracted for single-language systems, but cross-language dependencies cannot be effectively identified and visualization becomes complex and imperceptible

Engineering Contradiction:
Improvecross-language dependency extraction capabilityVSAvoidvisualization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the complex multi-language dependency analysis into separate single-language dependency graphs, where each graph represents dependencies within one programming language. This segmentation allows the system to handle cross-language dependencies by combining multiple simpler graphs rather than attempting to analyze all languages simultaneously, thereby reducing visualization complexity while maintaining cross-language capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer that maps dependencies across different programming languages through a common interface or abstraction. This intermediary enables cross-language dependency extraction by translating between language-specific dependency representations, making it possible to identify and visualize cross-language relationships without direct complex multi-language analysis.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If comprehensive analysis of all sources of information is performed across multiple languages, then accurate cross-language dependency extraction is achieved, but the analysis process becomes inefficient and resource-intensive

Engineering Contradiction:
Improvedependency extraction accuracyVSAvoidanalysis efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent divides the comprehensive analysis task into separate single-language dependency analyses, where each analysis focuses on one programming language independently. This segmentation maintains measurement precision by ensuring thorough analysis within each language while improving productivity by allowing parallel processing and avoiding the overhead of simultaneous multi-language analysis.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary single-language dependency analyses before combining results for cross-language dependency identification. This preliminary action allows the system to prepare language-specific dependency information in advance, making the subsequent cross-language integration more efficient while maintaining comprehensive coverage of all information sources.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If manual interpretation methods are used to understand multi-language systems, then developers can comprehend system dependencies, but the process is laborious and time-consuming

Engineering Contradiction:
Improvesystem comprehension easeVSAvoidinterpretation time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent creates visual representations (copies) of dependency relationships that mirror the actual system structure. These visualizations include node graphs and diagrams that replicate the dependency information in an easily interpretable format, allowing developers to comprehend system dependencies quickly without manual analysis while maintaining accuracy of the underlying relationships.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent replaces manual interpretation mechanisms with automated program analyzers that extract and visualize dependencies. This substitution eliminates the laborious manual process while maintaining ease of operation through automated generation of comprehensible visual representations, significantly reducing the time required for system understanding.

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

4Extent of automation

If program analyzers are used to extract dependencies and recommend changes, then automation is improved, but effectiveness decreases in large multi-language systems of systems

Engineering Contradiction:
Improvedependency extraction automationVSAvoidrecommendation accuracy
Core Design Contradiction:
Extent of automationVSReliability

Solution Approach 1:

The patent segments the automated analysis into language-specific dependency graphs, where each graph is generated by program analyzers tailored to individual programming languages. This segmentation improves reliability by ensuring accurate language-specific analysis while maintaining high automation through systematic combination of multiple language graphs for overall system recommendations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10402194B2Systems and methods for extracting cross language dependencies and estimating code change impact in software
Publication Date: 2019.09.03 INFOSYS LTD
  • US10402194B2 patent drawing
  • US10402194B2 patent drawing
  • US10402194B2 patent drawing

AI summary

The technique relates to a method, device, and non-transitory computer readable medium for extracting cross language dependencies and estimating code change impact in software based on a plurality of dependency graphs, a network of the plurality of co-committed files and one or more predefined graph metrics. This technique involves extracting source code and revision history data from repository for construction of plurality of dependency graphs and a network of plurality of co-committed files in order to determine one or more cross language dependencies and code change impact in software system built using multiple programming languages, by analyzing the dependency graphs, the network of co-committed files and one or more predefined graph metrics. Finally, the output is visualized with the help of one or more graph visualization technique.