Software Development System Using Semantic Embeddings for Code Documentation Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In software development, the processes of programming and documenting are often independent, leading to inefficient use of resources when querying for features or functions, as they require separate searches in source code and documentation, which can be time-consuming and prone to errors due to asynchronous updates and access control issues.
Innovation Solution
A method that generates corpus-based semantic word embeddings for both source code and documentation, allowing for seamless mapping and integration, enabling a single search to retrieve both source code and corresponding documentation, while maintaining data integrity and access control through predefined rules.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If separate processes are used for programming and documenting, then independence of processes is maintained, but processing efficiency deteriorates due to redundant resource consumption during queries
Solution Approach 1:
The patent merges the programming process and documenting process into a unified system where code and documentation are generated and maintained together. The system processes both code and documentation through a single pipeline, creating semantic embeddings that link them, thereby eliminating redundant processing while maintaining process independence through modular architecture.
Solution Approach 2:
The software development system is designed to perform multiple functions: it can process code, process documentation, generate semantic embeddings, and perform unified querying. This multi-functional system handles both programming and documenting tasks within a single framework, improving query efficiency while maintaining adaptability.
2Loss of information
If separate searches are performed for source code and documentation, then comprehensive results are achieved, but processing time increases
Solution Approach 1:
The patent combines code and documentation into a unified search space using semantic embeddings. Instead of performing separate searches, the system creates a single integrated representation where both code and documentation can be queried simultaneously, achieving comprehensive results in one search operation and reducing query time.
Solution Approach 2:
The patent introduces semantic embeddings as an intermediary layer between code and documentation. This embedding space acts as a mediator that allows unified querying of both code and documentation without requiring separate search processes, thereby reducing query time while maintaining search completeness.
3Productivity
If asynchronous updates are allowed between code and documentation, then development flexibility is maintained, but data consistency deteriorates
Solution Approach 1:
The patent implements a feedback mechanism where the system continuously monitors and updates the semantic embeddings based on changes in code or documentation. When code or documentation is updated, the system detects the change and regenerates the appropriate embeddings, ensuring data consistency is maintained while allowing asynchronous development flexibility.
4Productivity
If unified mapping is implemented between code and documentation, then query efficiency is improved, but system complexity increases
Solution Approach 1:
The patent replaces complex mechanical mapping systems with semantic embeddings. Instead of implementing intricate rule-based mapping mechanisms between code and documentation, the system uses vector space representations that naturally capture semantic relationships, simplifying the overall system architecture while improving query efficiency.
Data Source
Figure 1
Figure 2A~2B
Figure 3~4
AI summary
The present disclosure relates to a method for a software development system, the software development system comprising a code repository storing source code. The method comprises: receiving at the code repository an additional code; receiving at one or more documentation repositories documentation information for documenting the source code; generating corpus-based semantic word embeddings for code and documentation words of the source code and the documentation information; using the word embeddings for mapping by the software development system the source code to corresponding documentation; storing the mapping of the source code to the corresponding documentation.