aimDETAILED 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 .
Claims 1-7,11-17 and 20 are pending in this office action.
Claims 8-10, 18-19 are cancelled.
Claims 1, 11 and 20 are amended.
Response to Arguments
Applicant's arguments filed 01/28/2026 have been fully considered but they are not persuasive.
Applicant’s argument :
Thus, Dayanandan, Huang, and Cherry, taken alone or in combination, fail to disclose, teach, or suggest "while a second web application screen is in development: access a final element map, wherein the final element map is configured to synchronize a development of the second web application screen and a testing of the second web application screen; and execute one or more tests of the second web application screen based on the final element map so as to validate a prediction of a third set of key-value pairs prior to completion of the development of the second web application screen," as recited by amended Claims 1, 11, and 20. These additional elements are not mere procedural features; they reflect a specific technical architecture for synchronizing development-time predictions with real-time validation-an architecture wholly absent from the cited references. For at least these reasons, Applicant respectfully submits that a prima facie case of obviousness under 35 U.S.C. § 103 has not been established as to Claims 1, 11, and 20, or those claims depending from Claims 1, 11, and 20. Accordingly, Applicant respectfully requests reconsideration and allowance of all pending claims.
Examiner response:
First based on the specification a map is: key-value pairs and update to the map is adding, deleting or modifying that key-value pair.
Dayanandan discloses generation of maps based on the key-value pair (attribute, values): first what is the input for the trained model such as [0064] :
“Requirements information 104 may include one or more images 132, text information 134, and other information 136.”
Let focus on images 132 what does include:
images 132 can be: for an existing application: [0064] “images 132 may include an image that is a screenshot, for example, a screenshot of a screen of an existing application,”
or images 132 can be for a developing application such as new version :[0064]” where the to-be-developed application is to have a similar GUI screen as the existing application (e.g., the existing application could be a previous version of the application for which a new version of the application is to be developed).”;
so the modification is developing a new version of the application. Files., images such as screen are for new version to be developed.
Now let see the third instance as another screen and the attributes and mapping is updated:
[0126] “Again, in such a scenario, it may be determined in 314, that a new data object needs to be created for the GUI screen, where the new data object includes at least one field that can be mapped to that previously unmapped particular dynamic component of the GUI screen. As part of the processing in 314, a new data object may be created with the requisite fields. The data object may be mapped to the GUI screen and the fields mapped to appropriate components of the GUI screen”;
So far the updated key-value pair is for first, second third screen and the machine learning is trained. The trained machine learning using the map generated previously and the new GUI/specification outputs another map that is how the key-value of the new GUI are mapped:
[0233] “These may then be input to a machine learning classifier which trains the model to output the business object onto which the requirement object should be mapped.
So far the output of the key-values pair (final map) files are subject to testing. To test those GUI files the system of Dayanandan generates and execute the test as disclosed in this office action [Dayanandan 0084]. But because to be developed version is a new version of an exciting application only modified files are subject to testing, so synchronize only modified files, no need to test what already tested.[Cherry 0004].
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-7, 11-17 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Dayanandan et al US20180203674A1 and further in view of Cherry et al US20070100903A1.
As per claim 1, Dayanandan discloses a system, comprising:
a memory configured to store a first instance of a first web application screen, a second instance of the first web application screen, a third instance of the first web application screen, and an instance of a second web application screen:
[0065]”The GUI of the application to be developed and for which requirements information 104 is received may comprise one or more screens. When the GUI comprises multiple screens, an image in images 132 may depict a single screen or multiple screens. In certain embodiments, images 132 may be received as a sequence or may have an ordering, where the sequence or ordering identifies the flow between the screens depicted by the images”;
[0064]“As another example, images 132 may include an image that is a screenshot, for example, a screenshot of a screen of an existing application, where the to-be-developed application is to have a similar GUI screen as the existing application (e.g., the existing application could be a previous version of the application for which a new version of the application is to be developed).
and one or more processors operably coupled to the memory and configured to: access the first instance of the first web application screen and the second instance of the first web application screen:
[0071]”Model generation system 102 may use various different techniques to build application model 124 from requirements information 104. For example, model generation system 102 may process and analyze requirements information 104 to determine the one or more GUIs screens specified for the application, and for each GUI screen, the set of user interface components included on that screen and the physical layout of the user interface components.
generate a first set of key-value pairs for each web element identified in the first instance of the first web application screen and the second instance of the first web application screen;
[0071]“In certain embodiments, this processing may include, for example, for a GUI screen, partitioning the screen image into one or more segments or partitions, determining a set of user interface components (e.g., buttons, drop down lists, segments, etc.) that are included in each of the partitions and their attributes titles or values (e.g., labels, sizes), determining the physical layout of the partitions within the GUI screen and the physical layout of the GUI components within the partitions including determining hierarchical containment relationships between segments or partitions, and determining functionality to be associated with one or more of the GUI components”;
generate a first element map based on the first set of key-value pairs:
[0072]“In certain embodiments, model generation system 102 is also configured to process and analyze requirements information 104 to identify one or data objects corresponding to one or more one screens and store mappings between the data objects and the corresponding screens.”;
access the third instance of the first web application screen:
[0086] “In certain versions, Application Composer allows new screens to be added to an application or to change the contents of existing screens of a mobile application by configuring them remotely at a server.”;
[0088]“For example, newly derived or created business objects may require a new set of screens to expose the data of the data objects”;
generate an updated element map based on the first element map and a second element map, wherein the second element map is generated based on the third instance of the first web application screen, wherein the updated element map comprises a second set of key-value pairs updated for a context of the third instance of the first web application screen:
[0126] At 314, it is determined if a new data object is needed. For example, it is possible in some situations that no available data object was deemed to map to the GUI screen in 310. In such a situation, it may be determined in 314 that a new data object needs to be created for the GUI screen. As another example, even though a particular data object is mapped to the GUI screen, it may be determined after performing the processing in 312 that there exists a particular dynamic component on the GUI screen that could not be mapped to any field of the particular data object. Again, in such a scenario, it may be determined in 314, that a new data object needs to be created for the GUI screen, where the new data object includes at least one field that can be mapped to that previously unmapped particular dynamic component of the GUI screen. As part of the processing in 314, a new data object may be created with the requisite fields. The data object may be mapped to the GUI screen and the fields mapped to appropriate components of the GUI screen”;
execute a machine-learning model trained to generate a prediction of a third set of key-value pairs for the instance of the second web application screen based at least in part upon the updated element map and a wireframe of the second web application screen:
[0233] In certain embodiments, features are extracted from the requirement objects. These may then be input to a machine learning classifier which trains the model to output the business object onto which the requirement object should be mapped. An example of the overall approach is depicted in FIG. 10. The various features used in identification may include, without limitation, text similarity matching, elimination, attribute matching, and essential attribute matching. In the elimination phase, as described earlier, data objects which appear in the attribute title are removed. The text similarity matching may use the similarity between two words in meaning. Attribute matching is the overlap of attributes between the requirement object and the business objects. Essential attributes are the attributes that are mandatory for existing data object (e.g., “Deal Value” for “Deal” business object, “Name” for “Contact” business object)
generate a final element map based on the prediction of the third set of key-value pairs for the instance of the second web application screen;
[0226]”In certain embodiments, machine learning techniques may be used to determine an available data object for a requirement data object, for example, as depicted in FIG. 10. For example, according to one technique, the best fit between a requirement object and an existing data object may be found. If the error is within a certain threshold, then that existing data object may be mapped to the requirement data object.
[0232]”The problem statement is to define a mapping from R to an element on B or C or equivalently to B union C or set {B U C}. A machine learning classifier M may generate mappings from “Appointments”, “Tasks”, and “Call Reports” to “Activities”. “Contacts”, “Leads”, “Deals” etc. have direct mappings.
wherein the second web application screen comprises a new web application screen in development :
[0064] “where the to-be-developed application is to have a similar GUI screen as the existing application (e.g., the existing application could be a previous version of the application for which a new version of the application is to be developed).”;
and the first application screen comprises an existing web application screen in deployment:
[0064]“As another example, images 132 may include an image that is a screenshot, for example, a screenshot of a screen of an existing application,”;
while the second web application screen is in development:
[0065] “The GUI of the application to be developed and for which requirements information 104 is received may comprise one or more screens.”;
[0085] “Developers may further augment the code template implementation with additional code to complete or enhance (e.g., add additional functionality) the application's code base.”
access the final element map;
[0084]”In certain embodiments, application model 124 may be used to generate code for automated testing of an application implementation. To facilitate the generation of automated testing of an implementation, in certain embodiments, the auto-generated application implementation may additionally comprise labels, annotations, and other data that identify, for example, GUI components within the GUI of the application. These labels, annotations, and other data may then be used by automated testing suites to identify GUI components and GUI functions within the application implementation. Automated testing suites may then generate and/or run tests tailored to thoroughly test the GUI components and GUI functions of the application implementation”.
and execute one or more tests of the second web application screen based on the final element map so as to validate the prediction of the third set of key-value pairs prior to completion of the development of the second web application screen.
[0084] “These labels, annotations, and other data may then be used by automated testing suites to identify GUI components and GUI functions within the application implementation. Automated testing suites may then generate and/or run tests tailored to thoroughly test the GUI components and GUI functions of the application implementation.”
But not explicitly:
wherein the final element map is configured to synchronize the development of the second web application screen and a testing of the second web application screen:
Cherry discloses:
wherein the final element map is configured to synchronize the development of the second web application screen and a testing of the second web application screen:
[0031]“As shown, the user may browse for an application on the test server and select an associated project name. The user may then configure the synchronization manager to associate the appropriate project files with an application monitored by the synchronization manager, such that when any of the associated files are modified in the development environment, the synchronization manager may synchronize the modified files with the application deployed on the test server”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Cherry into teachings of Dayanandan for synchronizing files is provided. The system may further comprise determining which of the plurality of files comprising the software application have been modified since deployment of the software application on the test server. The method may also comprise synchronizing only the modified file of the software application between the development system and the test server. Build and deploy only the modified files, greatly reducing the time necessary to synchronize the deployed files with those modified in the development environment.[Cherry 0027].
As per claim 2, the rejection of claim 1 is incorporated and furthermore Dayanandan discloses:
wherein the one or more processors are further configured to: access the first instance of the first web application screen during runtime; and access the second instance of the first web application screen during development time:
[0086] For example, a user can use the tool to create a new data object with associated components (e.g., fields, elements, attributes) and then create new desktop pages to expose that object to users. Application Composer is a “design time at run time” tool, which means that a user can navigate to the Application Composer tool directly from a Sales Cloud application, make the desired changes, and see most changes take immediate effect, without having to sign back into the application.”
As per claim 3, the rejection of claim 1 is incorporated and furthermore Dayanandan discloses:
wherein the one or more processors are further configured to access the third instance of the first web application screen while the third instance of the first web application screen is executing on a mobile device:
[0086]“Application Composer is a “design time at run time” tool, which means that a user can navigate to the Application Composer tool directly from a Sales Cloud application, make the desired changes, and see most changes take immediate effect, without having to sign back into the application. In certain versions, Application Composer allows new screens to be added to an application or to change the contents of existing screens of a mobile application by configuring them remotely at a server.”;
As per claim 4, the rejection of claim 1 is incorporated and furthermore Dayanandan discloses:
wherein the one or more processors are further configured to: receive an input corresponding to the first element map;
[0010] “Additionally, for a particular data object mapped to a particular screen, the model may also include information about how individual components of the GUI screen are mapped to components (e.g., fields, elements, attributes) of the particular data object.”;
generate the second element map based on the third instance of the first web application screen;
[0120] “ In such a scenario, a new data object may need to be created for the GUI screen. This is further described below with respect to 314.
[0121] At 312, for the particular data object determined in 310, one or more mappings from one or more components (also referred to as fields, elements, or attributes) of the particular data object to one or more components of the GUI screen are identified based upon the requirements information and the information for available data objects accessed in 308.
compare the first element map and the second element map; and generate the updated element map based on the comparison of the first element map and the second element map:
[0126]“ In such a situation, it may be determined in 314 that a new data object needs to be created for the GUI screen. As another example, even though a particular data object is mapped to the GUI screen, it may be determined after performing the processing in 312 that there exists a particular dynamic component on the GUI screen that could not be mapped to any field of the particular data object. Again, in such a scenario, it may be determined in 314, that a new data object needs to be created for the GUI screen, where the new data object includes at least one field that can be mapped to that previously unmapped particular dynamic component of the GUI screen. As part of the processing in 314, a new data object may be created with the requisite fields. The data object may be mapped to the GUI screen and the fields mapped to appropriate components of the GUI screen.”;
As per claim 5, the rejection of claim 1 is incorporated and furthermore Dayanandan discloses:
wherein the machine-learning model is trained to generate the prediction of the third set of -value pairs for the instance of the second web application screen utilizing the updated element map as a seed input:
[0233] In certain embodiments, features are extracted from the requirement objects. These may then be input to a machine learning classifier which trains the model to output the business object onto which the requirement object should be mapped.
[0064] “As another example, images 132 may include an image that is a screenshot, for example, a screenshot of a screen of an existing application, where the to-be-developed application is to have a similar GUI screen as the existing application (e.g., the existing application could be a previous version of the application for which a new version of the application is to be developed).
As per claim 6, the rejection of claim 5 is incorporated and furthermore Dayanandan discloses:
wherein the machine-learning model comprises one or more sequence-to-sequence (Seq2Seq) models, one or more encoder-decoder sequence models, or one or more transformer models:
[0233]” In certain embodiments, features are extracted from the requirement objects. These may then be input to a machine learning classifier which trains the model to output the business object onto which the requirement object should be mapped.”;
As per claim 7, the rejection of claim 1 is incorporated and furthermore Dayanandan discloses:
while the second web application screen is in development:
[0065] “The GUI of the application to be developed and for which requirements information 104 is received may comprise one or more screens.”;
[0085] “Developers may further augment the code template implementation with additional code to complete or enhance (e.g., add additional functionality) the application's code base.”
access the prediction of the third set of key-value pairs generated by the machine-learning model;
[0233]”In certain embodiments, features are extracted from the requirement objects. These may then be input to a machine learning classifier which trains the model to output the business object onto which the requirement object should be mapped. An example of the overall approach is depicted in FIG. 10. The various features used in identification may include, without limitation, text similarity matching, elimination, attribute matching, and essential attribute matching”;[0193] At 1108, other attribute value pairs may be identified by a confirmed title and design of confirmed attribute title and value pair
access the wireframe of the second web application screen:
[0151] “In some embodiments, a hierarchy of components (e.g., container hierarchy) may be determined for components on a screen. This hierarchy may be used to find related components within the screen.”;
wherein the wireframe comprises a layout plan of the second web application screen prior to the development of the second web application screen:
[0071] “ For example, model generation system 102 may process and analyze requirements information 104 to determine the one or more GUIs screens specified for the application, and for each GUI screen, the set of user interface components included on that screen and the physical layout of the user interface components. In certain embodiments, this processing may include, for example, for a GUI screen, partitioning the screen image into one or more segments or partitions, determining a set of user interface components (e.g., buttons, drop down lists, segments, etc.) that are included in each of the partitions and their attributes titles or values (e.g., labels, sizes), determining the physical layout of the partitions within the GUI screen and the physical layout of the GUI components within the partitions including determining hierarchical containment relationships between segments or partitions, and determining functionality to be associated with one or more of the GUI components.”;
[0085] “ Developers may further augment the code template implementation with additional code to complete or enhance (e.g., add additional functionality) the application's code base”;
and generate the final element map based on the prediction the third set of key-value pairs and the wireframe of the second web application screen:
[0162] “Thresholding is done on map region. It is identified from the container hierarchy in the region identified after thresholding using the rectangular boundaries or closed contours followed by the identification of GUI elements described in the early part of the document. The text regions may be replaced with the background color before identifying the containers. The exact information and attributes used to display in this container are then identified.
Claims 11, 12, 13, 14, 15, 16, 17are the method claim corresponding to system claims 1, 2, 3, 4, 5, 6, 7 and rejected under the same rational set forth in connection with the rejection of claims 1, 2, 3, 4, 5, 6, 7 above.
Claim 20 is the non-transitory computer-readable medium claim corresponding to system claim 1 and rejected under the same rational set forth in connection with the rejection of claim 1 above.
Pertinent arts:
US20200110796A1:
A user who has created a number of forms using the form builder and activate a machine learning feature. The machine learning feature can analyze for each type of form the common elements selected and placement position in the form. The user can then automate an initial form creation to include in the chosen position those common elements. This saves time for the user and reduces the duplication of effort to arrive at a the same or similar form layout.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRAHIM BOURZIK whose telephone number is (571)270-7155. The examiner can normally be reached Monday-Friday (8-4:30).
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 Y Mui can be reached at 571-270-2738. 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.
/BRAHIM BOURZIK/Examiner, Art Unit 2191
/WEI Y MUI/Supervisory Patent Examiner, Art Unit 2191