Modular Software Architecture Recovery Using Weighted Dependency Clustering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software architecture recovery methods struggle with inaccuracies, inefficiencies, and high labor costs in recovering modular software architecture, particularly for large and complex systems, and fail to account for multiple types of inter-module dependencies, leading to potential errors and suboptimal software design.
Innovation Solution
A method utilizing a processor unit to analyze source code repositories and storage databases to detect various types of inter-module dependencies, including structural, evolutionary, semantic, dynamic, and external dependencies, and combine them using weight coefficients to form accurate modular software architecture clusters.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If software architecture recovery is performed manually for large and complex systems, then accuracy can be maintained, but labor cost and time consumption increase significantly
Solution Approach 1:
The patent introduces an automated software architecture recovery system that acts as an intermediary between the source code and the architecture documentation. This system uses machine learning models and dependency analysis algorithms to automatically generate architecture documentation from source code, eliminating the need for manual recovery while maintaining high accuracy through multiple analysis dimensions including structural, behavioral, and dependency relationships
Solution Approach 2:
The patent replaces manual mechanical analysis methods with automated computational systems. Machine learning models, static code analysis tools, and dynamic tracing mechanisms substitute human experts in analyzing source code dependencies and generating architecture documentation, dramatically improving productivity while maintaining measurement precision through systematic automated processes
2Device complexity
If clustering is performed based on a single type of dependency (e.g., code dependencies), then the process is simple, but the recovery accuracy decreases due to overlapping clustering results from different dependency types
Solution Approach 1:
The patent merges multiple dependency analysis results (structural dependencies, behavioral dependencies, and evolutionary dependencies) into a unified clustering framework. By combining these different dependency types with weighted integration, the system resolves overlapping clustering results and achieves more accurate module grouping that reflects the true architectural structure, while managing complexity through systematic integration procedures
Solution Approach 2:
The patent creates a composite dependency model that integrates multiple dependency types (structural, behavioral, evolutionary) similar to how composite materials combine different properties. This composite approach allows the system to leverage the strengths of each dependency type while compensating for their individual weaknesses, resulting in more accurate and robust module clustering
3Reliability
If all modules are placed in the same cluster to maximize intra-cluster dependency, then inter-cluster dependency is minimized, but modularity principle is violated and software architecture is degraded
Solution Approach 1:
The patent changes the parameters of the clustering objective function by introducing multiple dependency types (structural, behavioral, evolutionary) and their respective weights. This multi-dimensional parameter approach prevents the trivial solution of placing all modules in one cluster, as the system must now satisfy multiple competing dependency relationships simultaneously, thereby preserving modularity while minimizing inter-cluster dependencies
Solution Approach 2:
The patent introduces dynamic weighting mechanisms that adjust the importance of different dependency types based on the specific software system being analyzed. This dynamic approach allows the clustering process to adapt to different architectural patterns and dependency characteristics, preventing degenerate solutions while maintaining appropriate modularity for each specific case
Data Source
AI summary
A method for providing recovery of modular software architecture using a processor unit that is configured to access a source code repository comprising the source codes of software consisting of a plurality of modules and configured to access a storage database comprising the update history of the source codes of the software.
