IP Library › Granted Patent US 9,632,771
Granted Patent B2
US 9,632,771 · App. 13/713,916 · Granted Apr 25, 2017

Association of metadata with source code and applications and services premised thereon

Inventor: Stephen H. Toub (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/73G06F8/71
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 9,632,771
App. No.
13/713,916
Filed
Dec 13, 2012
Granted
Apr 25, 2017
Kind
B2
Examiner
WU, DAXIN
Art Unit
2191
USPC
717/123
Abstract

Systems and methods are described that enable metadata to be associated with source code at various levels of granularity (e.g., at the level of files, classes, functions, lines, statements and expressions) and that enable such metadata to be accessed independently of the source code with which it is associated. Such metadata may be used to track provenance and history of source code within and across source code repositories, associate ratings or other indicia of quality or reliability with source code, wherein such ratings may be exposed to developers and wherein such ratings may be used to better manage the automated check-in, testing and analysis of source code, and facilitate a process by which a component that manages a source code entity is notified about updates made to a related source code entity and by which like changes may be to the source code entity in a manual or automated fashion.

Claims (66)

1. A computer-implemented method, comprising:

determining, by a processing device, that a first source code entity has been copied to create a second source code entity, the first source code entity comprising an item of source code within a first source code file and the second source code entity comprising an item of source code within a second source code file;

generating metadata associated with the first source code entity based upon the copying, the generated metadata comprising a link to the second source code entity;

determining that a modification has been made to the first source code entity subsequent to the copying; and

responsive to the determining, utilizing the link to notify a component that manages the second source code entity of the modification.

2. The method of claim 1 , wherein the first source code entity comprises:

one or more classes, functions, lines, statements, or expressions within the first source code file.

3. The method of claim 1 , further comprising:

determining that the first source code entity has been created, modified or deleted, and

generating additional metadata associated with the first source code entity that comprises historical information concerning the creation, modification or deletion.

4. The method of claim 1 , further comprising:

generating metadata associated with the second source code entity by copying metadata associated with the first source code entity.

5. The method of claim 1 , further comprising:

determining that the first source code entity has been copied to create a third source code entity, and

generating additional metadata associated with the first source code entity that comprises a link to the third source code entity.

6. The method of claim 1 , further comprising:

determining that a third source code entity is similar to the first source code entity; and

in response to determining that the third source code entity is similar to the first source code entity, performing one or more of:

generating metadata associated with the first source code entity by copying metadata associated with the third source code entity,

generating metadata associated with the first source code entity that comprises a link to the third source code entity,

generating metadata associated with the third source code entity by copying metadata associated with the first source code entity, and

generating metadata associated with the third source code entity that comprises a link to the first source code entity.

7. The method of claim 1 , wherein the generating comprises generating one or more of structured data and unstructured data.

8. The method of claim 7 , wherein the generating of structured data comprises generating one or more key/value pairs.

9. The method of claim 1 , further comprising storing the generated metadata separately from the source code file by storing the generated metadata in one of:

a metadata file that is associated with the source code file;

a data stream that is associated with the source code file; or

a database.

10. A computer-implemented method comprising:

copying a source code entity from within a first source code file to create a related source code entity;

determining, by a processing device, that the source code entity within the first source code file has been modified subsequent to the copying;

responsive to the determining, identifying the related source code entity within a second source code file or a code store based on metadata associated with the source code entity that is generated based on the copying; and

sending a notification concerning the modification to a component that manages the related source code entity based on a link to the related source code entity in the metadata.

11. The method of claim 10 , further comprising:

receiving a notification concerning a modification to the related source code entity; and

in response to receiving the notification concerning the modification to the related source code entity, performing one of:

automatically modifying the source code entity based on the modification to the related source code entity; or

providing a developer with a means for updating the source code entity based on the modification to the related source code entity.

12. A computer-readable storage device having program instructions recorded thereon that, when executed by a processing device, perform a method, the method comprising:

determining, by the processing device, that a first source code entity has been copied to create a second source code entity, the first source code entity comprising an item of source code within a first source code file and the second source code entity comprising an item of source code within a second source code file;

generating metadata associated with the first source code entity based upon the copying, the generated metadata comprising a link to the second source code entity;

determining that a modification has been made to the first source code entity subsequent to the copying; and

responsive to the determining, utilizing the link to notify a component that manages the second source code entity of the modification.

13. The computer-readable storage device of claim 12 , wherein the first source code entity comprises:

one or more classes, functions, lines, statements, or expressions within the first source code file.

14. The computer-readable storage device of claim 12 , the method further comprising:

determining that the first source code entity has been created, modified or deleted, and

generating additional metadata associated with the first source code entity that comprises historical information concerning the creation, modification or deletion.

15. The computer-readable storage device of claim 12 , the method further comprising:

generating metadata associated with the second source code entity by copying metadata associated with the first source code entity.

16. The computer-readable storage device of claim 12 , the method further comprising:

determining that the first source code entity has been copied to create a third source code entity, and

generating additional metadata associated with the first source code entity that comprises a link to the third source code entity.

17. The computer-readable storage device of claim 12 , the method further comprising:

determining that a third source code entity is similar to the first source code entity; and

in response to determining that the third source code entity is similar to the first source code entity, performing one or more of:

generating metadata associated with the first source code entity by copying metadata associated with the third source code entity,

generating metadata associated with the first source code entity that comprises a link to the third source code entity,

generating metadata associated with the third source code entity by copying metadata associated with the first source code entity, and

generating metadata associated with the third source code entity that comprises a link to the first source code entity.

18. The computer-readable storage device of claim 12 , wherein the generating comprises generating one or more of structured data and unstructured data.

19. The computer-readable storage device of claim 18 , wherein the generating of structured data comprises generating one or more key/value pairs.

20. The computer-readable storage device of claim 12 , the method further comprising storing the generated metadata separately from the source code file by storing the generated metadata in one of:

a metadata file that is associated with the source code file;

a data stream that is associated with the source code file; or

a database.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2012
From: TOUB, STEPHEN H.
To: MICROSOFT CORPORATION
Reel/Frame 029469/0649 →
Continuity (1)
Related Publication 20140173561A1 · Jun 19, 2014