Hypervisor Command Forwarding for Agile Software Version Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In agile software development, users and developers face challenges in tracking and comparing different versions of software components due to the lack of time and complexity in navigating between various computing environments, leading to difficulties in providing accurate feedback and recognizing changes between versions.

Innovation Solution

A method and system that utilize a hypervisor to manage and transfer commands between different virtual machines, allowing users to interact with and compare different versions of software components directly, with functionality identifiers enabling seamless execution and freezing of incompatible versions, while an agile development library provides transparency and facilitates user feedback.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If agile software development divides the process into short iterations with frequent demonstrations, then user feedback is improved and software delivery speed is increased, but developers and users suffer from constant lack of time and cannot keep track of all amendments

Engineering Contradiction:
Improvesoftware delivery speedVSAvoidtime for reading documentation and tracking amendments
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces a command forwarding mechanism that acts as an intermediary between different software versions. When a user interacts with one version, the system automatically forwards commands to other versions and retrieves results, eliminating the need for users to manually navigate between versions or read documentation. This mediator approach resolves the contradiction by maintaining fast iteration delivery while automatically managing the tracking burden.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements self-service by automatically comparing and synchronizing states across multiple software versions without requiring user intervention. The command forwarding and state comparison mechanisms operate autonomously, allowing the system to serve itself in tracking amendments across iterations. This resolves the time loss issue by making the tracking process automatic rather than manual.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If multiple versions of software components are maintained for iterative development, then flexibility and user feedback capability are improved, but complexity in managing and comparing different versions increases

Engineering Contradiction:
Improveflexibility in software iterationsVSAvoidcomplexity in managing and comparing versions
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent uses copying by creating and managing multiple copies of software components in different versions. Instead of managing one complex evolving system, the approach creates simplified copies representing different iteration states. The command forwarding mechanism copies commands across these version copies and collects results, making version management less complex while maintaining high adaptability.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system introduces an intermediary layer that manages the complexity of multiple versions. This intermediary automatically handles command routing, state comparison, and result aggregation between versions, shielding users from the underlying complexity. The mediator approach maintains flexibility across versions while reducing the perceived complexity for users and developers.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If users are expected to test and try out new software components without additional effort, then ease of operation is improved, but the system lacks mechanisms to automatically manage version transitions and command forwarding

Engineering Contradiction:
Improveease of testing software componentsVSAvoidlack of automatic version management mechanisms
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling the system to automatically manage version transitions and command forwarding without user effort. The command forwarding mechanism autonomously routes user interactions to appropriate software versions and aggregates results, making the testing process easy while the system handles the complexity internally. This resolves the contradiction by making the system work automatically rather than requiring user management effort.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9990193B2Agile software development process and results
Publication Date: 2018.06.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9990193B2 patent drawing
  • US9990193B2 patent drawing
  • US9990193B2 patent drawing

AI summary

A method for agile software development comprises receiving by a VM a command by a first version of a software component running on a first virtual machine, wherein the command may be executed by the software component, passing the command to a hypervisor along with an output file including a functionality identifier corresponding to the command and identifiers for versions of the software component to which the command is applicable, and transferring the command to a second VM for an execution of the functionality if the identifier of the second version of the software component was included in the output file. Additionally, the method may include sending a freeze command by the hypervisor to the second virtual machine if the identifier of the second version of the software component is not included in the output file.