Cross-Language Dependency Extraction in Multi-Code Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
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.
Data Source
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.


