Command Interpreter for Interactive Design-Time Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software development tools lack an efficient mechanism for testing and debugging software applications at design time without requiring compilation, limiting the ability to interactively test and manipulate application objects during the development phase.

Innovation Solution

A command interpreter is integrated into the software development environment, allowing users to select and execute commands on objects within a visual tree at design time, enabling interactive testing and debugging without compilation, by assigning designated object names for abbreviated command issuance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional debugging tools are used at design time, then developers can set breakpoints and view variable values, but the process requires compilation and cannot interactively test objects during the design phase

Engineering Contradiction:
Improveinteractive testing capabilityVSAvoidcompilation time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system segments the debugging functionality by separating the command interpreter and visual tree operations from the compilation process. This allows developers to test individual objects and commands interactively at design time without triggering a full compilation cycle, thus eliminating the need to wait for compilation while still enabling thorough testing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The command interpreter enables preliminary testing of objects, properties, and events before the actual compilation process. Developers can execute commands, test object behavior, and validate logic in advance during the design phase, so that when compilation does occur, the code is already verified and ready for deployment.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If developers manually test each object and command, then thorough testing can be achieved, but the process becomes time-consuming and inefficient

Engineering Contradiction:
Improvetesting thoroughnessVSAvoiddevelopment efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The visual tree provides immediate feedback by automatically updating to reflect the current state of objects, properties, and events. When commands are executed through the command interpreter, the results are instantly visible in the visual tree, allowing developers to verify testing outcomes without manual intervention or waiting for compilation cycles.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs self-service by automatically maintaining the visual tree representation of objects and their states. The command interpreter automatically executes commands and updates the object model, eliminating the need for developers to manually track and update each object state, thus maintaining thoroughness while improving efficiency.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If the command interpreter assigns designated object names for abbreviated commands, then command issuance becomes simpler, but the system complexity increases

Engineering Contradiction:
Improvecommand issuance simplicityVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The command interpreter acts as an intermediary layer between the developer and the complex object model. It provides designated object names that serve as simplified aliases for complex object references, allowing developers to issue commands using simple names while the interpreter handles the complexity of mapping these names to the actual object structure in the background.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8769506B2Using a command interpreter at design time
Publication Date: 2014.07.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8769506B2 patent drawing
  • US8769506B2 patent drawing
  • US8769506B2 patent drawing

AI summary

Various technologies and techniques are disclosed for using a command interpreter at design time of a software application. A command interpreter can be used to design and test the functionality of an application at design time. The command interpreter allows a user to identify a command to execute for a selected object at design time of an application being developed within a software application design environment. The command interpreter causes the identified command to be executed. A selected object can be sent from a visual tree to the command interpreter. The command interpreter receives the object sent from the visual tree and assigns a designated object name for referencing the object in the command interpreter. The designated object name is displayed within the command interpreter to allow a user to have an abbreviated way of issuing one or more commands for the object from the command interpreter.