Software Asset Metadata Capture for Knowledge Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development systems fail to effectively capture and reuse the knowledge and intent of developers, leading to inefficiencies and difficulties in transferring knowledge between team members, resulting in redundant efforts and limited reusability of code.

Innovation Solution

A development system that captures the knowledge and intent of the original developer by creating a metadata module alongside the source code, allowing subsequent developers to execute scripts and navigate the application in an application-centric manner, facilitating the creation of reusable software assets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional software development systems are used, then code can be written and compiled, but developer knowledge and intent cannot be captured or reused by subsequent developers

Engineering Contradiction:
Improvedeveloper knowledge and intentVSAvoidsoftware development efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system performs preliminary action by capturing developer knowledge, intent, and context metadata during the initial development phase. This metadata is stored alongside the source code in a structured format, enabling subsequent developers to access and reuse this information without having to relearn or rediscover the original developer's reasoning and decisions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention introduces metadata as an intermediary between the original developer and subsequent developers. This metadata layer captures implicit knowledge, design intent, and contextual information, serving as a communication bridge that allows knowledge transfer without direct human interaction. The metadata acts as a mediator that preserves and transmits developer intent across time and personnel changes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If developers work independently without knowledge sharing mechanisms, then individual development is straightforward, but knowledge transfer between team members becomes difficult

Engineering Contradiction:
Improveindividual development simplicityVSAvoiddeveloper knowledge transfer
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The system enables self-service by automatically capturing and organizing developer knowledge, intent, and context metadata during the development process itself. Subsequent developers can independently access this captured information through the development environment, eliminating the need for formal knowledge transfer sessions or documentation reviews while maintaining individual development autonomy.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention creates a copy of the developer's knowledge and intent in the form of structured metadata that is stored alongside the source code. This metadata copy preserves the original developer's reasoning, design decisions, and contextual information, allowing subsequent developers to access and learn from this copied knowledge without directly interacting with the original developer.

Inventive Principle:
Principle #26Copying

3Loss of information

If comprehensive documentation is created to capture developer knowledge, then knowledge transfer improves, but development time and complexity increase

Engineering Contradiction:
Improvedeveloper knowledge retentionVSAvoiddevelopment process complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system merges the capture of developer knowledge with the existing source code development process. Instead of creating separate documentation activities, the metadata capturing is integrated into the development workflow, automatically recording intent and context information alongside the code. This merging eliminates the need for separate documentation steps while preserving comprehensive knowledge information.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention changes the parameters of knowledge representation from traditional lengthy documentation to structured metadata with specific attributes such as developer intent, context, and key decisions. This parameter change transforms unstructured or semi-structured documentation into organized, machine-readable metadata that is easier to store, search, and reuse, reducing the complexity burden while maintaining knowledge retention.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If source code is reused without contextual metadata, then code reusability increases, but understanding and proper modification become difficult

Engineering Contradiction:
Improvecode reusabilityVSAvoidcode understanding and modification
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system performs preliminary action by capturing contextual metadata, developer intent, and knowledge information before the code reuse occurs. This metadata is stored alongside the source code, providing subsequent developers with the necessary context to understand not just what the code does, but why it was written that way and how it should be properly modified or extended.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention introduces metadata as an intermediary between the source code and the subsequent developer. This metadata layer provides contextual information, design intent, and modification guidelines that bridge the gap between raw code and human understanding, enabling both code reusability and proper comprehension of the code's purpose and constraints.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11789706B2Development system with improved methodology for creation and reuse of software assets
Publication Date: 2023.10.17 EMBARCADERO TECHNOLOGIES INC
  • US11789706B2 patent drawing
  • US11789706B2 patent drawing
  • US11789706B2 patent drawing

AI summary

In a computer-implemented method for facilitating creation of a reusable application, during development of the reusable application, a plurality of artifacts associated with source code of the reusable application is received, wherein an artifact of the plurality of artifacts includes information related to the development of the reusable application. The plurality of artifacts is maintained as metadata for the source code of the reusable application. An application module including the source code of the reusable application and the metadata is generated, wherein the application module is configured for use by a developer for facilitating creation of a new version of the reusable application, and wherein the metadata is accessible by the developer during the creation of the new version of the reusable application for accessing the information related to the development of the reusable application.