Data processing: software development – installation – and managem – Software program development tool – Editing
Reexamination Certificate
2000-08-31
2004-07-06
Chaki, Kakali (Department: 2124)
Data processing: software development, installation, and managem
Software program development tool
Editing
C717S121000, C345S215000
Reexamination Certificate
active
06760902
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to an object-oriented computer software technology and associated program development tools that support software application program developers and end users by generating a user interface for the application program, pursuant to the developer's or end user's specifications.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to any facsimile or reproduction of the material as it appears in the patent document or the patent disclosure, or as the material appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
2. Description of the Related Art
One of the most important aspects of a modern computing system is the interface between the human user and the machine. The earliest type of interface was text based; a user communicated with the machine by typing text characters on a keyboard and the machine communicated with the user by displaying text characters on a printer or display screen. More recently, graphic user interfaces have become popular where the machine communicates with a user by displaying graphics, including text and pictures, on a display screen and the user communicates with the machine both by typing in textual commands and by manipulating the displayed pictures with a pointing device, such as a mouse.
Many modern computer systems operate with a graphic user interface called a window environment. In a typical window environment, the graphical display portrayed on the display screen is arranged to resemble the surface of an electronic “desktop” and each application program running on the computer is represented as one or more electronic “paper sheets” displayed in rectangular regions of the screen called “windows”.
Each window region generally displays information generated by the associated application program and there may be several window regions simultaneously present on the desktop, each representing information generated by one or more application programs. A program presents information to the user through each window by drawing or “painting” images, graphics or text within the window region. The user, in turn, communicates with the application by “pointing at” objects in the window region with a cursor which is controlled by a pointing device and manipulating or moving the objects and also by typing information using the keyboard. When objects within the window are selected or manipulated, the underlying application program is informed, via the window system, that the control has been manipulated by the user. The window regions may also be moved around on the display screen and changed in size and appearance so that the user can arrange the desktop in a convenient manner.
In current systems, the window environment described above is part of the computer operating system. The application program typically makes use of operating system functions by sending out series of task commands to the operating system, which then performs a requested task. For example, the application program may request that the operating system play an audible tone, display a warning window, printer dialog box, or other graphical information to the user in order to obtain the user's input to determine the next appropriate action. As computer systems have become more complex and more capable of multitasking, operating systems have evolved to include a central window manager that interfaces with each application program to ensure that each program's display data is separated from other displays, that the display is properly refreshed when windows are moved or resized by the user, and that user interaction with the display to provide input to the application program is properly communicated back to the application. The window manager also typically handles the high level facilities (buttons, sliders, list boxes and other controls) that application programs commonly use to provide a complete user interface.
Of course, these complexities behind displays and display management are invisible to computer users, who have come to expect simple, intuitive interfaces to even the most sophisticated computer programs. High-order computer languages, compilers, and operating systems have evolved to enable and provide implicit support to program developers for the creation and execution of even very sophisticated application programs. However, the same cannot be said when it comes to the design and development of a program's user interface. Indeed, historically, the user interaction space has never been considered to be a fundamental part of a computer program. User interface activities are often referred to as input and output, meaning that somehow data is extracted out of the program and displayed to the user and that somehow data is received from the user and put into the program. This “somehow” is accomplished by program developers writing explicit program code to get the data out of the program, format and display the data, receive input data from the user and put it back in to the program. Indeed, in addition to writing code to get data into and out of the program, the programmer must also write explicit code to create the look and feel that the programmer wants the user to experience when running and interacting with the program. The programmer must also ensure that user interface code properly interacts with the underlying program code so that they remain synchronized and the overall integrity of the system is maintained.
Due to the complexity of current graphical user interface environments, programmers often utilize specialized libraries of user interface code to reduce the amount of code they must write when providing support for the user interaction space. For example, Microsoft Corporation provides a class library for software developers known as the MICROSOFT FOUNDATION CLASS (“MFC”) Library, which contains object classes implemented in C++ that are useful for programmers in developing user interfaces for object-oriented applications programs running on the MICROSOFT WINDOWS operating system. Nevertheless, even with the availability of class libraries such as MFC, application program developers must still spend an inordinate amount of development time dealing with interface implementation details, such as determining what type of control might be appropriate for certain input (e.g., button, menu bar, drop-down menu, dialog window, etc.); what color the image should be, how it should be labeled, where it should appear on the screen, etc. The user interface code for a new application program typically comprises a melange of library code, modified library code, and “from scratch” code cobbled together by the programmer to create the desired appearance and operation of the interface between the program and the user. Having to provide explicit code to support the user interaction space has the following disadvantages:
Bigger Programs—Adding explicit code to support the user interaction space greatly increases the size of the original program.
Increased Complexity—The complexity of a computer program is directly related to the amount of code contained within it. Consequently, supporting the user interaction space with explicit code results in a more complex program.
Compromised Integrity—Errors in the explicit code added to a computer program could result in data being erroneously input or displayed. This compromises the integrity of the entire system.
Direct Relationship Between Code and User Interface—Having to explicitly support the user interaction space means that for every variation in the user interface, a corresponding amount of code has to be created to support it.
Taken together, these problems explain why creating the user interface of a computer program often accounts for a significant (and indeed, unreasonable) portion of the development effort. Program developers should be primarily concerned with th
Chaki Kakali
Shrader L J
LandOfFree
Method and apparatus for implicitly generating and... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for implicitly generating and..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for implicitly generating and... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3226766