Software Hierarchy Restructuring via Dependency Clustering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy software systems suffer from increased complexity and maintenance costs due to false dependencies between interface and implementation files, leading to longer compilation times and larger preprocessed code sizes, with existing solutions being unsuitable for large datasets and lacking user control over restructuring extent.

Innovation Solution

A method that determines dependencies between program units, represents them as bit strings, clusters correlated bit strings into partitions, and creates new interface files based on these partitions to minimize false dependencies, allowing user-controlled restructuring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If interface files include multiple program units to reduce the number of interface files, then the number of interface files decreases, but false dependencies increase and compilation time increases

Engineering Contradiction:
Improvenumber of interface filesVSAvoidcompilation time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments interface files into multiple specialized interface files based on clustering analysis of dependency patterns. Instead of having one large interface file containing all program units, the system divides them into logical groups that are included only where needed, reducing false dependencies and compilation time while maintaining the necessary number of interface files for modularity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the organizational parameter of interface files from a flat structure to a hierarchical structure based on clustering results. By analyzing dependency parameters and reorganizing program units according to their actual usage patterns, the system optimizes the balance between the number of interface files and compilation efficiency.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If interface files include all program units to ensure completeness, then coverage is improved, but preprocessed code size increases

Engineering Contradiction:
Improveinterface completenessVSAvoidpreprocessed code size
Core Design Contradiction:
ReliabilityVSWeight of stationary object

Solution Approach 1:

The patent extracts only the necessary program units into each interface file based on clustering analysis of actual dependencies. Instead of including all program units in every interface file to ensure completeness, the system selectively includes only those units that are actually needed by the corresponding implementation files, thereby reducing preprocessed code size while maintaining interface completeness where required.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If automated reorganization of code hierarchy is performed to remove false dependencies, then dependency structure is improved, but user control over restructuring extent is lost

Engineering Contradiction:
Improvedependency structureVSAvoiduser control
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent introduces feedback mechanisms that allow users to review clustering results and control the extent of restructuring. The system analyzes dependency patterns and presents reorganization options to users, who can then decide whether to accept the automated reorganization or modify it. This feedback loop maintains improved dependency structure while preserving user control over the restructuring process.

Inventive Principle:
Principle #23Feedback

4Device complexity

If graph-based algorithms are used to partition dependencies, then false dependencies are removed, but handling of large datasets becomes inefficient

Engineering Contradiction:
Improvedependency optimizationVSAvoidprocessing efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent replaces traditional graph-based algorithms with a clustering-based approach that is more efficient for large datasets. Instead of using complex graph partitioning methods that scale poorly, the system uses clustering techniques that can handle large numbers of program units and dependency relationships more efficiently, maintaining dependency optimization while improving processing efficiency for large codebases.

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

Data Source

PatentUS8032876B2Method and apparatus for restructuring a software program hierarchy
Publication Date: 2011.10.04 CADENCE DESIGN SYST INC
  • US8032876B2 patent drawing
  • US8032876B2 patent drawing
  • US8032876B2 patent drawing

AI summary

Method, apparatus, and computer readable medium for restructuring a software program hierarchy having interface files and implementation files that include the interface files are described. In one example, dependencies between program units in the interface files and the implementation files are determined. The dependencies are represented as a plurality of bit strings. Correlated bitstrings of the plurality of bit strings are clustered into a plurality of partitions. Each of the plurality of partitions is transformed into corresponding program units. New interface files are respectively created having the corresponding program units for each of the plurality of partitions.