Dynamic Project System Assembly from Build Capabilities

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current project systems require manual configuration and cannot dynamically adapt to changes in build system capabilities, leading to inefficiencies and limitations in software development, especially when projects need to target multiple platforms or technologies.

Innovation Solution

A project system is dynamically assembled based on the capabilities of the underlying build system, with changes in project capabilities triggering redefinition and reassembly of the project system code, using a flexible configuration-based build system and project files to encode build instructions and configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual configuration is used for project systems, then flexibility in customization is improved, but developer productivity and ease of operation deteriorate due to time-consuming setup

Engineering Contradiction:
Improveconfiguration flexibilityVSAvoiddeveloper productivity
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The build system automatically configures the project system by evaluating build input files and determining capabilities without requiring manual configuration. The system serves itself by generating the project system code based on the build configuration, eliminating the need for developers to manually set up project systems while maintaining flexibility through data-driven configuration.

Inventive Principle:
Principle #25Self-service

2Stability of the object's composition

If static project system code is used, then system stability is improved, but adaptability to changes in build system capabilities deteriorates

Engineering Contradiction:
Improvesystem stabilityVSAvoidadaptability to capability changes
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The project system code is generated dynamically at build time based on the evaluated capabilities from build input files. Instead of using static pre-defined project system code, the system creates the appropriate project system code on-the-fly by evaluating the build configuration and determining which capabilities are needed, allowing the system to adapt to different build scenarios while maintaining stability through consistent evaluation rules.

Inventive Principle:
Principle #15Dynamics

3Productivity

If automated build processes are implemented, then productivity is improved, but complexity of the build system increases due to manual scripting requirements

Engineering Contradiction:
Improvebuild automationVSAvoidbuild system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces the mechanical system of manual scripting with an automated evaluation system. Instead of requiring developers to write and maintain complex build scripts, the system automatically evaluates build input files (such as project files containing capability definitions) and generates the necessary build process configuration. This substitution eliminates the need for manual scripting while maintaining automation benefits, reducing build system complexity.

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

4Adaptability or versatility

If data-driven configuration is used, then adaptability to platform targets is improved, but device complexity increases due to dynamic assembly requirements

Engineering Contradiction:
Improveplatform target adaptabilityVSAvoiddynamic assembly complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The build input files contain pre-defined capability definitions and configuration data that describe the project's requirements and supported platforms. By performing preliminary action of encoding all possible capabilities and configurations in the build input files before the build process, the system can dynamically assemble the appropriate project system code during builds without requiring complex runtime decision-making logic, thus reducing the perceived complexity while maintaining high adaptability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9965257B2Automatic configuration of project system from project capabilities
Publication Date: 2018.05.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9965257B2 patent drawing
  • US9965257B2 patent drawing
  • US9965257B2 patent drawing

AI summary

A project system is automatically configured from project capabilities determined from an instance of a build system by a project capabilities analyzer. A flexible configuration based build system defines the consuming project system. Results of an evaluated project file are used to define the overall capabilities of the build system. The capabilities are used to dynamically load and assemble the project system code. Changes in the project capabilities due to a reevaluation of a result of a build can then redefine and reassemble the project system code. Hence project system configuration is data-driven rather than user-defined and utilizes a flexible, configuration based build system to define the consuming project system.