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 .
2. This action is in response to the following communication: Non-provisional Application No. 18/792,395 filed on 08/01/2024
3. Claims 1-20 are pending.
Claims 1, 9 and 13 are independent claims.
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.
Regarding claims 1, 9 and 13, the limitations “identify a set of open code review requests”, “assign a respective priority”, and “manage a code review workflow” as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. These limitations encompass a human mind carrying out these functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1.
Claims 1, 9 and 13: Under Prong 2 Step 2A, the judicial exception is not integrated into a practical application. The additional elements “a system”, “one or more memories“, “one or more processors“, “non-transitory computer-readable medium“, and “a code review system” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2. The additional element “provide, to a reviewer device, information”, “receiving, by the code review system and from a reviewer device, a request“, and “each open code review request… is associated with a respective set of attributes“ do nothing more than add insignificant extra solution activity to the judicial exception of merely gathering data. Accordingly, the additional elements do not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(f) and (g), respectively.
Claims 1, 9 and 13: Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As stated above in prong 2, the additional elements “a system”, “one or more memories“, “one or more processors“, “non-transitory computer-readable medium“, and “a code review system” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, and additional elements “provide, to a reviewer device, information”, “receiving, by the code review system and from a reviewer device, a request“, and “each open code review request… is associated with a respective set of attributes“ is merely gathering data which the courts have identified as well-understood, routine conventional activity. See for example Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362, MPEP 2106.05(d). Therefore, the additional elements do not amount to significantly more, thus, cannot provide an inventive concept. Accordingly, the claims are not patent eligible under 35 USC 101.
Claims 1, 9 and 13 recite further additional elements “a system”, “one or more memories“, “one or more processors“, “non-transitory computer-readable medium“, and “a code review system”. These additional elements are recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using generic computer, and/or generic computer components. See MPEP 2106.05(f). Therefore, the additional elements recited in claims 1, 9 and 13 do not integrate the judicial exception into a practical application under prong 2, nor amount to significantly more under step 2B.,
Regarding claims 2, 10 and 14, the limitation “assign the respective priority” and “determine the respective priority“ recites additional mental process under Prong 1. The additional element “providing the respective set of attributes” is analyzed under Prong 2 as mere data gathering which does not integrate the judicial exception into a practical application, or amounts to significantly more under Step 2B for the reasons provided in the rejection of claims 1, 9 and 13.
Regarding claims 3-8, 11, 12 and 15-20, the additional elements of “maps the respective set of attributes”, “parameters include an urgency, a severity, an impact, and an effort associated with each open code review request”, “obtain a set of observations associated”, “information provided to the reviewer device”, “code review queue is filtered”, “code review queue is sorted”, “receive a request to perform the code review”, “select the open code review request”, “provide, to a reviewer device, information”, “receive, from the reviewer device, an input”, and “reviewer device is filtered or sorted” is analyzed under Prong 2 as mere data gathering which does not integrate the judicial exception into a practical application, or amounts to significantly more under Step 2B for the reasons provided in the rejection of claims 1, 9 and 13.
Claim Rejections - 35 USC § 102
6. 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.
7. Claims 1-3, 5, 9-15 and 17-19 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Gupta et al., WO 2019143539 (hereinafter Gupta).
In regards to claim 1, Gupta teaches:
A system for prioritizing code reviews, the system comprising: one or more memories; and one or more processors, communicatively coupled to the one or more memories, configured to: identify a set of open code review requests that are each associated with a respective proposed change to source code stored in a code repository (p. 18, claim 1), see “obtain one or more code reviews having a close similarity to the input source code snippet and the syntactic context of the input source code snippet”, (p. 1, [0003]), see “the historical code reviews are obtained from a shared source code repository that contains pull requests. The pull requests seek collaborators of a project to review source code changes made to correct a bug fix or add new source code in one or more source code files. The collaborators review the submitted changes and add comments explaining the changes made to a source code file or added to a source code file which are used as the historical code review” and (p. 3, [0020]), see "these changes may have been related to a bug fix or due to a new feature. Once the pull request is open, others may review the change, comment about the change, and make additional changes to the original change before the source code file is committed to the shared source code repository” (emphasis added).
each open code review request, in the set of open code review requests, is associated with a respective set of attributes related to the respective proposed change to the source code stored in the code repository (p. 2, [0016]), see “the automatic code review process utilizes a deep learning model that learns, from past or historical code reviews, those code reviews that are relevant to a particular code snippet. The deep learning model is trained from features that include the input code snippet, its syntactic context and historical code reviews”.
assign a respective priority to each open code review request, in the set of open code review requests, according to the respective set of attributes associated with each open code review request; provide, to a reviewer device, information that indicates one or more of: one or more respective priorities assigned to one or more open code review requests, in the set of open code review requests, or one or more open code review requests, in the set of open code review requests, that are associated with a highest priority (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and(p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user”.
manage a code review workflow for an open code review request selected, by the reviewer device, from the set of open code review requests (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 2, Gupta teaches:
assign the respective priority to each open code review request, in the set of open code review requests, are configured to: (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and(p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user”.
provide the respective set of attributes associated with each open code review request as an input to a machine learning model; and determine the respective priority to assign to each open code review request, in the set of open code review requests, according to an output from the machine learning model (p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user” and (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 3, Gupta teaches:
the machine learning model maps the respective set of attributes associated with each open code review request to the respective priority based on relative weights assigned to a set of code review parameters to be optimized (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 5, Gupta teaches:
obtain a set of observations associated with the code review workflow for the open code review request (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and (p. 3, [0020]), see "these changes may have been related to a bug fix or due to a new feature. Once the pull request is open, others may review the change, comment about the change, and make additional changes to the original change before the source code file is committed to the shared source code repository” (emphasis added).
update the machine learning model according to the set of observations associated with the code review workflow (p. 11, [0066]), see “those feature vectors based on reviews from a pull request are considered part of the relevant training dataset (block 512). A non-relevant training dataset is constructed as described above (block 514). The relevant and non-relevant training datasets are used to train and test the deep learning model until the training achieves a certain performance threshold (block 516)”.
In regards to claim 9, Gupta teaches:
A method for managing code reviews, comprising: identifying, by a code review system, a set of open code review requests that are each associated with a respective proposed change to source code stored in a code repository (p. 18, claim 1), see “obtain one or more code reviews having a close similarity to the input source code snippet and the syntactic context of the input source code snippet”, (p. 1, [0003]), see “the historical code reviews are obtained from a shared source code repository that contains pull requests. The pull requests seek collaborators of a project to review source code changes made to correct a bug fix or add new source code in one or more source code files. The collaborators review the submitted changes and add comments explaining the changes made to a source code file or added to a source code file which are used as the historical code review” and (p. 3, [0020]), see "these changes may have been related to a bug fix or due to a new feature. Once the pull request is open, others may review the change, comment about the change, and make additional changes to the original change before the source code file is committed to the shared source code repository” (emphasis added).
each open code review request, in the set of open code review requests, is associated with a respective set of attributes related to the respective proposed change to the source code stored in the code repository (p. 2, [0016]), see “the automatic code review process utilizes a deep learning model that learns, from past or historical code reviews, those code reviews that are relevant to a particular code snippet. The deep learning model is trained from features that include the input code snippet, its syntactic context and historical code reviews”.
assigning, by the code review system, a respective priority to each open code review request, in the set of open code review requests, according to the respective set of attributes associated with each open code review request (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and(p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user”.
receiving, by the code review system and from a reviewer device, a request to perform a code review workflow for an open code review request, in the set of open code review requests; selecting, by the code review system, an open code review request, in the set of open code review requests, associated with a highest priority; and managing, by the code review system, the code review workflow for the open code associated with the highest priority (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 10, Gupta teaches:
assigning the respective priority to each open code review request, in the set of open code review requests, comprises: (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and(p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user”.
providing the respective set of attributes associated with each open code review request as an input to a machine learning model; and determining the respective priority to assign to each open code review request, in the set of open code review requests, according to an output from the machine learning model (p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user” and (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 11, Gupta teaches:
the machine learning model maps the respective set of attributes associated with each open code review request to the respective priority based on relative weights assigned to a set of code review parameters to be optimized (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 12, Gupta teaches:
obtaining a set of observations associated with the code review workflow for the open code review request (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and (p. 3, [0020]), see "these changes may have been related to a bug fix or due to a new feature. Once the pull request is open, others may review the change, comment about the change, and make additional changes to the original change before the source code file is committed to the shared source code repository” (emphasis added).
updating the machine learning model according to the set of observations associated with the code review workflow (p. 11, [0066]), see “those feature vectors based on reviews from a pull request are considered part of the relevant training dataset (block 512). A non-relevant training dataset is constructed as described above (block 514). The relevant and non-relevant training datasets are used to train and test the deep learning model until the training achieves a certain performance threshold (block 516)”.
In regards to claim 13, Gupta teaches:
A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a system, cause the system to: identify a set of open code review requests that are each associated with a respective proposed change to source code stored in a code repository (p. 18, claim 1), see “obtain one or more code reviews having a close similarity to the input source code snippet and the syntactic context of the input source code snippet”, (p. 1, [0003]), see “the historical code reviews are obtained from a shared source code repository that contains pull requests. The pull requests seek collaborators of a project to review source code changes made to correct a bug fix or add new source code in one or more source code files. The collaborators review the submitted changes and add comments explaining the changes made to a source code file or added to a source code file which are used as the historical code review” and (p. 3, [0020]), see "these changes may have been related to a bug fix or due to a new feature. Once the pull request is open, others may review the change, comment about the change, and make additional changes to the original change before the source code file is committed to the shared source code repository” (emphasis added).
each open code review request, in the set of open code review requests, is associated with a respective set of attributes related to the respective proposed change to the source code stored in the code repository (p. 2, [0016]), see “the automatic code review process utilizes a deep learning model that learns, from past or historical code reviews, those code reviews that are relevant to a particular code snippet. The deep learning model is trained from features that include the input code snippet, its syntactic context and historical code reviews”.
use a machine learning model to assign a respective priority to each open code review request, in the set of open code review requests, according to the respective set of attributes associated with each open code review request (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and(p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user”.
manage a code review workflow for an open code review request, in the set of open code review requests, in accordance with the priority assigned to the open code review request (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 14, Gupta teaches:
use the machine learning model to assign the respective priority to each open code review request, in the set of open code review requests, cause the system to: provide the respective set of attributes associated with each open code review request as an input to the machine learning model; and determine the respective priority to assign to each open code review request, in the set of open code review requests, according to an output from the machine learning model (p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user” and (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 15, Gupta teaches:
the machine learning model maps the respective set of attributes associated with each open code review request to the respective priority based on relative weights assigned to a set of code review parameters to be optimized (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 17, Gupta teaches:
obtain a set of observations associated with the code review workflow for the open code review request (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and (p. 3, [0020]), see "these changes may have been related to a bug fix or due to a new feature. Once the pull request is open, others may review the change, comment about the change, and make additional changes to the original change before the source code file is committed to the shared source code repository” (emphasis added).
update the machine learning model according to the set of observations associated with the code review workflow (p. 11, [0066]), see “those feature vectors based on reviews from a pull request are considered part of the relevant training dataset (block 512). A non-relevant training dataset is constructed as described above (block 514). The relevant and non-relevant training datasets are used to train and test the deep learning model until the training achieves a certain performance threshold (block 516)”.
In regards to claim 18, Gupta teaches:
receive, from a reviewer device, a request to perform the code review workflow (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
select the open code review request for the code review workflow based on the open code review request being associated with a highest priority (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
In regards to claim 19, Gupta teaches:
provide, to a reviewer device, information that indicates one or more of: one or more respective priorities assigned to one or more open code review requests, in the set of open code review requests, or one or more open code review requests, in the set of open code review requests, that are associated with a highest priority (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention” and(p. 2, [0016]), see “the features are transformed into tokens and then into an encoded representation through the use of individual long short-term memory networks. The encoded representations are combined into a single feature vector and used to train a deep learning model to learn associations between the source code statements in the input code snippet and its syntactic context and relevant code reviews. The deep learning model is trained to compute a probability score indicating a likelihood that a particular source code snippet is associated with a particular code review. Those code reviews having a probability score deemed relevant to the particular source code snippet are selected and presented to the end user”.
receive, from the reviewer device, an input selecting the open code review request to perform the code review workflow for the open code review request (p. 1, [0005]), see “once trained and tested, the deep learning model is then used to generate a probability score that indicates a likelihood that one or more code reviews are relevant to a particular code snippet. The more relevant code reviews are then selected and used to identify the areas in the source code that require additional attention”.
Claim Rejections - 35 USC § 103
8. 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 of this title, 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.
9. Claims 4 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of Cheng et al., US 2019/0227902 (hereinafter Cheng).
In regards to claims 1, 2, 3, 13, 14 and 15, the rejections above are incorporated accordingly.
In regards to claim 4, Gupta doesn’t explicitly teach:
the set of code review parameters include an urgency, a severity, an impact, and an effort associated with each open code review request.
However, Cheng teaches such use: (p. 5, [0063], see “the feature extraction engine obtains the features from the source code files in the pull request and their respective dependent code as noted above to generate feature vectors containing the weighted bug density features, weighted addition features, weighted deletion features from the source code files and their respective dependent code, the page rank and the complexity features (block 506). The feature vectors are used by the machine learning model to predict the likelihood that each file represented by the feature vectors is likely to have a software bug in the future (block 506). The machine learning model generates a risk score for each file represented by a feature vector (block 506). The risk score is a value normalized within the range [0,1] where ‘0’ represents no risk and ‘1’ represents the highest risk. In addition, a rationale is provided that explains the risk score (block 506)”.
Gupta and Cheng are analogous art because they are from the same field of endeavor, code review.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, having the teaching of Gupta and Cheng before him or her, to modify the system of Gupta to include the teachings of Cheng, as a system for risky code prediction, and accordingly it would enhance the system of Gupta, which is focused on automated code review, because that would provide Gupta with the ability to generate a risk score for targeted source code file will contain a software bug, as suggested by Cheng (p. 5, [0063], p. 7, [0080]).
In regards to claim 16, Gupta doesn’t explicitly teach:
the set of code review parameters include an urgency, a severity, an impact, and an effort associated with each open code review request.
However, Cheng teaches such use: (p. 5, [0063], see “the feature extraction engine obtains the features from the source code files in the pull request and their respective dependent code as noted above to generate feature vectors containing the weighted bug density features, weighted addition features, weighted deletion features from the source code files and their respective dependent code, the page rank and the complexity features (block 506). The feature vectors are used by the machine learning model to predict the likelihood that each file represented by the feature vectors is likely to have a software bug in the future (block 506). The machine learning model generates a risk score for each file represented by a feature vector (block 506). The risk score is a value normalized within the range [0,1] where ‘0’ represents no risk and ‘1’ represents the highest risk. In addition, a rationale is provided that explains the risk score (block 506)”.
Gupta and Cheng are analogous art because they are from the same field of endeavor, code review.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, having the teaching of Gupta and Cheng before him or her, to modify the system of Gupta to include the teachings of Cheng, as a system for risky code prediction, and accordingly it would enhance the system of Gupta, which is focused on automated code review, because that would provide Gupta with the ability to generate a risk score for targeted source code file will contain a software bug, as suggested by Cheng (p. 5, [0063], p. 7, [0080]).
10. Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of Chen et al., CN 105786710 A (hereinafter Chen).
In regards to claim 1, the rejections above are incorporated respectively.
In regards to claim 6, Gupta doesn’t explicitly teach:
the information provided to the reviewer device indicates a status associated with a code review queue that includes the set of open code review requests.
However, Chen teaches such use: (p. 4, 8th para.), see “S201: from the review queue, reading a program code to be reviewed, the queue under review comprises program code to be reviewed in the queuing state”.
Gupta and Chen are analogous art because they are from the same field of endeavor, code review.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, having the teaching of Gupta and Chen before him or her, to modify the system of Gupta to include the teachings of Chen, as a system for program code review, and accordingly it would enhance the system of Gupta, which is focused on automated code review, because that would provide Gupta with the ability to review the rule syntax tree of program code to achieve an automatic review, as suggested by Chen (p. 4, 8th para., p. 6, 6th para.).
Allowable Subject Matter
11. Claim 7, 8 and 20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all the limitation of the base claim and any intervening claims.
The following is a statement of reasons for the indication of allowable subject matter: As per claims 7 and 20, prior art of record does not each and/or fairly suggest that “the information that indicates the status associated with the code review queue is filtered according to a set of criteria that includes the priorities assigned to each open code review request, in the set of open code review requests”. The art of record does not expressly disclose such features.
As per claim 8, prior art of record does not each and/or fairly suggest that “the information that indicates the status associated with the code review queue is sorted according to the priorities assigned to each open code review request, in the set of open code review requests”. The art of record does not expressly disclose such features.
Conclusion
12. The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US Patent Application Publications
Mampilly 20220066773 teaches a codebase that features a full history of the product that is mirrored on every contributor's computer. Team members may submit changes to an external repository, assigning the pull request to a reviewer based on the first aggregated processing metrics, the pull request is reviewed before being added to the repository of the codebase.
Woulfe 20200341755 teaches a deep learning model is trained on historical pull requests to automatically identify appropriate reviewers to review source code from one or more source code repositories. The model is trained on features that are based on past pull requests from the source code repositories and that represent the context of the syntactic representation of the changed code.
13. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Evral Bodden whose telephone number is 571-272-3455. The examiner can normally be reached on Monday to Friday from 9am to 5pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Chat Do, can be reached at telephone number 571-272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
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) Form at https://www.uspto.gov/patents/uspto-automatedinterview-request-air-form.
If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/EVRAL E BODDEN/Primary Examiner, Art Unit 2193