Modularization Evaluator for Software Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods lack a comprehensive approach to accurately measure and analyze the modularization quality of software systems, particularly in legacy applications, leading to degradation over time due to ad-hoc changes that disregard modularity principles, making it difficult for managers to identify and address issues effectively.
Innovation Solution
A modularization evaluator is introduced that assesses software source code using multiple perspectives, including structural, architectural, size, and similarity of purpose, employing indices such as model interaction index, layer organization index, and concept domination metric to evaluate modularization quality and track changes over time, providing insights into preservation or degradation of modularity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software systems are maintained and enhanced over time, then functionality and adaptability improve, but modularization quality degrades due to ad-hoc changes
Solution Approach 1:
The patent implements automated feedback mechanisms by continuously measuring modularization quality metrics (cohesion, coupling, depth of inheritance) and providing this information to developers. This feedback loop enables teams to understand the impact of their changes on system modularity and adjust their development practices accordingly, preventing gradual degradation while maintaining adaptability.
Solution Approach 2:
The patent applies preliminary action by establishing modularization quality thresholds and guidelines before development begins. Review processes are configured to check against these pre-defined standards, allowing teams to prevent modularity degradation before it occurs rather than reacting to it later.
2Measurement precision
If comprehensive modularization metrics are implemented, then measurement precision improves, but device complexity increases due to multiple perspectives and indices
Solution Approach 1:
The patent segments the complex evaluation task into distinct, manageable perspectives (structural, architectural, size, similarity of purpose), each with its own specific metrics. This segmentation allows the system to comprehensively measure modularization quality while keeping each individual measurement component simple and understandable.
Solution Approach 2:
The patent creates a universal evaluation framework that handles multiple types of modularization assessments through a single integrated system. The evaluator can measure cohesion, coupling, inheritance depth, and other metrics using a common architecture, reducing overall system complexity compared to implementing separate tools for each metric.
3Measurement precision
If multiple modularization perspectives are evaluated, then measurement comprehensiveness improves, but loss of time increases due to extensive analysis required
Solution Approach 1:
The patent implements self-service by having the evaluation system automatically instrument and measure modularization quality without requiring manual intervention. The system autonomously collects data, computes metrics across all perspectives, and generates reports, eliminating the need for time-consuming manual code analysis while maintaining comprehensive evaluation.
Solution Approach 2:
The patent applies preliminary action by pre-computing and caching intermediate results during the evaluation process. By preparing data structures and metrics in advance rather than calculating everything from scratch during analysis, the system significantly reduces the time required for comprehensive multi-perspective evaluation.
Data Source
AI summary
Quality of modularization of source code is tested using different perspectives such as a structural modularity perspective, an architectural modularity perspective, a size perspective, and a similarity of purpose perspective. A history of changes in modularization may be kept such that the degree to which given source code is well-modularized can be determined over time. The changes made to the code by individual programmers may be kept, such that the degree to which their coding enhanced or harmed modularization may be tracked.


