Automated Dependency Analysis for Legacy Software Modularization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modularizing large legacy software systems is challenging due to unclear and voluminous interdependencies between modules, which are often not well documented, requiring manual analysis and tedious labor to recognize and manage these dependencies effectively.
Innovation Solution
A hierarchical model is created to arrange software system components, with a tool analyzing class files for references and generating surrogate files for unacceptable dependencies, allowing the system to be compiled modularly and providing reports for engineers to address issues.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If manual analysis is used to recognize interdependencies, then dependency information can be captured, but the process requires tedious labor and is time-consuming
Solution Approach 1:
The patent replaces manual mechanical analysis with automated computer-based tools that parse code files, execute queries, and generate dependency graphs. The system automatically extracts interdependency information through computational processes rather than human manual review, significantly reducing time while maintaining information accuracy.
Solution Approach 2:
The system enables self-service by automatically analyzing code bases and generating dependency documentation without requiring manual intervention. The tool autonomously queries databases, processes code files, and produces comprehensive dependency information, allowing the system to serve itself rather than requiring human analysts.
2Ease of manufacture
If modules are built in separate independent modules, then changes are easier to implement and maintain, but interdependencies become voluminous and not well understood
Solution Approach 1:
The system provides feedback by automatically generating and maintaining comprehensive dependency documentation that reflects the actual interrelationships between modules. The tool continuously queries the code base and updates dependency graphs, providing real-time feedback about module interactions and enabling better understanding of voluminous interdependencies.
Solution Approach 2:
The patent introduces an intermediary dependency graph representation that mediates between the complex reality of module interdependencies and the need for manageable documentation. This intermediate layer organizes and summarizes voluminous interdependency information into structured, understandable formats without losing accuracy.
3Device complexity
If dependency information is not well documented, then system complexity is reduced, but developers cannot easily understand how changes affect other components
Solution Approach 1:
The system replaces manual dependency detection with automated computational tools that parse code files, execute queries against databases, and generate comprehensive dependency documentation. This mechanical substitution enables thorough analysis of complex interrelationships without increasing perceived system complexity.
Solution Approach 2:
The patent adds a new dimensional layer of dependency graph visualizations and structured documentation that organizes complex interrelationships in multiple dimensions. This additional dimension makes it easier to detect and measure dependencies by presenting them in organized, visual formats rather than raw complex data.
Data Source
AI summary
Systems and methods are described for capturing and utilizing specific module dependency information. A hierarchical model can be created to arrange the components an existing software system in a particular hierarchy. The model defines a priority of dependencies among the components. A tool is provided for analyzing each class file of the system for references to other class files and determining, for each said class file, whether each reference is acceptable according to the hierarchical model. Once the class files and references have been analyzed, a surrogate class file can be automatically generated for the references that are determined to be unacceptable according to the hierarchical model. This process can utilize white lists and black lists associated with the class files, where the white lists specify modules to which references are acceptable and the black lists specify modules to which references are unacceptable.


