Integrated Program Editor and Debugger for Concurrent Software Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional software development processes require programmers to switch between editing and testing modes, leading to inefficiencies and delays in error detection and correction, as testing typically occurs only after code completion.

Innovation Solution

A method and system that allow simultaneous construction and testing of software programs, utilizing a program editor with integrated testing capabilities, enabling tests to be run during code development and providing real-time feedback on errors, with features like breakpoints for debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If programmers switch between editing and testing modes to complete program construction and testing sequentially, then testing can be performed thoroughly, but development time and error detection delay increase

Engineering Contradiction:
Improvetesting thoroughnessVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges the program editor and debugger into a single integrated development environment. The editor and debugger share the same user interface and run concurrently, allowing programmers to write code and execute tests without switching modes. This integration eliminates the sequential workflow where testing could only occur after complete program construction, enabling continuous testing during development and thereby reducing overall development time while maintaining testing thoroughness.

Inventive Principle:
Principle #5Merging (Combining)

2Device complexity

If programmers use traditional sequential testing after code completion, then the program structure remains simple, but error detection and correction are delayed

Engineering Contradiction:
Improvesystem structureVSAvoiderror detection delay
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The integrated debugger allows tests to be executed preliminarily during the code writing process itself, rather than waiting until completion. Programmers can run tests on partial code, detect errors immediately when they are introduced, and correct them on the spot. This preliminary testing action during development significantly reduces error detection delay compared to traditional post-completion testing, while the integration is achieved through software architecture rather than hardware complexity.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If programmers switch between editing and testing environments, then each mode can be optimized independently, but operational efficiency decreases

Engineering Contradiction:
Improvemode optimizationVSAvoidoperational efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The integrated development environment implements multi-functionality where the same interface and environment support both program editing and debugging operations. The debugger is designed to work seamlessly with the editor, sharing data structures, syntax highlighting, and user interface elements. This universal environment maintains the optimization benefits of specialized tools while eliminating the need to switch between separate applications, thereby significantly improving operational efficiency and programmer productivity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9015671B2Integrating program construction
Publication Date: 2015.04.21 MATHWORKS INC
  • US9015671B2 patent drawing
  • US9015671B2 patent drawing
  • US9015671B2 patent drawing

AI summary

In one embodiment of the present invention, a method for concurrently constructing and testing a software program is provided. The method includes interacting with a program editor that allows a user to construct the program, and testing the program during construction of the program to produce a test result.