DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to application filed on April 11, 2024.
Claims 1-20 are pending.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP §§ 706.02(l)(1) - 706.02(l)(3) for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-17 of U.S. Patent No. 11,983,091 in view of Feldstein et al. (US 2006/0085681).
Instant Application #18/632885
1. A system for adaptively generating a program model, comprising:
one or more processors;
and memory operatively coupled to the one or more processors, the memory comprising instructions that, when executed by the one or more processors, cause the one or more processors to:
receive source code of a program to be tested for code issues;
receive a set of predefined patterns to be tested in the source code;
build a dynamic program model based on the identified set of program models, wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns;
and test the source code for code issues by extracting from the dynamic program model, instances of each of the set of predefined patterns.
2. The system of claim 1, wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features.
3. The system of claim 1, wherein the instructions that cause the one or more processors to receive the set of predefined patterns comprise instructions that, when executed by the one or more processors, cause the one or more processors to, one of:
receive data corresponding to the set of predefined patterns from one or more client devices based on one or more user operations;
or automatically generate data corresponding to the set of predefined patterns based on a user operation on a client device to select an analytical approach.
4. The system of claim 1, wherein the instructions that cause the one or more processors to determine the feature configuration data comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
parse each of the patterns in the received set of predefined patterns to generate pattern parse trees;
and analyze the pattern parse trees to extract the set of features.
5. The system of claim 1, wherein the memory further comprises instructions that, when executed by the one or more processors, cause the one or more processors to:
receive feature lookup data indicating predefined relationships between a plurality of features and respective exemplary patterns that can be resolved by the plurality of features,
wherein the feature lookup operation for each pattern in the received set of predefined patterns is performed based on the received feature lookup data.
6. The system of claim 1, wherein the instructions that cause the one or more processors to identify the set of program models comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature;
and identify the set of program models based on the model lookup operation performed for each feature in the set of features.
7. The system of claim 6, wherein the instructions that cause the one or more processors to identify the set of program models further comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
extract, from the received model lookup data, a bit vector for each feature in the set of features, wherein each bit vector indicates the optimized program model for the feature;
and generate a unified bit vector by unifying the extracted bit vectors by performing a bitwise OR operation, wherein the unified bit vector represents the dynamic program model.
8. The system of claim 7, wherein the model lookup data is a lookup table that stores the relationship between a plurality of features and a plurality of program models, and wherein the lookup table indicates for each of the plurality of features, an optimal program model from among the plurality of program models that has support for the feature.
9. A method for adaptively generating a program model, comprising:
receiving source code of a program to be tested for code issues;
receiving a set of predefined patterns to be tested in the source code;
building a dynamic program model based on the identified set of program models,
wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns;
and testing the source code for code issues by extracting from the dynamic program model, instances of each of the set of predefined patterns.
10. The method of claim 9, wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features.
11. The method of claim 9, wherein receiving the set of predefined patterns comprises, one of:
receiving data corresponding to the set of predefined patterns from one or more client devices based on one or more user operations;
or automatically generating data corresponding to the set of predefined patterns based on a user operation on a client device to select an analytical approach.
12. The method of claim 9, wherein determining the feature configuration data
comprises:
parsing each of the patterns in the received set of predefined patterns to generate pattern parse trees;
and analyzing the pattern parse trees to extract the set of features.
13. The method of claim 9, further comprising:
receiving feature lookup data indicating predefined relationships between a plurality of features and respective exemplary patterns that can be resolved by the plurality of features,
wherein the feature lookup operation for each pattern in the received set of predefined patterns is performed based on the received feature lookup data.
14. The method of claim 9, wherein identifying the set of program models comprises:
receiving model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
performing, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature; and
identifying the set of program models based on the model lookup operation performed for each feature in the set of features.
15. The method of claim 14, wherein identifying the set of program models further comprises:
extracting, from the received model lookup data, a bit vector for each feature in the set of features, wherein each bit vector indicates the optimized program model for the feature;
and generating a unified bit vector by unifying the extracted bit vectors by performing a bitwise OR operation, wherein the unified bit vector represents the dynamic program model.
16. The method of claim 15, wherein the model lookup data is a lookup table that stores the relationship between a plurality of features and a plurality of program models, and wherein the lookup table indicates for each of the plurality of features, an optimal program model from among the plurality of program models that has support for the feature.
17. A non-transitory computer readable medium having a computer-executable program stored thereon, the program comprising instructions that, when executed, cause a computing system to:
receive source code of a program to be tested for code issues;
receive a set of predefined patterns to be tested in the source code;
build a dynamic program model based on the identified set of program models, wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns;
and test the source code for code issues by extracting from the dynamic program model, instances of each of the set of predefined patterns.
18. The non-transitory computer readable medium of claim 17, wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features defining the feature configuration data.
19. The non-transitory computer readable medium of claim 17, wherein the instructions that cause the computing system to identify the set of program models comprise instructions that, when executed, cause the computing system to:
receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature; and
identify the set of program models based on the model lookup operation performed for each feature in the set of features.
20. The non-transitory computer readable medium of claim 19, wherein the instructions that cause the computing system to identify the set of program models comprise instructions that, when executed, cause the computing system to:
extract, from the received model lookup data, a bit vector for each feature in the set of features, wherein each bit vector indicates the optimized program model for the feature;
and generate a unified bit vector by unifying the extracted bit vectors by performing a bitwise OR operation, wherein the unified bit vector represents the dynamic program model.
Patent No. 11,983,091
1. A system for adaptively generating a program model, comprising:
one or more processors;
and memory operatively coupled to the one or more processors, the memory comprising instructions that, when executed by the one or more processors, cause the one or more processors to:
receive source code of a program to be tested for code issues;
receive a set of predefined patterns to be tested in the source code;
generate feature configuration data by determining a set of features corresponding to the received set of predefined patterns;
identify a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature;
build a dynamic program model based on the identified set of program models, wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns;
and test the source code for code issues by extracting from the dynamic program model instances of each of the set of predefined patterns,
wherein the instructions that cause the one or more processors to identify the set of program models comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature;
and identify the set of program models based on the model lookup operation performed for each feature in the set of features.
2. The system of claim 1, wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features.
3. The system of claim 1, wherein the instructions that cause the one or more processors to receive the set of predefined patterns comprise instructions that, when executed by the one or more processors, cause the one or more processors to, one of:
receive data corresponding to the set of predefined patterns from one or more client devices based on one or more user operations;
or automatically generate data corresponding to the set of predefined patterns based on a user operation on a client device to select an analytical approach.
4. The system of claim 1, wherein the instructions that cause the one or more processors to generate the feature configuration data comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
parse each of the patterns in the received set of predefined patterns to generate pattern parse trees;
and analyze the pattern parse trees to extract the set of features.
5. The system of claim 1, wherein the instructions that cause the one or more processors to generate the feature configuration data comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
receive feature lookup data indicating predefined relationships between a plurality of features and respective exemplary patterns that can be resolved by the plurality of features;
perform, for each pattern in the received set of predefined patterns, a feature lookup operation of identifying a corresponding feature from the received feature lookup data;
and determine the set of features based on the feature lookup operation performed for each pattern in the received set of predefined patterns.
(from claim 1) wherein the instructions that cause the one or more processors to identify the set of program models comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature;
and identify the set of program models based on the model lookup operation performed for each feature in the set of features.
6. The system of claim 1, wherein the instructions that cause the one or more processors to identify the set of program models further comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
extract, from the model lookup data, a bit vector for each feature in the set of features, wherein each bit vector indicates the optimized program model for the feature;
and generate a unified bit vector by unifying the plurality of bit vectors by performing a bitwise OR operation, wherein the unified bit vector represents the dynamic program model.
7. The system of claim 1, wherein the model lookup data is a lookup table that stores a relationship between a plurality of features and a plurality of program models, and wherein the lookup table indicates for each of the plurality of features, an optimal program model from among the plurality of program models that has support for the feature.
8. A method for adaptively generating a program model, comprising:
receiving source code of a program to be tested for code issues;
receiving a set of predefined patterns to be tested in the source code;
generating feature configuration data by determining a set of features corresponding to the received set of predefined patterns;
identifying a set of program models by selecting, for each feature in the set of features, a program model from among a plurality of program models that is optimized for the feature;
building a dynamic program model based on the identified set of program models, wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns;
and testing the source code for code issues by extracting from the dynamic program model instances of each of the set of predefined patterns,
wherein identifying the set of program models comprises:
receiving model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
performing, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature;
and identifying the set of program models based on the model lookup operation performed for each feature in the set of features.
9. The method of claim 8, wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features.
10. The method of claim 8, wherein receiving the set of predefined patterns comprises, one of:
receiving data corresponding to the set of predefined patterns from one or more client devices based on one or more user operations;
or automatically generating data corresponding to the set of predefined patterns based on a user operation on a client device to select an analytical approach.
11. The method of claim 8, wherein generating the feature configuration data comprises:
parsing each of the patterns in the received set of predefined patterns to generate pattern parse trees;
and analyzing the pattern parse trees to extract the set of features.
12. The method of claim 8, wherein generating the feature configuration data comprises:
receiving feature lookup data indicating predefined relationships between a plurality of features and respective exemplary patterns that can be resolved by the plurality of features;
performing, for each pattern in the received set of predefined patterns, a feature lookup operation of identifying a corresponding feature from the received feature lookup data;
and determining the set of features based on the feature lookup operation performed for each pattern in the received set of predefined patterns.
(from claim 8) wherein identifying the set of program models comprises:
receiving model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
performing, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature;
and identifying the set of program models based on the model lookup operation performed for each feature in the set of features.
13. The method of claim 8, wherein identifying the set of program models further comprises:
extracting, from the model lookup data, a bit vector for each feature in the set of features, wherein each bit vector indicates the optimized program model for the feature;
and generating a unified bit vector by unifying the plurality of bit vectors by performing a bitwise OR operation, wherein the unified bit vector represents the dynamic program model.
14. The method of claim 8, wherein the model lookup data is a lookup table that stores a relationship between a plurality of features and a plurality of program models, and wherein the lookup table indicates for each of the plurality of features, an optimal program model from among the plurality of program models that has support for the feature.
15. A non-transitory computer readable medium having a computer-executable program stored thereon, the program comprising instructions that, when executed, cause a computing system to:
receive source code of a program to be tested for code issues;
receive a set of predefined patterns to be tested in the source code;
generate feature configuration data by determining a set of features corresponding to the received set of predefined patterns;
identify a set of program models by selecting, for each feature in the set of features, a program model from among a plurality of program models that is optimized for the feature;
build a dynamic program model based on the identified set of program models, wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns;
and test the source code for code issues by extracting from the dynamic program model, instances of each of the set of predefined patterns,
wherein the instructions that cause the computing system to identify the set of program models comprise instructions that, when executed, cause the computing system to:
receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature;
and identify the set of program models based on the model lookup operation performed for each feature in the set of features.
16. The non-transitory computer readable medium of claim 15, wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features defining the feature configuration data.
(from claim 15) wherein the instructions that cause the computing system to identify the set of program models comprise instructions that, when executed, cause the computing system to:
receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature;
and identify the set of program models based on the model lookup operation performed for each feature in the set of features.
17. The non-transitory computer readable medium of claim 15, wherein the instructions that cause the computing system to identify the set of program models comprise instructions that, when executed, cause the computing system to:
extract, from the model lookup data, a bit vector for each feature in the set of features defining the feature configuration data, wherein each bit vector indicates the optimized program model for the feature;
and generate a unified bit vector by unifying the plurality of bit vectors by performing a bitwise OR operation, wherein the unified bit vector represents the dynamic program model.
Claims 1, 8 and 15 of U.S. Patent No. 11,983,091 disclose Claims 1, 9 and 17 of the instant application #18/632885 as shown above.
However, U.S. Patent No. 11,983,091 does not disclose:
perform, for each pattern in the received set of predefined patterns, a feature lookup operation to identify a feature for resolving the pattern;
determine, as feature configuration data, a set of features based on the feature lookup operation performed for each pattern in the received set of predefined patterns;
identify a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature;
However, Feldstein et al. disclose:
perform, for each pattern in the received set of predefined patterns, a feature lookup operation to identify a feature for resolving the pattern; (comparing the name of a particular object in the GUI map to a table or mapping that defines which objects are state objects or transitions (perform a feature lookup operation), Paragraph 34, lines 1-5)
determine, as feature configuration data, a set of features based on the feature lookup operation performed for each pattern in the received set of predefined patterns; (automatically classify objects as state objects or transitions (determine feature configuration data/set of features) based on the comparison (feature lookup operation), Paragraph 34, lines 1-5)
identify a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature; (linking (identifying) state objects with transition objects (program models) resulting in the creation of a model of the execution behavior of the application under test (needed to evaluate the feature), Paragraph 35)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Feldstein et al. into the teaching of U.S. Patent No. 11,983,091 to include perform, for each pattern in the received set of predefined patterns, a feature lookup operation to identify a feature for resolving the pattern determine, as feature configuration data, a set of features based on the feature lookup operation performed for each pattern in the received set of predefined patterns and identify a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature in order to facilitate automatic model-based testing of computer programs. (Feldstein et al., Paragraph 1, lines 1-3)
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 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below.
Step 1: Claims 1-8 are directed to a system and fall within the statutory category of machines; Claims 9-16 are directed to methods and fall within the statutory category of processes; and Claims 17-20 are directed to a non-transitory computer readable medium and fall within the statutory category of articles of manufacture. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.
Step 2A Prong 1:
Claims 1, 9 and 17: The limitation “perform, for each pattern in the received set of predefined patterns, a feature lookup operation to identify a feature for resolving the pattern”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate a set of predefined patterns and mentally perform, with or without the use of pen and paper, for each pattern in a received set of predefined patterns, a feature lookup operation to identify a feature for resolving the pattern. The limitation “determine, as feature configuration data, a set of features based on the feature lookup operation performed for each pattern in the received set of predefined patterns”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate a feature lookup operation and mentally determine, with or without the use of pen and paper, as feature configuration data, a set of features based on the feature lookup operation performed for each pattern in a received set of predefined patterns.
The limitation “identify a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate a set of feature and mentally identify, with or without the use of pen and paper, a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature. The limitation “build a dynamic program model based on the identified set of program models”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate an identified set of program models and mentally build, with or without the use of pen and paper, a dynamic program model based on the identified set of program models.
The limitation “test the source code for code issues by extracting from the dynamic program model, instances of each of the set of predefined patterns”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate source code and mentally test, with or without the use of pen and paper, the source code for code issues by extracting from a dynamic program model, instances of each of a set of predefined patterns.
Therefore, Yes, claims 1, 9 and 17 recite judicial exceptions.
The claims have been identified to recite judicial exceptions, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception.
Step 2A Prong 2:
Claims 1, 9 and 17: The judicial exception is not integrated into a practical application. In particular, the claim recites the following additional elements –“ one or more processors; and memory operatively coupled to the one or more processors, the memory comprising instructions that, when executed by the one or more processors, cause the one or more processors to:…” and “A non-transitory computer readable medium having a computer-executable program stored thereon, the program comprising instructions that, when executed, cause a computing system to:…” which are merely recitations of generic computing components and functions being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Further, claims 1, 9 and 17 recite the following additional elements – “receive source code of a program to be tested for code issues” and “receive a set of predefined patterns to be tested in the source code” which are merely recitations of insignificant data gathering activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application and will also be addressed below in Step 2B as also being Well-Understood, Routine and Conventional.
Further still, claims 1, 9 and 17 recite the following additional elements – “wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns” which is merely a recitation of field of use/technological environment (see MPEP § 2106.05(h)) which does not integrate a judicial exception into a practical application.
Therefore, “Do the claims recite additional elements that integrate the judicial exception into a practical application? No, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
After having evaluating the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that claims 1, 9 and 17 not only recite a judicial exception but that the claims are directed to the judicial exception as the judicial exception has not been integrated into a practical application.
Step 2B:
Claims 1, 9 and 17: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to no more than generic computing components, mere instructions to apply an exception which do not amount to significantly more than the abstract idea and field of use/technological environment. Moreover, the recitations of insignificant data gathering activity as also Well-Understood, Routine and Conventional. See at least MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data”. That is, in the instant claims these limitations merely receive or transmit/provide data which is Well-Understood, Routine and Conventional.
Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception.
Having concluded analysis within the provided framework, Claims 1, 9 and 17 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 2, 10 and 18, they recite additional element of “wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features” which is merely a recitation of field of use/technological environment (see MPEP § 2106.05(h)) which does not integrate a judicial exception into a practical application and does not amount to significantly more than the judicial exception. Further, claims 2, 10 and 18 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 2, 10 and 18 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 2, 10 and 18 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 3 and 11, they recite additional element of “ receive data corresponding to the set of predefined patterns from one or more client devices based on one or more user operations” which is merely an insignificant data gathering activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application and is also Well-Understood, Routine and Conventional. See at least MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data”. That is, in the instant claims these limitations merely receive or transmit/provide data which is Well-Understood, Routine and Conventional. Further, claims 3 and 11 recite additional element of “automatically generate data corresponding to the set of predefined patterns based on a user operation on a client device to select an analytical approach” which is merely a recitation of generic computing components and functions being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application and does not amount to significantly more than the judicial exception. Further, claims 3 and 11 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 3 and 11 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 3 and 11 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 4 and 12, they recite additional abstract idea recitations of “parse each of the patterns in the received set of predefined patterns to generate pattern parse trees” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate patterns in a received set of predefined patterns, just as in the independent claims above, mentally parse, with or without the use of pen and paper, each of the patterns in the received set of predefined patterns to generate pattern parse trees. Further, claims 4 and 12 recite additional abstract idea recitations of “analyze the pattern parse trees to extract the set of features” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate patten parse trees, just as in the independent claims above, mentally analyze, with or without the use of pen and paper, the pattern parse trees to extract the set of features. Further still, claims 4 and 12 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 4 and 12 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 4 and 12 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 5 and 13, they recite additional element of “receive feature lookup data indicating predefined relationships between a plurality of features and respective exemplary patterns that can be resolved by the plurality of features” which is merely an insignificant data gathering activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application and is also Well-Understood, Routine and Conventional. See at least MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data”. That is, in the instant claims these limitations merely receive or transmit/provide data which is Well-Understood, Routine and Conventional. Further, claims 5 and 13 recite additional element of “wherein the feature lookup operation for each pattern in the received set of predefined patterns is performed based on the received feature lookup data” which is merely a recitation of field of use/technological environment (see MPEP § 2106.05(h)) which does not integrate a judicial exception into a practical application and does not amount to significantly more than the judicial exception. Further, claims 5 and 13 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 5 and 13 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 5 and 13 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 6, 14 and 19, they recite additional abstract idea recitations of “perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate received model lookup data, just as in the independent claims above, mentally perform, with or without the use of pen and paper, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature. Further, claims 6, 14 and 19 recite additional abstract idea recitations of “identify the set of program models based on the model lookup operation performed for each feature in the set of features” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate a model lookup operation, just as in the independent claims above, mentally identify, with or without the use of pen and paper, a set of program models based on the model lookup operation performed for each feature in a set of features. Further still, claims 6, 14 and 19 recite additional element of “receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features” which is merely an insignificant data gathering activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application and is also Well-Understood, Routine and Conventional. See at least MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data”. That is, in the instant claims these limitations merely receive or transmit/provide data which is Well-Understood, Routine and Conventional. Further still, claims 6, 14 and 19 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 6, 14 and 19 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 6, 14 and 19 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 7, 15 and 20, they recite additional abstract idea recitations of “extract, from the received model lookup data, a bit vector for each feature in the set of features” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate received model lookup data, just as in the independent claims above, mentally extract, with or without the use of pen and paper, from the received model lookup data, a bit vector for each feature in the set of features. Further, claims 7, 15 and 20 recite additional abstract idea recitations of “generate a unified bit vector by unifying the extracted bit vectors by performing a bitwise OR operation” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate extracted bit vectors, just as in the independent claims above, mentally generate, with or without the use of pen and paper, a unified bit vector by unifying the extracted bit vectors by performing a bitwise OR operation. Further still, claims 7, 15 and 20 recite additional element of “wherein each bit vector indicates the optimized program model for the feature” and “wherein the unified bit vector represents the dynamic program model” which are merely recitations of field of use/technological environment (see MPEP § 2106.05(h)) which do not integrate a judicial exception into a practical application and do not amount to significantly more than the judicial exception. Further still, claims 7, 15 and 20 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 7, 15 and 20 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 7, 15 and 20 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 8 and 16, they recite additional element of “wherein the model lookup data is a lookup table that stores the relationship between a plurality of features and a plurality of program models” and “wherein the lookup table indicates for each of the plurality of features, an optimal program model from among the plurality of program models that has support for the feature” which are merely recitations of field of use/technological environment (see MPEP § 2106.05(h)) which do not integrate a judicial exception into a practical application and do not amount to significantly more than the judicial exception. Further, claims 8 and 16 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 8 and 16 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 8 and 16 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Therefore, Claims 1-20 do not recite patent eligible subject matter under 35 U.S.C. §101.
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-3, 9-11 and 17-18 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Feldstein et al. (US 2006/0085681).
With respect to Claim 1, Feldstein et al. disclose:
one or more processors; (see Figure 6; processor 604)
and memory operatively coupled to the one or more processors, the memory comprising instructions that, when executed by the one or more processors, cause the one or more processors to: (see Figure 6; main memory 606/ROM 608/storage device 610 in communication with processor 604)
receive source code of a program to be tested for code issues; (receiving/storing an application under test, Paragraphs 25 and 30)
receive a set of predefined patterns to be tested in the source code; (see Figure 2; receiving a set of objects associated with computer program application under test, Paragraph 33, lines 1-2)
perform, for each pattern in the received set of predefined patterns, a feature lookup operation to identify a feature for resolving the pattern; (comparing the name of a particular object in the GUI map to a table or mapping that defines which objects are state objects or transitions (perform a feature lookup operation), Paragraph 34, lines 1-5)
determine, as feature configuration data, a set of features based on the feature lookup operation performed for each pattern in the received set of predefined patterns; (automatically classify objects as state objects or transitions (determine feature configuration data/set of features) based on the comparison (feature lookup operation), Paragraph 34, lines 1-5)
identify a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature; (linking (identifying) state objects with transition objects (program models) resulting in the creation of a model of the execution behavior of the application under test (needed to evaluate the feature), Paragraph 35)
build a dynamic program model based on the identified set of program models, wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns; (a finite state machine (dynamic program model) is created that represents execution behavior of the application according to the model (identified set of program models)and is used to test the application (adapted to resolve), Paragraphs 19 and 37)
and test the source code for code issues by extracting from the dynamic program model instances of each of the set of predefined patterns. (the application is tested using the finite state machine wherein the finite state machine drives operation of the GUI functional test application by launching the application under test and issuing simulated mouse clicks or other simulated user input to result in navigating among states and transitions of the application under test (extracting instances of each of the set of predefined patterns), Paragraph 37)
With respect to Claim 2, all the limitations of Claim 1 have been addressed above; and Feldstein et al. further disclose:
wherein the dynamic program model is an optimized program model that does not have support for features other than the features included in the set of features. (a finite state machine (dynamic program model) is created that represents execution behavior of the application (supports execution behavior (features) and does not support behaviors that are not executed (other features)) according to the model and is used to test the application , Paragraphs 19 and 37)
With respect to Claim 3, all the limitations of Claim 1 have been addressed above; and Feldstein et al. further disclose:
receive data corresponding to the set of predefined patterns from one or more client devices based on one or more user operations; (see Figure 4; receiving user input to edit transitions, define verification points and specific navigation algorithms and time duration for one or more tests of application execution (data corresponding to the set of predefined patterns), Paragraphs 56-58)
or automatically generate data corresponding to the set of predefined patterns based on a user operation on a client device to select an analytical approach.
Claims 9-11 are method claims corresponding to the system claims above (Claims 1-3) and, therefore, are rejected for the same reasons set forth in the rejections of Claims 1-3.
Claims 17-18 are non-transitory computer readable medium claims corresponding to the system claims above (Claims 1-2) and, therefore, are rejected for the same reasons set forth in the rejections of Claims 1-2.
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 4 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Feldstein et al. (US 2006/0085681) in view of Hsiao et al. (US 2022/0043848).
With respect to Claim 4, all the limitations of Claim 1 have been addressed above; and Feldstein et al. do not disclose:
parse each of the patterns in the received set of predefined patterns to generate pattern parse trees;
and analyze the pattern parse trees to extract the set of features.
However, Hsiao et al. disclose:
parse each of the patterns in the received set of predefined patterns to generate pattern parse trees; (organizing (parsing) passages into parse tree(s), Paragraph 20)
and analyze the pattern parse trees to extract the set of features. (detecting (analyze) in the parse tree(s) patterns that identify potentially relevant co-occurring entities (extract the set of features), Paragraph 21)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Hsiao et al. into the teaching of Feldstein et al. to include parse each of the patterns in the received set of predefined patterns to generate pattern parse trees and analyze the pattern parse trees to extract the set of features in order to detect patterns/features from a parse tree of a document. (Hsiao et al., Paragraph 21)
Claim 12 is a method claim corresponding to the system claim above (Claim 4) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 4.
Allowable Subject Matter
Claims 5-8, 13-16 and 19-20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims and the §101 and Double Patenting rejections are overcome.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Chen et al. (US 2017/0046510) discloses behavioral monitoring and predicting whether software is causing undesirable or performance depredating behavior.
Morris, II et al. (US 2016/0350671) discloses updating or adapting predictive modeling .
Any inquiry concerning this communication or earlier communications from the examiner should be directed to LANNY N UNG whose telephone number is (571)270-7708. The examiner can normally be reached Mon-Thurs 6am-4pm.
Examiner interviews are available via telephone, in-person, and 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, Bradley Teets can be reached on 571-272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/LANNY N UNG/Examiner, Art Unit 2197