Software Element Evaluation via Variance-Based Reference System

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large software projects, understanding the role and interaction of multiple software elements is difficult due to the complexity of source code and changes made by different teams over time, leading to unintended consequences and communication gaps between programmers and end users.

Innovation Solution

A process involving data extraction from software elements, creation of a 'software universe' through variance analysis, and graphical representation in three dimensions to visualize relationships and changes, using principal component analysis to identify variance and retain underlying coding properties, with dynamic analysis for monitoring code quality and alerting thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If software elements are analyzed individually to understand their role and interaction, then understanding of software structure is improved, but the complexity of analysis increases due to large amounts of code and multiple software elements

Engineering Contradiction:
ImproveUnderstanding of software element relationshipsVSAvoidComplexity of software analysis
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent segments the complex software system into individual software elements (classes, methods, properties, constructors) and analyzes each element's metrics separately. By breaking down the large software codebase into manageable components and evaluating their inter-relationships through a reference system, the analysis becomes tractable despite the overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary reference system that mediates between individual software element metrics and their inter-relationships. This reference system acts as a mediator that transforms complex multi-dimensional metric data into a visualizable format, enabling understanding of software element relationships without directly confronting the full complexity of the raw data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If detailed metrics are extracted from all software elements to evaluate their properties, then measurement precision is improved, but the difficulty of detecting and measuring increases due to the large number of metrics and software elements

Engineering Contradiction:
ImprovePrecision of software element evaluationVSAvoidDifficulty of metric extraction and analysis
Core Design Contradiction:
Measurement precisionVSDifficulty of detecting and measuring

Solution Approach 1:

The patent extracts specific metrics from software elements (such as lines of code, complexity measures, coupling metrics) and separates them from the overall software system. By taking out individual metrics and evaluating them through a reference system, the patent achieves precise measurement of software element properties while managing the complexity of metric extraction through systematic processing.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent transforms software element metrics into a standardized reference system with defined dimensions. By changing the parameters from raw metric values to normalized positions within a reference framework, the patent simplifies the detection and measurement process while maintaining measurement precision through systematic parameter transformation.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If software changes are tracked to understand impact throughout the software, then reliability is improved, but loss of time increases due to the need to trace changes across multiple software elements

Engineering Contradiction:
ImproveReliability of software changesVSAvoidTime to trace change impact
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a feedback mechanism where software element metrics are continuously evaluated and compared against a reference system. When changes occur in software elements, the system automatically recalculates metrics and updates the reference system positions, providing feedback on the impact of changes. This automated feedback loop improves reliability by systematically tracking change impacts while reducing time loss through automated rather than manual tracing.

Inventive Principle:
Principle #23Feedback

4Manufacturing precision

If comprehensive software analysis is performed to evaluate all code properties, then software quality is improved, but productivity decreases due to the time required for analysis and evaluation

Engineering Contradiction:
ImproveSoftware code qualityVSAvoidSoftware development productivity
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent establishes a reference system in advance that defines the framework for evaluating software element metrics. By performing preliminary actions to set up the reference system with its dimensions and criteria before actual software analysis, the patent enables rapid subsequent evaluations. This preliminary setup improves software quality assessment while maintaining productivity by avoiding repeated framework establishment for each analysis.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11809864B2Process for evaluating software elements within software
Publication Date: 2023.11.07 POLI RICCARDO
  • US11809864B2 patent drawing
  • US11809864B2 patent drawing
  • US11809864B2 patent drawing

AI summary

There is provided a process for evaluating software comprising extracting data (12) relating to metrics from a plurality of software elements (10), each metric representing a dimension of a first reference system, using the extracted data to create a second reference system (16) based on variance in the extracted data, calculating the position of each software element in the second reference system and displaying the position of each software element in the second reference system in a maximum of three dimensions thereby to show in a graphical form the inter-relationship of the software elements to each other. The position of each software element in the second reference system (16) retains the extracted data for examination.