Software Development System Using Semantic Embeddings for Code Documentation Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocess independenceVSAvoidquery efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

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

2Loss of information

If separate searches are performed for source code and documentation, then comprehensive results are achieved, but processing time increases

Engineering Contradiction:
Improvesearch completenessVSAvoidquery time
Core Design Contradiction:
Loss of informationVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If asynchronous updates are allowed between code and documentation, then development flexibility is maintained, but data consistency deteriorates

Engineering Contradiction:
Improvedevelopment flexibilityVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #23Feedback

4Productivity

If unified mapping is implemented between code and documentation, then query efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvequery efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentEP3667493B1A method for a software development system
Publication Date: 2021.05.26 SAP SE
  • EP3667493B1 patent drawingFigure 1
  • EP3667493B1 patent drawingFigure 2A~2B
  • EP3667493B1 patent drawingFigure 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.