IP Library Granted Patent US 11,422,800
Granted Patent B2
US 11,422,800 · App. 16/063,501 · Granted Aug 23, 2022

Identifying and quantifying architectural debt and decoupling level: a metric for architectural maintenance complexity

Inventors: Yuanfang Cai (Paoli, PA); Lu Xiao (Philadelphia, PA); Frederick Kazman (Pittsburgh, PA); Ran Mo (Philadelphia, PA)
Assignee: Drexel University
G06F8/77G06F8/70G06F11/36G06F11/3616G06F17/16G06F17/18G06Q10/06G06Q10/0633G06Q10/06395
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,422,800
App. No.
16/063,501
Granted
Aug 23, 2022
Kind
B2
Abstract

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.

Claims (16)

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.

Assignments (3)
CONFIRMATORY LICENSE Recorded Oct 9, 2018
From: DREXEL UNIVERSITY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 047207/0241 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2018
From: KAZMAN, FREDERICK
To: UNIVERSITY OF HAWAII
Reel/Frame 046860/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2018
From: CAI, YUANFANG; XIAO, LU; MO, RAN
To: DREXEL UNIVERSITY
Reel/Frame 046860/0689 →
Continuity (2)
Provisional Application 62269559 · Dec 18, 2015
Related Publication 20180374024A1 · Dec 27, 2018