IP Library Patent Application 13870295
Patent Application
App. No. 13/870,295

Classifying Source Code Using an Expertise Model

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.
13/870,295
Abstract

A technique to classify source code based on skill level. Features may be extracted from the source code. The source code may be classified based on the extracted features using an expertise model.

Claims (33)

1 . A method for evaluating source code, comprising:

extracting, using a processor, features from source code written in a programming language; and

classifying, using the processor, the source code by comparing the extracted features to an expertise model, the expertise model modeling a usage frequency of programming features of the programming language according to a plurality of skill levels.

2 . The method of claim 1 , wherein the expertise model further models other metrics relating to usage of the programming features.

3 . The method of claim 1 , further comprising assigning a skill level evaluation to an author of the source code based on the classification of the source code into one of the plurality of skill levels.

4 . The method of claim , further comprising assigning a risk level to the source code based on the classification of the source code into one of the plurality of skill levels.

5 . The method of claim 4 , wherein the plurality of skill levels comprise at least a first skill level and a second skill level, the second skill level being associated with a lower risk level than the first skill level, the second skill level being represented in the model at least by a usage frequency histogram indicating a more frequent usage of a wider set of programming features than the first skill level.

6 . The method of claim 1 , wherein the programming features comprise at least one of lexical features of the programming language, syntactic features of the programming language, and semantic features of the programming language.

7 . The method of claim 6 , wherein the syntactic features of the programming language comprise statements, expressions, and structural elements.

8 . The method of claim 6 , wherein the semantic features of the programming language comprise relationships between the lexical features and syntactic features.

9 . The method of claim 6 , wherein extracting features from the source code comprises:

extracting lexical features of h source code based on a lexicon of the programming language;

extracting syntactic features of the source code using a parser; and

extracting semantic features of the source code based on the extracted syntactic features using a static program analysis tool.

10 . The method of claim 1 , further comprising:

performing the extracting and classifying steps on multiple modules of source code in a code base to estimate a level of expertise of authors of the modules; and

assigning a risk level to each of the modules based on the the estimated level of expertise of the author(s) of the module.

11 . A system, comprising:

a model generator to generate an expertise estimation model based on labeled examples of source code written by multiple developers each associated with one of a plurality of skill levels, the expertise estimation model modeling a usage frequency of programming features; and

a classifier to classify source code into one of the plurality of skill levels using the expertise estimation model.

12 . The system of claim 11 , further comprising:

an extractor to extract features from a module of source code. wherein the classifier is configured to classify the module of source code by comparing the extracted features to the expertise estimation model.

13 . The system of claim 12 , further comprising:

a risk estimator to estimate a risk level of the module of source code based at least on the classified skill level and an additional software risk metric.

14 . The system of claim 10 , wherein the programming features comprise lexical features, syntactic features, and semantic features.

15 . The system of claim 13 , further comprising:

a parser to extract syntactic features from the source code; and

a static program analysis tool to extract semantic features from the source code.

16 . A non-transitory computer readable storage medium storing instructions that, when executed by a processor, cause a computer to:

extract lexical features, syntactic features, and semantic features from source code; and

classify the source code by comparing the extracted lexical, syntactic, and semantic features to an expertise model, the expertise model modeling a usage frequency of the lexical, syntactic, and semantic features according to a plurality of skill levels.

17 . The storage r medium of claim 1 , further storing instructions that cause a computer to:

assign a risk estimate to the source code based on the classification.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Feb 25, 2020
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 052010/0029 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2013
From: WIENER, GUY; BARKOL, OMER
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 030576/0018 →