IP Library Patent Application 12471006
Patent Application
App. No. 12/471,006

PROGRAMMING ELEMENT MODIFICATION RECOMMENDATION

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.
12/471,006
Abstract

Techniques described herein help determine dependencies and associations between CPEs in a computing system. These techniques track previous check-ins over a period of time in order to learn the dependencies and associations between CPEs. The previous check-ins are performed by a plurality of different computer programmers. In some embodiments, in response to receiving an indication that a CPE has either already been modified or is about to be modified by a computer programmer, the techniques provide the computer programmer with a recommendation indicating CPEs that are associated with the CPE being modified. This recommendation is based on the dependencies and associations determined from the previous check-ins performed by the plurality of different computer programmers.

Claims (40)

1 . A computer implemented method comprising:

monitoring, via a computer, a plurality of transactions comprising modifications of one or more source code files stored in a database;

storing, on a computer-readable medium, information corresponding to the plurality of transactions;

determining associations between source code files based at least in part on the information corresponding to the plurality of transactions;

receiving an indication that a particular source code file having at least one associated source code file is being checked-out of the database; and

responsive to the receiving of the indication, recommending check-out of one or more source code files that have been determined to be associated with the particular source code file.

2 . The method as recited in claim 1 , wherein the determining of the associations comprises assigning association values between source code files, and wherein the association values are assigned based at least in part on one or more of:

time between two separate transactions; and

metrics corresponding to a person responsible for a transaction.

3 . The method as recited in claim 1 , further comprising executing a modification to the particular source code file based at least in part on the providing of the recommendation.

4 . The method as recited in claim 1 , further comprising executing a modification to a source code file of the one or more associated source codes files based on the providing of the recommendation.

5 . The method as recited in claim 1 , wherein one of the plurality of transactions is a combination of two previously separate transactions occurring within a defined time interval.

6 . The method as recited in claim 1 , further comprising:

mining the plurality of transactions using a plurality of passes; and

weighting an association value corresponding to an associated source code file according to at least one of the plurality of passes.

7 . The method as recited in claim 1 , wherein the recommendation is for presentation via a user interface on a client device.

8 . A computer-readable media having embodied thereon computer executable instructions, the computer-executable instructions upon execution configuring a computer to perform the method of claim 1 .

9 . One or more computer-readable storage media having computer-executable instructions embodied thereon, the computer-executable instructions configuring one or more processors on a computing system to perform acts comprising:

monitoring a plurality of transactions, wherein transactions comprise modifications of one or more programming elements;

responsive to the monitoring, determining associations between a plurality of programming elements;

receiving an indication that a particular programming element having at least one associated programming element is being checked-out; and

responsive to the receiving of the indication, serving a recommendation with the particular programming element being checked-out, wherein the recommendation indicates associated programming elements.

10 . One or more computer-readable storage media as recited in claim 9 , wherein the programming elements comprise source code files.

11 . One or more computer-readable storage media as recited in claim 9 , further configuring the one or more processors to perform an act comprising recommending the associated programming elements in a finite list, wherein the finite list is ranked according to association values.

12 . One or more computer-readable storage media as recited in claim 11 , wherein the finite ranked list is for presentation to a user via a graphical user interface.

13 . One or more computer-readable storage media as recited in claim 11 , wherein the finite ranked list includes a pre-defined association value threshold.

14 . One or more computer-readable storage media as recited in claim 11 , further configuring the one or more processors to perform acts comprising:

mining the transactions, wherein mining the transactions comprises discovering a plurality of itemsets in a pass; and

weighting the association values according to the pass.

15 . A computing system including one or more computers, comprising:

a memory;

one or more processors coupled to the memory;

one or more databases storing programming code, wherein the programming code comprises a plurality of programming elements;

a transaction mining tool to determine associations between a plurality of programming elements; and

one or more databases storing transaction data indicating programming elements that have been checked-in or checked-out with one another in at least one transaction.

16 . The system as recited in claim 15 , wherein the associations are weighted according to an elapsed time between two transactions, thereby indicating a level of confidence in the determined associations.

17 . The system as recited in claim 15 , wherein the associations are weighted according to metrics corresponding to the identities of at least two persons implementing two transactions, wherein the metrics are based at least in part on positions of the two persons within an organization hierarchy.

18 . The system as recited in claim 15 , wherein the transaction mining tool generates a recommendation as part of an integrated design environment (IDE).

19 . The system as recited in claim 18 , wherein modification of one or more programming elements is facilitated in response to the recommendation.

20 . The system as recited in claim 15 , wherein the associations are adjusted to produce association values indicating a probability that a second programming element should be modified in response to modifying a first programming element.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRESPONDENT NAME FROM CHERRI A SIMON TO LEE & HAYES, PLLC PREVIOUSLY RECORDED ON REEL 022858 FRAME 0579. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF THE ASSIGNORS INTEREST. Recorded Jan 27, 2010
From: LAXMAN, SRIVATSAN; CZERWONKA, JACEK A.; NAGAPPAN, NACHIAPPAN; NALDURG, PRASAD G.
To: MICROSOFT CORPORATION
Reel/Frame 023857/0174 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2009
From: LAXMAN, SRIVATSAN; CZERWONKA, JACEK A; NAGAPPAN, NACHIAPPAN; NALDURG, PRASAD G
To: MICROSOFT CORPORATION
Reel/Frame 022858/0579 →