Software Abstraction Evaluation Using Directed Acyclic Graph Weights

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software debugging lacks standardized mechanisms, leading to varied debugging methods among developers and the propagation of undetected bugs across software systems, causing technical issues and making it difficult to assess the impact of bugs on software and subsequent versions.

Innovation Solution

A software abstraction evaluation method using an inverted funnel, directed acyclic graph (DAG) to identify and value software abstractions, track inheritance, and detect bugs by assigning weights to edges and calculating cumulative sums, allowing for quick identification and debugging of affected nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If current debugging methods are used, then developers can identify and fix bugs, but debugging lacks standardized mechanisms and relies on tribal knowledge leading to inconsistent results

Engineering Contradiction:
Improvedebugging consistencyVSAvoiddebugging process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent transforms the debugging process from a qualitative, experience-based activity into a quantitative, standardized process by assigning numerical weights to different code elements and their relationships. This parameterization enables consistent, reproducible debugging results across different developers and systems.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces an intermediary evaluation system that acts as a mediator between the codebase and debugging analysis. This system uses weighted graphs and cumulative sum calculations to objectively assess bug impact, replacing subjective tribal knowledge with a standardized intermediate evaluation layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If bugs are not detected in software modules, then development continues, but bugs are propagated repeatedly across software systems causing technical problems

Engineering Contradiction:
Improvesoftware development speedVSAvoidbug detection completeness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary evaluation of bug impact before propagation occurs by calculating cumulative sums through the weighted graph structure. This preliminary analysis identifies high-impact bugs that should be addressed before they affect multiple downstream components, preventing widespread propagation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the evaluation results (cumulative sums) provide information about bug impact that feeds back into the debugging process. This feedback loop enables continuous improvement of bug detection and prioritization, allowing developers to focus on the most critical issues first.

Inventive Principle:
Principle #23Feedback

3Loss of information

If comprehensive bug impact analysis is performed, then the full impact radius of bugs can be determined, but computation time and resources increase

Engineering Contradiction:
Improveimpact assessment accuracyVSAvoidcomputation time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent segments the codebase into a hierarchical graph structure with weighted edges representing relationships between code elements. This segmentation allows the impact analysis to be performed in a structured, efficient manner by traversing the graph rather than analyzing the entire codebase uniformly, reducing computation time while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter representation of code relationships from unweighted to weighted, where weights reflect the significance of relationships. This parameterization enables more efficient computation by allowing the system to prioritize traversal of high-weight edges and skip or reduce analysis of low-weight paths, balancing accuracy with computational efficiency.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11669311B2System and method for evaluation of software code abstractions using a directed acyclic graph (DAG)
Publication Date: 2023.06.06 ORACLE INT CORP
  • US11669311B2 patent drawing
  • US11669311B2 patent drawing
  • US11669311B2 patent drawing

AI summary

Systems, methods, and other embodiments associated with the valuation of software code abstractions are described. In one embodiment, the method includes generating a directed acyclic graph (DAG) comprising a vertex node, children nodes, and a plurality of edges, wherein the vertex node includes a software code abstraction. A DAG is generated for each vertex node associated with a software code abstraction. The directed acyclic graph is analyzed to determine inheritance of the software code abstraction from the vertex node to the children nodes. A weight having a numerical value is assigned to the edges located between the vertex node and the children nodes. The numerical values are parsed to determine a cumulative sum of all of the edges associated with a particular vertex node. The cumulative sums are compared to determine an impact of the software code abstraction associated with each of the vertex nodes.