[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

US11635946B2 - Analyzing objects from a graphical interface for standards verification - Google Patents

Analyzing objects from a graphical interface for standards verification Download PDF

Info

Publication number
US11635946B2
US11635946B2 US16/153,069 US201816153069A US11635946B2 US 11635946 B2 US11635946 B2 US 11635946B2 US 201816153069 A US201816153069 A US 201816153069A US 11635946 B2 US11635946 B2 US 11635946B2
Authority
US
United States
Prior art keywords
user interface
graphical user
attributes
objects
interface objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US16/153,069
Other versions
US20190042208A1 (en
Inventor
Chris L. Doughty
Bryant G. Luk
Brian P. Preston
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US16/153,069 priority Critical patent/US11635946B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PRESTON, BRIAN P.
Publication of US20190042208A1 publication Critical patent/US20190042208A1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION EMPLOYMENT AGREEMENT Assignors: LUK, BRYANT GENEPANG
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION EMPLOYMENT AGREEMENT Assignors: DOUGHTY, CHRIS
Application granted granted Critical
Publication of US11635946B2 publication Critical patent/US11635946B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Definitions

  • the embodiments disclosed within this specification relate to user interfaces. More particularly, the embodiments relate to graphical user interface objects.
  • GUIs Graphical user interface objects
  • objects are routinely incorporated into graphical user interfaces (hereinafter “objects”).
  • GUIs graphical user interfaces
  • Such GUIs sometimes become quite complex, requiring a myriad of different objects.
  • computer programmers who program such GUIs must keep track of the various attributes assigned to different objects that are incorporated into the GUIs so as to ensure that there are no conflicts among the various objects. Managing the various objects and their attributes can be cumbersome, however.
  • GUI graphical user interface
  • One embodiment of the present invention can include a method of analyzing GUI objects.
  • the method can include dynamically scanning attributes assigned to various GUI objects that are assigned to a view of a GUI in order to identify attributes associated with each of the GUI objects.
  • a list of attributes can be generated.
  • a determination can be made as to whether at least one of the GUI objects has a list of attributes that does not correspond to lists of attributes for other GUI objects.
  • an identifier can be output. The identifier can indicate that the GUI object has the list of attributes that does not correspond to the lists of attributes for the other GUI objects.
  • Another embodiment of the present invention can include a method of analyzing GUI objects.
  • the method can include dynamically scanning attributes assigned to various ones of the GUI objects that are assigned to a view of a GUI in order to identify attributes associated with each of the GUI objects. For each of the GUI objects, a list of attributes can be generated. Based on the attributes associated with each of the graphical user interface objects, an attribute rule set can be generated. A determination can be made as to whether at least one of the GUI objects has a list of attributes that does not correspond to the attribute rule set. When at least one GUI object has a list of attributes that does not correspond to the attribute rule set, an identifier can be output. The identifier can indicate that the GUI object has the list of attributes that does not correspond to the attribute rule set.
  • Yet another embodiment of the present invention can include a computer program product including a computer-usable medium having computer-usable program code that, when executed, causes a machine to perform the various steps and/or functions described herein.
  • FIG. 1 is a block diagram illustrating a system for analyzing graphical user interface objects in accordance with an embodiment of the present invention.
  • FIG. 2 is a view of a graphical user interface in accordance with another embodiment of the present invention.
  • FIG. 3 is a flow chart illustrating a method of analyzing objects from a graphical user interface in accordance with another embodiment of the present invention.
  • aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied, e.g., stored, thereon.
  • the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber, cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider an Internet Service Provider
  • These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • the embodiments disclosed herein relate to dynamically scanning attributes assigned to various graphical user interface objects which are presented in a view of a graphical user interface (hereinafter “objects”).
  • the objects that are scanned can be all objects in a particular view, or objects that are selected by a user.
  • the attributes that are assigned to various objects can be dynamically identified. For each of the objects, a list of attributes can be generated. When the list of attributes for a particular object does not correspond to attributes for lists of objects generated for other objects, one or more identifiers can be output to indicate such circumstance.
  • the lists for each object can be compared to determine attributes that are present in a particular portion of the lists that are generated. Such portion can be user determined or can be a default value, and the attributes present in that portion of the objects can be identified as reference attributes. If a particular object has attributes that do not correspond to the reference attributes, the identifier that is output for the object can indicate that such attributes do not correspond to the reference attributes. If, however, a particular object lacks attributes contained in the reference attributes, the identifier that is output for the object can indicate the attributes contained in the reference attributes that are lacking for the object.
  • the attributes for each object can be compared to one or more standard attributes that may be applicable to the view.
  • the identifier that is output can indicate attributes that are associated with the object that do not correspond to the standard attributes, and/or indicate one or more standard attributes that are not presently associated with the object.
  • the standard attributes can be attributes defined by a desired standard or protocol applicable to the type of view in which the objects are presented.
  • FIG. 1 is a block diagram illustrating a processing system 100 for analyzing objects of a graphical user interface (GUI) in accordance with one embodiment of the present invention.
  • the system 100 can include at least one processor 105 coupled to memory devices 110 through a system bus 115 .
  • the system 100 can store program code within the memory devices 110 .
  • the processor 105 can execute the program code accessed from the memory devices 110 via the system bus 115 .
  • the system 100 can be implemented as computer that is suitable for storing and/or executing program code. It should be appreciated, however, that the system 100 can be implemented in the form of any system comprising a processor and memory that is capable of performing the functions described within this specification.
  • the memory devices 110 can include one or more physical memory devices such as, for example, local memory 120 and one or more bulk storage devices 125 .
  • Local memory 120 refers to random access memory or other non-persistent memory device(s) generally used during actual execution of the program code.
  • the bulk storage device(s) 125 can be implemented as a hard drive or other persistent data storage device.
  • the system 100 also can include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from the bulk storage device 125 during execution.
  • I/O devices such as keyboard 130 , a pointing device 135 , and a display 140 also can be coupled to the system 100 .
  • the I/O devices can be coupled to the system 100 either directly or through intervening I/O controllers.
  • a network adapter 145 also can be coupled to the system 100 to enable the system 100 to communicate with other systems, computer systems, remote printers, and/or remote storage devices through intervening private or public networks. Modems, cable modems, Ethernet cards, and wireless network adapters, are examples of different types of network adapters that can be used with system 100 .
  • the memory devices 110 can store graphical analysis software 150 .
  • the graphical analysis software 150 being implemented in the form of executable program code, can be executed by the system 100 for the purposes of scanning attributes 155 assigned to various objects 160 in a view 165 of a GUI, and identifying object attributes 155 that do not correspond to attributes for lists of objects generated for other objects in accordance with the methods described herein. Identifiers corresponding to the identified attributes can be output to the memory devices 110 , the display 140 , or output in any other suitable manner.
  • outputting and/or “output” can mean storing in memory devices 110 , for example, writing to a file stored in memory devices 110 , writing to the display 140 or other peripheral output device, playing audible notifications, sending or transmitting to another system, exporting, or the like.
  • the graphical analysis software 150 of the present invention can be implemented in IBM® Rational® Functional TesterTM (IBM, Rational, and Rational Functional Tester are trademarks of International Business Machines Corporation in the United States, other countries, or both).
  • IBM® Rational® Functional TesterTM IBM® Rational® Functional TesterTM
  • Rational, and Rational Functional Tester are trademarks of International Business Machines Corporation in the United States, other countries, or both.
  • the invention is not limited in this regard, however.
  • the graphical analysis software 150 can be implemented in a web development application, a software development application, or in any other application in which GUIs are designed and/or tested.
  • the present invention can be implemented as a plug-in, module, routine or sub-routine within an application.
  • the graphical analysis software 150 can be implemented as a stand-alone application that interfaces with another application that presents a GUI.
  • another application can be an application in which GUIs are designed and/or tested, but this need not be the case.
  • the graphical analysis software 150 can interface with a conventional web browser.
  • FIG. 2 is a view 200 of GUI 202 in accordance with another embodiment of the present invention.
  • the GUI 202 can be presented in a suitable application that includes the graphical analysis software or to which the graphical analysis software is communicatively linked.
  • GUI objects within the GUI 202 , a plurality of GUI objects (hereinafter “objects”) 204 , 206 , 208 that are assigned to the view 200 can be presented.
  • the objects 204 , 206 , 208 can be icons, buttons, links, text fields, data input fields (e.g., boxes), images, portions of a view (e.g., header, footer, container, body, section, etc.) or any other objects that may be presented in a view of a GUI, or otherwise associated with a view of a GUI.
  • Each of the objects 204 , 206 , 208 can have one or more associated attributes.
  • the attributes can identify classes to which the objects belong, define object types (e.g., hyperlink, button, icon, etc.), include links to other web pages, links to electronic mail (e-mail) addresses, define font styles (e.g., font type, font size, font color, font style, etc.), define object dimensions, define object color and/or background color, define object positions (e.g., horizontal position, vertical position, alignment, etc.), define object padding, identify images to be presented with the objects, define GUI layers on which the objects are placed, define functions, routines and/or sub-routines that are to be executed when the objects are selected or deselected, and so on. Still, any of a myriad of other attributes can be associated with each of the objects 204 , 206 , 208 and the invention is not limited in this regard.
  • the attributes can be associated with the objects in any suitable manner, for example using hypertext markup language (HTML), using cascading style sheets (CSS), or the like.
  • HTML hypertext markup language
  • CSS cascading style sheets
  • TABLE 1 A very simple example of HTML code that can be used to associate attributes with an object is presented in TABLE 1:
  • an object is assigned to a class “products,” provides a hyperlink to a web page titled “product #1.html”, assigns a title “Product #1” to the object, defines that the product #1.html window will be presented on top, defines text of “Product #1” for the object, and includes an image attribute to place a line below the object.
  • the graphical analysis software can dynamically scan the attributes assigned to the various objects 204 , 206 , 208 in order to identify the attributes that are associated with the objects 204 , 206 , 208 .
  • the graphical analysis software can scan computer program code that defines the view 200 in order to identify the objects 204 , 206 , 208 and their respective attributes.
  • Such computer program code can be HTML code, CSS code, or any other computer program code that may be used to define a view 200 in a GUI 202 .
  • the scanning process can identify object tags corresponding to the objects 204 , 206 , 208 , and identify attribute tags associated with each of the objects.
  • the attribute tags can define the attributes for those objects 204 , 206 , 208 .
  • the graphical analysis software can generate a correlation model output comprising a list of attributes for each of the objects 204 , 206 , 208 .
  • Such lists can be generated in any suitable format.
  • the lists can be generated as an extensible markup language (XML) document, as a text file, as records in a data table or hash table, etc.
  • the objects 204 , 206 , 208 can be grouped separately with their corresponding attributes.
  • attributes for all of the objects 204 , 206 , 208 can be presented in a manner that associates the attributes with the objects 204 , 206 , 208 .
  • An example of a correlation model output that can be generated in this manner for an XML file is presented in TABLE 2.
  • the attributes for each of the identified objects 204 , 206 , 208 can be grouped and designated to the respective objects 204 , 206 , 208 . Processing of this data then can be implemented so that the attributes for each of the objects 204 , 206 , 208 are compared to attributes for similar objects 204 , 206 , 208 . For example, referring to FIG.
  • attributes for the object 208 - 1 can be compared to attributes of the other objects 208 - 2 , 208 - 3 , 208 - 4 , 208 - 5
  • attributes for the object 208 - 2 can be compared to attributes of the other objects 208 - 1 , 208 - 3 , 208 - 4 , 208 - 5 , and so on. Any deviation in the attributes that are compared can be identified and output in a suitable manner (e.g., output to memory devices, a file, a display, etc.).
  • the “OK” button 208 - 1 includes an “enable” attribute
  • the “Cancel” button 208 - 2 and the “Help” button 208 - 3 do not.
  • the image 208 - 4 includes an “altText” attribute while the image 208 - 5 does not.
  • An output that is generated can indicate which of these objects 208 lack attributes present for other objects 208 , and which of these objects include attributes that are not present for the other objects.
  • attributes not present for all of the objects can be identified, and where those attributes are missing from the object tags can be identified.
  • attributes, and where they appear to be missing can be identified in any suitable manner, for instance by presenting text with a particular font style (e.g., underlined, bold, italics, font color, background color, etc.).
  • Additional identifiers e.g., alphanumeric text, icons, or the like
  • attribute values that are not consistent among the objects also can be noted. For example, if one instance of an OK value is presented as “OK,” and another instance is presented as “Ok,” the differences in the font case can be identified in the output file.
  • the objects 204 , 206 , 208 and their attributes can be presented in a manner that facilitates global property inspection and cross referencing.
  • the objects 204 , 206 , 208 and attributes can be output in a tree format and grouped by object types.
  • a group can be created for “buttons,” a group can be created for “images,” and so forth.
  • Global identifiers also can be included in the output to indicate object types that are grouped together.
  • the global property inspection and cross referencing can be used to detect abnormalities in the object attributes. For instance, if one button has a label “OK,” while another button has a label “Ok,” the abnormality of presenting “OK” in these different manners can be detected and displayed.
  • An example of XML code presented in a tree formatted XML file is depicted in TABLE 3:
  • identifiers can be presented to identify inconsistencies among the object attributes.
  • An output generated in accordance with the example presented in TABLE 3 can facilitate visual inspection of the various attributes assigned to similar objects 204 , 206 , 208 .
  • the objects 204 , 206 , 208 that are analyzed to generate the attribute lists can include all objects 204 , 206 , 208 in the view 200 , or a portion of the objects 204 , 206 , 208 .
  • a user selection can be received to select various ones of the user interface objects 204 , 206 , 208 for analysis.
  • a user can use a pointing device to select the objects 208 , for instance by placing a selection box 210 around the objects 208 in the view 200 .
  • the user can select the objects by identifying the objects within the computer program code for the view 200 , for example by selecting the objects from the computer program code in XML files, selecting the objects from another output file that is generated, or selecting the objects in another suitable manner.
  • a user can configure a web browser or application in a rich text format (RFT), load a target view, and scan a configured interface in which the view is presented.
  • RFT rich text format
  • a subset can be indicted by passing a coded section tag, such as an HTML ⁇ DIV> section, as noted.
  • a standards notification document can be generated.
  • the standards notification document can indicate which attributes correspond to a particular GUI standard, and which do not.
  • the objects 204 , 206 , 208 that are identified, and their attributes can be compared to objects and attributes defined in a standard or protocol applicable to the view 200 .
  • the objects and attributes defined in the standard or protocol can be accessed from a suitable file, for example a text file, an XML file, a data table, a hash table, etc.
  • the attributes identified in the standards notification document can be attributes corresponding to all objects 204 , 206 , 208 in the view, or exclusively attributes corresponding to selected objects 204 , 206 , 208 .
  • the graphical analysis software can create an attribute rule set based on the objects in the view 200 and their corresponding attributes. Again, this rule set can be based on all of the objects 204 , 206 , 208 within the view 200 , or only objects 204 , 206 , 208 that are selected.
  • the attribute rule set can indicate attributes that are expected for each of the objects 204 , 206 , 208 based on attributes that are common the objects 204 , 206 , 208 . In illustration, attributes that are common among a portion of the objects 204 , 206 , 208 can be identified within the view 200 . Hereinafter, such attributes will be referred to as “reference attributes.”
  • the view 200 can be output to a staging or temporary file.
  • a staging document can be created.
  • the objects 204 , 206 , 208 and reference attributes then can be identified by scanning the staging or temporary files. Nonetheless, the invention is not limited in this regard and the objects 204 , 206 , 208 and reference attributes can be identified in any suitable manner.
  • the portion of the objects 204 , 206 , 208 can be a majority of the objects, or a certain percentage of the objects (e.g., 60% of the objects, 75% of the objects, 90% of the objects, and so on). In one embodiment, the portion of the objects 204 , 206 , 208 can be determined using statistical analysis. The statistical analysis can include identifying the attributes associated with each of the objects 204 , 206 , 208 , and generating a comparator list based on the identified data.
  • an attribute rule set can be generated, and the list of attributes for each object can be compared to the attribute rule set.
  • Objects 204 , 206 , 208 that have lists of attributes that do not correspond to the attribute rule set can be identified.
  • reference attributes contained in the attribute rule set that are lacking from certain objects 204 , 206 , 208 can be identified, and corresponding identifiers can be generated.
  • attributes associated with objects 204 , 206 , 208 that are not contained in the attribute rule set can be identified, and corresponding identifiers can be generated.
  • one or more identifiers can be generated to identify the objects 204 , 206 , 208 for which reference attributes are lacking or which have associated attributes that are not reference attributes.
  • the object identifiers and attribute identifiers then can be output in a manner that indicates which attributes are extra or lacking from each object.
  • the attributes for the objects 204 , 206 , 208 can be automatically updated. For example, if an object 204 , 206 , 208 lacks an attribute that is contained in the attribute rule set, that attribute can be associated with the object 204 , 206 , 208 .
  • the computer program code that defines the object can be updated by associating a suitable attribute tag with the object.
  • an object 204 , 206 , 208 has attributes that are not contained in the attribute rule set, those attributes can be disassociated with the object 204 , 206 , 208 .
  • the corresponding attribute tag can be removed from the computer program code. Any syntax changes that may needed to adjust for the addition or deletion of the attributes can be automatically implemented.
  • the attribute rule set, or any other defined attributes indicate that “OK” is to be presented in capital letters, but an attribute is identified in which “Ok” is presented, the identified attribute can be automatically updated to recite “OK.”
  • the graphical analysis software can include, or otherwise communicate with, a syntax editor that is configured to automatically implement syntax changes in the computer program code.
  • each proposed change can be presented to a user via a suitable user interface, such as the GUI 202 , in order to prompt the user to accept or reject each corresponding change, addition or removal of attributes associated with the objects 204 , 206 , 208 to/from the computer program code.
  • a suitable user interface such as the GUI 202
  • the user can be presented with a group of objects 204 , 206 , 208 for which attributes are to be changed, added or removed, and the user can select one or more of these objects for which the changes are accepted or rejected.
  • any such changes can be undone in response to a user request.
  • Such user request can be entered into the graphical analysis software in any suitable manner.
  • an undo button can be presented in the GUI 202 .
  • a backup copy of the original source file for the view 200 can be saved so that in lieu of relying on a method of undoing changes that have been made, the backup copy of the original source file can be restored to replace a working copy of the source file.
  • FIG. 3 is a flow chart illustrating a method 300 of analyzing objects from a GUI in accordance with another embodiment of the present invention.
  • attributes assigned to various objects assigned to a view of a GUI can be dynamically scanned in order to identify attributes associated with each of the objects.
  • a list of attributes can be generated.
  • an attribute rule set can be generated based on the attributes associated with each of the objects.
  • a determination can be made as to whether at least one of the objects has a list of attributes that does not correspond to lists of attributes for other objects. For example, the list of attributes for each object can be compared to the attribute rule set. In another arrangement, the attributes for each object can be compared to objects and attributes defined in an applicable standard or protocol.
  • an identifier can be output.
  • the identifier can indicate that the object has the list of attributes that does not correspond to the lists of attributes for the other objects (or the standard/protocol).
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

A method of analyzing graphical user interface (GUI) objects. The method can include dynamically scanning attributes assigned to various GUI objects assigned to a view of a GUI in order to identify attributes associated with each of the GUI objects. For each of the GUI objects, a list of attributes can be generated. A determination can be made as to whether at least one of the GUI objects has a list of attributes that does not correspond to lists of attributes for other GUI objects. When at least one GUI object has a list of attributes that does not correspond to lists of attributes for other GUI objects, an identifier can be output. The identifier can indicate that the GUI object has the list of attributes that does not correspond to the lists of attributes for the other GUI objects.

Description

RESERVATION OF RIGHTS IN COPYRIGHTED MATERIAL
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND
The embodiments disclosed within this specification relate to user interfaces. More particularly, the embodiments relate to graphical user interface objects.
Graphical user interface objects (hereinafter “objects”) are routinely incorporated into graphical user interfaces (GUIs). Such GUIs sometimes become quite complex, requiring a myriad of different objects. Presently, computer programmers who program such GUIs must keep track of the various attributes assigned to different objects that are incorporated into the GUIs so as to ensure that there are no conflicts among the various objects. Managing the various objects and their attributes can be cumbersome, however.
BRIEF SUMMARY OF THE INVENTION
The embodiments disclosed within this specification relate to user interfaces. More particularly, the embodiments relate to graphical user interface (GUI) objects. One embodiment of the present invention can include a method of analyzing GUI objects. The method can include dynamically scanning attributes assigned to various GUI objects that are assigned to a view of a GUI in order to identify attributes associated with each of the GUI objects. For each of the GUI objects, a list of attributes can be generated. A determination can be made as to whether at least one of the GUI objects has a list of attributes that does not correspond to lists of attributes for other GUI objects. When at least one GUI object has a list of attributes that does not correspond to lists of attributes for other GUI objects, an identifier can be output. The identifier can indicate that the GUI object has the list of attributes that does not correspond to the lists of attributes for the other GUI objects.
Another embodiment of the present invention can include a method of analyzing GUI objects. The method can include dynamically scanning attributes assigned to various ones of the GUI objects that are assigned to a view of a GUI in order to identify attributes associated with each of the GUI objects. For each of the GUI objects, a list of attributes can be generated. Based on the attributes associated with each of the graphical user interface objects, an attribute rule set can be generated. A determination can be made as to whether at least one of the GUI objects has a list of attributes that does not correspond to the attribute rule set. When at least one GUI object has a list of attributes that does not correspond to the attribute rule set, an identifier can be output. The identifier can indicate that the GUI object has the list of attributes that does not correspond to the attribute rule set.
Yet another embodiment of the present invention can include a computer program product including a computer-usable medium having computer-usable program code that, when executed, causes a machine to perform the various steps and/or functions described herein.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
FIG. 1 is a block diagram illustrating a system for analyzing graphical user interface objects in accordance with an embodiment of the present invention.
FIG. 2 is a view of a graphical user interface in accordance with another embodiment of the present invention.
FIG. 3 is a flow chart illustrating a method of analyzing objects from a graphical user interface in accordance with another embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied, e.g., stored, thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber, cable, RF, etc., or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer, other programmable data processing apparatus, or other devices create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The embodiments disclosed herein relate to dynamically scanning attributes assigned to various graphical user interface objects which are presented in a view of a graphical user interface (hereinafter “objects”). The objects that are scanned can be all objects in a particular view, or objects that are selected by a user. The attributes that are assigned to various objects can be dynamically identified. For each of the objects, a list of attributes can be generated. When the list of attributes for a particular object does not correspond to attributes for lists of objects generated for other objects, one or more identifiers can be output to indicate such circumstance.
In illustration, the lists for each object can be compared to determine attributes that are present in a particular portion of the lists that are generated. Such portion can be user determined or can be a default value, and the attributes present in that portion of the objects can be identified as reference attributes. If a particular object has attributes that do not correspond to the reference attributes, the identifier that is output for the object can indicate that such attributes do not correspond to the reference attributes. If, however, a particular object lacks attributes contained in the reference attributes, the identifier that is output for the object can indicate the attributes contained in the reference attributes that are lacking for the object.
Moreover, the attributes for each object can be compared to one or more standard attributes that may be applicable to the view. The identifier that is output can indicate attributes that are associated with the object that do not correspond to the standard attributes, and/or indicate one or more standard attributes that are not presently associated with the object. The standard attributes can be attributes defined by a desired standard or protocol applicable to the type of view in which the objects are presented.
FIG. 1 is a block diagram illustrating a processing system 100 for analyzing objects of a graphical user interface (GUI) in accordance with one embodiment of the present invention. The system 100 can include at least one processor 105 coupled to memory devices 110 through a system bus 115. As such, the system 100 can store program code within the memory devices 110. The processor 105 can execute the program code accessed from the memory devices 110 via the system bus 115. In one aspect, for example, the system 100 can be implemented as computer that is suitable for storing and/or executing program code. It should be appreciated, however, that the system 100 can be implemented in the form of any system comprising a processor and memory that is capable of performing the functions described within this specification.
The memory devices 110 can include one or more physical memory devices such as, for example, local memory 120 and one or more bulk storage devices 125. Local memory 120 refers to random access memory or other non-persistent memory device(s) generally used during actual execution of the program code. The bulk storage device(s) 125 can be implemented as a hard drive or other persistent data storage device. The system 100 also can include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from the bulk storage device 125 during execution.
Input/output (I/O) devices such as keyboard 130, a pointing device 135, and a display 140 also can be coupled to the system 100. The I/O devices can be coupled to the system 100 either directly or through intervening I/O controllers. A network adapter 145 also can be coupled to the system 100 to enable the system 100 to communicate with other systems, computer systems, remote printers, and/or remote storage devices through intervening private or public networks. Modems, cable modems, Ethernet cards, and wireless network adapters, are examples of different types of network adapters that can be used with system 100.
As pictured in FIG. 1 , the memory devices 110 can store graphical analysis software 150. The graphical analysis software 150, being implemented in the form of executable program code, can be executed by the system 100 for the purposes of scanning attributes 155 assigned to various objects 160 in a view 165 of a GUI, and identifying object attributes 155 that do not correspond to attributes for lists of objects generated for other objects in accordance with the methods described herein. Identifiers corresponding to the identified attributes can be output to the memory devices 110, the display 140, or output in any other suitable manner. As used herein, “outputting” and/or “output” can mean storing in memory devices 110, for example, writing to a file stored in memory devices 110, writing to the display 140 or other peripheral output device, playing audible notifications, sending or transmitting to another system, exporting, or the like.
In one embodiment, the graphical analysis software 150 of the present invention can be implemented in IBM® Rational® Functional Tester™ (IBM, Rational, and Rational Functional Tester are trademarks of International Business Machines Corporation in the United States, other countries, or both). The invention is not limited in this regard, however. Indeed, the graphical analysis software 150 can be implemented in a web development application, a software development application, or in any other application in which GUIs are designed and/or tested. For example, the present invention can be implemented as a plug-in, module, routine or sub-routine within an application.
In another embodiment, the graphical analysis software 150 can be implemented as a stand-alone application that interfaces with another application that presents a GUI. As noted, such other application can be an application in which GUIs are designed and/or tested, but this need not be the case. For example, the graphical analysis software 150 can interface with a conventional web browser.
FIG. 2 is a view 200 of GUI 202 in accordance with another embodiment of the present invention. As noted, the GUI 202 can be presented in a suitable application that includes the graphical analysis software or to which the graphical analysis software is communicatively linked.
Within the GUI 202, a plurality of GUI objects (hereinafter “objects”) 204, 206, 208 that are assigned to the view 200 can be presented. The objects 204, 206, 208 can be icons, buttons, links, text fields, data input fields (e.g., boxes), images, portions of a view (e.g., header, footer, container, body, section, etc.) or any other objects that may be presented in a view of a GUI, or otherwise associated with a view of a GUI.
Each of the objects 204, 206, 208 can have one or more associated attributes. The attributes can identify classes to which the objects belong, define object types (e.g., hyperlink, button, icon, etc.), include links to other web pages, links to electronic mail (e-mail) addresses, define font styles (e.g., font type, font size, font color, font style, etc.), define object dimensions, define object color and/or background color, define object positions (e.g., horizontal position, vertical position, alignment, etc.), define object padding, identify images to be presented with the objects, define GUI layers on which the objects are placed, define functions, routines and/or sub-routines that are to be executed when the objects are selected or deselected, and so on. Still, any of a myriad of other attributes can be associated with each of the objects 204, 206, 208 and the invention is not limited in this regard.
The attributes can be associated with the objects in any suitable manner, for example using hypertext markup language (HTML), using cascading style sheets (CSS), or the like. A very simple example of HTML code that can be used to associate attributes with an object is presented in TABLE 1:
TABLE 1
<div class=“products”><a href=“product#1.html” title=“Product
#
1” target=“_top”>Product #1</a><img src=“images/line.gif”
alt=“space” /></div>
In this example, an object is assigned to a class “products,” provides a hyperlink to a web page titled “product #1.html”, assigns a title “Product #1” to the object, defines that the product #1.html window will be presented on top, defines text of “Product #1” for the object, and includes an image attribute to place a line below the object.
The graphical analysis software can dynamically scan the attributes assigned to the various objects 204, 206, 208 in order to identify the attributes that are associated with the objects 204, 206, 208. In illustration, the graphical analysis software can scan computer program code that defines the view 200 in order to identify the objects 204, 206, 208 and their respective attributes. Such computer program code can be HTML code, CSS code, or any other computer program code that may be used to define a view 200 in a GUI 202.
To identify the objects and their respective attributes, the scanning process can identify object tags corresponding to the objects 204, 206, 208, and identify attribute tags associated with each of the objects. The attribute tags can define the attributes for those objects 204, 206, 208.
Based on the identified objects 204, 206, 208 and their respective attributes, the graphical analysis software can generate a correlation model output comprising a list of attributes for each of the objects 204, 206, 208. Such lists can be generated in any suitable format. For example, the lists can be generated as an extensible markup language (XML) document, as a text file, as records in a data table or hash table, etc.
In the correlation model output, the objects 204, 206, 208 can be grouped separately with their corresponding attributes. In this regard, attributes for all of the objects 204, 206, 208 can be presented in a manner that associates the attributes with the objects 204, 206, 208. An example of a correlation model output that can be generated in this manner for an XML file is presented in TABLE 2.
TABLE 2
Output Design A Layout (Correlation)
<results>
 <specificWidget type=“”>
  <property name=“” value=“” />
 </specificWidget>
</results>
Output Design A Example
<results>
 <widget type=“button”>
  <property name=“id” value=“button1” />
  <property name=“label” value=“OK” />
  <property name=“enabled” value=“true” />   - 1 of 3 of
buttons have an “enabled” property
 </widget>
 <widget type=“button”>
  <property name=“id” value=“button2” />
  <property name=“label” value=“Cancel” />
  ENABLE PROPERTY MISSING
 </widget>
 <widget type=“button”>
  <property name=“id” value=“button3” />
  <property name=“label” value=“Help” />
  ENABLE PROPERTY MISSING
 </widget>
 <widget type=“img”>
  <property name=“src” value=“image src1” />
  <property name=“altText” value=“image alt text1” />     - 2 of 3
images have an “altText” property
 </widget>
 <widget type=“img”>
  <property name=“src” value=“image src2” />
  <property name=“altText” value=“image alt text2” />
 </widget>
 <widget type=“img”>
  <property name=“src” value=“image src3” />
  ALTTEXT PROPERTY MISSING
 </widget>
</results>
For the correlation model output depicted in TABLE 2, the attributes for each of the identified objects 204, 206, 208 can be grouped and designated to the respective objects 204, 206, 208. Processing of this data then can be implemented so that the attributes for each of the objects 204, 206, 208 are compared to attributes for similar objects 204, 206, 208. For example, referring to FIG. 2 , attributes for the object 208-1 can be compared to attributes of the other objects 208-2, 208-3, 208-4, 208-5, attributes for the object 208-2 can be compared to attributes of the other objects 208-1, 208-3, 208-4, 208-5, and so on. Any deviation in the attributes that are compared can be identified and output in a suitable manner (e.g., output to memory devices, a file, a display, etc.).
In this example, the “OK” button 208-1 includes an “enable” attribute, whereas the “Cancel” button 208-2 and the “Help” button 208-3 do not. Further, the image 208-4 includes an “altText” attribute while the image 208-5 does not. An output that is generated can indicate which of these objects 208 lack attributes present for other objects 208, and which of these objects include attributes that are not present for the other objects.
For example, referring again to TABLE 2, attributes not present for all of the objects can be identified, and where those attributes are missing from the object tags can be identified. Such attributes, and where they appear to be missing, can be identified in any suitable manner, for instance by presenting text with a particular font style (e.g., underlined, bold, italics, font color, background color, etc.). Additional identifiers (e.g., alphanumeric text, icons, or the like) also can be added to the output file to provide indications as to which attributes appear to be extra or missing from the objects, which attributes are associated with the majority of objects or a majority of a particular type of object, and so on. Moreover, attribute values that are not consistent among the objects also can be noted. For example, if one instance of an OK value is presented as “OK,” and another instance is presented as “Ok,” the differences in the font case can be identified in the output file.
In another arrangement, the objects 204, 206, 208 and their attributes can be presented in a manner that facilitates global property inspection and cross referencing. For example, the objects 204, 206, 208 and attributes can be output in a tree format and grouped by object types. In illustration, a group can be created for “buttons,” a group can be created for “images,” and so forth. Global identifiers also can be included in the output to indicate object types that are grouped together. The global property inspection and cross referencing can be used to detect abnormalities in the object attributes. For instance, if one button has a label “OK,” while another button has a label “Ok,” the abnormality of presenting “OK” in these different manners can be detected and displayed. An example of XML code presented in a tree formatted XML file is depicted in TABLE 3:
TABLE 3
Output Design B Layout (Tree)
<widgets>
 <genericWidgetType>
  <widget property>count</widget property>
 </genericWidgetType>
</widgets>
Output Design B Example
<widgets>
 <button>
  <value>
   <Ok>1</Ok> - Non-standard ‘Ok’ label for ‘OK’
   <OK>2</OK>
  </value>
  <id>
   <button2>1</button2>
   <button2>2</button2> - Two buttons share the same ID
  </id>
 </button>
</widgets>
Again, for the example tree model output depicted in TABLE 3, identifiers can be presented to identify inconsistencies among the object attributes. An output generated in accordance with the example presented in TABLE 3 can facilitate visual inspection of the various attributes assigned to similar objects 204, 206, 208.
Regardless of the manner in which the objects 204, 206, 208 and their attributes are presented, the objects 204, 206, 208 that are analyzed to generate the attribute lists can include all objects 204, 206, 208 in the view 200, or a portion of the objects 204, 206, 208. In this regard, a user selection can be received to select various ones of the user interface objects 204, 206, 208 for analysis. For example, a user can use a pointing device to select the objects 208, for instance by placing a selection box 210 around the objects 208 in the view 200. In another arrangement, the user can select the objects by identifying the objects within the computer program code for the view 200, for example by selecting the objects from the computer program code in XML files, selecting the objects from another output file that is generated, or selecting the objects in another suitable manner.
In yet another arrangement, a user can configure a web browser or application in a rich text format (RFT), load a target view, and scan a configured interface in which the view is presented. Alternatively, a subset can be indicted by passing a coded section tag, such as an HTML <DIV> section, as noted.
In another embodiment, a standards notification document can be generated. The standards notification document can indicate which attributes correspond to a particular GUI standard, and which do not. For example, the objects 204, 206, 208 that are identified, and their attributes, can be compared to objects and attributes defined in a standard or protocol applicable to the view 200. The objects and attributes defined in the standard or protocol can be accessed from a suitable file, for example a text file, an XML file, a data table, a hash table, etc. Again, the attributes identified in the standards notification document can be attributes corresponding to all objects 204, 206, 208 in the view, or exclusively attributes corresponding to selected objects 204, 206, 208.
Further, the graphical analysis software can create an attribute rule set based on the objects in the view 200 and their corresponding attributes. Again, this rule set can be based on all of the objects 204, 206, 208 within the view 200, or only objects 204, 206, 208 that are selected. The attribute rule set can indicate attributes that are expected for each of the objects 204, 206, 208 based on attributes that are common the objects 204, 206, 208. In illustration, attributes that are common among a portion of the objects 204, 206, 208 can be identified within the view 200. Hereinafter, such attributes will be referred to as “reference attributes.”
In one aspect of the invention, the view 200 can be output to a staging or temporary file. For instance, if a user and/or program does not have access to edit a source file, a staging document can be created. The objects 204, 206, 208 and reference attributes then can be identified by scanning the staging or temporary files. Nonetheless, the invention is not limited in this regard and the objects 204, 206, 208 and reference attributes can be identified in any suitable manner.
The portion of the objects 204, 206, 208 can be a majority of the objects, or a certain percentage of the objects (e.g., 60% of the objects, 75% of the objects, 90% of the objects, and so on). In one embodiment, the portion of the objects 204, 206, 208 can be determined using statistical analysis. The statistical analysis can include identifying the attributes associated with each of the objects 204, 206, 208, and generating a comparator list based on the identified data.
In one embodiment, an attribute rule set can be generated, and the list of attributes for each object can be compared to the attribute rule set. Objects 204, 206, 208 that have lists of attributes that do not correspond to the attribute rule set can be identified. For example, reference attributes contained in the attribute rule set that are lacking from certain objects 204, 206, 208 can be identified, and corresponding identifiers can be generated. In addition, attributes associated with objects 204, 206, 208 that are not contained in the attribute rule set can be identified, and corresponding identifiers can be generated. Also, one or more identifiers can be generated to identify the objects 204, 206, 208 for which reference attributes are lacking or which have associated attributes that are not reference attributes. As noted, the object identifiers and attribute identifiers then can be output in a manner that indicates which attributes are extra or lacking from each object.
In one aspect of the invention, when objects 204, 206, 208 are identified that have lists of attributes that do not correspond to the attribute rule set (or attributes defined in a standard or protocol), the attributes for the objects 204, 206, 208 can be automatically updated. For example, if an object 204, 206, 208 lacks an attribute that is contained in the attribute rule set, that attribute can be associated with the object 204, 206, 208. For instance, the computer program code that defines the object can be updated by associating a suitable attribute tag with the object. Similarly, if an object 204, 206, 208 has attributes that are not contained in the attribute rule set, those attributes can be disassociated with the object 204, 206, 208. For instance, the corresponding attribute tag can be removed from the computer program code. Any syntax changes that may needed to adjust for the addition or deletion of the attributes can be automatically implemented. In illustration, if the attribute rule set, or any other defined attributes, indicate that “OK” is to be presented in capital letters, but an attribute is identified in which “Ok” is presented, the identified attribute can be automatically updated to recite “OK.” In that regard, the graphical analysis software can include, or otherwise communicate with, a syntax editor that is configured to automatically implement syntax changes in the computer program code.
In a further embodiment, rather than immediately implementing changes to the computer program code to add or remove attribute associations with the objects 204, 206, 208, each proposed change can be presented to a user via a suitable user interface, such as the GUI 202, in order to prompt the user to accept or reject each corresponding change, addition or removal of attributes associated with the objects 204, 206, 208 to/from the computer program code. For example, the user can be presented with a group of objects 204, 206, 208 for which attributes are to be changed, added or removed, and the user can select one or more of these objects for which the changes are accepted or rejected.
Regardless of whether the changes to the computer program code are implemented immediately or in response to a user acceptance/rejection of the changes, any such changes can be undone in response to a user request. Such user request can be entered into the graphical analysis software in any suitable manner. For example, an undo button can be presented in the GUI 202. In another arrangement, a backup copy of the original source file for the view 200 can be saved so that in lieu of relying on a method of undoing changes that have been made, the backup copy of the original source file can be restored to replace a working copy of the source file.
FIG. 3 is a flow chart illustrating a method 300 of analyzing objects from a GUI in accordance with another embodiment of the present invention. At step 302, attributes assigned to various objects assigned to a view of a GUI can be dynamically scanned in order to identify attributes associated with each of the objects. At step 304, for each of the objects, a list of attributes can be generated. In one embodiment, an attribute rule set can be generated based on the attributes associated with each of the objects.
At step 306, a determination can be made as to whether at least one of the objects has a list of attributes that does not correspond to lists of attributes for other objects. For example, the list of attributes for each object can be compared to the attribute rule set. In another arrangement, the attributes for each object can be compared to objects and attributes defined in an applicable standard or protocol.
At step 308, when at least one object has a list of attributes that does not correspond to lists of attributes for other objects (or a standard/protocol), an identifier can be output. The identifier can indicate that the object has the list of attributes that does not correspond to the lists of attributes for the other objects (or the standard/protocol).
Like numbers have been used herein to refer to the same items throughout this specification. The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Claims (15)

What is claimed is:
1. A computer-implemented method, comprising:
presenting a view of a graphical user interface that includes graphical user interface objects assigned to the view of the graphic user interface;
dynamically scanning code defining the view, while the view is being presented, to identify attributes found within the code and respectively previously assigned to each of the graphical user interface objects;
generating, for each individual one of the graphical user interface objects, a list of attributes associated therewith;
identifying, within the graphical user interface objects, a group of graphical user interface objects having a similar type;
identifying, for the group, an attribute found in at least one member of the group and not found in at least one other member of the group;
outputting, to the graphical user interface, an identifier indicating the attribute found in at least one member of the group and not found in at least one other member of the group;
automatically updating a list of attributes for a first graphical user interface object based upon the identifying the attribute to generate an updated list of attributes; and
automatically editing, using a syntax editor, computer program code of the graphical user interface based upon the updated list of attributes.
2. The method of claim 1, further comprising
automatically updating a list of attributes for a first graphical user interface object that does not include an attribute that is common among a set of the graphical user interface objects with which the first graphical user interface objects is associated.
3. The method of claim 2, wherein
the list of attributes for the first graphical user interface object is updated to include the attribute that is common among the set of the graphical user interface objects with which the first graphical user interface objects is associated.
4. The method of claim 1, further comprising
automatically updating a list of attributes for a first graphical user interface object that includes an attribute that is not common among a set of the graphical user interface objects with which the first graphical user interface objects is associated.
5. The method of claim 4, wherein
the list of attributes for the first graphical user interface object is updated to remove the attribute that is not common among the set of the graphical user interface objects with which the first graphical user interface objects is associated.
6. A computer hardware system, comprising:
a hardware processor configured to initiate the following executable operations:
presenting a view of a graphical user interface that includes graphical user interface objects assigned to the view of the graphic user interface;
dynamically scanning code defining the view, while the view is being presented, to identify attributes found within the code and respectively previously assigned to each of the graphical user interface objects;
generating, for each individual one of the graphical user interface objects, a list of attributes associated therewith;
identifying, within the graphical user interface objects, a group of graphical user interface objects having a similar type;
identifying, for the group, an attribute found in at least one member of the group and not found in at least one other member of the group;
outputting, to the graphical user interface, an identifier indicating the attribute found in at least one member of the group and not found in at least one other member of the group;
automatically updating a list of attributes for a first graphical user interface object based upon the identifying the attribute to generate an updated list of attributes; and
automatically editing, using a syntax editor, computer program code of the graphical user interface based upon the updated list of attributes.
7. The system of claim 6, wherein the hardware processor is further configured to initiate
automatically updating a list of attributes for a first graphical user interface object that does not include an attribute that is common among a set of the graphical user interface objects with which the first graphical user interface objects is associated.
8. The system of claim 7, wherein
the list of attributes for the first graphical user interface object is updated to include the attribute that is common among the set of the graphical user interface objects with which the first graphical user interface objects is associated.
9. The system of claim 6, wherein the hardware processor is further configured to initiate
automatically updating a list of attributes for a first graphical user interface object that includes an attribute that is not common among a set of the graphical user interface objects with which the first graphical user interface objects is associated.
10. The system of claim 9, wherein
the list of attributes for the first graphical user interface object is updated to remove the attribute that is not common among the set of the graphical user interface objects with which the first graphical user interface objects is associated.
11. A computer program product, comprising
a hardware storage device having stored therein computer readable program code,
the computer readable program code, which when executed by a computer hardware system, causes the computer hardware system to perform:
presenting a view of a graphical user interface that includes graphical user interface objects assigned to the view of the graphic user interface;
dynamically scanning code defining the view, while the view is being presented, to identify attributes found within the code and respectively previously assigned to each of the graphical user interface objects;
generating, for each individual one of the graphical user interface objects, a list of attributes associated therewith;
identifying, within the graphical user interface objects, a group of graphical user interface objects having a similar type;
identifying, for the group, an attribute found in at least one member of the group and not found in at least one other member of the group;
outputting, to the graphical user interface, an identifier indicating the attribute found in at least one member of the group and not found in at least one other member of the group;
automatically updating a list of attributes for a first graphical user interface object based upon the identifying the attribute to generate an updated list of attributes; and
automatically editing, using a syntax editor, computer program code of the graphical user interface based upon the updated list of attributes.
12. The computer program product of claim 11, wherein the computer readable program code further causes the computer hardware system to perform
automatically updating a list of attributes for a first graphical user interface object that does not include an attribute that is common among a set of the graphical user interface objects with which the first graphical user interface objects is associated.
13. The computer program product of claim 12, wherein
the list of attributes for the first graphical user interface object is updated to include the attribute that is common among the set of the graphical user interface objects with which the first graphical user interface objects is associated.
14. The computer program product of claim 11, wherein the computer readable program code further causes the computer hardware system to perform
automatically updating a list of attributes for a first graphical user interface object that includes an attribute that is not common among a set of the graphical user interface objects with which the first graphical user interface objects is associated.
15. The computer program product of claim 14, wherein
the list of attributes for the first graphical user interface object is updated to remove the attribute that is not common among the set of the graphical user interface objects with which the first graphical user interface objects is associated.
US16/153,069 2009-12-29 2018-10-05 Analyzing objects from a graphical interface for standards verification Active 2031-08-24 US11635946B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/153,069 US11635946B2 (en) 2009-12-29 2018-10-05 Analyzing objects from a graphical interface for standards verification

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/648,372 US10095485B2 (en) 2009-12-29 2009-12-29 Analyzing objects from a graphical interface for standards verification
US16/153,069 US11635946B2 (en) 2009-12-29 2018-10-05 Analyzing objects from a graphical interface for standards verification

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/648,372 Continuation US10095485B2 (en) 2009-12-29 2009-12-29 Analyzing objects from a graphical interface for standards verification

Publications (2)

Publication Number Publication Date
US20190042208A1 US20190042208A1 (en) 2019-02-07
US11635946B2 true US11635946B2 (en) 2023-04-25

Family

ID=43618784

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/648,372 Active 2032-08-20 US10095485B2 (en) 2009-12-29 2009-12-29 Analyzing objects from a graphical interface for standards verification
US16/153,069 Active 2031-08-24 US11635946B2 (en) 2009-12-29 2018-10-05 Analyzing objects from a graphical interface for standards verification

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/648,372 Active 2032-08-20 US10095485B2 (en) 2009-12-29 2009-12-29 Analyzing objects from a graphical interface for standards verification

Country Status (5)

Country Link
US (2) US10095485B2 (en)
CN (1) CN102725729B (en)
DE (1) DE112010003948T8 (en)
GB (1) GB2488651A (en)
WO (1) WO2011080062A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095485B2 (en) 2009-12-29 2018-10-09 International Business Machines Corporation Analyzing objects from a graphical interface for standards verification
US9183653B2 (en) * 2010-12-14 2015-11-10 Microsoft Technology Licensing, Llc Extensions for modifying a graphical object to display data
US9594544B2 (en) 2012-06-07 2017-03-14 Microsoft Technology Licensing, Llc Visualized code review
US10091064B2 (en) * 2013-06-12 2018-10-02 Siemens Product Lifecycle Management Software Inc. Systems and methods for stateless management of object properties
US9576017B2 (en) * 2014-02-03 2017-02-21 Software Ag Systems and methods for managing graphical model consistency
US10097565B1 (en) 2014-06-24 2018-10-09 Amazon Technologies, Inc. Managing browser security in a testing context
US9336126B1 (en) * 2014-06-24 2016-05-10 Amazon Technologies, Inc. Client-side event logging for heterogeneous client environments
US20160350136A1 (en) * 2015-05-27 2016-12-01 Google Inc. Assist layer with automated extraction
WO2017164856A1 (en) 2016-03-23 2017-09-28 Entit Software Llc Comparable user interface object identifications
CN108089782B (en) * 2016-11-21 2021-02-26 佳能株式会社 Method and apparatus for suggesting changes to related user interface objects
WO2020222219A1 (en) * 2019-04-30 2020-11-05 Walkme Ltd. Gui element acquisition using a plurality of alternative representations of the gui element
US11741074B2 (en) * 2021-08-20 2023-08-29 Fidelity Information Services, Llc Automated user interface testing with machine learning
CN113946332B (en) * 2021-08-23 2023-04-25 芯华章科技股份有限公司 Method and storage medium for displaying attributes based on GUI (graphical user interface)
US12039145B2 (en) * 2022-04-12 2024-07-16 Lucid Software, Inc. Legend of graphical objects

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600789A (en) 1992-11-19 1997-02-04 Segue Software, Inc. Automated GUI interface testing
US5974254A (en) 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
US6046740A (en) 1997-02-07 2000-04-04 Seque Software, Inc. Application testing with virtual object recognition
US6223185B1 (en) 1998-07-31 2001-04-24 International Business Machines Corporation Method for defining composed object methods and attributes by dynamically presenting composite values and options
US6429885B1 (en) 1998-10-30 2002-08-06 Sony Corporation GUI resource editor for an embedded system
US20040001092A1 (en) 2002-06-27 2004-01-01 Rothwein Thomas M. Prototyping graphical user interfaces
US6804684B2 (en) 2001-05-07 2004-10-12 Eastman Kodak Company Method for associating semantic information with multiple images in an image database environment
US20040267789A1 (en) 2003-06-11 2004-12-30 International Business Machines Corporation Apparatus and method for adaptably acquiring attribute information
US6865580B1 (en) 1999-07-02 2005-03-08 Microsoft Corporation Dynamic multi-object collection and comparison and action
US6891552B1 (en) 2001-05-08 2005-05-10 Microsoft Corporation Specifiable user interfaces
US7177852B2 (en) * 2000-07-06 2007-02-13 British Telecommunications Public Limited Company Method and apparatus for extracting knowledge from software code or other structured data
US20070136691A1 (en) 2005-12-13 2007-06-14 International Business Machines Corporation Graphical User Interface Design Utility
WO2007068527A1 (en) 2005-12-15 2007-06-21 International Business Machines Corporation Method and system for assisting a software developer in creating source code for a computer program
US7236973B2 (en) 2002-11-27 2007-06-26 Sap Aktiengesellschaft Collaborative master data management system for identifying similar objects including identical and non-identical attributes
US7325160B2 (en) 2001-11-09 2008-01-29 Wuxi Evermore Software, Inc. Data processing system with data recovery
US7353510B2 (en) 2003-07-11 2008-04-01 Computer Associates Think, Inc. System and method for comparing objects
US20110161874A1 (en) 2009-12-29 2011-06-30 International Business Machines Corporation Analyzing objects from a graphical interface for standards verification
US20120124495A1 (en) 2009-11-23 2012-05-17 Nitsan Amichai System and method for object relationship identification in a user interface

Patent Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600789A (en) 1992-11-19 1997-02-04 Segue Software, Inc. Automated GUI interface testing
US6046740A (en) 1997-02-07 2000-04-04 Seque Software, Inc. Application testing with virtual object recognition
US5974254A (en) 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
US6223185B1 (en) 1998-07-31 2001-04-24 International Business Machines Corporation Method for defining composed object methods and attributes by dynamically presenting composite values and options
US6429885B1 (en) 1998-10-30 2002-08-06 Sony Corporation GUI resource editor for an embedded system
US6865580B1 (en) 1999-07-02 2005-03-08 Microsoft Corporation Dynamic multi-object collection and comparison and action
US7177852B2 (en) * 2000-07-06 2007-02-13 British Telecommunications Public Limited Company Method and apparatus for extracting knowledge from software code or other structured data
US6804684B2 (en) 2001-05-07 2004-10-12 Eastman Kodak Company Method for associating semantic information with multiple images in an image database environment
US6891552B1 (en) 2001-05-08 2005-05-10 Microsoft Corporation Specifiable user interfaces
US7325160B2 (en) 2001-11-09 2008-01-29 Wuxi Evermore Software, Inc. Data processing system with data recovery
US20040001092A1 (en) 2002-06-27 2004-01-01 Rothwein Thomas M. Prototyping graphical user interfaces
US7236973B2 (en) 2002-11-27 2007-06-26 Sap Aktiengesellschaft Collaborative master data management system for identifying similar objects including identical and non-identical attributes
US20040267789A1 (en) 2003-06-11 2004-12-30 International Business Machines Corporation Apparatus and method for adaptably acquiring attribute information
US7353510B2 (en) 2003-07-11 2008-04-01 Computer Associates Think, Inc. System and method for comparing objects
US20070136691A1 (en) 2005-12-13 2007-06-14 International Business Machines Corporation Graphical User Interface Design Utility
US8677272B2 (en) 2005-12-13 2014-03-18 International Business Machines Corporation Graphical user interface design utility
WO2007068527A1 (en) 2005-12-15 2007-06-21 International Business Machines Corporation Method and system for assisting a software developer in creating source code for a computer program
US8266585B2 (en) 2005-12-15 2012-09-11 International Business Machines Corporation Assisting a software developer in creating source code for a computer program
US20080320438A1 (en) * 2005-12-15 2008-12-25 International Business Machines Corporation Method and System for Assisting a Software Developer in Creating Source code for a Computer Program
US20120124495A1 (en) 2009-11-23 2012-05-17 Nitsan Amichai System and method for object relationship identification in a user interface
US20110161874A1 (en) 2009-12-29 2011-06-30 International Business Machines Corporation Analyzing objects from a graphical interface for standards verification
WO2011080062A1 (en) 2009-12-29 2011-07-07 International Business Machines Corporation Analyzing objects from a graphical interface for standards verification
GB2488651A (en) 2009-12-29 2012-09-05 Ibm Analyzing objects from a graphical interface for standards verification
CN102725729A (en) 2009-12-29 2012-10-10 国际商业机器公司 Analyzing objects from a graphical interface for standards verification
DE112010003948T8 (en) 2009-12-29 2012-12-27 International Business Machines Corporation Evaluate GUI objects to check standards
US10095485B2 (en) 2009-12-29 2018-10-09 International Business Machines Corporation Analyzing objects from a graphical interface for standards verification

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
U.S. Appl. No. 12/648,372, Decision on Appeal, Dec. 18, 2017, 11 pg.
U.S. Appl. No. 12/648,372, Decision on Appeal, Sep. 30, 2015,11 pg.
U.S. Appl. No. 12/648,372, Examiner's Answer, dated Feb. 14, 2013, 22 pg.
U.S. Appl. No. 12/648,372, Examiner's Answer, dated Feb. 16, 2017, 11 pg.
U.S. Appl. No. 12/648,372, Final Office Action, dated Aug. 7, 2012, 15 pg.
U.S. Appl. No. 12/648,372, Final Office Action, dated Jun. 20, 2016, 12 pg.
U.S. Appl. No. 12/648,372, Non-Final Office Action, dated Jan. 15, 2016, 9 pg.
U.S. Appl. No. 12/648,372, Non-Final Office Action, dated Mar. 1, 2012, 13 pg.
U.S. Appl. No. 12/648,372, Notice of Allowance, dated May 21, 2018, 10 pg.
UK Appin. No. GB1203474.0, Examination Report Under Section 18(3), dated Nov. 26, 2015, 5 pg.
WIPO Appin. No. PCT/EP2010/069563, International Search Report and Written Opinion, dated Apr. 20, 2011, 9 pg.

Also Published As

Publication number Publication date
CN102725729A (en) 2012-10-10
CN102725729B (en) 2016-04-20
US10095485B2 (en) 2018-10-09
GB2488651A (en) 2012-09-05
US20110161874A1 (en) 2011-06-30
DE112010003948T8 (en) 2012-12-27
DE112010003948T5 (en) 2012-10-25
US20190042208A1 (en) 2019-02-07
GB201203474D0 (en) 2012-04-11
WO2011080062A1 (en) 2011-07-07

Similar Documents

Publication Publication Date Title
US11635946B2 (en) Analyzing objects from a graphical interface for standards verification
US8429194B2 (en) Document-based workflows
US10324828B2 (en) Generating annotated screenshots based on automated tests
US8010946B2 (en) Apparatus for analysing and organizing artifacts in a software application
US20080195377A1 (en) Method, device, and program product for verifying translation in resource file
US9189462B2 (en) Bidirectional text checker
US9146945B2 (en) Automated system and method of data scrubbing
EP2290530A1 (en) Widget framework
CN104376043B (en) Log recording and display methods and device
US20220350857A1 (en) Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors
EP3113016A1 (en) Tracing dependencies between development artifacts in a development project
US20140006980A1 (en) Interactive development and testing message models
US9390073B2 (en) Electronic file comparator
US9104573B1 (en) Providing relevant diagnostic information using ontology rules
US20140304686A1 (en) Responding to a problem during software testing
US20140173410A1 (en) Drawing notes manager
US20210200833A1 (en) Health diagnostics and analytics for object repositories
US8881006B2 (en) Managing digital signatures
US20100250621A1 (en) Financial-analysis support apparatus and financial-analysis support method
US9582782B2 (en) Discovering a reporting model from an existing reporting environment
US8538995B2 (en) Device and method for automatically detecting an unclear description
US20210232391A1 (en) System and Method for the Delivery of Software Documentation
JP5202655B2 (en) Business flowchart search device and program
KR101049895B1 (en) Electronic document editor
Cruz et al. Snapshot testing in practice: Benefits and drawbacks

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PRESTON, BRIAN P.;REEL/FRAME:047083/0996

Effective date: 20180821

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PRESTON, BRIAN P.;REEL/FRAME:047083/0996

Effective date: 20180821

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCV Information on status: appeal procedure

Free format text: APPEAL READY FOR REVIEW

STCV Information on status: appeal procedure

Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS

STCV Information on status: appeal procedure

Free format text: BOARD OF APPEALS DECISION RENDERED

STCV Information on status: appeal procedure

Free format text: REQUEST RECONSIDERATION AFTER BOARD OF APPEALS DECISION

STCV Information on status: appeal procedure

Free format text: BOARD OF APPEALS DECISION RENDERED AFTER REQUEST FOR RECONSIDERATION

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK

Free format text: EMPLOYMENT AGREEMENT;ASSIGNOR:DOUGHTY, CHRIS;REEL/FRAME:062942/0450

Effective date: 20001009

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK

Free format text: EMPLOYMENT AGREEMENT;ASSIGNOR:LUK, BRYANT GENEPANG;REEL/FRAME:062942/0479

Effective date: 20060320

STCF Information on status: patent grant

Free format text: PATENTED CASE