IP Library › Granted Patent US 9,733,927
Granted Patent B2
US 9,733,927 · App. 14/937,924 · Granted Aug 15, 2017

Detection of software or hardware incompatibilities in software packages

Inventors: Julian T. Dolby (Bronx, NY); Pietro Ferrara (White Plains, NY); Marco Pistoia (Amawalk, NY); Omer Tripp (Bronx, NY)
Assignee: International Business Machines Corporation
G06F8/70G06F8/61
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,733,927
App. No.
14/937,924
Granted
Aug 15, 2017
Kind
B2
Abstract

In an approach for determining compatibility between a computing device and a software application, a processor receives code of a software application. A processor generates a call graph for the software application using the code, wherein the call graph describes at least a first type of hardware component required to execute the software application. A processor identifies a set of one or more hardware components included within a computing device. A processor determines whether the computing device is compatible with the software application based on, at least, the call graph and the determined set of one or more hardware components included within the computing device.

Claims (83)

1. A method for determining compatibility between a computing device and a software application, the method comprising:

determining, by one or more processors, a first type of hardware component required to execute a software application based, at least in part, on one or more permissions associated with a source code of the software application;

identifying, by one or more processors, a first type of API call required to execute the software application, wherein:

the first type of API call is a call to a function; and

the call to the function is not:

built into a programming language used to write the source code of the software application;

defined within the source code of the software application; and

included within one or more standard libraries associated with the programming language;

identifying, by one or more processors, one or more hardware components included within a computing device; and

determining, by one or more processors, whether the computing device is compatible with the software application based, at least in part, on:

the first type of hardware component;

the first type of API call; and

the one or more hardware components.

2. The method of claim 1 , further comprising:

identifying, by one or more processors, a set of one or more APIs which are available to the computing device.

3. The method of claim 1 , wherein determining whether the computing device is compatible with the software application comprises:

comparing, by one or more processors, the one or more hardware components to the first type of hardware component.

4. The method of claim 1 further comprising:

determining, by one or more processors, that a first hardware component of the one or more hardware components is of the first type of hardware component;

determining, by one or more processors, whether the first hardware component is available; and

determining, by one or more processors, whether the computing device is compatible with the software application based, additionally, on whether the first hardware component is available.

5. The method of claim 1 , further comprising:

downloading, by one or more processors, the software application to the computing device from an application store; and

subsequent to determining that the computing device is compatible with the software application, installing, by one or more processors, the software application.

6. The method of claim 1 , further comprising:

generating, by one or more processors, a call graph for the software application, wherein the call graph describes at least:

the first type of hardware component; and

the first type of API call.

7. A computer program product for determining compatibility between a computing device and a software application, the computer program product comprising:

one or more computer readable storage medium and program instructions stored on the one or more computer readable storage medium, the program instructions comprising instructions to:

determine a first type of hardware component required to execute a software application based, at least in part, on one or more permissions associated with a source code of the software application;

identify a first type of API call required to execute the software application, wherein:

the first type of API call is a call to a function: and the call to the function is not:

built into a programming language used to write the source code of the software application;

defined within the source code of the software application; and included within one or more standard libraries associated with the programming language;

identify one or more hardware components included within a computing device; and

determine whether the computing device is compatible with the software application based, at least in part, on:

the first type of hardware component;

the first type of API call; and

the one or more hardware components.

8. The computer program product of claim 7 , further comprising instructions to:

identify a set of one or more APIs which are available to the computing device.

9. The computer program product of claim 7 , wherein the instructions to determine whether the computing device is compatible with the software application further comprise instructions to:

compare the one or more hardware components to the first type of hardware component.

10. The computer program product of claim 7 , further comprising instructions to:

determine that a first hardware component of the one or more hardware components is of the first type of hardware component;

determine whether the first hardware component is available; and

determine whether the computing device is compatible with the software application based, additionally, on whether the first hardware component is available.

11. The computer program product of claim 7 , further comprising instructions to:

download the software application to the computing device from an application store; and

subsequent to determining that the computing device is compatible with the software application, install the software application.

12. The computer program product of claim 7 , further comprising instructions to:

generate a call graph for the software application, wherein the call graph describes at least:

the first type of hardware component; and

the first type of API call.

13. A computer system for determining compatibility between a computing device and a software application, the computer system comprising:

one or more computer processors, one or more computer readable storage medium, and program instructions stored on the one or more computer readable storage medium for execution by at least one of the one or more processors, the program instructions comprising instructions to:

determine a first type of hardware component required to execute a software application based, at least in part, on one or more permissions associated with a source code of the software application;

identify a first type of API call required to execute the software application, wherein:

the first type of API call is a call to a function; and the call to the function is not:

built into a programming language used to write the source code of the software application;

defined within the source code of the software application; and

included within one or more standard libraries associated with the programming language;

identify one or more hardware components included within a computing device; and

determine whether the computing device is compatible with the software application based, at least in part, on:

the first type of hardware component;

the first type of API call; and

the one or more hardware components.

14. The computer system of claim 13 , further comprising instructions to:

identify a set of one or more APIs which are available to the computing device.

15. The computer system of claim 13 , wherein the instructions to determine whether the computing device is compatible with the software application further comprise instructions to:

compare the one or more hardware components to the first type of hardware component.

16. The computer system of claim 13 , further comprising instructions to:

determine that a first hardware component of the one or more hardware components is of the first type of hardware component;

determine whether the first hardware component is available; and

determine whether the computing device is compatible with the software application based, additionally, on whether the first hardware component is available.

17. The computer system of claim 13 , further comprising instructions to:

generate a call graph for the software application, wherein the call graph describes at least:

the first type of hardware component; and

the first type of API call.

18. The computer system of claim 13 , further comprising instructions to:

download the software application to the computing device from an application store; and

subsequent to determining that the computing device is compatible with the software application, install the software application.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Mar 28, 2025
From: BLUE OWL CREDIT INCOME CORP (F/K/A OWL ROCK CORE INCOME CORP.), AS COLLATERAL AGENT
To: AVALARA, INC.; EDISON VAULT, LLC
Reel/Frame 070671/0486 →
SECURITY INTEREST Recorded Mar 28, 2025
From: AVALARA, INC.; EDISON VAULT, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 070671/0097 →
SECURITY INTEREST Recorded Oct 20, 2022
From: AVALARA, INC.; EDISON VAULT, LLC
To: OWL ROCK CORE INCOME CORP., AS COLLATERAL AGENT
Reel/Frame 061728/0201 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: EDISON VAULT, LLC
Reel/Frame 057059/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2015
From: DOLBY, JULIAN T.; FERRARA, PIETRO; PISTOIA, MARCO; TRIPP, OMER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037008/0067 →
Continuity (1)
Related Publication 20170131999A1 · May 11, 2017