Software Immunization via Static and Dynamic Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static program analysis often generates a high number of false-positives, leading to inefficient use of developer time as they must manually identify and correct potential code defects, while recurring defects in different parts of the code require similar effort to fix.

Innovation Solution

A system and method that combines static analysis with dynamic testing to prioritize and rank potential code defects, allowing developers to focus on actual defects and automatically apply fixes to similar defects identified elsewhere in the code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If static program analysis is used to identify code defects, then a large number of potential defects can be discovered, but the number of false-positives increases significantly

Engineering Contradiction:
Improvenumber of potential defects discoveredVSAvoidaccuracy of defect identification
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent introduces an intermediary component that acts as a filter between static analysis and manual review. This intermediary automatically validates potential defects using additional analysis techniques, eliminating false-positives before they reach developers. The intermediary preserves the high detection quantity of static analysis while improving reliability by filtering out spurious results.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the manual mechanical review process with automated validation mechanisms. Instead of relying on developers to manually verify each potential defect (a time-consuming mechanical process), the system uses automated analysis tools to validate defects, thereby maintaining high detection rates while significantly improving accuracy and reducing false-positives.

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

2Reliability

If developers manually review and correct each potential defect, then defect accuracy can be ensured, but developer time and resources are wasted on false-positives

Engineering Contradiction:
Improvedefect verification accuracyVSAvoiddeveloper time spent on defect review
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary validation layer that automatically verifies potential defects before presenting them to developers. This intermediary filters out false-positives, ensuring that only validated defects reach developers for review. This approach maintains high verification accuracy while dramatically reducing the time developers spend reviewing false-positives.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary validation of potential defects automatically before they reach the manual review stage. By conducting this preliminary action of validation upfront, the system ensures that only confirmed defects require developer attention, thereby maintaining accuracy while minimizing the time loss associated with manual review of false-positives.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If developers correct defects manually one by one, then each defect can be fixed accurately, but recurring defects require repeated manual effort

Engineering Contradiction:
Improvedefect correction accuracyVSAvoiddefect correction efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent implements a feedback mechanism that learns from corrected defects and applies the corrections automatically to similar recurring defects. When a defect is corrected, the system analyzes the correction pattern and uses it to identify and fix similar defects throughout the codebase, maintaining correction accuracy while dramatically improving productivity by eliminating repetitive manual work.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent uses copying by applying the correction pattern from one defect to multiple similar defects. Instead of manually correcting each recurring defect individually, the system copies the correction logic and applies it automatically to identical or similar defects elsewhere in the codebase, thereby maintaining precision while significantly boosting correction efficiency.

Inventive Principle:
Principle #26Copying

4Reliability

If static analysis is used extensively, then code quality can be improved, but the high number of false-positives reduces developer confidence and usage

Engineering Contradiction:
Improvecode qualityVSAvoiddeveloper confidence in tool
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary validation layer that filters out false-positives before they are presented to developers. This intermediary maintains the comprehensive code quality analysis provided by static analysis while improving ease of operation by ensuring that developers only see validated, high-confidence defects, thereby restoring developer confidence in the tool.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent converts the harmful effect of false-positives into a benefit by using the extensive static analysis capability to generate many potential defects, then systematically filtering them to reveal only the true issues. This approach maintains the advantage of comprehensive analysis while eliminating the disadvantage of false-positives, thereby improving both code quality and developer confidence.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS8621441B2System and method for software immunization based on static and dynamic analysis
Publication Date: 2013.12.31 AVAYA INC
  • US8621441B2 patent drawing
  • US8621441B2 patent drawing
  • US8621441B2 patent drawing

AI summary

Disclosed herein are systems, methods, and non-transitory computer-readable storage media for analyzing source code and identifying potential defects. The methods employ both static analysis and dynamic testing to detect program defects early in the development stage for better quality with less cost. The analysis also ranks identified potential defects and reports only the most likely defects to a human developer. Once defects are detected, they can be removed right away and similar defects can be prevented automatically.