Automated Code Dependency Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software update processes are inefficient, requiring significant time and technical expertise, often causing inconvenience and potential changes in functionality or performance that may reduce software usefulness, as they depend on identifying necessary earlier updates and determining update commutativity to avoid interference.

Innovation Solution

An automated method for determining code dependencies by analyzing whether a first code update can be implemented on a reference version with undone changes from a second code update, forming update chains, and testing their commutativity to identify necessary or interfering updates, using a comparison engine to streamline the process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual software update processes are used to ensure correct application of code changes, then reliability of update application is improved, but loss of time and productivity deteriorate due to significant time required and need for technical expertise

Engineering Contradiction:
Improvecorrect application of code changesVSAvoidtime required for updates
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs automated dependency analysis and update sequencing without requiring technical personnel intervention. The computer automatically analyzes code changes, determines dependencies, and applies updates in the correct sequence, enabling self-service update application that maintains reliability while eliminating manual labor time

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary automated analysis of code change dependencies before actual updates are applied. By pre-determining the correct application sequence and identifying all necessary dependencies in advance, the system prepares the update plan beforehand, ensuring reliable application while minimizing the actual update time

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If comprehensive software updates are applied to ensure all necessary code changes are implemented, then completeness of functionality is improved, but changes in functionality or performance may occur that reduce software usefulness

Engineering Contradiction:
Improvecompleteness of code changesVSAvoidundesired functionality changes
Core Design Contradiction:
Adaptability or versatilityVSObject-generated harmful factors

Solution Approach 1:

The system extracts and identifies only the specific code changes that are necessary for the requested update, separating them from unnecessary changes. By selectively applying only the extracted essential changes and their direct dependencies, the system ensures completeness of necessary functionality while avoiding harmful undesired changes to other software features

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system applies updates with local precision by determining exactly which code files and functions need to be modified. Rather than applying blanket comprehensive updates, the system targets only the specific local areas where code changes are necessary, ensuring functional completeness while preserving unrelated software features that do not need modification

Inventive Principle:
Principle #3Local quality

3Productivity

If automated dependency analysis is performed to identify necessary updates, then productivity is improved, but device complexity increases due to the comparison engine and analysis processes

Engineering Contradiction:
Improvespeed of update applicationVSAvoidcomplexity of comparison engine
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The comparison engine is designed as a universal system that handles multiple types of code changes, dependency relationships, and update scenarios through a single automated framework. By consolidating these diverse functions into one multi-functional engine, the system achieves high productivity through automation while avoiding the need for multiple separate complex tools, thus managing overall system complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10338915B2Automated identification of code dependency
Publication Date: 2019.07.02 SAP SE
  • US10338915B2 patent drawing
  • US10338915B2 patent drawing
  • US10338915B2 patent drawing

AI summary

A first code update is received having a first code change. It is determined whether the first code change of the first code update can be implemented on a first reference code version on which at least one code change of a second code update has been undone.