ACL-Based Filtering for Software Dependency Analysis Noise

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software modernization processes face challenges in efficiently analyzing and displaying dependency relationships among software application components, often producing 'noise' from standard and third-party libraries that do not provide useful information about application-specific functionality.

Innovation Solution

The use of Access Control Lists (ACLs) to filter analysis procedures and display results, allowing users to customize which application components are analyzed and displayed, thereby focusing on relevant components and improving the clarity of the application's implementation structure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If comprehensive analysis of all application components is performed, then completeness of analysis is improved, but information noise increases

Engineering Contradiction:
Improveanalysis completenessVSAvoidinformation noise
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent segments the application components into different categories (standard library components versus application-specific components) and applies different analysis treatments to each segment. ACLs are used to mark and filter specific segments of the codebase, allowing the analysis system to focus on relevant portions while excluding noisy standard library code, thereby maintaining analysis completeness for application-specific logic while reducing information noise.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and excludes standard library components from the analysis using ACLs. By identifying and removing these known noise sources before analysis, the system prevents them from contributing to information noise while preserving the ability to analyze application-specific components comprehensively. This extraction approach maintains precision for relevant code while eliminating harmful noise.

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If detailed dependency relationships are identified for all components, then analysis accuracy is improved, but processing time increases

Engineering Contradiction:
Improveanalysis accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary action by pre-configuring ACLs that mark and filter application components before the detailed dependency analysis begins. This preliminary filtering step establishes which components should be included or excluded from analysis, allowing the subsequent detailed dependency identification to focus only on relevant components, thereby improving accuracy for application-specific code while reducing processing time by avoiding analysis of standard library components.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by performing comprehensive dependency analysis only on the subset of components marked as application-specific through ACLs, rather than analyzing all components equally. This selective approach provides sufficient analysis accuracy for the critical application-specific portions while avoiding the excessive processing time that would result from analyzing entire standard library codebases in detail.

Inventive Principle:
Principle #16Partial or excessive action

3Loss of information

If all application components are displayed in analysis results, then information completeness is improved, but display clarity deteriorates

Engineering Contradiction:
Improveinformation completenessVSAvoiddisplay clarity
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent segments the analysis results into different categories based on ACL markings, separating application-specific components from standard library components. The display system then presents these segments differently, with application-specific components receiving detailed presentation and standard library components being summarized or excluded, thereby maintaining information completeness for relevant code while improving display clarity by reducing visual noise.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by providing different display qualities to different portions of the analysis results based on their relevance. Application-specific components marked by ACLs receive high-quality detailed display with full dependency information, while standard library components receive reduced-quality display or are excluded entirely. This differential treatment maintains completeness of relevant information while improving overall display clarity by reducing the prominence of noisy elements.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11930013B1Access control list (ACL) based static analysis of software application artifacts
Publication Date: 2024.03.12 AMAZON TECH INC
  • US11930013B1 patent drawing
  • US11930013B1 patent drawing
  • US11930013B1 patent drawing

AI summary

Techniques are described for providing an access control list (ACL) assisted process for filtering the analysis and display of dependency relationships among software application components (e.g., packages, files, classes, etc.), e.g., as part of modernization processes aimed at decomposing monolithic applications, identifying anti-patterns, or otherwise analyzing such applications. A software modernization service of a cloud provider network provides discovery agents and other tools that are capable of creating an inventory of users' software applications and collecting application artifacts (e.g., source code or bytecode files) associated with the software applications in users' computing environments. Various techniques are described for using ACLs containing entries enabling or disabling the analysis or display of various application components to customize various modernization processes and results displays.