Generating and employing operational abstractions of transforms
AssigneeInternational Business Machines Corporation
InventorsPankaj Dhoolia, Senthil Kumar Kumarasamy Mani, Saurabh Sinha, Vibha Singhal Sinha
Life of this patent
Estimating the term…
Abstract
Methods and arrangements for employing a software model transform. A software model transform is accepted, and the transform is manipulated to obtain a transform representation. At least one functional path is explored with respect to the transform representation. A trace is conducted of at least one explored path, and an abstraction of the transform is produced via utilizing the trace, the abstraction comprising a simplified semantic view of the transform.
Claims11
A method of employing a software model transform, said method comprising:
- utilizing a processor to execute computer code configured to perform the steps of:
- accepting a software model transform;
- manipulating the transform to obtain a transform representation;
- producing an abstraction of the transform via:
- forcibly exploring a plurality of paths one by one via a blank input model, with respect to the transform representation;
- wherein said exploring comprises undertaking selective path exploration which is based on dependence chains starting at an input-model entity and terminating at an output statement;
- conducting a trace of at least one explored path via producing at least one taint log, wherein the at least one taint log includes a trace of at least one explored path, the trace including loop, data and control taint information;
- and
- producing an abstraction of the transform via utilizing the trace, the abstraction comprising a simplified semantic view of the transform;
- wherein the abstraction conveys:
- literals, at least one input-model entity, repeating fragments and conditional fragments, output fragments and guards;
- wherein each literal is created for a data taint in the trace;
- wherein each conditional fragment is created for a control taint in the trace, from a relational expression captured in the control taint information;
- wherein each repeating fragment is created for a loop taint in the trace;
- wherein, for a path of consecutive control taints, a conjunction of guards is created;
- and
- wherein, for two sibling control taints for the same statement but different branches, alternative output fragments are created.
An apparatus for employing a software model transform, said apparatus comprising:
- at least one processor;
- and
- a computer readable storage medium having computer readable program code embodied therewith and executable by the at least one processor, the computer readable program code comprising:
- computer readable program code configured to accept a software model transform;
- computer readable program code configured to manipulate the transform to obtain a transform representation;
- computer readable program code configured to produce an abstraction of the transform via:
- forcibly exploring a plurality of paths one by one via a blank input model, with respect to the transform representation;
- wherein the exploring comprises undertaking selective path exploration which is based on dependence chains starting at an input-model entity and terminating at an output statement;
- conducting a trace of at least one explored path via producing at least one taint log, wherein the at least one taint log includes a trace of at least one explored path, the trace including loop, data and control taint information;
- and
- producing an abstraction of the transform via utilizing the trace, the abstraction comprising a simplified semantic view of the transform;
- wherein the abstraction conveys:
- literals, at least one input-model entity, repeating fragments and conditional fragments, output fragments and guards;
- wherein each literal is created for a data taint in the trace;
- wherein each conditional fragment is created for a control taint in the trace, from a relational expression captured in the control taint information;
- wherein each repeating fragment is created for a loop taint in the trace;
- wherein, for a path of consecutive control taints, a conjunction of guards is created;
- and
- wherein, for two sibling control taints for the same statement but different branches, alternative output fragments are created.
A computer program product for employing a software model transform, said computer program product comprising:
- a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:
- computer readable program code configured to accept a software model transform;
- computer readable program code configured to manipulate the transform to obtain a transform representation;
- computer readable program code configured to produce an abstraction of the transform via:
- forcibly exploring a plurality of paths one by one via a blank input model, with respect to the transform representation;
- wherein the exploring comprises undertaking selective path exploration which is based on dependence chains starting at an input-model entity and terminating at an output statement;
- conducting a trace of at least one explored path via producing at least one taint log, wherein the at least one taint log includes a trace of at least one explored path, the trace including loop, data and control taint information;
- and
- producing an abstraction of the transform via utilizing the trace, the abstraction comprising a simplified semantic view of the transform;
- wherein the abstraction conveys:
- literals, at least one input-model entity, repeating fragments and conditional fragments, output fragments and guards;
- wherein each literal is created for a data taint in the trace;
- wherein each conditional fragment is created for a control taint in the trace, from a relational expression captured in the control taint information;
- wherein each repeating fragment is created for a loop taint in the trace;
- wherein, for a path of consecutive control taints, a conjunction of guards is created;
- and
- wherein, for two sibling control taints for the same statement but different branches, alternative output fragments are created.
A method comprising:
- accepting a software model transform;
- manipulating the transform to obtain a raw transform representation;
- producing an abstraction of the transform via:
- conducting forced path exploration with respect to a plurality of paths found in the raw transform representation;
- wherein said conducting of forced path exploration comprises:
- forcibly exploring the plurality of paths one by one via a blank input model, with respect to the raw transform representation;
- and
- undertaking selective path exploration which is based on dependence chains starting at an input-model entity and terminating at an output statement;
- conducting a trace of at least one explored path via producing a taint log, wherein the at least one taint log includes a trace of at least one explored path, the trace including loop, data and control taint information;
- and
- producing an abstraction of the transform via utilizing the taint log, the abstraction comprising a simplified semantic view of the transform;
- wherein the abstraction conveys:
- literals, at least one input-model entity, repeating fragments and conditional fragments, output fragments and guards;
- wherein each literal is created for a data taint in the trace;
- wherein each conditional fragment is created for a control taint in the trace, from a relational expression captured in the control taint information;
- wherein each repeating fragment is created for a loop taint in the trace;
- wherein, for a path of consecutive control taints, a conjunction of guards is created;
- and
- wherein, for two sibling control taints for the same statement but different branches, alternative output fragments are created.
Dependencies are inferred from the claim text.