Feature decoupling level
AssigneesDrexel University, University of Hawaii
InventorsYuanfang Cai, Ran Mo, Frederick Kazman
Life of this patent
Estimating the term…
Abstract
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.
Claims14
A method that monitors and improves, via a processor, a computer program quality by measuring maintainability of architecture and identifying poor performing architecture modules using the following steps:
- identifying a computer program quality corresponding to a measure of a feature decoupling level of a computer program, wherein the feature decoupling level comprises a level of dependence among computer program features over time;
- identifying the computer program quality based on a Feature Dependency Structure Matrix (FDSM), which is a tuple <FS, FSDep>, where the FS is a set of feature spaces and the FSDep is a dependency relation of the set of feature spaces, wherein the FDSM captures evolutionary feature dependencies and time sequence and shows a relationship that files within a same feature change together more often than files not within the same feature change, wherein two features that do not share files are identified as mutually independent in the FDSM;
- and
- redesigning the computer program based on the measure.
A method for improving, via a processor, a computer program quality by measuring maintainability of architecture and identifying poor performing architecture modules based on the following steps:
- identifying a computer program quality based on a Feature Dependency Structure Matrix (FDSM), the computer program quality corresponding to a measure of a feature addition ease of a computer program, wherein maintainability is measured using a metric corresponding to how the computer program can be decoupled into independently replaceable modules, wherein the FDSM captures evolutionary feature dependencies and time sequence and shows a relationship that files within a same feature change together more often than files not within the same feature;
- and
- redesigning the computer program based on the measure.
A method comprising:
- analyzing and improving, via a processor, a software architecture by measuring maintainability of the architecture and identifying poor performing architecture modules using the following steps:
- measuring a feature decoupling level of a computer program by creating a Feature Dependency Structure Matrix (FDSM) comprising a tuple <FS, FSDep>, where the FS is a set of feature spaces and the FSDep is a dependency relation therebetween, where feature spaces define the rows and columns within the matrix, and an indicator in an overlapping row and column indicates an evolutionary feature dependency over time, wherein the FDSM shows a relationship that files within a same feature change together more often than files not within the same feature;
- and
- redesigning the architecture based on the measure.
Dependencies are inferred from the claim text.