Capture of software element state changes during software application runtime and application modification based on state changes

US2020242001A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020242001-A1
Application numberUS-201916262893-A
CountryUS
Kind codeA1
Filing dateJan 30, 2019
Priority dateJan 30, 2019
Publication dateJul 30, 2020
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F11/302Primary

    where the computing system component is a software system · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2020242001A1 cover?
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 continu…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F11/302. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jul 30 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).