Feature Dependency Structure Matrix for Software Modularity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software architectural design lacks a quantitative measure to assess feature independence and modularity, making it difficult to determine if a refactoring effort is successful in improving feature delivery and maintainability.
Innovation Solution
The introduction of Feature Dependency Structure Matrix (FDSM) and Feature Decoupling Level (FDL) metrics, which analyze evolutionary dependencies among features based on revision history to quantify their independence and modularity, allowing for better assessment of feature delivery and maintainability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional DSM modeling is used to represent software dependencies, then structural dependencies among files can be visualized, but evolutionary dependencies and feature-level dependencies cannot be captured
Solution Approach 1:
The patent segments the software system into feature-level abstractions rather than file-level representations. By defining features as first-class elements in the FDSM, the model captures evolutionary dependencies at the functional level, enabling more precise measurement of feature independence while maintaining manageable complexity through hierarchical organization.
Solution Approach 2:
The patent adds a temporal dimension to dependency modeling by incorporating revision history analysis. The FDSM not only shows structural dependencies but also tracks how features have co-evolved over time, providing a multi-dimensional view that captures both spatial (structural) and temporal (evolutionary) aspects of software dependencies.
2Measurement precision
If quantitative metrics for feature independence are introduced, then feature delivery velocity and maintainability can be measured, but the complexity of analysis and interpretation increases
Solution Approach 1:
The patent implements feedback mechanisms by calculating Feature Decoupling Level (FDL) metrics that provide quantitative feedback on feature independence. These metrics enable continuous measurement and tracking of architectural quality, allowing teams to assess whether refactoring efforts are successful and whether the architecture supports feature delivery, thereby reducing analysis difficulty through systematic feedback loops.
Solution Approach 2:
The patent transforms qualitative architectural concepts into quantitative parameters through the FDL metric. By defining mathematical formulations that compute feature independence based on revision history and dependency patterns, the patent converts complex architectural assessments into measurable parameters that can be automatically calculated and compared, simplifying the detection and measurement process.
3Ease of repair
If refactoring efforts are performed to improve feature independence, then maintainability should increase, but without quantitative measures it is difficult to determine if refactoring was successful
Solution Approach 1:
The patent provides feedback on refactoring effectiveness by comparing FDL metrics before and after refactoring activities. The quantitative measurement of feature independence enables objective assessment of whether refactoring successfully improved architectural quality, allowing teams to verify maintainability improvements through measurable changes in feature decoupling levels.
4Productivity
If features are made highly independent through modular design, then feature delivery velocity should improve, but the complexity of managing multiple independent modules increases
Solution Approach 1:
The patent segments the software architecture into independent feature modules that can be developed and delivered separately. By organizing the system around feature-level abstractions with well-defined boundaries, the FDSM enables teams to manage multiple independent modules effectively, reducing the complexity burden through clear modular organization while improving feature delivery velocity through independent development streams.
Data Source
AI summary
Enabling quick feature delivery is essential for product success and is therefore a goal of software architecture design. But how may we determine if and to what extent an architecture is “good enough” to support feature addition and modification, or determine if a refactoring effort is successful in that features may be added more easily? The applications may use Feature Space and Feature Dependency, derived from a software project's revision history that capture the dependency relations among the features of a system in a feature dependency structure matrix (FDSM), using features as first-class design elements. The applications may also use a Feature Decoupling Level (FDL) metric that may be used to measure the level of independence among features.


