Machine learning-based universal software component identification
US-12175241-B1 · Dec 24, 2024 · US
US9483388B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9483388-B2 |
| Application number | US-201414585120-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 29, 2014 |
| Priority date | Dec 29, 2014 |
| Publication date | Nov 1, 2016 |
| Grant date | Nov 1, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Some aspects of the disclosure provide a method comprising obtaining machine executable code of an application, the application operable to achieve a set of application states, pre-processing the machine executable code to generate reviewable code, identifying, from the reviewable code, a set of state access instructions configured to invoke or assist in invoking one of the set of application states of the application, the set of state access instructions indicating a first state access instruction configured to invoke a first state of the set of application states and a second state access instruction configured to invoke a second state of the set of application states that is different from the first state, each of the set of state access instructions including an application resource identifier referencing an application and indicating an operation for the application to perform, and storing the set of state access instructions.
Opening claim text (preview).
The invention claimed is: 1. A method comprising: obtaining machine executable code of an application, the application operable to achieve a set of application states; pre-processing the machine executable code to generate reviewable code; performing static analysis on the reviewable code to (i) identify, a first state access instruction configured to invoke or assist in invoking a first subset of the set of application states of the application and (ii) identify a set of parameter variables relied on by the first state access instruction to create a template function instruction; performing dynamic analysis on the application to determine, for each parameter variable of the set of parameter variables, a set of values, wherein the template function instruction is instantiated with first values for the parameter variables to invoke a first state of the first subset of the set of application states of the application; storing an instantiation of the template function instruction with the first values as an access mechanism for the first state of the application; storing an instantiation of the template function instruction with second values as an access mechanism for a second state of the application; executing the application and scraping first data from the first state of the application; storing a first record for the first state of the application in a search index, wherein the record includes the scraped first data; executing the application and scraping second data from the second state of the application; storing a second record for the second state of the application in a search index, wherein the record includes the scraped second data; in response to receiving a search query from a user device, identifying at least one relevant record from the search index according to scraped data stored in the search index; in response to the at least one relevant record including the first record, generating a set of search results including a first result, wherein the first result includes the access mechanism for the first state of the application; and providing the set of search results to the user device, wherein selection by the user of the first result causes the application on the user device to launch and transition to the first state. 2. The method of claim 1 , further comprising identifying a candidate activity object from the reviewable code, the candidate activity object potentially functional to change or assist in changing an application state of the set of application states of the application. 3. The method of claim 2 , further comprising tracing functions of the candidate activity object in the reviewable code to determine if the candidate activity object is functional to change or assist in changing the application state of the set of application states of the application, an application resource identifier of the first state access instruction indicating the candidate activity object based, at least in part, on the tracing. 4. The method of claim 3 , wherein tracing functions of the candidate activity object in the reviewable code comprises identifying a pattern of activity associated with the candidate activity object from the reviewable code to determine if the candidate activity object is functional to change or assist in changing the application state of the set of application states of the application. 5. The method of claim 2 , further comprising tracing functions of a parameter variable associated with the candidate activity object from the reviewable code to determine if the parameter variable assists the candidate activity object in changing the application state of the set of application states of the application. 6. The method of claim 5 , further comprising determining semantic meaning of the parameter variable by tracing use of the parameter variable in the reviewable code. 7. The method of claim 6 , further comprising assigning a category to the parameter variable based on the semantic meaning, the category being associated with a plurality of preexisting values. 8. The method of claim 7 , further comprising providing the first state access instruction to the application, the first state access instruction including the candidate activity object and at least one of the plurality of preexisting values. 9. The method of claim 1 , wherein the reviewable code is machine readable. 10. The method of claim 1 , wherein the first state access instruction comprises a parameter variable utilized by the application resource identifier. 11. The method of claim 1 , further comprising generating a state access instruction report including the set of state access instructions. 12. A system comprising a processor and a memory system, wherein the processor is configured to execute instructions from the memory system, wherein the instructions implement: a pre-processing module configured to obtain machine executable code of an application, the application operable to achieve a set of application states and pre-process the machine executable code to generate reviewable code; an object tracking module configured to, using static analysis (i) identify, from the reviewable code, a first state access instruction configured to invoke or assist in invoking a first subset of the set of application states of the application and (ii) identify a set of parameter variables relied on by the first state access instruction to create a template function instruction, a dynamic analysis module configured to perform dynamic analysis on the application to determine, for each parameter variable of the set of parameter variables, a set of values, wherein the template function instruction is instantiated with first values for the parameter variables to invoke a first state of the first subset of the set of application states of the application; a static access instruction report module configured to store an instantiation of the template function instruction with the first values as an access mechanism for the first state of the application and to store an instantiation of the template function instruction with second values as an access mechanism for a second state of the application; a scraper engine configured to: execute the application and scraping first data from the first state of the application; store a first record for the first state of the application in a search index, wherein the record includes the scraped first data; execute the application and scraping second data from the second state of the application; store a second record for the second state of the application in a search index, wherein the record includes the scraped second data; a set generation module configured to, in response to receiving a search query from a user device, identify at least one relevant record from the search index according to scraped data stored in the search index; a set processing module configured to, in response to the at least one relevant record including the first record, generate a set of search results including a first result and provide the set of search results to the user device, wherein the first result includes the access mechanism for the first state of the application, and wherein selection by the user of the first result causes the application on the user device to launch and transition to the first state. 13. The system of claim 12 , further comprising an object identification module configured to identify a candidate activity object from the reviewable code, the candidate activity object potentially functional to change or assist in changing an application state of the set of application states of the application.
Structural analysis for program understanding · CPC title
for test execution, e.g. scheduling of test suites · CPC title
Software maintenance or management · CPC title
by tracing the execution of the program · CPC title
using context · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.