IP Library › Granted Patent US 10,585,776
Granted Patent B2
US 10,585,776 · App. 15/093,013 · Granted Mar 10, 2020

Automated software code review

Inventors: William H. Frontiero (Gloucester, MA); Spencer T. Murata (Westford, MA)
Assignee: International Business Machines Corporation
G06F11/36G06F11/302G06F21/57
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,585,776
App. No.
15/093,013
Filed
Apr 7, 2016
Granted
Mar 10, 2020
Kind
B2
Art Unit
2192
USPC
717/127
Abstract

Code monitoring and optimization may include code being monitored for potential security violations during an active code creation session. The procedure may include at least one of monitoring code for potential security violations during an active code creation session occurring on a client device, comparing the monitored code with an aggregate rule set stored in a repository, identifying at least one of a security violation or an error based on the comparing and identifying a correction to the at least one of the security violation or the error during the active code creation session.

Claims (45)

1. A method, comprising:

in response to detecting a predetermined command being entered via a code development interface, automatically invoking a monitoring operation that comprises:

detecting a software class that is associated with an application programming interface (API) and that is currently present within the code development interface during an active code creation session via the code development interface; and

determining at least one of a security violation and an error associated with the API based on the detected software class and an API library which identifies alerts and deprecations of classes associated with the API; and

outputting a correction to the at least one of the security violation and the error during the active code creation session,

wherein the method further comprises triggering a start point for the monitoring operation based on at least one of a time lapse, a predetermined number of keystrokes identified, a known variable being identified, a known object being identified, a known class being identified, a known error being identified, and a known security issue being identified,

the monitoring operation is invoked in response to determining that a software class has been added during the code creation session, and

the monitoring operation dynamically identifies one or more classes of code that have been added since a last monitoring operation, pre-compiles the identified classes, and dynamically determines at least one class from the pre-compiled classes is a potential security threat based on compiled code included in the at least one class.

2. The method of claim 1 , wherein the determining the at least one of the security violation and the error comprises comparing code to an aggregate rule set stored in an API library that is located in a cloud environment and which is dynamically updated.

3. The method of claim 2 , further comprising updating the aggregate rule set by uploading at least one of:

a most recently published rule set to the aggregate rule set; and

at least one change to the aggregate rule set.

4. The method of claim 1 , further comprising initiating the monitoring operation via an integrated development environment (IDE) during the code creation session via a client device.

5. The method of claim 1 , further comprising providing the correction to the at least one of the security violation or the error during the active code creation session.

6. The method of claim 1 , further comprising referencing the API library based on the detected software class.

7. An apparatus, comprising:

a data repository; and

a processor configured to:

in response to detecting a predetermined command being entered via a code development interface, automatically invoke a monitoring operation that causes the processor to:

detect a software class that is associated with an application programming interface (API) and that is currently present within the code development interface during an active code creation session via the code development interface;

determine at least one of a security violation and an error associated with the API based on the detected software class and an API library which identifies alerts and deprecations of classes associated with the API; and

output a correction to the at least one of the security violation and the error during the active code creation session,

wherein the processor is further configured to trigger a start point for the monitoring operation based on at least one of a time lapse, a predetermined number of keystrokes identified, a known variable being identified, a known object being identified, a known class being identified, a known error being identified, and a known security issue being identified,

the processor is configured to invoke the monitoring operation in response to determining that a software class has been added during the code creation session, and

the monitoring operation dynamically identifies one or more classes of code that have been added since a last monitoring operation, pre-compiles the identified classes, and dynamically determines at least one class from the pre-compiled classes is a potential security threat based on compiled code included in the at least one class.

8. The apparatus of claim 7 , wherein the processor determines the at least one of the security violation and the error by comparing code to an aggregate rule set stored in an API library that is located in a cloud environment and which is dynamically updated.

9. The apparatus of claim 8 , wherein the processor is further configured to update the aggregate rule set by an upload of at least one of:

a most recently published rule set to the aggregate rule set; and

at least one change to the aggregate rule set.

10. The apparatus of claim 7 , wherein the processor is further configured to initiate the monitoring operation via an integrated development environment (IDE) during the code creation session via a client device.

11. The apparatus of claim 7 , wherein the processor is further configured to provide the correction to the at least one of the security violation and the error during the active code creation session.

12. A non-transitory computer readable storage medium configured to store instructions that when executed cause a processor to perform:

in response to detecting a predetermined command being entered via a code development interface, automatically invoking a monitoring operation that causes the processor to:

detect a software class that is associated with an application programming interface (API) and that is included within code of the API currently present within the code development interface during an active code creation session via the code development interface;

determine at least one of a security violation and an error associated with the API based on the detected software class and an API library which identifies alerts and deprecations of classes associated with the API; and

outputting a correction to the at least one of the security violation and the error during the active code creation session

wherein the processor is further configured to perform triggering a start point for the monitoring operation based on at least one of a time lapse, a predetermined number of keystrokes identified, a known variable being identified, a known object being identified, a known class being identified, a known error being identified, and a known security issue being identified,

the monitoring operation is invoked in response to determining that a software class has been added during the code creation session, and

the monitoring operation dynamically identifies one or more classes of code that have been added since a last monitoring operation, pre-compiles the identified classes, and dynamically determines at least one class from the pre-compiled classes is a potential security threat based on compiled code included in the at least one class.

13. The non-transitory computer readable storage medium of claim 12 , wherein the determining the at least one of the security violation and the error comprises comparing code to an aggregate rule set stored in an API library that is located in a cloud environment and which is dynamically updated.

14. The non-transitory computer readable storage medium of claim 13 , wherein the processor is further configured to perform updating the aggregate rule set by uploading at least one of:

a most recently published rule set to the aggregate rule set; and

at least one change to the aggregate rule set.

15. The non-transitory computer readable storage medium of claim 12 , wherein the processor is further configured to perform initiating the monitoring operation via an integrated development environment (IDE) during the code creation session via a client device.

16. The non-transitory computer readable storage medium of claim 12 , wherein the correction to the at least one of the security violation or and the error is provided during the active code creation session.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE TITLE OF THE APPLICATION INSIDE THE ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED ON REEL 038219 FRAME 0846. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 22, 2016
From: FRONTIERO, WILLIAM H.; MURATA, SPENCER T.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039850/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2016
From: FRONTIERO, WILLIAM H.; MURATA, SPENCER T.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038219/0846 →
Continuity (1)
Related Publication 20170293546A1 · Oct 12, 2017