DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Status of the application
This Office Action is in response to Applicant's Application filed on 02/23/2024. Claims 1-20 are pending for this examination.
Claim Interpretation
Claims use the term “Heatmap”. TechTarget defines Heatmap, “A heat map is a two-dimensional representation of data in which various values are represented by colors. A simple heat map provides an immediate visual summary of information across two axes, allowing users to quickly grasp the most important or relevant data points. More elaborate heat maps allow the viewer to understand complex data sets.” This shows that heatmap by definition is a visual summary of data.” This means heatmap by definition is represented visually.
Claims use the term “criticality”. The term has been not been defined in the specification. The specification described on page 14/17 bottom line “Upon execution, the system may determine that the Submodule '2' 742 is a critical submodule based at least on execution frequency (e.g., may determine that it [[s]] is executed 'Y' number of times) and may display it via a second visual representation element.” This shows that criticality is measured based on execution frequency. In other words, execution frequency is a measure of criticality.
Claims use the term “entity application”. Specification describes in [0020] “As described herein, the term "entity" may be any organization that creates, manages, develops, provides, maintains, and/or uses one or more applications (e.g., web applications, mobile applications, or the like) to perform one or more activities.” This shows entity means an organization and any application developed, managed or used by an organization is an entity application. Considering a person can be an organization, any application can be considered an entity application.
Claims use the term “lines of program code”. Here “lines of program code”, which means several lines of code, has been used as a unit of execution. Please note that specification does not mention lines of source code. In contrast, the specification implies that the “lines of program code” means executable code. As such, the term “lines of program code” means an execution code unit, such as a function or a block of executable code.
Claims use the term “gaps in the test data”. Specification recites in [0048] starting at line 2, “Based on the generated heatmap, the system may determine that a submodule of the 'n' submodules associated with a first module of the 'm' modules associated with an application is not executed at least once using the test data and may therefore
determine a gap in the test data that resulted in non-execution of the submodule.” In other words, it means that the test data does not execute some parts of the application.)
Objection to the Specification
The specification is objected for having a typing error. On page 15 top line recites “(e.g., may determine that it sis executed 'Y' number of times)”. It appears that the line was meant to be “(e.g., may determine that it [[sis]] is executed 'Y' number of times)”. Appropriate correction or explanation is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 of the invention is directed to non-statutory subject matter. The claims do not fall within at least one of the four categories of patent eligible subject matter because the claims represent an abstract idea.
As per claim 1:
a) Claim 1 recites, “access one or more entity applications associated an entity, wherein the one or more entity applications comprises lines of program code;
parse through the lines of program code associated with the one or more entity
applications;
generate tokens for each of the lines of program code;
generate heatmap associated with each of the lines of program code, wherein the
heatmap comprises visual representations associated with each of the tokens generated for each of the line of program code;”. Here access, parse and generate are mental processes since these limitations could be reasonably performed in the human mind through observation, evaluation, judgement, opinion.
b) claim 1 further recites “A system for generating software code criticality and execution heatmaps to optimize resource consumption
at least one processing device;
at least one memory device; and
a module stored in the at least one memory device comprising executable instructions”. Here “system”, “software code”, “execution heatmap”, “resource” “processing device”, “memory”, “memory device”, “module”, “executable instruction”, etc. are computers or generic computer components. Hence these limitations recite mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea.
c) Claim 1 further recites “display the heatmap to one or more users”, etc. Here display recites an insignificant extra solution activity of data gathering, optimizing, transmission and display. Common types of limitations that recite insignificant extra solution activity are gathering, transmitting, storing, displaying data.
Under step 2A, Prong 1, above limitations of listed under item (a) above are functions that can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, opinion, thus it is reasonable to identify these limitation as reciting a mental process. Hence not eligible subject matter under 2A, Prong 1.
Under step 2A prong 2, the above limitations listed under item (b) above are computers or generic computer components used as a tool to perform an abstract idea. They do not recite additional elements that integrate the judicial exception into a practical application. As such, the claim is not eligible subject matter under Step 2A, Prong 2.
See MPEP 2106.05(f).
Limitations under item (c) are merely recite insignificant extra solution activity such as data gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application. See MPEP 2106.05(g).
Under step 2B, the limitations in items (b) and (c) generic computer and computer components, and merely recite insignificant extra solution activity such as data gathering, displaying, updating, transmitting and storing data which do not integrate the judicial exception into a practical application. See MPEP 2105(d). Therefore, none of the additional elements recite an inventive concept, thus, the claimed invention is patent ineligible under 35 USC 101.
Claim 2 recites “generate the heatmap associated with each of the lines of program code based on executing the lines of program code based on test data.” Here generate is a mental process. Here “heatmap”, “lines of program code” and “test data”, etc. are are computers or generic computer components. Hence these limitations recite mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea.
Claim 3 recites “determine one or more gaps in the test data based on the heatmap; and perform one or more corrective actions based on determining the one or more gaps.” Here “determine” and “perform one or more corrective actions” are mental process. Here “gaps”, “test data” and “heatmap” are computers or generic computer components. Hence these limitations recite mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea.
Claim 4 recites “generating and transmitting alerts to one or more users associated with the one or more entity applications; modifying at least one of the lines of program code; commenting out the at least one of the lines of program code; and rearranging the lines of program code.” Here “generating”, “transmitting”, modifying”, “commenting out” and rearranging” are mental processes. Here “entity applications”, “lines of program code”, etc. are computers or generic computer components. Hence these limitations recite mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea.
Claim 5 recites “wherein the one or more corrective actions improve
resource consumption of one or more entity systems executing the lines of program code associated with one or more entity applications.” Here “corrective action” is a mental process, which is a mental process. Here “resource”, systems”, “lines of code” and “entity applications” are computers or generic computer components. Hence these limitations recite mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea.
Claim 6 recites “wherein the visual representations comprise representations that denote criticality and execution frequency associated with each of the lines of program code.” Here “visual representations”, “criticality” “execution frequency” and “line of program code” are computers or generic computer components. Hence these limitations recite mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea.
Claim 7 recites “wherein the one or more entity applications comprise
modules, wherein each of the modules comprise submodules, and each of the submodules comprise the lines of program code.” Here “one or more entity applications”, “modules” and “submodules” are computers or generic computer components. Hence these limitations recite mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea.
Claim 8 recites all the elements of claim 1. In addition, it contains “a non-transitory computer-readable storage medium”, which is a generic computer component. Hence this limitation recites mere instructions to implement an abstract idea on a computer or generic computer components which merely uses a computer as a tool to perform an abstract idea. The remaining claim limitations can be rejected using the same rationale as above.
As per claims 9-14, these are medium claims that substantially parallel the limitations of the system claims 2-7, respectively. As such, these represent an abstract idea as shown for claims 2-7.
As per claims 15-20, these are method claims that substantially parallel the limitations of the system claims 1-7, respectively. As such, these represent an abstract idea as shown for claims 1-7.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claims 3, 4 and 5 are rejected under 35 U.S.C 112 (b) as being indefinite because claim 3 recites the limitation “The system according to claim 1, wherein the executable instructions cause the at least one processing device to: determine one or more gaps in the test data based on the heatmap; and perform one or more corrective actions based on determining the one or more gaps.”. However, there is no prior mention of the term “test data” in the claim or its parent claim to which this reference could be made, and therefore the cited portion is lacking in antecedent basis. It appears that claim 3 should be dependent on claim 2. Claim 2 has the term “test data” to which reference could be made and hence the amendment overcomes the rejection.
Claims 4 and 5 are rejected for being dependent on a dependent on a rejected base claim.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1, 2, 6, 7, 8, 9, 13, 14, 15, 16, 19 and 20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Zhu et al (hereinafter Zhu, Patent No.: US 12,487,809.
As per claim 1, Zhu teaches,
A system for generating software code criticality and execution heatmaps to optimize resource consumption, comprising:
at least one processing device; at least one memory device; and a module stored in the at least one memory device comprising executable instructions that when executed by the at least one processing device, (Zhu Fig. 6 shows processors and memory devices.)
cause the at least one processing device to:
access one or more entity applications associated an entity, (Zhu recites in column 1, starting at line 41, “components of an executable program; scanning, by the one
or more processors, the components to divide the executable program into units;.” Here “scanning the components” means accessing the application. Zhu recites on column 3, starting at line 65, “Software as a Service (SaaS): the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail).” This shows that the application is an entity application, where the entity is a cloud service provider.)
wherein the one or more entity applications comprises lines of program code; (Zhu recites in column 1, starting at line 40, “receiving, by one or more processors,
components of an executable program; scanning, by the one or more processors, the components to divide the executable program into units;”. This shows that the application comprises lines of program code (or executable program units).)
parse through the lines of program code associated with the one or more entity applications; (Zhu recites in column 1, starting at line 40, “receiving, by one or more processors, components of an executable program; scanning, by the one or more processors, the components to divide the executable program into units; creating, by the one or more processors, a logical layer of entry lists, based on the units, for instantiations of the executable program;”. This shows parsing the lines of program code and dividing the application into executable program units.)
generate tokens for each of the lines of program code; (Zhu recites in column 7, starting at line 61, “The entry manger can assign an entry list to a program, wherein units can be assigned to an entry associated with an order the units were loaded, e.g., a unique identifier.” This shows that each code unit (or lines of program code) is assigned a unique identifier. This is the token.)
generate heatmap associated with each of the lines of program code, (Zhu recites in column 1, starting at line 47, “monitoring, by the one or more processors, execution of the instantiations to increment counters based on executions of the units; creating, by the one or more processors, a heatmap of the executions based on the counters;”.)
wherein the heatmap comprises visual representations associated with each of the tokens generated for each of the line of program code; and display the heatmap to one or more users. (Zhu recites in column 8, starting at line 33, “In one aspect, the heatmap generator of analyzer component 404 can generate a digital heatmap based on changing the entry order of the previously created paired list into an "x," "y" coordinate list from the entries and a depth list from the execution times. In another aspect of an embodiment, the heatmap generator function of analyzer component 404 can fill the pixels associated with the "x," "y" coordinate pairs and depth list with an initial value of zero to create a typical image with a size of (m, Max(nl,. .. , nm)).”)
As per claim 2, Zhu teaches,
wherein the executable instructions cause the at least one processing device to generate the heatmap associated with each of the lines of program code based on executing the lines of program code based on test data. (Zhu recites in column 1, starting at line 47, “monitoring, by the one or more processors, execution of the instantiations to increment counters based on executions of the units; creating, by the
one or more processors, a heatmap of the executions based on the counters;”. Here execution of the instantiations means execution of the “lines of program code”. Here heatmap is created on the number of times a program unit is executed.)
As per claim 6, Zhu teaches,
wherein the visual representations comprise representations that denote criticality and execution frequency associated with each of the lines of program code. (In light of the specification, critically and execution frequency are equivalent. Please see the claim interpretation section above. Zhu recites in column 1, starting at line 47, “monitoring, by the one or more processors, execution of the instantiations to increment counters based on executions of the units; creating, by the
one or more processors, a heatmap of the executions based on the counters;”. Here execution of the instantiations means execution of the “lines of program code”. Here heatmap is created on the number of times a program unit is executed. As such, this heatmap also represent criticality and execution frequency of an execution unit. Heatmap by definition is a visual representation of data. Please see the “Claim Interpretation” section above.)
As per claim 7, Zhu teaches,
wherein the one or more entity applications comprise modules, wherein each of the modules comprise submodules, and each of the submodules comprise the lines of program code. (Zhu recites in column 7, starting at line 56, “In another aspect, the results of the scan can show the units, e.g., class, function, module, etc., based on a user defined criterion, divided by the programs.” This shows that the application comprises function which can be considered modules. By user defined criteria each function can be further divided into sub-modules.)
As per claims 8, 9 13 and 14, these are medium claims that substantially parallel the limitations of the system claims 1, 2 6 and 7, respectively. It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the invention to implement the prescribed systems steps as a medium.
As per claims 15, 16, 19 and 20, these are method claims that substantially parallel the limitations of the system claims 1, 2, 6 and 7, respectively. It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the invention to implement the prescribed systems steps as a method.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 3, 4, 10, 11, 17 and 18 are rejected under AIA 35 U.S.C. 103 as being unpatentable over Zhu as applied to claims 2, 9 and 16 in view of Pearson (hereinafter Pearson, “A GUIDE TO FINDING GAPS IN YOUR AUTOMATED TEST COVERAGE”, 2022, Lucid.co).
As per claim 3, Zhu teaches use of heatmap in software development and testing. Zhu does not explicitly mention “wherein the executable instructions cause the at least one processing device to: determine one or more gaps in the test data based on the heatmap;”. However, in analogous art of software development and testing, Pearson teaches,
wherein the executable instructions cause the at least one processing device to:
determine one or more gaps in the test data based on the heatmap; and (Pearson recites on page 1, last line, “Combining this build data with customer-use metrics provides a valuable heatmap of potential testing gaps—enabling focused improvement of test coverage on the most-used features.”)
perform one or more corrective actions based on determining the one or more gaps. (Pearson recites on page 2 starting at line 2, “Daily event tracking allows you to monitor and respond to changes in customer use, feature experiments, release of new features, and changes to testing content.” This shows corrective action of changing tests.)
Therefore, it would have been obvious to a person of the ordinary skill in the art before the effective filling date of the invention to modify the above teaching of Zhu of use of heatmap in software development and testing by incorporating the teaching “wherein the executable instructions cause the at least one processing device to: determine one or more gaps in the test data based on the heatmap;” of Pearson. The modification would have been obvious because one of the ordinary skills of the art would have implemented the function of determining the gaps in test data using a heatmap because heatmap graphically shows the parts of the application not covered by a test.
As per claim 4, Pearson teaches,
wherein the one or more corrective actions comprise at least one of:
generating and transmitting alerts to one or more users associated with the one or more entity applications; (Pearson recites on page 2 starting at line 2, “Daily event tracking allows you to monitor and respond to changes in customer use, feature experiments, release of new features, and changes to testing content.” Here “monitoring” provides the gap information, which means the application is generating and transmitting some kind of signal to inform the user about the gap.)
modifying at least one of the lines of program code; (not considered)
commenting out the at least one of the lines of program code; and (not considered)
rearranging the lines of program code. (not considered)
As per claims 10 and 11, these are medium claims that substantially parallel the limitations of the system claims 3 and 4, respectively. It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the invention to implement the prescribed systems steps as a medium.
As per claims 17 and 18, these are method claims that substantially parallel the limitations of the system claims 3 and 4, respectively. It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the invention to implement the prescribed systems steps as a method.
References of Note
Examiner has cited particular columns, line numbers, references, or figures in the references applied to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses to fully consider the reference in entirety, as potentially teaching all or part of the claimed invention. See MPEP §§ 2141.02 and 2123.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HOSSAIN MORSHED whose telephone number is (571)272-3335. The examiner can normally be reached on Monday – Friday12:00 PM – 9 PM Eastern Time. The email address for the examiner is hossain.morshed@uspto.gov.
Examiner interviews are available via telephone or video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Mui can be reached on (571)272-3708.
/HOSSAIN M MORSHED/Primary Examiner, Art Unit 2191 February 16, 2026