Machine learning-based universal software component identification
US-12175241-B1 · Dec 24, 2024 · US
US9612937B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9612937-B2 |
| Application number | US-201213604495-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 5, 2012 |
| Priority date | Sep 5, 2012 |
| Publication date | Apr 4, 2017 |
| Grant date | Apr 4, 2017 |
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.
In embodiments of determining relevant events in source code analysis, a computing device includes a key event manager that is implemented to traverse executable paths in source code of executable software instructions, log events along the executable paths in the source code, and determine a defect in the source code along an executable path in the source code. A state machine is implemented to traverse back through the logged events and determine relevant events that are associated with the defect in the source code. An analysis output of the relevant events can then be generated to indicate the defect in the source code and a cause of the defect.
Opening claim text (preview).
The invention claimed is: 1. A computing device, comprising: source code of executable software instructions; a memory and processor system to implement a key event manager that is configured to: traverse executable paths in the source code; log events along the executable paths in the source code; determine a defect in the source code along an executable path in the source code; and initiate a state machine that includes multiple states corresponding to different types of the events, the state machine configured to: traverse back through the logged events and determine relevant and non-relevant events that are associated with the defect in the source code, the traversing back through the logged events being based on a current state of the state machine as the state machine traverses back through the logged events, and further the traversing starting from the defect in the source code and traversing the executable path in reverse order through the different types of the events including: branch events, alias events, and declaration events to determine one or more relevant declaration events and an associated alias event, an alias event indicating at least two variables corresponding to a particular reference, a branch event indicating a change of the executable path in the source code, and a declaration event indicating an operation on a variable; transition states of the state machine during the traversing in response to determining that the event type in the traversed executable paths is a relevant event having a relevant association to the defect or a non-relevant event having a non-relevant association to the defect in the source code; determine which of the relevant events are redundant relevant events contributing to a duplicate defect in the source code; filter the logged events to discard the redundant relevant events and the non-relevant events from the relevant events; and generate an analysis output of the filtered relevant events to indicate the defect in the source code and a cause of the defect. 2. A computing device as recited in claim 1 , wherein: a first redundant relevant event is associated with the defect as determined along the executable path in the source code; and at least a second redundant relevant event is associated with the defect as determined along a different executable path in the source code. 3. A computing device as recited in claim 1 , wherein the events are generated for the different types of the events, comprising: the alias event that indicates the at least two variables correspond to the particular reference; the branch event that indicates the change of executable paths in the source code; the declaration event that indicates the operation on the variable; and a failed-assertion event that indicates the defect in the source code. 4. A computing device as recited in claim 3 , wherein the state machine is extensible to add additional types of the events that are utilized to determine the relevant events associated with the defect in the source code. 5. A computing device as recited in claim 1 , wherein the state machine is further configured to add additional types of the events that are utilized to determine the relevant events associated with the defect in the source code. 6. A computing device as recited in claim 1 , wherein the key event manager is further configured to: generate a tag for each of the relevant events that indicates at least a type of the event, an importance of the event, and a message to explain the event; communicate the message to explain the event to a developer of the source code, the message being a text message or an email message; and filter, prior to the analysis output of the relevant events generated, one or more event types from the relevant events based on the type of the event indicated in the tag for each of the relevant events. 7. A computing device as recited in claim 1 , wherein the key event manager is further configured to: initiate a state machine to determine related relevant events associated with the defect in the source code; and merge the related relevant events together as a single relevant event. 8. A computer-implemented method, comprising: traversing executable paths in source code of executable software instructions; logging events along the executable paths in the source code; determining a defect in the source code along an executable path in the source code; determining relevant and non-relevant events that are associated with the defect in the source code by traversing back through the logged events using a state machine that includes multiple states corresponding to different types of the events, the the traversing back through the logged events being based on a current state of the state machine as the state machine traverses back through the logged events, and further the traversing starting at the defect in the source code and traversing the executable path in reverse order through the different types of the events including: branch events, alias events, and declaration events to determine one or more relevant declaration events and an associated alias event, an alias event indicating at least two variables corresponding to a particular reference, a branch event indicating a change of the executable path in the source code, and a declaration event indicating an operation on a variable; transitioning states of the state machine during the traversing in response to the determining that the event type in the traversed executable path is a relevant event having a relevant association to the defect or a non-relevant event having a non-relevant association to the defect in the source code; determining related relevant events associated with the defect in the source code; merging the related relevant events as a single relevant event; filtering the logged events to discard the non-relevant events from the relevant events; and generating an analysis output of the filtered relevant events to indicate the defect in the source code and a cause of the defect. 9. A method as recited in claim 8 , further comprising: determining a first redundant relevant event that is associated with the defect as determined along the executable path in the source code; and determining at least a second redundant relevant event that is associated with the defect as determined along a different executable path in the source code. 10. A method as recited in claim 8 , further comprising discarding the non-relevant events of the logged events. 11. A method as recited in claim 8 , further comprising determining one or more of the relevant events that contribute to a duplicate defect in the source code. 12. A method as recited in claim 8 , further comprising generating the events for different types of the events, comprising: the alias event that indicates the least two variables correspond to the particular reference; the branch event that indicates the change of executable paths in the source code; the declaration event that indicates the operation on the variable; and a failed-assertion event that indicates the defect in the source code. 13. A method as recited in claim 8 , further comprising adding additional types of the events that are utilized to determine the relevant events associated with the defect in the source code. 14. A method as recited in claim 8 , further comprising: generating a tag for each of the relevant events that indicates at least a type of the event and an importance of the event; and said filtering, prior to the generating the analysis output, one or more event types from the relevant events b
Structural analysis for program understanding · CPC title
for test results analysis · CPC title
Prevention of errors by analysis, debugging or testing of software · CPC title
by tracing the execution of the program · CPC title
Testing of software · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.