Prosecution Insights
Last updated: July 17, 2026
Application No. 18/718,817

METHOD FOR ENHANCING THE DEBUGGING CAPABILITY FOR A SOFTWARE PROGRAM

Non-Final OA §101§103§112
Filed
Jun 12, 2024
Priority
Jan 06, 2022 — EU 22150405.3 +1 more
Examiner
NIGATU, BEZA DIRESSA
Art Unit
2192
Tech Center
2100 — Computer Architecture & Software
Assignee
Siemens Aktiengesellschaft
OA Round
1 (Non-Final)
Grant Probability
Favorable
1-2
OA Rounds

Examiner Intelligence

Grants only 0% of cases
0%
Career Allowance Rate
0 granted / 0 resolved
-55.0% vs TC avg
Minimal +0% lift
Without
With
+0.0%
Interview Lift
resolved cases with interview
Typical timeline
Avg Prosecution
8 currently pending
Career history
8
Total Applications
across all art units

Statute-Specific Performance

§103
100.0%
+60.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 0 resolved cases

Office Action

§101 §103 §112
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 action is in response to the application filed on 06/12/2024. Priority Acknowledgment is made of applicant’s claim for foreign priority under 35 U.S.C. 119 (a)-(d). The certified copy has been filed in parent Application No. EP22150405.3, filed on 01/06/2022. Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55. Information Disclosure Statement The information disclosure statement (IDS) submitted on 06/12/2024 is in compliance with the provisions of 37 CFR 1.97 and is being considered by the examiner. Examiner Notes Examiner cites particular paragraphs, figures, and line number in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner. As a disclaimer, the use of underlining in direct quotes is done by the examiner for emphasis. Direct quotes are not originally underlined in the published references cited. Drawings The drawings are objected to under 37 CFR 1.83(a). The drawings must show every feature of the invention specified in the claims. Therefore, the features recited in method claims must be shown, such as a flowchart, or the feature(s) canceled from the claim(s). No new matter should be entered. Corrected drawing sheets in compliance with 37 CFR 1.121(d) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. The figure or figure number of an amended drawing should not be labeled as “amended.” If a drawing figure is to be canceled, the appropriate figure must be removed from the replacement sheet, and where necessary, the remaining figures must be renumbered and appropriate changes made to the brief description of the several views of the drawings for consistency. Additional replacement sheets may be necessary to show the renumbering of the remaining figures. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance. Claim Objections Claim 18 is objected to because of the following informalities: “the metadata” lacks proper antecedent basis. Appropriate correction is required. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. Claims 13, 17, and 18 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claim 13 in line 4, “such as” is indefinite. (See MPEP § 2173.05(d)). Claim 17 depends on the rejected claim and inherits the same issue. Claim 18 in line 3, “their” is indefinite in what it is referring to. For examination purposes it will be treated as --decoration of the symbolic names--. 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 9-19 are rejected under 35 U.S.C. 101. Step 1 Analysis: Claims 9-19 are directed to methods and fall within the statutory category of processes. 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 (see MPEP § 2106.04). Regarding Claim 9: Step 2A Prong 1 Analysis: Claim 9 recites: a) source-coding a plurality of software routines to achieve [] of a software routine a logical result, the software routines being contained in the software program; This limitation covers performance by a human being with the assistance of pen and paper. For example, a person of ordinary skill in the art may evaluate logical results of software routine, and write the results with the assistance of pen and paper in the form of pseudocode. Therefore, this limitation recites a mental process. (See MPEP § 2106.04(a)(2), subsection III). b) adding to each of the software routines a code section indicative for an achievement of the logical result []; This limitation covers performance by a human being with the assistance of pen and paper. For example, a person of ordinary skill in the art may add code sections to each software routine, with the assistance of pen and paper in the form of pseudocode, that indicates achievement of the logical result. Therefore, this limitation recites a mental process. (See MPEP § 2106.04(a)(2), subsection III). d) running an analysis tool enabled to provide retrievable outputs deduced from the execution of the plurality of software routines in a separate analysis report; This limitation covers performance in the mind in the form of evaluation and judgement with the assistance of pen and paper. For example, a person of ordinary skill in the art may use the assistance of pen and paper to create a separate analysis report, providing outputs from the software routines. The analysis tool may be performed in the mind as a form of evaluation. Therefore, this limitation recites a mental process. (See MPEP § 2106.04(a)(2), subsection III). Step 2A Prong 2 Analysis: being executed on; under execution; This limitation recites additional elements that 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. (See MPEP § 2106.05(f)). of an industrial environment controlled by a manufacturing operation management system (MOM system); This limitation recites additional elements that indicate a field of use or technological environment in which to apply a judicial exception. The claim merely recites “industrial environment” and “MOM system” as a field of use/technological environment to perform the abstract idea. (See MPEP § 2106.05(h)). wherein the code section generates a retrievable output in response to the execution of the software routine; This claim recites the additional element “generates a retrievable output” which is merely an insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)). c) controlling the at least one resource to execute the plurality of software routines; This claim recites the additional element “controlling” which is merely an insignificant extra-solution activity, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)). Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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. Step 2B Analysis: The additional elements, considering them both individually and in combination, do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 10: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 9. Step 2A Prong 2 Analysis: The claim limitation recites, wherein the analysis report is displayed on a graphic user interface for debugging purposes; This claim recites the additional element “displayed” which is merely an insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)), and will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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 claims will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Step 2B Analysis: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to the integration of the abstract ideas into a practical application, all of the additional elements are insignificant extra-solution activity which is well-understood, routine, and conventional (see MPEP § 2106.05(d)(II) for court decisions recognizing that this activity is well-understood, routine, and conventional.). Respectively, thus do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 11: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 10. Step 2A Prong 2 Analysis: The claim limitation recites, wherein the code section is configured as a decorator associated with source code of the software routine, thereby tagging class definitions, properties and methods; This claim recites the additional element “configured as a decorator” as a post-solution activity which is merely an insignificant extra-solution activity, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)). Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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. Step 2B Analysis: The additional elements, considering them both individually and in combination, do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 12: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 11. Step 2A Prong 2 Analysis: The claim limitation recites, wherein the decorator is enabled to own attributes being used to complete a [] of the decorator and being used during debugging; This claim recites the additional element “own attributes” which is merely an insignificant extra-solution activity which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)), and will be analyzed further below in Step 2B as being well-understood, routine, and conventional. configuration; This limitation recites additional elements that 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. (See MPEP § 2106.05(f)). Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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. Step 2B Analysis: The additional elements, considering them both individually and in combination, do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 13: Step 2A Prong 1 Analysis: The claim limitation recites, which further comprises selecting at least one attribute from the group consisting of; i) a section attribute used to aggregate input and/or output data; ii) a regular expression attribute that is used to mark a state, such as a warning, if matched; iii) an alias name attribute used to specify readable information in terms of contextualization; iv) a chart name attribute used to cluster data values in a chart; v) a Max/Min instance attribute being used to set a limit on a number of instances of a class type or a running method; This limitation covers performance in the mind in the form of evaluation and judgement with the assistance of pen and paper. A person may perform “selecting” of an attribute within the mind—whether that be a section attribute, regular expression attribute, alias name attribute, chart name attribute, or a Min/Max instance attribute. Therefore, this limitation recites a mental process. (See MPEP § 2106.04(a)(2), subsection III). Step 2A Prong 2 and Step 2B Analysis: The claim does not recite additional elements that integrate the judicial exception into a practical application nor amounts to significantly more than the judicial exceptions. Regarding Claim 14: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 11. Step 2A Prong 2 Analysis: The claim limitation recites, wherein the decorator is coded at a phase of source-coding and is translated by a pre-compiler into static metadata; This claim recites the additional element “translated by a pre-compiler” as a pre-solution during a phase of source coding and is merely an insignificant extra-solution activity, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)). Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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. Step 2B Analysis: The additional elements, considering them both individually and in combination, do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 15: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 11. Step 2A Prong 2 Analysis: The claim limitation recites, wherein the software routine includes at least one operation selected from the group of consisting of: a) generating a data output; b) receiving a data input; and c) performing a logical operation on the data output and/or the data input; This claim recites the additional element “generating a data output” recites transmission of data; “receiving a data input” recites gathering of data; and “performing a logical operation” recites a post-solution activity that is well-understood and routine in the art (further discussed in Step 2b analysis). Therefore, the additional elements the claim recites are merely an insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)), and will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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 claims will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Step 2B Analysis: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to the integration of the abstract ideas into a practical application, all of the additional elements are insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which is well-understood, routine, and conventional (see MPEP § 2106.05(d)(II) for court decisions recognizing that this activity is well-understood, routine, and conventional.). Respectively, thus do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 16: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 11. Step 2A Prong 2 Analysis: The claim limitation recites wherein the logical result is selected from the group consisting of: a) indicating that a data output has been generated properly or has failed; b) indicating that a data input has been received properly or a reception of the data input has failed; and c) indication that an execution of a logical operation has been completed properly or has failed; This claim recites the additional element “indicating” and “indication” as a post-solution activity for data that has been “generated properly”, “received properly”, or whether “operation has been completed properly” which is well-understood and routine in the art (further discussed in Step 2b analysis). Therefore, the additional elements the claim recites are merely an insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)), and will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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 claims will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Step 2B Analysis: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to the integration of the abstract ideas into a practical application, all of the additional elements are insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which is well-understood, routine, and conventional (see MPEP § 2106.05(d)(II) for court decisions recognizing that this activity is well-understood, routine, and conventional.). Additionally, the claim merely performs repetitive calculations in the form of logical operations, to produce a logical result (see MPEP § 2106.05(d)(II), section (ii) of the courts having recognized computer functions) as well-understood, routine, and conventional functions. Respectively, thus do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 17: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 13. Step 2A Prong 2 Analysis: The claim limitation recites, wherein the Max/Min instance attribute used to set the limit on the number of instances of the class type or the running method is based on which instance a warning is highlighted in the analysis report; This limitation recites additional elements that indicate a field of use or technological environment in which to apply a judicial exception. The claim merely recites “is based on which instance a warning is highlighted” as a field of use/technological environment to perform the abstract ideas. (See MPEP § 2106.05(h)). Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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. Step 2B Analysis: The additional elements, considering them both individually and in combination, do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 18: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 11. Step 2A Prong 2 Analysis: The claim limitation recites, wherein the metadata contains all associations among symbolic names of classes, properties and methods and their decoration; This claim recites the additional element “contains” which is merely an insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)), and will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Therefore, "Do the claims recite additional elements that integrate the judicial exception into a practical application? No, even when viewed in combination, 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 claims will be analyzed further below in Step 2B as being well-understood, routine, and conventional. Step 2B Analysis: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to the integration of the abstract ideas into a practical application, all of the additional elements are insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which is well-understood, routine, and conventional (see MPEP § 2106.05(d)(II) for court decisions recognizing that this activity is well-understood, routine, and conventional.). Respectively, thus do not amount to significantly more than the judicial exception. The claim is not patent eligible. Regarding Claim 19: Step 2A Prong 1 Analysis: See corresponding analysis regarding Claim 15. Step 2A Prong 2 Analysis: This claim limitation recites, wherein the step of performing the logical operation on the data output and/or the data input is performed in combination with a use of further process data; This claim recites the additional element “in combination with a use of further process data”, where the further process data transmitted to perform the logical operation calculations as a post-solution activity, and is merely an insignificant extra-solution activity such as gathering, displaying, updating, transmitting, and storing data, which does not integrate the judicial exception into a practical application (see MPEP § 2106.05(g)). Step 2B Analysis: The additional elements, considering them both individually and in combination, do not amount to significantly more than the judicial exception. The claim is 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 9 is rejected under 35 U.S.C. 103 as being unpatentable over Dehon et al. (U.S. Patent No. 10936713 B2, hereinafter Dehon) in view of Ritter et al. (U.S. Publication No. 20190188006 A1, hereinafter Ritter). Regarding Claim 9: Dehon discloses, “a) source-coding a plurality of software routines to achieve under execution of a software routine a logical result, the software routines being contained in the software program” (In (Col. 104 lines 64-66), “PUMP 1222 may include rules for the new instruction which check if the code tag is NI, and outputs a logical result”, where PUMP includes in (Col. 132 line 66), “PUMP software services”. In (Col. 78 lines 6-21), “Processing may be performed to validate the learned set of rules denoting the CFI policy for the program … The tool may, for example, examine the binary or object code, symbol table and original source code, and the like … the tagged binary or source code denotes the valid set of all potential source and target locations thereby providing a valid set of potential source and targets that can actually be used in a runtime transfer of control”. In (Col. 135 lines 9-12), “a software routine that consults the symbolic rules of the policy and determines whether the faulting machine state should be al-lowed to proceed”.); “b) adding to each of the software routines a code section indicative for an achievement of the logical result wherein the code section generates a retrievable output in response to the execution of the software routine” (In (Col. 89 line 67 – Col. 90 lines 1-5), “Element 808a may denote a selector used to select an input from each of 850 and 852 based on the logical result of whether MRtag predicted matches MRtag. If the foregoing two tag values match, Rtag 805a is selected as the input into 850 provided as the selected Rtag 850a denoting the in final Rtag output of stage 6”. In (Col. 90 lines 17-19), “A user program, such as one coded in the C programming language, may include calls to routines used in connection with memory allocation and deallocation”. In (Col. 86 lines 55-59), “As illustrated in the example 800, additional outputs of the PUMP 802 in stage 5 include R tag 805a and PC new tag 805b. When using a predicted MR tag, a rule for the predicted MR tag may be determined where the rule specifies an associated tag for R tag” (i.e., Wherein the Rtag output has a tag generated in response to the execution of the software routine). In (Col. 134 line 66), “generating concrete rules as needed while the system executes”. In (Col. 135 lines 9-12), “a software routine that consults the symbolic rules of the policy and determines whether the faulting machine state should be al-lowed to proceed; if so, it generates an appropriate concrete rule”.); “c) controlling the at least one resource to execute the plurality of software routines; and” (In (Col. 90 lines 17-21), “A user program, such as one coded in the C programming language, may include calls to routines used in connection with memory allocation and deallocation. For example, malloc and free are routines in the C standard library and may be linked into an executable of a user program”. In (Col. 36 lines 14-16), “Micro-policies can support lightweight access control and compartmentalization. Tags can be used to distinguish unforgeable resources”. In (Col. 38 lines 19-22), “obtain the concrete input tags and execute code compiled from the symbolic rules to produce the associated concrete output tags in order to insert rules”.); “d) running an analysis tool enabled to provide retrievable outputs deduced from the execution of the plurality of software routines in a separate analysis report” (In (Col. 78 lines 6-12), “Processing may be performed to validate the learned set of rules denoting the CFI policy for the program. The validation may include ensuring that none of these rules allow invalid control transfers. The validation of the learned set of rules may be performed in any suitable manner. For example, an embodiment may run an analysis tool that validates each rule”. Dehon teaches an analysis report through an account of policy descriptions in (Col. 133 lines 5-12), “the main contributions of this work are (i) a programming model and supporting interface model for compactly and precisely describing policies supported by this architecture (§ 2 and § 3); (ii) detailed examples of policy encoding and composition using four diverse classes of well-studied policies; and (iii) quantification of the requirements, complexity, and performance for these policies”. Further within a log in (Col. 77 line 50 – Col. 78 line 5), “The cache miss handler may perform processing to log information regarding the control transfer … the logged set of control transfers, as indicated by the learned rule set at the end of program execution, represents as all valid or allowable control transfers for this particular program. Thus, the learned set of rules may denote an initial or first set of rules for the CFI policy for the program.” The analysis tool is enabled to provide validation of the rules, which the report taught by Dehon’s log uses. In (Col. 78 lines 54-64), “Processing of 606 may use a tool as described above for automated rule validation and may also include other processing. For example, validation processing of 606 may include presenting a rule that has been validated by the tool to a user for further confirmation that the control transfer is valid. The second set of validate rules 608 may be generated as a result of rule validation processing 606. Subsequently, the second set of validated rules 608 may be used by the PUMP system as the CFI policy enforced when executing the program at a second point in time in 610”. In (Col. 80 lines 55-58), “Validation processing of the learned set of rules may be also be performed using a tool or other suitable means as noted above for the CFI learned set of rules”. The validation of rules may be denoted as an output in the form of a Boolean in (Col. 103 lines 7-10), “The returned value may be, for example, a Boolean denoting whether the color associated with PTR2 (as will be used by code of free to access malloc metadata) actually points to a valid or expected malloc metadata area”. In (Col. 103 lines 39-46), “The rule invoked by the new instruction may output a return value as a Boolean in this example denoting whether R2tag=R3tag where the foregoing Boolean result may be the return value output by metadata rule processing (e.g., PUMP output) stored in register R1 accessible to free included in the address space of user executing code. It should be noted that R1 may be tagged with Rtag as the result tag consistent with discussion elsewhere herein.” Where the user executing code includes software routines in (Col. 90 lines 17-19), “A user program, such as one coded in the C programming language, may include calls to routines used in connection with memory allocation and deallocation”.); Dehon does not disclose however Ritter discloses, “A method for enhancing debugging capability on a software program being executed on at least one resource of an industrial environment controlled by a manufacturing operation management system (MOM system), the method comprises the steps of” (Paragraph [0129], “The subject matter described in this application can be implemented as a method”. Paragraph [0097], “Inspection may involve reasoning about a program via a utility program, such as a compiler, optimizer, debugger, profiler, binary rewriter. The utility program may provide information regarding structure and types used by the program”. Paragraph [0103]: “An adapter may be an interface of the endpoint. The adapter may be referred to as an integration adapter or a component. It may be possible to communicate with the adapter via messaging. The adapter may be part of an enterprise application integration system, an enterprise service bus system or a manufacturing operation management system. The adapter may perform tasks such as connection handling, format conversion, scheduling, quality of service support.” Paragraph [0134], “FIG. 1 shows a representation of an adapter. A software application may have at least one endpoint 101. In some cases, the software application may have a plurality of diverse endpoints. This is particularly the case in the context of a shared, distributed computing environment (i.e., utility computing using shared resources)”. Paragraph [0145], “The adapter may operate within an execution environment (i.e., runtime) of the computing platform”.); (Examiner’s Note: Because the examined case does not have a definition of “industrial environment” in the specification, the examiner uses the BRI (Broadest Reasonable Interpretation) of “industrial environment” as an environment involving manufacturing.). Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon by adopting the teaching of Ritter specifying the environment in which the invention takes place; motivated by the common goal to enhance debugging capabilities of a software program (Ritter [0097]). Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Dohan in view of Ritter as applied to claim 9 above, and further in view of Lui et al. (U.S. Publication No. 20070083813 A1, hereinafter Liu). Regarding Claim 10: Dohan in view of Ritter does not disclose however Lui discloses, “wherein the analysis report is displayed on a graphic user interface for debugging purposes” (In paragraph [0112], “Development tools include GUI”. The analysis report is taught in the reference as a report being based of analysis in paragraph [0098], “Analysis for reporting, alerts, or responses is achieved through Multi-Instance handling, by connected State Machines that are run on the client and/or the server in a variety of configurations”. The report is then processed to be displayed in paragraph [0118], “This data in a process complete form is fed to the Analysis and Reports stage 539 for aggregated, trend, and report processing for graphical presentation, and, use within the gMg reporting consoles”. In paragraph [0119], “For a wide spectrum of users, the consoles are used for purposes such as change control, program repair, support, debugging, optimization, and so on”.). Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter by adopting the teaching of Lui to display the analysis report on a graphical user interface; motivated by the common goal to enhance debugging capabilities of a software program (Lui [0113]). Claims 11, 12, 15, 16, 18 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Dehon in view of Ritter and Lui as applied to claim 10 above, and further in view of Clement et al. (U.S. Publication No. 20220214863 A1, hereinafter Clement). Regarding Claim 11: Dehon further discloses, “wherein the code section is configured as a [] associated with source code of the software routine, thereby tagging class definitions, properties and methods” (In (Col. 83 line 59 – Col. 84 line 11), “Code may be executed on the processor 702 to import the untagged data from 716 into the system for storage, for example, on DRAM 712c. The following may be denote logic of the code that imports the untagged data: … 3. perform validation processing to ensure that the decode buffer includes valid uncompromised data. Such validation processing may use digital signatures as described elsewhere herein and known in the art. 4. if the decode buffer includes validate data, a second portion of trusted code may be executed to convert the data of decode buffer tagged as public, untrusted, to data that is tagged as trusted. The trusted code portion may include one or more instructions that, when executed, invoke rules to retag the data of decode buffer as trusted, public”. In (Col. 145 lines 33-46), “protecting against buffer overflow or command injection vulnerabilities … we implement a fairly minimal one based on the simplest instances of each of the four protection classes”. In (Col. 90 lines 17-19), “A user program, such as one coded in the C programming language, may include calls to routines used in connection with memory allocation and deallocation”. In (Col. 97 lines 38-41), “Thus, an embodiment in accordance with techniques herein may use such hardware-supported policies alone, or in combination with, software-defined policy components using a software rule cache miss handler”. In (Col. 113 lines 15-25), “In at least one embodiment, the I/O PUMP 1502 may be an instantiation of the PUMP as described herein (e.g., FIG. 22) with a difference that the rules enforced are those of a DMA policy controlling DMA access into memory 1712c. The foregoing use of the I/O PUMP 1502 is line with the general architecture of assuring that all instructions, including memory operations, are mediated by rules. If autonomous DMA devices 1504a-c were allowed direct, unmediated access to memory, the DMA devices 1504a-c may undermine the invariants and safety properties that the rules are enforcing”. Although Dehon discloses a lower-level abstraction of the claimed limitations, the same functions are accomplished. An additional reference, Clement, will be discussed below to further disclose the decorator.). Dehon in view of Ritter and Lui does not explicitly disclose however Clement discloses, “decorator” (In paragraph [0041], “The class context 204 includes a decorator, a class signature, class docstring, and class constructor … a method decorator is special kind of declaration that is attached to a class declaration, method, accessor, property or parameter”. Further in paragraph [0022], “A class context includes class signatures, class docstrings and class members defined in a constructor. The class context also includes class methods, class method decorators, class method signatures, and class method docstrings”. Where the reference of Clement also teaches the decorator is associated with the source code through the class context in paragraph [0034], “An extractor 114 obtains features from each source code file which include the global context, class context, method context, function context, and local context 116”. The source code of the software routine is shown through the local context in paragraph [0129], “a local context of a current cursor position of the source code program … In an aspect, the local context includes a method body, function body or stand-alone code of a main routine”.). Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter and Lui by adopting the teaching of Clement to implement a decorator for class attributes; motivated by the common goal to enhance debugging capabilities of a software program (Clement [0116]). Regarding Claim 12: Dehon further discloses, “wherein the [] is enabled to own attributes being used to complete a configuration of the [] and being used during debugging” (In (Col. 43 lines 33-36), “Whether the PUMP is engaged or disengaged may vary with the particular assumed level of trust and desired level of protection attributed to code that executes at different RISC-V privilege levels”. In (Col. 35 lines 61-65), “The software defined metadata policy model and its acceleration will be applicable to a large range of policies beyond those illustrated here, including … debugging”.). Dehon in view of Ritter and Lui does not disclose however Clement discloses, “decorator” (In paragraph [0041], “A class in object-oriented programming languages is a template for creating objects and includes initial values for member attributes and variables and member functions or methods. The class context 204 includes a decorator, a class signature, class docstring, and class constructor … A decorator is of the form @expression, wherein expression evaluates to a function that is called at runtime with information about the decorated declaration”. Further an example is given of the decorator owning attributes in paragraph [0042], “As shown in source code 200, the class context 204 includes the class decorator “@register model(“transformer”)”. Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter and Lui by adopting the teaching of Clement to implement a decorator for class attributes; motivated by the common goal to enhance debugging capabilities of a software program (Clement [0116]). Regarding Claim 15: Dehon further discloses, “wherein the software routine includes at least one operation selected from the group of consisting of:” (In (Col. 135 lines 1-12), “The PUMP hardware includes a cache of concrete rules that can be consulted in parallel with the processor's ALU operations. When an instruction is issued, the rule cache performs an associative match of the tags from the current machine state … If a match is found, the cache returns the new tag for the PC and a tag for the instruction's result. Other-wise, the processor faults to a rule miss handler—a software routine that consults the symbolic rules of the policy and determines whether the faulting machine state should be al-lowed to proceed; if so, it generates an appropriate concrete rule”. In (Col. 136 lines 49-51), “dispatches to routines that evaluate both sets of symbolic rules. The operation is allowed only if both policies have a rule that applies”.); “a) generating a data output” (In (Col. 52 lines 36-41), “The cache miss handler generates outputs R tag and PC new tag for the new rule … Op1data 1051 denotes the outputs generated by the metadata processor such as the outputs Rtag and PC new tag for the new rule”.); “b) receiving a data input; and” (In (Col. 55 lines 41-43), “the PUMP may normally receive the foregoing additional input from the data path (e.g., from the code execution domain)”.); “c) performing a logical operation on the data output and/or the data input” (In (Col. 46 lines 49-52), “In connection with processing performed by the metadata subsystem or processing system, the metadata tags of the executing code are placed in PUMP CSRs and become the “data” input to, and operated upon, by the metadata system”. Additionally, there are logical operations performed on both data output and data input specifically when Dehon is selecting final values. In (Col. 51 lines 4-11), “Element 1049 denotes how the Boolean engaged is determined as a function of current RISC-V privilege and the current tagmode. Element 1049 includes a logical expression using standard notation known in the art whereby “A==B” denotes if a logical test for equality between A and B, “A && B” denotes a logical AND operation of A and B, and “NIB” denotes a logical inclusive OR operation between A and B”. In (Col. 50 line 43 – Col. 51 line 3), “Referring to FIG. 31, shown is an example 1040 denoting components that may be used to implement logic of the output tag select 1038 of the PUMP … The inputs 1043 may include the Rtag care bit (e.g., form care bits of 1012) logically ANDed (&&) with engaged. Thus, generally the care bits included in the PUMP inputs 1012 identify which PUMP inputs are don't cares (are masked out) and which PUMP outputs (Rtag and PCnew tag) are don't cares (are masked out). Also, outputs 1043 and 1047 are treated as “don't care” values when the PUMP is disengaged because the processor is running at a higher privilege level than the current tagmode specifies as the threshold for PUMP operation”. Note the operation by a software routine through RISC-V in (Col. 38 lines 27-29), “the RISC-V architecture further extended with metadata tags and the PUMP to support software defined metadata processing (SDMP)”, where in (Col. 35 lines 61-67), “The software defined metadata policy model and its acceleration will be applicable to a large range of policies beyond those illustrated here, including sound information-flow control, fine-grained access control, integrity, synchronization, race detection, debugging, application-specific policies, and controlled generation and execution of dynamic code”.). Regarding Claim 16: Dehon further discloses, “wherein the logical result is selected from the group consisting of: a) indicating that a data output has been generated properly or has failed” (In (Col. 89 line 67 – Col. 90 line 3), “Element 808a may denote a selector used to select an input from each of 850 and 852 based on the logical result of whether MRtag predicted matches MRtag”. Note in (Col. 86 lines 10-11), “MR tag (also sometimes referred to herein as the Mtag)”. In (Col. 115 lines 38-40), “The mtag CSR contains the M tag for the current DMA instruction and is used on a rule miss as an input to the rule miss handler”. Claim limitation ‘a’ is taught in (Col. 115 lines 56-61), “The status CSR contains a value denoting a status of the I/O PUMP. For example in one embodiment as described herein, the status CSR may denote whether the I/O PUMP is enabled or disabled. It may be disabled in the case of a PUMP I/O rule cache miss as described elsewhere herein”, further described in (Col. 115 line 65 – Col. 116 line 1), “In at least one embodiment, if bit 0 of the status CSR is 1, it means the I/O PUMP is disabled and if the bit 0 otherwise has a value of 0, it means the I/O PUMP is disabled. PUMP I/O misses disable the pump”.); “b) indicating that a data input has been received properly or a reception of the data input has failed” (In (Col. 116 lines 1-3), “Bit 1 of the status CSR indicates whether the PUMP has faulted and is waiting for service (e.g., Bit1=1 implies I/O PUMP faults/cache miss and waiting for service)”.); “c) indication that an execution of a logical operation has been completed properly or has failed” (In (Col. 116 lines 4-8), “Bit 2 of the status CSR indicates whether an I/O PUMP rule miss is currently being resolved by a rule cache miss handler and, if the transaction id matches, will provide the inserted results directly to the pending miss operation”.). Regarding Claim 18: Dehon further discloses, “wherein the metadata contains all associations among symbolic names of classes, properties and methods and their []” (In (Col. 1 line 59 – Col. 2 line 18) the metadata tags in Dehon’s reference are used for associations, “a method of processing instructions comprising: receiving, for metadata processing, a current instruction with an associated metadata tag … determining, in the metadata processing domain and in accordance with the metadata tag and the current instruction, whether a rule exists in a rule cache for the current instruction … wherein said plurality of metadata tags may be used as data in the metadata processing domain”. The metadata tags may then be used to associate instructions ran when executing user code. (Col. 38 lines 27-44), “RISC-V architecture further extended with metadata tags and the PUMP to support software defined metadata processing (SDMP)…. metadata tags are placed on both instructions and data for each word … the RISC-V architecture has 32 bit instructions and thus an embodiment supporting and operating using the 64 bit word size may store 2 instructions in a single tagged word.” (Col. 132 lines 8-9), “every word of data is associated with a word-sized metadata tag”. In (Col. 127 lines 51-56), “The set of sources for each possible control flow target may be communicated to the metadata processing domain, such as stored metadata tag information, which may then be used by rules of the CFI policy in connection with CFI policy enforcement during runtime execution of user code”. Note in the Abstract, “the metadata may be characterized as unbounded and software programmable to be applicable to a wide range of metadata processing policies.” The metadata contains all association with symbolic names of classes, properties, and methods through Dehon’s utilization of rules. In (Col. 133 lines 54-58), “Each symbolic rule has the form: … which says that the rule matches on a set of instruction opcodes (opgroup) together with the metadata tags”. In (Col. 38 lines 4-7), “The symbolic rules used above for policy specification may be written using variables, allowing a few symbolic rules to describe the policy over an unbounded universe of distinct values”, where in (Col. 113 lines 24-25) the rules enforce, “safety properties that the rules are enforcing”. In (Col. 66 line 65 – Col. 66 line 9), “An embodiment may further define rules to provide a stack protection policy … the rules may use tags of both instructions and data for policy enforcement … such as routine and procedure may be used interchangeably and more generally refer to a callable unit of code that, when invoked, results in creation of a new stack frame on the call stack. Other names that may also be used for a callable unit of code may include function, subroutine, subprogram, method, and the like”. In (Col. 36 lines 1-8), “Some non-limiting advantages of the various aspects and embodiments described herein provide (i) a programming model and supporting interface model for compactly and precisely describing policies supported by this architecture; (ii) detailed examples of policy encoding and composition using four diverse classes of well-studied policies; and (iii) quantification of the requirements, complexity, and performance for these policies”, further implemented in (Col. 145 lines 44-48), “First we implement a fairly minimal one based on the simplest instances of each of the four protection classes: 3 primitive types Ⓒ, a simple memory safety Ⓕ, CCFIR Ⓛ, and, single-bit input-taint Ⓟ”.); Dehon in view of Ritter and Lui does not disclose however Clement discloses, “decoration” (In paragraph [0041], “The class context 204 includes a decorator, a class signature, class docstring, and class constructor … a method decorator is special kind of declaration that is attached to a class declaration, method, accessor, property or parameter”.). Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter and Lui by adopting the teaching of Clement to include a decorator; motivated by the common goal to enhance debugging capabilities of a software program (Clement [0116]). Regarding Claim 19: Dehon further discloses, “wherein the step of performing the logical operation on the data output and/or the data input is performed in combination with a use of further process data” (In (Col. 50 lines 43-51), “Referring to FIG. 31 … Generally, MUX 1043a may be used to select the final tag value for PC new tag 1043 as output by the PUMP (e.g., PC new tag of 1014), and MUX 1043b may be used to select the final tag value for R tag 1047 as output by the PUMP (e.g., R tag of 1014)”. As shown in Figure 31, the further data process (in addition to the logical operations performed on the inputs put into the multiplexers 1043a-b) is the Boolean engaged in element 1049. The Boolean engaged is used by the selector 1042 and 1044 within the multiplexers.). Claims 13 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Dohan in view of Ritter, Lui and Clement as applied to claim 12 above, and further in view of Shook et al. (U.S. Publication No. 20100005266 A1, hereinafter Shook). Regarding Claim 13: Dehon further discloses, “which further comprises selecting at least one attribute from the group consisting of” (In (Col. 43 lines 34-36), “the particular assumed level of trust and desired level of protection attributed to code that executes at different RISC-V privilege levels”.); “v) a Max/Min instance attribute being used to set a limit []” (In (Col. 62 lines 29-32), “Element 434 may denote the virtual memory process address space or range 0 through MAX, where MAX denotes the maximum virtual memory address used by P1 and 0 denotes the minimum virtual address used by P1”. In (Col. 63 lines 4-8), “For example, the tag value of 100 needs to be interpreted as the same color by the rules in connection with both P1 and P2. Furthermore, the same set or instance of policies and rules may be used by the PUMP for both P1 and P2”.) Dehon in view of Ritter, Lui, and Clement does not disclose however Shook discloses, “on a number of instances of a class type or a running method” (In paragraph [0011], “Each class type represents a total number of instances of a class. A class is designated a top class if a class number exceeds a user defined threshold, the class number being calculated by dividing the number of instances of the class by the total number of instances of all classes”.). Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter, Lui, and Clement by adopting the teaching of Shook to include a number of class type instances; motivated by the common goal to enhance accuracy in software program capabilities by measuring a threshold limit (Shook [0011], Abstract). Regarding Claim 17: Dehon in view of Ritter, Lui, and Clement does not disclose however Shook discloses, “wherein the Max/Min instance attribute used to set the limit on the number of instances of the class type” (In paragraph [0011], “Each class type represents a total number of instances of a class. A class is designated a top class if a class number exceeds a user defined threshold, the class number being calculated by dividing the number of instances of the class by the total number of instances of all classes”.). Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter, Lui, and Clement by adopting the teaching of Shook to include a number of class type instances; motivated by the common goal to enhance accuracy in software program capabilities by measuring a threshold limit (Shook [0011], Abstract). Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over Dehon in view of Ritter, Lui and Clement as applied to claim 11 above, and further in view of Colaitis et al. (U.S. Publication No. 20210042892 A1, hereinafter Colaitis). Regarding Claim 14: Dehon in view of Ritter and Lui does not disclose however Clement further discloses, “wherein the decorator is coded at a phase of source-coding” (In paragraph [0042], “As shown in source code 200, the class context 204 includes the class decorator “@register model(“transformer”)”.) Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter and Lui by adopting the teaching of Clement to include a decorator; motivated by the common goal to enhance debugging capabilities of a software program (Clement [0116]). Dehon in view of Ritter, Lui, and Clement does not disclose however Colaitis discloses, “and is translated by a pre-compiler into static metadata” (In paragraph [0062], “if the formatting of the metadata is not the fixed one then a translation/conversion mechanism shall occur in the apparatus A2 to adapt the formatting of metadata to an expected formatting carried on the uncompressed interface”. In paragraph [0258], “Implementations of the various processes and features … a pre-processor providing input to an encoder”.). Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Dehon in view of Ritter, Lui, Clement, and Shook by adopting the teaching of Colaitis to use a pre-compiler for static metadata translation; motivated by the common goal to render metadata at an earlier stage in production to prevent problems arising for the user (Colaitis [0007]). Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Krauch et al. (U.S. Publication No. 20170371998 A1) discloses “a warning is highlighted in the analysis report” in paragraph [0016], “FIG. 9 depicts one example of a text-based endpoint report analysis result, with multiple potentially dispensable inverter chains highlighted with a warning flag”. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Beza D Nigatu whose telephone number is (571)272-9643. The examiner can normally be reached Monday - Friday 7:30am-3:30pm. 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, Hyung Sough can be reached at (571) 272-6799. 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. /B.D.N./Examiner, Art Unit 2192 /S. Sough/SPE, Art Unit 2192
Read full office action

Prosecution Timeline

Jun 12, 2024
Application Filed
Jun 11, 2026
Non-Final Rejection mailed — §101, §103, §112 (current)

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
Grant Probability
Low
PTA Risk
Based on 0 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month