Patent Application 18315641 - Function Code Extraction - Rejection
Appearance
Patent Application 18315641 - Function Code Extraction
Title: Function Code Extraction
Application Information
- Invention Title: Function Code Extraction
- Application Number: 18315641
- Submission Date: 2025-05-23T00:00:00.000Z
- Effective Filing Date: 2023-05-11T00:00:00.000Z
- Filing Date: 2023-05-11T00:00:00.000Z
- National Class: 717
- National Sub-Class: 100000
- Examiner Employee Number: 90800
- Art Unit: 2191
- Tech Center: 2100
Rejection Summary
- 102 Rejections: 0
- 103 Rejections: 4
Cited Patents
The following patents were cited in the rejection:
Office Action Text
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 . Claims 1-20 are presented for examination. 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 is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more. Claims 1, 10 and 19 as drafted, recite a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation “identifying … key statements for the service in the source code for a region of interest in an application in response to a program selection selecting a program in the region of interest; determining, … importance scores for the key statements based on an amount of the source code executed by each of the key statements in the source code in the region of interest; generating, … an output that comprises the key statements associated with the importance scores and portions of the source code executed in response to execution of the key statements; and adding … a number of code blocks derived from a number of the portions of the source code run for a key statement to a workbook in response to receiving a key statement selection of the key statement in the output” as drafted, is a process that, under its broadest reasonable interpretation, recite the abstract idea of mental processes. 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, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. This judicial exception is not integrated into a practical application. The claims recite the following additional elements “by a number of processor units,” “A computer system,” “a number of processor units,” “A computer program product, “a computer readable storage medium,” which are merely instructions to implement an abstract idea on a computer, or merely using a generic computer or computer components as a tool to perform the abstract idea. See MPEP 2106.05(f). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea, thus fail to integrate the abstract idea into a practical application. The claims do not include additional elements 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 element “by a number of processor units,” “A computer system,” “a number of processor units,” “A computer program product, “a computer readable storage medium,” are generic computer components and instructions used as the tools to perform the abstract idea. See MPEP 2106.05(f). Accordingly, the additional elements recited in the claims cannot provide an inventive concept. Thus, the claims are not patent eligible. Claims 2 and 11 as drafted, recite a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation “determining, … the region of interest using an entry point and an execution flow for the source code executed from the entry point, wherein the region of interest includes a number of programs that contain the source code for the service” as drafted, is a process that, under its broadest reasonable interpretation, recite the abstract idea of mental processes. 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, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. Claims 3, 12 and 20 recite the additional element “exporting, by the number of processor units, the workbook to a storage location in response to a user input affirming the workbook for export” which does nothing more than add insignificant extra solution activity to the judicial exception, such as data gathering and outputting the results of the abstract idea, such as displaying a “prompt” or information to the “installer” to perform a task. See MPEP 2106.05(g). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea, thus fail to integrate the abstract idea into a practical application. The claims do not include additional elements 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 element “exporting, by the number of processor units, the workbook to a storage location in response to a user input affirming the workbook for export” the courts have identified gathering data and displaying the output of the abstract idea is well-understood, routine, conventional activity. See MPEP 2106.05(d). Accordingly, the additional elements recited in the claims cannot provide an inventive concept. Thus, the claims are not patent eligible. Claims 4 and 13 as drafted, recite a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation “adding, … a number of additional code blocks to the workbook in response to receiving an additional selection of an additional key statement, wherein the number of additional code blocks added to the workbook is derived from a number of additional portions of the source code run for the additional key statemen” as drafted, is a process that, under its broadest reasonable interpretation, recite the abstract idea of mental processes. 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, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. Claims 5 and 14 as drafted, recite a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation “placing, … a user defined code block into the workbook in response to receiving the user defined code” as drafted, is a process that, under its broadest reasonable interpretation, recite the abstract idea of mental processes. 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, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. Claims 6 and 15 as drafted, recite a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation “removing, … a particular code block from the workbook in response to receiving a particular selection of the particular code block for removal” as drafted, is a process that, under its broadest reasonable interpretation, recite the abstract idea of mental processes. 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, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. Claims 7 and 16 as drafted, recite a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation “selecting, … a second program in the region of interest; and repeating, … identifying the key statements, determining the importance scores, generating the output, and adding the number of code blocks for the second program” as drafted, is a process that, under its broadest reasonable interpretation, recite the abstract idea of mental processes. 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, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. Claims 8 and 17 as drafted, recite a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation “generating, … a list of the key statements based on the importance scores for the key statements; and associating, … the portions of the source code with the key statements” as drafted, is a process that, under its broadest reasonable interpretation, recite the abstract idea of mental processes. 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, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. Claims 9 and 18 recite the additional element “displaying, …the list of the key statements with the importance scores for the key statements in a graphical user interface on a display system; and displaying, … the number of portions of the source code in the portions of the source code in the graphical user interface on the display system in response to a user input selecting the key statement associated with the number of portions of the source code” which does nothing more than add insignificant extra solution activity to the judicial exception, such as data gathering and outputting the results of the abstract idea, such as displaying a “prompt” or information to the “installer” to perform a task. See MPEP 2106.05(g). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea, thus fail to integrate the abstract idea into a practical application. The claims do not include additional elements 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 element “displaying, …the list of the key statements with the importance scores for the key statements in a graphical user interface on a display system; and displaying, … the number of portions of the source code in the portions of the source code in the graphical user interface on the display system in response to a user input selecting the key statement associated with the number of portions of the source code” the courts have identified gathering data and displaying the output of the abstract idea is well-understood, routine, conventional activity. See MPEP 2106.05(d). Accordingly, the additional elements recited in the claims cannot provide an inventive concept. Thus, the claims are not patent eligible. 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. Claim(s) 1, 4-5, 7-10, 13-14 and 16-19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Dang (US 9519464 B2) in view of Fanning (US 20090144698 A1). Regarding Claim 1, Dang (US 9519464 B2) teaches A computer implemented method for extracting source code for a service, the computer implemented method comprising: identifying, by a number of processor units, key statements for the service in the source code for a region of interest in an application (Col 10: ln 15-30, identify one or more statements associated with control flow for the target method invocation; Col 10: ln 44-58, the statements determined at 530 are extracted at step 560 as a part of the code snippet. Furthermore, in those embodiments where the control flow statements are determined at step 540, the control flow statements are also extracted at step 560 into the code snippet) Examiner Comments: The code snippet is interpreted to the claimed Key statements in response to a program selection selecting a program in the region of interest (Col 8: ln 1-17, Additionally or alternatively, user settings or preferences on coding styles of the code snippets in the subgroups may be taken into account as well. For example, in one embodiment, if there are two or more subgroups with the largest size, one of these subgroups may be selected according to the user preference. In such embodiment, a user may indicate his/her preference on coding styles in advance. By way of example, the user may define the use of try-catch-finally statements as a good coding style) determining, by the number of processor units, importance scores for the key statements based (Col 12: ln 45-56, the retrieved candidate code snippets may be filtered or ranked at step 830 according to a set of predefined criteria or rules); generating, by the number of processor units, an output that comprises the key statements associated with the importance scores and portions of the source code executed in response to execution of the key statements (Col 12: ln 45-56, One or more top-ranked code snippets are then recommended to the user. By the way of example, in one embodiment, the ranking may be done in two stages); and adding, by the number of processor units, a number of code blocks derived from a number of the portions of the source code run for a key statement to a workbook in response to receiving a key statement selection of the key statement in the output (Col 9: ln 1-15, the representative code snippets are stored into the knowledge base 210 in association with their respective metadata. More specifically, each representative code snippet is stored as a code snippet 220 in the knowledge base 210, and the associated metadata is stored as the metadata 230). Dang did not specifically teach on an amount of the source code executed by each of the key statements in the source code in the region of interest. However, Fanning (US 20090144698 A1) teaches on an amount of the source code executed by each of the key statements in the source code in the region of interest (Para 0044, Code complexity, also referred to as the structural complexity, is related to the amount of effort needed to understand, maintain, and modify and the source code correctly. In one implementation, structural complexity is based on the number of linearly independent paths in the code; Para 0046, The high complexity code 204 may signify, for example, higher branching code, which is comparatively difficult to understand and test). Examiner comment: The complexity level can also represent the execution extent. It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to have combined Dang’s teaching to Fanning in order to allow analyzing the source code to assign the complexity measure to the code segments and assigning the level of code coverage to the code segments based on the desired level of quality and the complexity measures, thus enabling improvement of code quality (Fanning [Summary]). Regarding Claim 4, Dang and Fanning teach The computer implemented method of claim 1 further comprising: adding, by the number of processor units, a number of additional code blocks to the workbook in response to receiving an additional selection of an additional key statement, wherein the number of additional code blocks added to the workbook is derived from a number of additional portions of the source code run for the additional key statement (Dang [Col 9: 9-15, Then, at step 340, the representative code snippets are stored into the knowledge base 210 in association with their respective metadata. More specifically, each representative code snippet is stored as a code snippet 220 in the knowledge base 210, and the associated metadata is stored as the metadata 230]). Regarding Claim 5, Dang and Fanning teach The computer implemented method of claim 1 further comprising: placing, by the number of processor units, a user defined code block into the workbook in response to receiving the user defined code (Dang [Col 8: ln 1-17, Additionally or alternatively, user settings or preferences on coding styles of the code snippets in the subgroups may be taken into account as well. For example, in one embodiment, if there are two or more subgroups with the largest size, one of these subgroups may be selected according to the user preference. In such embodiment, a user may indicate his/her preference on coding styles in advance. By way of example, the user may define the use of try-catch-finally statements as a good coding style]). Regarding Claim 7, Dang and Fanning teach The computer implemented method of claim 1, wherein the program is a first program in the region of interest for the application and further comprising: selecting, by the number of processor units, a second program in the region of interest; and repeating, by the number of processor units, identifying the key statements, determining the importance scores, generating the output, and adding the number of code blocks for the second program (Dang [Col 10: ln 31-44, the method 500 repeats step 520, 530 and possibly 540]). Regarding Claim 8, Dang and Fanning teach The computer implemented method of claim 1, wherein generating the output comprises: generating, by the number of processor units, a list of the key statements based on the importance scores for the key statements; and associating, by the number of processor units, the portions of the source code with the key statements (Dang [Col 2: ln 6-20, the retrieved code snippets may be ranked according to one or more criteria. In one embodiment, it is possible to highlight one or more variation points in a recommended code snippet based on the associated metadata, such that the user can effectively and efficiently adapt the code snippet to the specific programming context]). Regarding Claim 9, Dang and Fanning teach The computer implemented method of claim 8 further comprising: displaying, by the number of processor units, the list of the key statements with the importance scores for the key statements in a graphical user interface on a display system; and displaying, by the number of processor units, the number of portions of the source code in the portions of the source code in the graphical user interface on the display system in response to a user input selecting the key statement associated with the number of portions of the source code (Dang [Col 15: ln 34-46, the recommended code snippets may be displayed as a list in the recommendation area 260, for example, according to the ranking at step 830. The recommended code snippets may be presented in any suitable manner. As an example, in one embodiment, each code snippet may be represented by a summary, for example, including the first several lines of the code snippet. As another example, a thumbnail may be used to present a recommended code snippet. Upon selection by the user, the selected code snippet can be expanded]). Regarding Claim 10, is a system claim corresponding to the method claim above (Claim 1) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 1. Regarding Claim 13, is a system claim corresponding to the method claim above (Claim 4) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 4. Regarding Claim 14, is a system claim corresponding to the method claim above (Claim 5) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 5. Regarding Claim 16, is a system claim corresponding to the method claim above (Claim 7) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 7. Regarding Claim 17, is a system claim corresponding to the method claim above (Claim 8) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 8. Regarding Claim 18, is a system claim corresponding to the method claim above (Claim 9) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 9. Regarding Claim 19, is a computer program product claim corresponding to the method claim above (Claim 1) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 1. Claim(s) 2 and 11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Dang (US 9519464 B2) in view of Fanning (US 20090144698 A1) further in view of Mahamuni (US 9703555 B2). Regarding Claim 2, Dang and Fanning teach The computer implemented method of claim 1. Dang and Fanning did not teach further comprising: determining, by the number of processor units, the region of interest using an entry point and an execution flow for the source code executed from the entry point, wherein the region of interest includes a number of programs that contain the source code for the service. However, Mahamuni (US 9703555 B2) teaches further comprising: determining, by the number of processor units, the region of interest using an entry point and an execution flow for the source code executed from the entry point, wherein the region of interest includes a number of programs that contain the source code for the service (Abstract, A receiving module accepts source code of the software application as input data and obtains a list of the entry points. Intermediate representation from the input data is generated in order to construct informative structure for the software application. Uncalled functions in the software application are identified and are considered as entry points. The entry points are wrapped into one entry point and analyzed maintaining calling context of all the entry points). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to have combined Dang and Fanning’s to Mahamuni’s teaching so that analysis of software application in calculation environment is performed reliably by analyzing the wrapper function to enable analysis of single entry point that leads to perfect analysis of software application (Mahamuni [Summary]). Regarding Claim 11, is a system claim corresponding to the method claim above (Claim 2) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 2. Claim(s) 3, 12 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Dang (US 9519464 B2) in view of Fanning (US 20090144698 A1) further in view of Charisius (US 20020016954 A1). Regarding Claim 3, Dang and Fanning teach The computer implemented method of claim 1. Dang and Fanning did not teach further comprising: exporting, by the number of processor units, the workbook to a storage location in response to a user input affirming the workbook for export. However, Charisius (US 20020016954 A1) teaches further comprising: exporting, by the number of processor units, the workbook to a storage location in response to a user input affirming the workbook for export (Para 0068, SCI 712 is at the source code level, and allows the user to work with the source code almost independently of the language being used. There are a variety of modules 704 in the software development tool 610 of the present invention. Some of the modules 704 access information to generate graphical and code documentation in custom formats, export to different file formats, or develop patterns). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to have combined Dang and Fanning’s teaching to Charisius’ in order to save a developer time and effort in producing error free code and reduces programming development time by allowing a developer to generate or update source code for an object oriented element from a data structure (Charisius [Summary]). Regarding Claim 12, is a system claim corresponding to the method claim above (Claim 3) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 3. Regarding Claim 20, is a computer program product claim corresponding to the method claim above (Claim 3) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 3. Claim(s) 6 and 15 is/are rejected under 35 U.S.C. 103 as being unpatentable over Dang (US 9519464 B2) in view of Fanning (US 20090144698 A1) further in view of Tomlin (US 10866792 B1). Regarding Claim 6, Dang and Fanning teach The computer implemented method of claim 1. Dang and Fanning did not teach further comprising: removing, by the number of processor units, a particular code block from the workbook in response to receiving a particular selection of the particular code block for removal. However, Tomlin (US 10866792 B1) teaches further comprising: removing, by the number of processor units, a particular code block from the workbook in response to receiving a particular selection of the particular code block for removal (Col 11: ln 17-53, the rule management engine 214 automatically removes an inactive source code branch from source code repository. In such a case, the rule management engine 214 may cause the communication engine 204 to send an instruction to an applicable repository, such as the pipeline resource repository discussed in this paper, to cause removal of the inactive source code branch from the source code repository). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to have combined Dang and Fanning’s teaching to Tomlin’s in order to manage datasets and source code of a deployment pipeline by providing a rule management engine that automatically removes an inactive source code branch from the source code repository (Tomlin [Summary]). Regarding Claim 15, is a system claim corresponding to the method claim above (Claim 6) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 6. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to AMIR SOLTANZADEH whose telephone number is (571)272-3451. The examiner can normally be reached M-F, 9am - 5pm ET. 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, Wei Zhen can be reached at (571) 272-3708. 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. /AMIR SOLTANZADEH/Examiner, Art Unit 2191 /QING CHEN/Primary Examiner, Art Unit 2191
(Ad) Transform your business with AI in minutes, not months
✓
Custom AI strategy tailored to your specific industry needs
✓
Step-by-step implementation with measurable ROI
✓
5-minute setup that requires zero technical skills
Trusted by 1,000+ companies worldwide