System and method for estimating impact of software updates

US9348585B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9348585-B2
Application numberUS-201313971752-A
CountryUS
Kind codeB2
Filing dateAug 20, 2013
Priority dateAug 20, 2013
Publication dateMay 24, 2016
Grant dateMay 24, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system and method of estimating impact of software updates includes obtaining usage measures for an instance of a software application, analyzing the software update of the software application by comparing base code for the software application to updated code for the software application, identifying one or more lines of interest from the base code based on the comparing, and aggregating the usage measures for the instance associated with the lines of interest to determine an impact factor. The base code corresponds to source code for the instance. The updated code corresponds to source code for the software application after the software update is applied to the base code. In some examples, the system and method further include normalizing the impact factor based on a length of time used to collect the usage measures, a number of lines of code in the base code, and a number of lines of code in the updated code.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of estimating an impact of a software update, the method comprising: obtaining first usage measures for each executable line of source code of a first instance of a software application; analyzing the software update of the software application by comparing base source code for the software application to updated source code for the software application to determine differences between the base source code and the updated source code; identifying one or more executable source code lines of interest from the base source code based on the differences, the identified one or more executable source code lines of interest including: first executable lines of source code deleted from the base source code; second executable lines of source code in the base source code changed between the base source code and the updated source code; third executable lines of source code in the base source code located immediately before or after each executable line of source code added to the updated source code; and fourth executable lines of source code in the base source code that include a reference to a class or data structure containing one or more deleted, changed, or added lines of source code in the updated source code even when the fourth executable lines of source code are not changed; aggregating the first usage measures for each of the source code lines of interest by adding together counts included in the first usage measures for each source code line of interest; and estimating an impact of the software update based on the aggregated first usage measures; wherein the updated source code corresponds to source code for the software application after the software update is applied to the base source code. 2. The method of claim 1 , further comprising retrieving the base source code and the updated source code from one or more code repositories. 3. The method of claim 1 wherein the first usage measures include counts of a number of times each executable line of source code in the base source code is executed. 4. The method of claim 3 wherein any of the counts larger than a threshold are replaced by an infinite designation. 5. The method of claim 1 wherein the first usage measures are stored in a usage table organized by classes and line numbers within the classes. 6. The method of claim 1 wherein the first usage measures are stored in a usage table organized by code block. 7. The method of claim 1 wherein the counts are weighted. 8. The method of claim 1 wherein the identified one or more executable source code lines of interest further include fifth executable lines of source code in the base source code that include a call to a method or function containing one or more deleted, changed, or added executable lines of source code in the updated source code even when the fifth executable lines of source code are not changed. 9. The method of claim 1 , further comprising normalizing the estimate of the impact of the software update. 10. The method of claim 9 , wherein normalizing the estimate of the impact of the software update comprises normalizing based on one or more normalization factors selected from a group consisting of a length of time used to collect the first usage measures for the first instance, a number of lines of source code in the base source code, and a number of lines of source code in the updated source code. 11. The method of claim 1 , further comprising: obtaining second usage measures for each executable line of source code for a second instance of the software application; and aggregating the aggregated first usage measures with the second usage measures for the source code lines of interest to determine a composite estimate of the impact of the software update. 12. A system for estimating an impact of a software update, the system comprising: one or more processors; memory coupled to the one or more processors; a first usage monitor that monitors execution of a first instance of a software application to determine first usage measures for each executable line of source code of the first instance; base source code for the software application corresponding to source code for the first instance, the base source code being stored in the memory; updated source code for the software application corresponding to source code for the software application after the software update is applied to the base source code, the updated source code being stored in the memory; and an impact analyzer that: compares the base source code to the updated source code to determine differences between the base source code and the updated source code; identifies one or more executable source code lines of interest from the base source code based on the differences, the identified one or more executable source code lines of interest including: first executable lines of source code deleted from the base source code; second executable lines of source code in the base source code changed between the base source code and the updated source code; third executable lines of source code in the base source code located immediately before or after each executable line of source code added to the updated source code; and fourth executable lines of source code in the base source code that include a reference to a class or data structure containing one or more deleted, changed, or added lines of source code in the updated source code even when the fourth executable lines of source code are not changed; aggregates the first usage measures for each of the source code lines of interest by adding together counts included in the first usage measures for each source code line of interest; and estimates an impact of the software update based on the aggregated first usage measures. 13. The system of claim 12 wherein the first usage monitor monitors debugging information provided by a Java virtual machine executing the first instance. 14. The system of claim 12 wherein the first usage monitor is an extension to a Java virtual machine executing the first instance. 15. The system of claim 12 , further comprising: a second usage monitor that monitors execution of a second instance of the software application to determine second usage measures for lines of source code of the second instance; wherein the impact analyzer further aggregates the first usage measures with the second usage measures for the executable source code lines of interest to determine a composite estimate of the impact of the software update. 16. A non-transitory machine-readable medium comprising a first plurality of machine-readable instructions which when executed by one or more processors associated with one or more computing systems are adapted to cause the one or more processors to perform a method comprising: retrieving first usage counts for each executable line of source code of a program running in a first deployment environment; retrieving second usage counts for the each executable line of source code of the program running in a second deployment environment; determining one or more differences between source code for the program and updated source code for the program after a code update is applied, the differences including: first executable lines of source code deleted from the source coded; second executable lines of source code in the source code changed between the source code and the updated source code; third executable lines of source code in the source code located immediately before or after each executable line of source code added to the updated source code; and four

Assignees

Inventors

Classifications

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • G06F8/75Primary

    Structural analysis for program understanding · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9348585B2 cover?
A system and method of estimating impact of software updates includes obtaining usage measures for an instance of a software application, analyzing the software update of the software application by comparing base code for the software application to updated code for the software application, identifying one or more lines of interest from the base code based on the comparing, and aggregating th…
Who is the assignee on this patent?
Red Hat Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/75. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 24 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).