IP Library Granted Patent US 10,204,028
Granted Patent B2
US 10,204,028 · App. 14/916,691 · Granted Feb 12, 2019

Rule spaces and architecture root detection

Inventors: Yuanfang Cai (Paoli, PA); Lu Xiao (Philadelphia, PA)
Assignee: Drexel University
G06F11/3616G06F8/433G06F8/71G06F11/3604G06F8/36G06F11/3608G06F11/3692G06F17/5068
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 10,204,028
App. No.
14/916,691
Granted
Feb 12, 2019
Kind
B2
Abstract

Errors in software may be detected via the use of design rule spaces and architecture root detection. Design rule spaces may reveal multiple overlapping modular structures of a software system, and reveal structural relations among error-prone files and structural problems contributing to error-proneness. Root detection may extract a few groups of architecturally connected files, which may be connected through problematic architecture relations that propagate errors among these files, and thus influence system error-proneness. The root detector may locate the core architecturally connected file groups that contribute to the error-proneness of a system. The root detection process may, beginning with a set of error-prone files, search and link other files that are architecturally related. The output of the root detection process may be a set of design rule spaces ordered by the number of error-prone contained therein.

Claims (65)

1. A method comprising:

analyzing a plurality of design rule spaces, each of the design rule spaces comprising a dependency graph having vertices indicative of a plurality of files, wherein:

edges of the dependency graph are indicative of relationships between files of the plurality of files;

at least one of the relationships between the files of the plurality of files is indicative of a primary relation; and

the dependency graph is indicative of a design rule hierarchy based on at least one primary relation;

determining an error proneness of the plurality of files;

determining that at least two of the plurality of files have an error proneness that exceeds a threshold;

determining, based on the analyzing of the plurality of design rule spaces and the determined error proneness of the two or more of the plurality of files, a number of design rule spaces needed to cover the two or more of the plurality files; and

visually rendering an indication of the relationship between the two or more of the plurality of files.

2. The method of claim 1 , wherein:

edges of the dependency graph are indicative of a coupling of files of the plurality of files derived from a revision history.

3. The method of claim 1 , wherein:

at least one of the relationships between the files of the plurality of files is indicative of a secondary relation.

4. The method of claim 1 , further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural relations among error prone files of the plurality of files.

5. The method of claim 1 , further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural problems contributing to error proneness.

6. The method of claim 1 , further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, a bugginess among error prone files.

7. The method of claim 1 , further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural problems contributing to bugginess.

8. An apparatus comprising:

a processor; and

memory coupled to the processor, the memory comprising executable instructions that when executed by the processor cause the processor to effectuate operations comprising:

analyzing a plurality of design rule spaces, each of the design rule spaces comprising a dependency graph having vertices indicative of a plurality of files, wherein:

edges of the dependency graph are indicative of relationships between files of the plurality of files;

at least one of the relationships between the files of the plurality of files is indicative of a primary relation; and

the dependency graph is indicative of a design rule hierarchy based on at least one primary relation;

determining an error proneness of the plurality of files;

determining that at least two of the plurality of files have an error proneness that exceeds a threshold;

determining, based on the analyzing of the plurality of design rule spaces and the determined error proneness of the two or more of the plurality of files, a number of design rule spaces needed to cover the two or more of the plurality files; and

visually rendering an indication of the relationship between the two or more of the plurality of files.

9. The apparatus of claim 8 , wherein:

edges of the dependency graph are indicative of a coupling of files of the plurality of files derived from a revision history.

10. The apparatus of claim 8 , wherein:

at least one of the relationships between the files of the plurality of files is indicative of a secondary relation.

11. The apparatus of claim 8 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural relations among error prone files.

12. The apparatus of claim 8 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural problems contributing to error-proneness.

13. The apparatus of claim 8 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, bugginess among error prone files.

14. The apparatus of claim 8 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural problems contributing to bugginess.

15. A computer-readable storage medium comprising executable instructions that when executed by a processor cause the processor to effectuate operations comprising:

analyzing a plurality of design rule spaces, each of the design rule spaces comprising a dependency graph having vertices indicative of a plurality of files, wherein:

edges of the dependency graph are indicative of relationships between files of the plurality of files;

at least one of the relationships between the files of the plurality of files is indicative of a primary relation; and

the dependency graph is indicative of a design rule hierarchy based on at least one primary relation;

determining an error proneness of the plurality of files;

determining that at least two of the plurality of files have an error proneness that exceeds a threshold;

determining, based on the analyzing of the plurality of design rule spaces and the determined error proneness of the two or more of the plurality of files, a number of design rule spaces needed to cover the two or more of the plurality files; and

visually rendering an indication of the relationship between the two or more of the plurality of files.

16. The computer-readable storage medium of claim 15 , wherein:

edges of the dependency graph are indicative of a coupling of files of the plurality of files derived from a revision history.

17. The computer-readable storage medium of claim 15 , the operations further comprising:

at least one of the relationships between the files of the plurality of files is indicative of a secondary relation.

18. The computer-readable storage medium of claim 15 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural relations among error prone files.

19. The computer-readable storage medium of claim 15 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural problems contributing to error-proneness.

20. The computer-readable storage medium of claim 15 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, bugginess among error prone files.

21. The computer-readable storage medium of claim 15 , the operations further comprising:

determining, based on the analyzing of the dependency graph and the determined error proneness of the plurality of files, structural problems contributing to bugginess.

Assignments (2)
CONFIRMATORY LICENSE Recorded May 14, 2018
From: DREXEL UNIVERSITY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 046152/0870 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2016
From: CAI, YUANFANG; XIAO, LU
To: DREXEL UNIVERSITY
Reel/Frame 037892/0488 →
Continuity (2)
Provisional Application 61880289 · Sep 20, 2013
Related Publication 20160203071A1 · Jul 14, 2016