Automated customization of software feature availability based on usage patterns and history
US-2017255455-A1 · Sep 7, 2017 · US
US2020242001A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2020242001-A1 |
| Application number | US-201916262893-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jan 30, 2019 |
| Priority date | Jan 30, 2019 |
| Publication date | Jul 30, 2020 |
| Grant date | — |
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 capturing software element state changes during software application runtime, a computing device executes a software application that a set of software sensors integrated within executable code of the software application. The software sensors correspond to software elements in the software application. During runtime, a given software sensor corresponding to a given software element continuously determines whether the given software element changes state. In response to a change in state, the given software sensor captures and stores the current state of the given software element. An application control module associated with the software application obtains state data stored by the software sensors. The application control module determines commands for modifying a behavior of the software application based on an analysis of the state data and executes the commands.
Opening claim text (preview).
What is claimed is: 1 . A method for capturing software element state changes during software application runtime, implemented by a processor of a computing device, comprising: executing the software application, the software application comprising a set of one or more software sensors integrated within executable code of the software application, the set of one or more software sensors corresponding to a set of one or more software elements in the software application; during runtime of the software application, a given software sensor of the set of the one or more software sensors corresponding to a given software element of the set of one or more software elements: continuously determines whether the given software element corresponding to the given software sensor changes state; in response to determining that the given software element corresponding to the given software sensor changes state, captures the current state of the given software element; and stores the current state of the given software element; obtaining, by an application control module associated with the software application, state data stored by the set of the one or more software sensors; determining, by the application control module, a set of one or more commands for modifying a behavior of the software application based on an analysis of the state data; and executing, by the application control module, the set of one or more commands. 2 . The method of claim 1 , wherein the set of the one or more software sensors comprises a set of extended software programming language constructs developed as part of the software application. 3 . The method of claim 1 , wherein the given software element comprises a reusable scope element, wherein the determining whether the given software element corresponding to the given software sensor changes state and the capturing of the current state of the given software element comprises: determining an entry or an exit of the reusable scope element during the runtime of the software application; and in response to determining the entry or the exit of the reusable scope element, capturing a change in the current state of the reusable scope element. 4 . The method of claim 1 , wherein the given software element comprises an object, wherein the determining whether the given software element corresponding to the given software sensor changes state and the capturing of the current state of the given software element comprises: determining a creation or a destruction of the object during the runtime of the software application; and in response to determining the creation or the destruction of the object, capturing a change in the current state of the object. 5 . The method of claim 1 , wherein the given software element comprises a state machine, wherein the determining whether the given software element corresponding to the software sensor changes state and the capturing of the current state of the given software element comprises: determining a change in a state of the state machine during the runtime of the software application; and in response to determining the change in the state of the state machine, capturing a current state of the state machine. 6 . The method of claim 1 , wherein the given software element comprises a thread, wherein the determining whether the given software element corresponding to the given software sensor changes state and the capturing of the current state of the given software element comprises: determining a creation or a termination of the thread during the runtime of the software application; and in response to determining the creation or the termination of the thread, capturing a change in the current state of the thread. 7 . The method of claim 1 , wherein the set of the one or more software sensors is mapped to one or more bits in a bit table, wherein the capturing of the current state of the given software element comprises: setting a bit mapped to the given software sensor according to the current state of the given software element by the given software sensor, wherein the obtaining of the state data stored by the set of the one or more software sensors comprises: reading the bit mapped to the given software element by the application control module. 8 . A computer program product for capturing software element state changes during software application runtime, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to: execute the software application, the software application comprising a set of one or more software sensors integrated within executable code of the software application, the set of one or more software sensors corresponding to a set of one or more software elements in the software application; during runtime of the software application, a given software sensor of the set of the one or more software sensors corresponding to a given software element of the set of one or more software elements: continuously determines whether the given software element corresponding to the given software sensor changes state; in response to determining that the given software element corresponding to the given software sensor changes state, captures the current state of the given software element; and stores the current state of the given software element; obtain, by an application control module associated with the software application, state data stored by the set of the one or more software sensors; determine, by the application control module, a set of one or more commands for modifying a behavior of the software application based on an analysis of the state data; and execute, by the application control module, the set of one or more commands. 9 . The computer program product of claim 8 , wherein the set of the one or more software sensors comprises a set of extended software programming language constructs developed as part of the software application. 10 . The computer program product of claim 8 , wherein the given software element comprises a reusable scope element, wherein the determining whether the given software element corresponding to the given software sensor changes state and the capturing of the current state of the given software element comprises: determine an entry or an exit of the reusable scope element during the runtime of the software application; and in response to determining the entry or the exit of the reusable scope element, capture a change in the current state of the reusable scope element. 11 . The computer program product of claim 8 , wherein the given software element comprises an object, wherein the determining whether the given software element corresponding to the given software sensor changes state and the capturing of the current state of the given software element comprises: determine a creation or a destruction of the object during the runtime of the software application; and in response to determining the creation or the destruction of the object, capture a change in the current state of the object. 12 . The computer program product of claim 8 , wherein the given software element comprises a state machine, wherein the determining whether the given software element corresponding to the software sensor changes state and the capturing of the current state of the given software element comprises: determine a change in a state of the state machine during the runtime of the software application; and in response to determining the change in the state of the state machine, capture a current state of the
Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents (software debugging using additional hardware using a specific debug interface G06F11/3656; performance evaluation by tracing or monitoring G06F11/3466) · CPC title
Monitoring of systems including the internet · CPC title
where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50) · CPC title
Monitoring of software · CPC title
where the computing system component is a software system · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.