API Prioritization via Dependency Ranking Scores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods are inefficient in detecting and prioritizing application programming interfaces (APIs) within large software artifacts, such as legacy systems, which often consist of thousands of classes and hundreds of thousands of methods, making it difficult to determine which elements should be exposed for reuse in mobile applications or new software artifacts.

Innovation Solution

A method and system that analyze application code to identify dependencies between software elements, calculating a ranking score for each element to indicate its likelihood of being an API, using static and dynamic analysis to determine external accesses and invocations, and employing algorithms like page rank to prioritize API candidates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual analysis methods are used to identify APIs in large software artifacts, then detection precision may be maintained, but productivity is severely reduced due to the sheer volume of classes and methods

Engineering Contradiction:
ImproveAPI detection efficiencyVSAvoidnumber of software elements to analyze
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent replaces manual mechanical analysis with automated computer-based analysis. The system uses software to automatically parse source code, build dependency graphs, and calculate ranking scores, substituting human effort with computational processes that can handle large volumes of software elements efficiently

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

Solution Approach 2:

The patent introduces ranking scores as a new parameter to prioritize API candidates. By calculating numerical scores based on dependency analysis and external access patterns, the system transforms the qualitative task of API identification into a quantitative ranking problem, enabling efficient filtering and prioritization of candidates

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If all software elements are analyzed equally to detect APIs, then measurement precision is maintained, but loss of time increases due to the need to examine every class and method

Engineering Contradiction:
ImproveAPI detection accuracyVSAvoidtime required for analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the analysis process into distinct phases: dependency graph construction, external access identification, and ranking score calculation. This segmentation allows the system to process software elements in an organized manner, focusing computational resources on the most relevant analysis steps rather than uniformly examining all elements

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary dependency analysis before API detection. By first building a dependency graph and identifying external accesses, the system prepares structured information that accelerates the subsequent API ranking and detection process, avoiding the need for complete re-analysis of all software elements

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If comprehensive dependency analysis is performed on all software elements, then API detection precision is improved, but device complexity increases due to the computational requirements

Engineering Contradiction:
ImproveAPI identification accuracyVSAvoidcomputational system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the essential information needed for API detection: dependency relationships and external access patterns. By focusing on these specific aspects rather than analyzing all properties of software elements, the system maintains detection precision while reducing computational complexity

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by calculating ranking scores for all software elements but then focusing detailed analysis only on high-scoring candidates. This approach performs comprehensive preliminary screening followed by targeted deep analysis, balancing precision requirements with computational feasibility

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9606815B2API prioritization and detection
Publication Date: 2017.03.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9606815B2 patent drawing
  • US9606815B2 patent drawing
  • US9606815B2 patent drawing

AI summary

Methods, computing systems and computer program products implement embodiments of the present invention that include receiving, by a computer, application code including a set of software elements, and identifying dependencies between the software elements. Based on the dependencies, a respective ranking score can be calculated for each of the software elements, the respective ranking score for a given software element indicating a likelihood that the given software element is configured as an application programming interface (API).