IP Library Patent Application 11765224
Patent Application
App. No. 11/765,224

Intermediate Code Metrics

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 None
App. No.
11/765,224
Abstract

Metrics may be determined from intermediate computer code by reading and analyzing an entire application using intermediate code, including any linked portions. The metrics may include cyclomatic complexity, estimated or actual number of lines of code, depth of inheritance, type coupling, and other metrics. The metrics may be combined into a quantifiable metric for the code.

Claims (49)

1 . A method comprising:

reading intermediate language computer code;

finding a plurality of type definitions in said intermediate language computer code;

for each of said plurality of type definitions, resolving said type definition in said intermediate language computer code; and

determining a number of different types used in said intermediate language computer code.

2 . The method of claim 1 , said intermediate language code comprising code compiled from two different languages.

3 . The method of claim 1 , said intermediate language code comprising linked code.

4 . The method of claim 1 further comprising:

determining structural complexity.

5 . The method of claim 1 further comprising:

determining lines of code.

6 . The method of claim 5 , said determining lines of code comprising evaluating source code metadata.

7 . The method of claim 5 , said determining lines of code comprising:

determining a line count from said intermediate code; and

multiplying said line count by a factor to determine said lines of code.

8 . The method of claim 1 further comprising:

determining depth of inheritance.

9 . The method of claim 1 further comprising:

determining a composite index based on said number of different types.

10 . A computer readable medium comprising computer executable instructions adapted to perform the method of claim 1 .

11 . A system comprising:

a reader adapted to read intermediate language computer code; and

an analyzer adapted to resolve at least one type in said intermediate language computer code to determine a type coupling, said type coupling comprising a number of different types.

12 . The system of claim 11 , said analyzer further adapted to perform at least one of a group composed of:

determine a structural complexity for said intermediate language computer code;

determine a lines of code value for said intermediate language computer code;

determine a depth of inheritance for said intermediate language computer code; and

determine a composite index comprising at least said type coupling.

13 . The system of claim 11 further comprising:

a linker adapted to link said intermediate language computer code.

14 . A method comprising:

reading an intermediate language computer code;

linking said intermediate language computer code; and

calculating a composite index from said intermediate language computer code.

15 . The method of claim 14 further comprising:

reading metadata about source code used to derive said intermediate language computer code.

16 . The method of claim 14 , said maintainability index being further calculated from said metadata.

17 . The method of claim 14 further comprising:

finding a plurality of type definitions in said intermediate language computer code; and

for each of said plurality of type definitions, resolving said type definition.

18 . The method of claim 14 further comprising at least one of a group composed of:

determining a structural complexity for said intermediate language computer code;

determining a lines of code value for said intermediate language computer code; and

determining a depth of inheritance for said intermediate language computer code.

19 . The method of claim 14 , said composite index being calculated from at least one of a group composed of:

a structural complexity for said intermediate language computer code;

a lines of code value for said intermediate language computer code; and

a depth of inheritance for said intermediate language computer code.

20 . A computer readable medium comprising computer executable instructions adapted to perform the method of claim 14 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2007
From: KING, TODD; FANNING, MICHAEL C; NAGAPPAN, NACHIAPPAN; BIRNBACH, MARCELO
To: MICROSOFT CORPORATION
Reel/Frame 019451/0295 →