IP Library Granted Patent US 8,473,907
Granted Patent B1
US 8,473,907 · App. 12/183,988 · Granted Jun 25, 2013

Computer programming adaptive analysis

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 8,473,907
App. No.
12/183,988
Granted
Jun 25, 2013
Kind
B1
Abstract

A method and apparatus for evaluating quality of a codebase is provided. The evaluation is provided by developing metrics, indicators, and indices for all levels of a codebase to provide indicators of quality and to enable identification of code blocks that need to be improved.

Claims (35)

1. A method of evaluating a code base including a hierarchy of code modules, the method comprising:

evaluating a first of the code modules at a first level of the hierarchy using a metric for measuring programming quality of a code module, deriving a score for the metric for the first of the code modules;

evaluating a second of the code modules at a second level of the hierarchy using the metric, deriving a score for the metric for the second of the code modules;

storing the score for the metric for the first of the code modules and the score for the metric for the second of the code modules in a first level of an evaluation hierarchy;

normalizing the score for the metric for the first of the code modules and the score for the metric for the second of the code modules and storing the results in a second level of the evaluation hierarchy;

evaluating one or more indicators based on the normalized score for the metric for the first of the code modules and the normalized score for the metric for the second of the code modules and storing the evaluation results in a third level of an evaluation hierarchy;

calculating one or more index values based on the evaluation results of the one or more indicators and based on evaluation results of one or more other indicators;

calculating a super index value based on the one or more index values and based on one or more other index values;

evaluating programming quality of the code base, based at least in part on the super index value; and

displaying the super index value to a user on a computer.

2. The method of claim 1 , wherein the evaluating the first of the code modules and evaluating the second of the code modules are performed independently of other code modules of the hierarchy of code modules.

3. The method of claim 1 , wherein the metric includes calculating at least one of a number of lines of code in the associated code module, a number of nested loops in the associated code module, or a number of lines of comment in the associated code module.

4. The method of claim 1 , wherein the metric includes measuring code access as a function of at least one of time and diversity of individuals associated with the code access.

5. The method of claim 1 , wherein the first metric includes measuring risks, other indicators, indices, or metrics with reference to the hierarchy.

6. The method of claim 1 , wherein the first metric includes measuring risk indices or other indicators, metrics, indices and probability distribution related to the risk indices.

7. An apparatus to evaluate a code base including a hierarchy of code modules, the apparatus comprising:

memory to store instructions; and

one or more processors which, when executed by the processor perform operations including:

evaluating a first of the code modules at a first level of the hierarchy using a metric for measuring programming quality of a code module, deriving a score for the metric for the first of the code modules;

evaluating a second of the code modules at a second level of the hierarchy using the metric, and deriving a score for the metric for the second of the code modules; and

storing the score for the metric for the first of the code modules and the score for the metric for the second of the code modules in a first level of an evaluation hierarchy;

normalizing the score for the metric for the first of the code modules and the score for the metric for the second of the code modules and storing the results in a second level of the evaluation hierarchy;

evaluating one or more indicators based on the normalized score for the metric for the first of the code modules and the normalized score for the metric for the second of the code modules and storing the evaluation results in a third level of an evaluation hierarchy;

calculating one or more index values based on the evaluation results of the one or more indicators and based on evaluation results of one or more other indicators;

calculating a super index values based on the one or more index values and based on one or more other index value;

evaluating programming quality of the code base, based at least in part on the super index value.

8. An apparatus to evaluate a code base including a hierarchy of code modules, the apparatus comprising:

means for evaluating a first of the code modules at a first level of the hierarchy using a metric for measuring programming quality of a code module, deriving a score for the metric for the first of the code modules;

means for evaluating a second of the code modules at a second level of the hierarchy using the metric, deriving a score for the metric for the second of the code modules;

means for storing the score for the metric for the first of the code modules and the score for the metric for the second of the code modules in a first level of an evaluation hierarchy;

means for normalizing the score for the metric for the first of the code modules and the score for the metric for the second of the code modules and storing the results in a second level of the evaluation hierarchy;

means for evaluating one or more indicators based on the normalized score for the metric for the first of the code modules and the normalized score for the metric for the second of the code modules and storing the evaluation results in a third level of an evaluation hierarchy;

means for calculating one or more index values based on the evaluation results of the one or more indicators and based on evaluation results of one or more other indicators;

means for calculating a super index value based on the one or more index values and based on one or more other index values; and

means for evaluating programming quality of the code base, based at least in part on the super index value.

Assignments (6)
SECURITY INTEREST Recorded Sep 30, 2024
From: BLACK DUCK SOFTWARE, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 069083/0149 →
CHANGE OF NAME Recorded Jul 30, 2024
From: SOFTWARE INTEGRITY GROUP, INC.
To: BLACK DUCK SOFTWARE, INC.
Reel/Frame 068191/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: SYNOPSYS, INC.
To: SOFTWARE INTEGRITY GROUP, INC.
Reel/Frame 066664/0821 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 034514 FRAME: 0496. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 3, 2015
From: COVERITY, INC
To: SYNOPSYS, INC
Reel/Frame 035121/0570 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2014
From: COVERITY, INC
To: SYNOPSIS, INC
Reel/Frame 034514/0496 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2008
From: ZANDI, AHMAD; BRAJE, TIMOTHY M.; KING, ALEXANDER; KUNZ, SUSAN MARIE; MANICA, DARIN; NASH, JAMES W.; RYAN, NATHAN DERREK
To: COVERITY, INC.
Reel/Frame 021645/0648 →