IP Library Granted Patent US 7,774,147
Granted Patent B1
US 7,774,147 · App. 11/617,539 · Granted Aug 10, 2010

Systems and methods for detecting and addressing data flaws in software artifacts

Assignee: Symantec Corporation
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 7,774,147
App. No.
11/617,539
Granted
Aug 10, 2010
Kind
B1
Abstract

Systems and methods are provided for upgrading a software artifact having accumulated data flaws. The software artifact may be accessible, for example, by a plurality of software components for backend services. Issues that cause the data flaws and corresponding fixes are tracked and evaluated to determine dependencies, if any, between the fixes. The fixes are applied to the software artifact as individual transactions. If there are no dependencies among a subset of fixes, the fixes in the subset are applied regardless of whether the other fixes in the subset were successfully applied. For subsets having dependencies between fixes, the fixes that depend from a prior unsuccessfully applied fix are discarded. The software artifact is rolled back to remove unsuccessfully applied fixes.

Claims (57)

1. A computer-implemented method for upgrading software artifacts having accumulated data flaws, the method comprising:

determining a set of fixes that attempts to correct accumulated data flaws in a software artifact;

evaluating combinations of the data flaws to determine dependencies between the fixes in the set;

placing the fixes in respective subsets according to their dependency relationships; and

applying a first fix from a first subset to the software artifact, the first fix intended to correct a first data flaw in the software artifact;

wherein at least a portion of the method is performed by a computing device comprising at least one processor.

2. The method of claim 1 , further comprising applying a second fix from the first subset to the software artifact, the second fix intended to correct a second data flaw in the software artifact, the second fix being applied independent of the first fix.

3. The method of claim 1 , further comprising determining whether the first fix passed or failed.

4. The method of claim 3 , wherein the first fix fails by at least one of:

failing to correct the first data flaw; and

causing a second data flaw in the software artifact.

5. The method of claim 3 , further comprising, if the first fix passed, applying a second fix from the first subset to the software artifact, the second fix intended to correct a second data flaw in the software artifact, the second fix being dependent on the first fix.

6. The method of claim 3 , further comprising, if the first fix failed, aborting sequential application of one or more second fixes from the first subset, the one or more second fixes being dependent on the first fix.

7. The method of claim 3 , further comprising, if the first fix failed, rolling back the software artifact to a previous state to reverse the application of the first fix.

8. The method of claim 3 , further comprising:

setting a threshold priority level;

assigning a priority level to the first fix; and

if the first fix failed, and if the priority level assigned to the first fix equals or exceeds the threshold priority level, canceling the upgrade of the software artifact.

9. The method of claim 1 , further comprising:

applying a second fix from the first subset to the software artifact, the second fix intended to correct a second data flaw in the software artifact; and

applying a third fix from a second subset to the software artifact, the third fix intended to correct a third data flaw in the software artifact.

10. The method of claim 9 , wherein the second fix is dependent on the first fix.

11. The method of claim 10 , wherein the second subset is dependent on the first subset.

12. A system for reusing data after a software upgrade, the system comprising:

a database for storing issues causing data flaws that are accumulated in a software artifact accessible by a plurality of software components and a list of corresponding fixes for the data flaws in the software artifact; and

an analyze and fix module configured to:

evaluate combinations of the data flaws to determine dependencies between the fixes;

place the fixes in respective subsets according to their dependency relationships; and

apply a first fix from a first subset to the software artifact, the first fix intended to correct a first data flaw in the software artifact;

at least one processor configured to execute the analyze and fix module.

13. The system of claim 12 , wherein the software artifact comprises database backend components that store the software components.

14. The system of claim 13 , wherein the software artifact further comprises:

user interface components; and

application logics components.

15. The system of claim 12 , wherein at least one of the data flaws are caused by inconsistent access to the software artifact by at least one of the software components.

16. The system of claim 12 , wherein the analyze and fix module is further configured to apply a second fix from the first subset to the software artifact, the second fix intended to correct a second data flaw in the software artifact, the analyze and fix module applying the second fix independent of the first fix.

17. The system of claim 12 , wherein the analyze and fix module is further configured to apply, if the first fix passed, a second fix from the first subset to the software artifact, the second fix intended to correct a second data flaw in the software artifact, the second fix being dependent on the first fix.

18. The system of claim 12 , wherein the analyze and fix module is further configured to, if the first fix failed, abort sequential application of one or more second fixes from the first subset, the one or more second fixes being dependent on the first fix.

19. The system of claim 12 , further comprising a rollback module configured to, if the first fix failed, reverse the application of the first fix to the software artifact.

20. The system of claim 12 , wherein the analyze and fix module is further configured to:

set a threshold priority level;

assign a priority level to the first fix; and

if the first fix failed, and if the priority level assigned to the first fix equals or exceeds the threshold priority level, cancel the upgrade of the software artifact.

21. A system for upgrading software artifacts having accumulated data flaws, the system comprising:

a storage module programmed to track issues that cause accumulated data flaws in a software artifact and corresponding fixes for the data flaws in the software artifact; and

a repair module programmed to:

evaluate the data flaws to determine a sequence of dependent fixes from the fixes in the storage module;

sequentially process the dependent fixes as individual transactions, wherein fixes in the sequence that depend from successfully applied prior fixes are applied to the software artifact, and wherein fixes in the sequence that depend from unsuccessfully applied prior fixes are discarded;

at least one processor configured to execute the storage module and the repair module.

22. The system of claim 21 , wherein unsuccessfully applied prior fixes fail to correct a targeted data flaw in the software artifact.

23. The system of claim 21 , wherein unsuccessfully applied prior fixes cause additional data flaws in the software artifact.

24. The system of claim 21 , further comprising a rollback module programmed to remove the unsuccessfully applied prior fixes from the software artifact.

25. A non-transitory computer accessible storage medium including program instructions that, when executed by at least one processor of a computing device, cause the computing device to:

determine a set of fixes that attempts to correct accumulated data flaws in a software artifact;

evaluate combinations of the data flaws to determine dependencies between the fixes in the set;

place the fixes in respective subsets according to their dependency relationships; and

apply a first fix from a first subset to the software artifact, the first fix intended to correct a first data flaw in the software artifact.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2007
From: ALTIRIS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 019781/0651 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2006
From: MANAEV, DMITRI
To: ALTIRIS, INC.
Reel/Frame 018690/0305 →