Automated Dependency Analysis for Legacy Software Modularization

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedependency informationVSAvoidmanual analysis time
Core Design Contradiction:
Loss of informationVSLoss of time

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.

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

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveease of implementationVSAvoidinterdependency documentation
Core Design Contradiction:
Ease of manufactureVSLoss of information

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If dependency information is not well documented, then system complexity is reduced, but developers cannot easily understand how changes affect other components

Engineering Contradiction:
Improvesystem complexityVSAvoiddependency detection difficulty
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

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.

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

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.

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

Data Source

PatentUS8464208B2Capturing and utilizing specific module dependency information
Publication Date: 2013.06.11 ORACLE INT CORP
  • US8464208B2 patent drawing
  • US8464208B2 patent drawing
  • US8464208B2 patent drawing

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.