External Metadata Repository for Source Code Provenance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional source control systems lack the ability to associate metadata with granular source code entities such as classes, functions, lines, and expressions, and metadata is typically limited to historical information, making it difficult to track provenance, quality, and reliability of source code across repositories.

Innovation Solution

A system and method that enable metadata to be associated with source code at various levels of granularity, allowing it to be stored and accessed independently of the source code, facilitating tracking of provenance, quality, and reliability, and enabling notifications of updates to related source code entities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If metadata is embedded within source code comments, then historical information and descriptions are preserved, but accessibility and manipulability are limited

Engineering Contradiction:
Improvesource code history and metadataVSAvoidaccessing and manipulating metadata
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent extracts metadata from embedded source code comments and stores it in a separate external repository. This allows metadata to be accessed and manipulated independently through the source control system without requiring access to the actual source code files, thereby resolving the contradiction between preserving information and enabling easy access.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary metadata repository that acts as a mediator between the source code and the source control system. This intermediary layer enables developers to access, view, and manipulate metadata through standard source control operations without directly accessing source code files, thus improving ease of operation while preserving all metadata information.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If metadata is stored in source code files, then it is preserved with the code, but it cannot be accessed independently

Engineering Contradiction:
Improvesource code metadataVSAvoidindependent access to metadata
Core Design Contradiction:
Loss of informationVSAdaptability or versatility

Solution Approach 1:

The patent extracts metadata from source code files and stores it in a separate external repository that is independent of the source code. This extraction enables metadata to be accessed, viewed, and manipulated through the source control system without requiring access to the actual source code files, thereby achieving independent access while preserving all metadata.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the source code system into two independent components: source code files and an external metadata repository. This segmentation allows metadata to be managed separately from source code, enabling independent access and manipulation of metadata through standard source control operations while maintaining the association between metadata and source code entities.

Inventive Principle:
Principle #1Segmentation

3Productivity

If conventional source control systems are used, then source code is managed, but metadata association at granular levels is not supported

Engineering Contradiction:
Improvesource code managementVSAvoidmetadata association capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent extends the conventional source control system to handle multiple types of entities beyond just source code files. By enabling metadata association with granular source code entities (classes, functions, lines, statements, expressions) and other development artifacts (requirements, test cases, bugs), the system achieves multi-functionality while maintaining source code management capabilities.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent segments source code into granular entities (files, classes, functions, lines, statements, expressions) and enables independent metadata association with each segment. This segmentation approach allows the source control system to manage metadata at multiple levels of granularity while preserving the overall source code management functionality.

Inventive Principle:
Principle #1Segmentation

4Loss of information

If comments are used for metadata, then descriptions are provided, but formatting and language constraints limit usefulness

Engineering Contradiction:
Improvesource code descriptionsVSAvoidmetadata formatting requirements
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent extracts metadata from language-specific comment formats and stores it in a unified external repository. This extraction eliminates the need to adhere to various programming language comment syntax requirements, allowing metadata to be stored and accessed without formatting constraints while preserving all descriptive information.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the format and structure of metadata from language-specific comment syntax to a unified, language-agnostic format stored in an external repository. This parameter change eliminates formatting and language constraints, allowing metadata to be accessed and manipulated without requiring knowledge of specific programming language comment conventions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9632771B2Association of metadata with source code and applications and services premised thereon
Publication Date: 2017.04.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9632771B2 patent drawing
  • US9632771B2 patent drawing
  • US9632771B2 patent drawing

AI summary

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.