IDE Assertion Management via Compiler Warning Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in managing code assertions effectively during the compilation and debugging process, as they often need to manually include, edit, and remove assertions, which can add overhead and are not efficiently integrated with the development environment, leading to potential delays and inefficiencies in identifying and resolving defects.

Innovation Solution

An integrated development environment (IDE) tool manages assertions separately from the source code, allowing developers to specify which assertions to include based on compiler warnings, breakpoints, and defect tickets, enabling dynamic insertion and removal of assertions during compilation and debugging, thereby streamlining the development process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If assertions are manually included and managed in source code, then debugging capability is improved, but development time and complexity increase

Engineering Contradiction:
Improvedebugging capabilityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts assertion management from manual source code editing by introducing an automated assertion management system that generates, inserts, and removes assertions based on compiler warnings and defect tickets, eliminating the need for developers to manually manage assertions while maintaining debugging capabilities

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The assertion management system operates autonomously by automatically generating assertions from compiler warnings and defect tickets, inserting them into appropriate source code locations, and removing them when no longer needed, without requiring manual developer intervention

Inventive Principle:
Principle #25Self-service

2Reliability

If complex assertions are added to test source code, then defect detection capability is improved, but program execution time increases

Engineering Contradiction:
Improvedefect detection capabilityVSAvoidprogram execution time
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The patent applies assertions locally and selectively based on compiler warnings and defect tickets rather than uniformly across the entire codebase, inserting assertions only at specific locations where defects are suspected, thereby maintaining defect detection capability while minimizing impact on overall execution time

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system inserts assertions partially and selectively only where needed based on compiler warnings and defect tickets, rather than adding comprehensive assertions throughout the codebase, reducing the total overhead on program execution while maintaining adequate defect detection

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If assertions are removed before compiling, then processing overhead is reduced, but defect identification capability deteriorates

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddefect identification capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic assertion management where assertions are automatically inserted into source code based on compiler warnings and defect tickets during the compilation process, allowing assertions to be present when needed for defect identification and absent when not needed, thus balancing processing efficiency and defect detection capability

Inventive Principle:
Principle #15Dynamics

4Measurement precision

If assertions are manually edited and managed, then assertion accuracy is improved, but device complexity increases

Engineering Contradiction:
Improveassertion accuracyVSAvoidmanagement complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The assertion management system operates autonomously by automatically generating assertions from compiler warnings and defect tickets, determining appropriate insertion locations, and managing assertion lifecycles without requiring manual developer intervention, thereby maintaining assertion accuracy while eliminating management complexity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9684584B2Managing assertions while compiling and debugging source code
Publication Date: 2017.06.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9684584B2 patent drawing
  • US9684584B2 patent drawing
  • US9684584B2 patent drawing

AI summary

The present disclosure relates to maintaining assertions in an integrated development environment (IDE) tool. According to one embodiment, while the IDE tool is compiling the source code of a development project, the IDE tool generates at least a first compiler warning. The first compiler warning generally corresponds to at least one line of source code in a first source code component of the development project. A first set of assertions to add to the source code of the development project is determined based on the line of source code that resulted in the first compiler warning. The IDE tool adds the first set of assertions to the source code of the development project. The first set of assertions are compiled as part of the source code of the development project.