External Metadata Repository for Source Code Provenance
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Loss of information
If metadata is stored in source code files, then it is preserved with the code, but it cannot be accessed independently
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.
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.
3Productivity
If conventional source control systems are used, then source code is managed, but metadata association at granular levels is not supported
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.
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.
4Loss of information
If comments are used for metadata, then descriptions are provided, but formatting and language constraints limit usefulness
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.
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.
Data Source
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.


