Stripped-Down Library Generation for Incremental Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programming tools face delays and inefficiencies in providing dynamic documentation and disambiguation information to developers, as they require successful compilation of server-side source code, which may not be feasible during incremental development when the server-side software is not in a compileable state.

Innovation Solution

Extracting relevant metadata from server-side source code to generate a stripped-down library that can be used by reflection-based tools, allowing for the provision of dynamic documentation and disambiguation information to client-side developers without prior compilation of the server-side code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If server-side source code is compiled before generating documentation, then accurate documentation can be provided, but development time is increased and incremental development is blocked

Engineering Contradiction:
Improvedocumentation accuracyVSAvoiddevelopment time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the source code processing into two independent parts: extracting metadata that is sufficient for documentation generation, and the full compilation process. By extracting only the necessary metadata (types, interfaces, members) without requiring complete compilation, the system provides accurate documentation while avoiding compilation delays, thus resolving the contradiction between documentation accuracy and development time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary extraction of metadata from source code before compilation is needed. By pre-extracting the essential type information, interfaces, and member definitions that are required for documentation, the system prepares the necessary data in advance without waiting for compilation, enabling documentation generation to proceed independently and eliminate time delays.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If server-side source code is compiled to generate documentation, then complete type information is available, but the process fails when server code is incomplete or contains errors

Engineering Contradiction:
Improvedocumentation completenessVSAvoidincremental development capability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent extracts only the essential metadata (type definitions, interfaces, members) from the server-side source code without requiring the entire codebase to be compilable. This extraction process isolates the documentation-relevant information from the rest of the code, allowing documentation generation to proceed even when the server code is incomplete or contains errors, thus enabling incremental development while maintaining documentation reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by extracting only the subset of source code information that is necessary for documentation generation (types, interfaces, members) rather than requiring the complete compilation of all server-side code. This partial extraction approach provides sufficient type information for accurate documentation while avoiding the failure mode of full compilation when code is incomplete, thus supporting incremental development.

Inventive Principle:
Principle #16Partial or excessive action

3Loss of information

If full server project compilation is performed, then all type definitions are available for reflection, but device complexity and processing overhead increase

Engineering Contradiction:
Improvetype information availabilityVSAvoidcompilation process complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent extracts only the specific metadata needed for documentation (type definitions, interfaces, members) from the server-side source code, separating this essential information from the rest of the compilation process. This extraction approach makes type information available for reflection without requiring the complexity of full project compilation, thus reducing device complexity while maintaining information availability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs partial extraction of type information rather than full compilation. By obtaining only the subset of data needed for documentation (types, interfaces, members) without processing the entire codebase, the system reduces processing overhead and device complexity while ensuring sufficient type information is available for accurate reflection-based documentation.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8239823B2Generating libraries for reflection without project compilation
Publication Date: 2012.08.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8239823B2 patent drawing
  • US8239823B2 patent drawing
  • US8239823B2 patent drawing

AI summary

A stripped-down version of a library is generated from server source code extracted from a server project under development. Information extracted from the server source code may include only that information which is exposed to a client project under development. The stripped-down library generated from the extracted server source code is received by a reflection-based component that uses reflection to generate documentation and disclosure information helpful in the development of the client source code. Because the server project does not have to be compiled or ready to be compiled before the software development information for the client project can be provided, development of the server side source code and the client side source code can proceed in tandem or incrementally.