Identifying and quantifying architectural debt and decoupling level: a metric for architectural maintenance complexity
US-2018374024-A1 · Dec 27, 2018 · US
US11422800B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11422800-B2 |
| Application number | US-201616063501-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 19, 2016 |
| Priority date | Dec 18, 2015 |
| Publication date | Aug 23, 2022 |
| Grant date | Aug 23, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Groups of architecturally connected files may incur and accumulate high maintenance costs as architectural debts. To quantify such debts, architectural debt, which is a term used herein, may be identified, quantified, measured, and modeled. A history coupling probability matrix for this purpose may search for architecture debts through the lens of 4 patterns of prototypical architectural flaws shown to correlate with reduced software quality. Further, a new architecture maintainability metric—Decoupling Level (DL)—measures how well the software can be decoupled into small and independently replaceable modules. The DL metric opens the possibility of quantitatively comparing maintainability between different projects, as well as monitoring architecture decay throughout software evolution. Decoupling Level may be the only software maintainability metric that bears similarity with other metrics used in everyday life, such as the centimeter, in that it allows managers to monitor, evaluate, and compare software projects and their evolution.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method for improving a computer program's quality, the computer-implemented method comprising: identifying the computer program's quality corresponding to a measure of the computer program's maintainability, wherein the computer program's maintainability is measured using a decoupling level metric corresponding to how the computer program can be decoupled into small and independently replaceable modules, wherein the decoupling level metric for the computer program is automatically computed based on at least two inputs: (1) a dependency file comprising dependency relations among modules of the computer program; and (2) a clustering file that contains design rule hierarchy (DRH) clustering information for the modules of the computer program, wherein the DRH clustering information for the modules of the computer program comprises information regarding the small and independently replaceable modules in a layer within a hierarchical structure of the DRH, wherein the decoupling level metric for the computer program is automatically computed for a layer within the hierarchical structure of the DRH based on all the small and independently replaceable modules within the layer of the hierarchical structure of the DRH, and wherein the decoupling level metric for the computer program depends on a size of the small and independently replaceable modules; generating the dependency file and the clustering file as the at least two inputs to automatically compute the decoupling level metric for the computer program; monitoring degradation of an architecture of the computer program over time based on the decoupling level metric for the computer program; and performing maintainability tasks for the computer program to avoid degradation of the architecture of the computer program over time. 2. The computer-implemented method of claim 1 , wherein improved maintainability corresponds with a higher number of the small and independently replaceable modules than a number of the small and independently replaceable modules absent the improved maintainability. 3. The computer-implemented method of claim 1 , wherein improved maintainability corresponds with a smaller file size of the small and independently replaceable modules than a file size of the small and independently replaceable modules absent the improved maintainability. 4. The computer-implemented method of claim 1 , wherein the decoupling level metric corresponding to how the computer program can be decoupled into the small and independently replaceable modules is defined as a decoupling level and the small and independently replaceable modules are separated into layers, and wherein the decoupling level is a sum of all decoupling levels of the separated layers. 5. The computer-implemented method of claim 1 , wherein the dependency file is a design structure matrix (DSM) file. 6. The computer-implemented method of claim 1 , wherein the dependency file is generated from a computer program source code. 7. The computer-implemented method of claim 6 , wherein the computer program source code is reverse engineered. 8. The computer-implemented method of claim 1 , wherein the decoupling level metric for the computer program comprises a sum of decoupling level metrics for layers within the computer program. 9. The computer-implemented method of claim 1 , further comprising: measuring maintainability of a plurality of different computer programs; comparing maintainability of the plurality of different computer programs; and determining a health status of a specific computer program among the plurality of different computer programs based on a result of the comparison.
Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling · CPC title
Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)} · CPC title
Workflow analysis · CPC title
Prevention of errors by analysis, debugging or testing of software · CPC title
using software metrics · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.