IP Library Granted Patent US 10,503,743
Granted Patent B2
US 10,503,743 · App. 14/943,312 · Granted Dec 10, 2019

Integrating search with application analysis

Inventors: Scott M. Louvau (Redmond, WA); Michael C. Fanning (Redmond, WA); Christopher M. Faucon (Bellevue, WA)
Assignee: Microsoft Technology Liscensing, LLC
G06F16/248G06F8/70G06F8/75G06F16/2228G06F16/245G06F16/30G06F8/20G06F8/36G06F8/71
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 10,503,743
App. No.
14/943,312
Granted
Dec 10, 2019
Kind
B2
Abstract

Aspects of the subject matter described herein relate to searching. In aspects, a software package may be received and transformed into searchable data. Static and dynamic analysis may be performed on code and data included in the software package. A data structure is created that may index the code, metadata, indexable resources, and analysis artifacts associated with the software package. The data structure may be used to satisfy queries and the transformed data and analysis artifacts may be made available for viewing.

Claims (32)

1. A method implemented at least in part by a computer, the method comprising:

receiving a search query that includes a search term;

searching for the search term in an indexed data structure that includes searchable terms obtained from code of a software package and searchable terms obtained from analysis data that was generated by analyzing the code of the software package, the analysis data including at least one of static analysis data generated without execution of the code of the software package or dynamic analysis data generated by execution of the code of the software package, wherein the indexed data structure associates the searchable terms with locations of the searchable terms in the code of the software package and in the analysis data; and

providing a result set that includes an indication of where the search term is located in a code element of the software package and an indication of where the search term is located in a portion of the at least one of the static analysis data or the dynamic analysis data that was generated by analyzing the code element of the software package.

2. The method of claim 1 , wherein the indexed data structure includes searchable terms obtained from metadata and resources that were extracted from the software package.

3. The method of claim 2 , wherein the indexed data structure associates the searchable terms with locations of the searchable terms in the metadata and in the resources that were extracted from the software package.

4. The method of claim 1 , wherein the indexed data structure further associates the searchable terms and locations of the searchable terms in additional metadata that is not included in the software package.

5. The method of claim 1 , wherein the indexed data structure further associates the searchable terms and locations of the searchable terms in an annotation regarding the code element of the software package.

6. The method of claim 1 , wherein the indexed data structure further associates the searchable terms and locations of the searchable terms in multiple versions of the software packages.

7. The method of claim 1 , wherein the indexed data structure further associates the searchable terms and locations of the searchable terms in a different software package.

8. The method of claim 1 , wherein the analysis data comprises code coverage data and runtime tracing data.

9. The method of claim 1 , wherein the indexed data structure comprises an inverted word index.

10. The method of claim 1 , wherein:

the query includes a plurality of search terms, and

the result set is limited based on the plurality of search terms.

11. A computer system comprising:

at least one processor structured to execute computer-executable instructions; and memory storing computer-executable instructions, that when executed by the at least one processor, cause the computer system to perform actions comprising:

generating analysis data by performing at least one of a static analysis task or a dynamic analysis task to analyze code of a software package;

receiving a search query that includes a search term;

searching for the search term in an indexed data structure that includes searchable terms obtained from the code of the software package and searchable terms obtained from analysis data that was generated by said performing at least one of the static analysis task or the dynamic analysis task to analyze the code of the software package, wherein the indexed data structure associates the searchable terms with locations of the searchable terms in the code of the software package and in the analysis data; and

providing a result set that includes an indication of where the search term is located in a code element of the software package and an indication of where the search term is located in a portion of the analysis data that was generated by said performing at least one of the static analysis task and the dynamic analysis task to analyze the code element of the software package.

12. The computer system of claim 11 , wherein the indexed data structure includes searchable terms obtained from metadata and resources that were extracted from the software package.

13. The computer system of claim 12 , wherein the indexed data structure associates the searchable terms with locations of the searchable terms in the metadata and in the resources that were extracted from the software package.

14. The computer system of claim 11 , wherein the indexed data structure further associates the searchable terms and locations of the searchable terms in additional metadata that is not included in the software package.

15. The computer system of claim 11 , wherein the indexed data structure further associates the searchable terms and locations of searchable terms in an annotation regarding the code element of the software package.

16. The computer system of claim 11 , wherein the indexed data structure further associates the searchable terms and locations of the searchable terms in multiple versions of the software packages.

17. The computer system of claim 11 , wherein the indexed data structure further associates the searchable terms and locations of the searchable terms in a different software package.

18. A computer storage medium storing computer-executable instructions that, when executed, cause a computer system to perform actions comprising:

generating analysis data by performing at least one of a static analysis task or a dynamic analysis task to analyze code of a software package;

receiving a search query that includes a search term;

searching for the search term in an indexed data structure that includes searchable terms obtained from the code of the software package and searchable terms obtained from the analysis data that was generated by said performing at least one of the static analysis task or the dynamic analysis task to analyze the code of the software package, wherein the indexed data structure associates the searchable terms with locations of the searchable terms in the code of the software package and in the analysis data; and

providing a result set that includes an indication of where the search term is located in a code element of the software package and an indication of where the search term is located in a portion of the analysis data that was generated by said performing at least one of the static analysis task and the dynamic analysis task to analyze the code element of the software package.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2017
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044850/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2015
From: LOUVAU, SCOTT M.; FANNING, MICHAEL C.; FAUCON, CHRISTOPHER M.
To: MICROSOFT CORPORATION
Reel/Frame 037058/0847 →