Automated Software Reuse Measurement via Call Graph Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methodologies for measuring software quality and development productivity, such as lines of code and function point analysis, fail to accurately capture the functional quality and effort involved in software development, particularly in high-level programming languages and software reuse scenarios, leading to inaccurate productivity metrics.

Innovation Solution

The use of call graph analysis in a computerized environment to determine a software code base's reuse measures, which are then combined with lines of code and other metrics to calculate an effective productivity measure, providing a more accurate assessment of software quality and development productivity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual counting methods are used to measure code reuse, then measurement precision may be improved through careful analysis, but productivity deteriorates due to the cumbersome and time-consuming nature of manual effort

Engineering Contradiction:
Improvereuse measurement accuracyVSAvoidmeasurement efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent replaces manual mechanical counting methods with automated computer-based analysis tools. The system uses software to automatically identify, count, and measure reused code segments, eliminating the need for manual inspection while maintaining measurement accuracy through systematic algorithmic analysis.

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

Solution Approach 2:

The patent introduces an intermediary automated measurement system that acts as a mediator between the code base and the measurement process. This intermediary system processes code automatically, providing both precision through systematic analysis and productivity through automation, thus resolving the contradiction between accurate measurement and efficient measurement.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If traditional LOC measures are used to account for reuse costs, then ease of operation is improved by simplicity, but measurement precision deteriorates by failing to capture the benefit of reuse

Engineering Contradiction:
Improvemeasurement simplicityVSAvoidproductivity measurement accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent modifies the traditional LOC measurement parameter by introducing adjustment factors that account for reuse. Instead of simply counting lines, the system calculates effective LOC by subtracting reused code portions from total LOC, thereby maintaining the simplicity of the base metric while improving its precision to reflect actual development effort.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If automated techniques are used to measure code reuse, then productivity is improved through automation, but measurement precision may deteriorate without proper analysis methods

Engineering Contradiction:
Improvemeasurement automationVSAvoidreuse measurement accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent performs preliminary actions by establishing robust automated analysis methods and criteria before actual measurement takes place. The system pre-defines what constitutes reused code, sets up identification algorithms, and configures measurement parameters in advance, ensuring that automation proceeds with precision-guided rules rather than crude counting.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9612831B2System and method to measure and incentivize software reuse
Publication Date: 2017.04.04 VIRTUSA CORP
  • US9612831B2 patent drawing
  • US9612831B2 patent drawing
  • US9612831B2 patent drawing

AI summary

Systems, methods, and apparatus for measuring software development productivity that incorporate a measure of code reuse. Embodiments of the present invention utilize call graph analysis in a computerized environment to efficiently analyze a software code base in an automated fashion and thereby generate reuse measures; and then incorporates the reuse measures in the productivity analysis.