Customization of user interface for application programs
9 claims: 9 independent, 0 dependent
- 1A process, in a data processing system, for reducing the memory space necessary to represent user selectable operations presented by an application program, by automatically customizing a user interface of said application program to present a limited set of operations based on relevant characteristics of a user comprising the steps of:- accepting (44) input data relating to identifiers of actual or potential users of the application program, relevant characteristics of users and/or classes of users, and (34) sets of operations of the application program which are appropriate for each such user or class of users;- creating a user profile table (41, 42) which stores said relevant characteristics of users in a format which is searchable using the identifier of a user as a key value;- storing (46) the user profile table for later access;- creating a customization table (31, 32) which stores said sets of operations in a format which is searchable using said relevant characteristics as key values;- storing (36) the customization table for later access;- determining (52) user identifier or relevant characteristics of a user when a user invokes the application program;- searching (60) the customization table for the appropriate set of operations as a subset of all selectable operations, based on the identifier or relevant characteristics of the user;and- generating (61, 62) user interface components during the running of the application program which present only said appropriate set of operations. Un procédé, dans un système de traitement de données, pour réduire l'espace mémoire nécessaire pour représenter des opérations pouvant être sélectionnées par un utilisateur, présentées par un programme d'application, en personnalisant automatiquement une interface utilisateur dudit programme d'application pour présenter un jeu limité d'opérations, d'après des caractéristiques importantes, propres à l'utilisateur, comprenant les étapes consistant à : - accepter (44) des données d'entrée concernant des identificateurs d'utilisateurs actuels ou potentiels du programme d'application, des caractéristiques importantes des utilisateurs et/ou des classes d'utilisateurs, et (34) des jeux d'opérations du programme d'application qui s'avère propre à chacun de ces utilisateurs ou classe d'utilisateurs;- créer une table de profil utilisateur (41, 42) stockant lesdites caractéristiques d'utilisateurs importantes dans un format permettant une recherche par utilisation de l'identificateur d'un utilisateur comme valeur-clef;- stocker (46) la table de profil utilisateur concernant le dernier accès;- créer une table de personnalisation (31, 32), stockant lesdits jeux d'opérations sous un format susceptible de permettre une recherche par utilisation desdites caractéristiques importantes, à titre de valeurs-clef;- stocker (36) la table de personnalisation telle qu'elle était lors du dernier accès;- déterminer (52) l'identificateur utilisateur ou les caractéristiques importantes d'un utilisateur lorsqu'un utilisateur appelle le programme d'application;- rechercher (60) la table de personnalisation pour le jeu approprié d'opérations, à titre de sous-jeu de toutes les opérations pouvant être sélectionnées, d'après l'identificateur ou les caractéristiques importantes de l'identificateur;et- générer (61, 62) des composants d'interface utilisateurs pendant le fonctionnement du programme d'application qui présente seulement ledit jeu approprié d'opérations. Verfahren in einem Datenverarbeitungssystem zur Verringerung des Speicherbereiches, der zur Darstellung von benutzerwählbaren, von einem Anwendungsprogramm präsentierten Arbeitsgängen benötigt wird, indem eine Benutzerschnittstelle des Anwendungsprogramms automatisch so angepaßt wird, daß sie einen begrenzten Satz von Vorgängen in Abhängigkeit von relevanten Merkmalen eines Benutzers darstellt, wobei das Verfahren die folgenden Schritte umfaßt: - Aufnehmen (44) von Eingangsdaten, die Kennungen tatsächlicher oder möglicher Benutzer des Anwendungsprogramms, relevante Merkmale von Benutzern und/oder Gruppen von Benutzern und (34) Sätze von Arbeitsgängen des Anwendungsprogramms betreffen, die für jeden solchen Benutzer oder jede solche Gruppe von Benutzern geeignet sind;- Erstellen einer Benutzerprofiltabelle (41, 42), die die relevanten Merkmale von Benutzern in einem Format speichert, das unter Verwendung der Kennung eines Benutzers als Schlüsselwert gesucht werden kann;- Speichern (46) der Benutzerprofiltabelle zum späteren Zugriff;- Erstellen einer Anpassungstabelle (31, 32), die die Sätze von Arbeitsgängen in einem Format speichert, das unter Verwendung der relevanten Merkmale als Schlüsselwerte gesucht werden kann;- Speichern (36) der Anpassungstabelle zum späteren Zugriff;- Feststellen (52) der Benutzerkennung oder der relevanten Merkmale eines Benutzers, wenn ein Benutzer das Anwendungsprogramm aufruft;- Durchsuchen (60) der Anpassungstabelle nach dem entsprechenden Satz von Arbeitsgängen als ein Teilsatz aller wählbaren Arbeitsgänge in Abhängigkeit von der Kennung oder von den relevanten Merkmalen des Benutzers;und- Erstellen (61, 62) von Benutzerschnittstellen-Komponenten während des Ablaufs des Anwendungsprogramms, die nur den geeigneten Satz von Arbeitsgängen darstellen.
- 2Le procédé selon la revendication 1, comprenant en outre :- le maintien d'un comptage du nombre de fois que l'utilisateur a appelé le programme d'application,- la détermination d'un niveau utilisateur de familiarité avec le programme d'application, par référence audit comptage;et- l'utilisation dudit niveau de familiarité avec le programme d'application, comme l'une des caractéristiques importantes de l'utilisateur, lors de la recherche de la table de personnalisation. The process of claim 1, further comprising: - maintaining a count of the number of times the user has invoked the application program,- determining a user's level of familiarity with the application program by reference to said count;and- utilizing said level of familiarity with the application program as one of the relevant characteristics of the user in searching the customization table. Verfahren von Anspruch 1, desweiteren umfassend: - Aufrechterhalten einer Zählung der Anzahl der Male, die der Benutzer das Anwendungsprogramm aufgerufen hat.- Feststellen des Grades der Vertrautheit eines Benutzers mit dem Anwendungsprogramm durch Bezugnahme auf die Zählung;und- Verwenden des Grades der Vertrautheit mit dem Anwendungsprogramm als eines der relevanten Merkmale des Benutzers bei der Suche in der Anpassungstabelle.
- 3Le procédé selon la revendication 2, comprenant en outre l'étape consistant à fournir à l'utilisateur une option pour sauter ledit comptage de nombre de fois afin de permettre d'effectuer des variations dans le nombre de fois où les différents utilisateurs prennent le programme d'application pour se familiariser avec lui. The process of claim 2 further comprising the step of providing the user an option to override said count of number of times to allow for variations in the time different users take to familiarize themselves with the application program. Verfahren von Anspruch 2, das desweiteren den Schritt der Bereitstellung einer Option für den Benutzer zum Übergehen der Zählung der Anzahl der Male umfaßt, um Änderungen an der Zeit zu ermöglichen, die verschiedene Benutzer benötigen, um sich mit dem Anwendungsprogramm vertraut zu machen.
- 4Le procédé selon la revendication 1, comprenant en outre :- le maintien d'un comptage du nombre de conditions d'exception importantes se produisant pendant une session utilisateur avec le programme d'application;- l'augmentation automatique d'un niveau utilisateur de familiarité avec le programme d'application, chaque fois qu'une section se termine et que ledit comptage est inférieur à un nombre prédéterminé;et- le stockage dudit niveau augmenté de familiarité avec le programme d'application dans la table de profil d'utilisateur, pour chercher la table de personnalisation lors des sessions subséquentes faites par le même utilisateur, avec le programme d'application. The process of claim 1 further comprising: - maintaining a count of the number of serious exception conditions which occur during a user's session with the application program;- automatically increasing a user's level of familiarity with the application program each time a session ends with said count being lower than a predetermined number;and- storing said increased level of familiarity with the application program in the user profile table for searching the customization table in subsequent sessions by the same user with the application program. Verfahren von Anspruch 1, desweiteren umfassend: - Speichern eines Zählwertes der Anzahl von schwerwiegenden Ausnahmebedingungen, die während der Sitzung eines Benutzers mit dem Anwendungsprogramm auftreten;- automatisches Erhöhen des Grades der Vertrautheit eines Benutzers mit dem Anwendungsprogramm jedesmal, wenn eine Sitzung mit einem Zählwert endet, der niedriger als eine vorbestimmte Zahl ist;und- Speichern des erhöhten Grades der Vertrautheit mit dem Anwendungsprogramm in der Benutzerprofiltabelle, um in nachfolgenden Sitzungen desselben Benutzers mit dem An wendungsprogramm die Anpassungstabelle zu durchsuchen.
- 5Le procédé selon la revendication 4, comprenant en outre l'étape consistant à fournir à l'utilisateur une option pour sauter ladite augmentation automatique d'un niveau utilisateur de familiarité avec le programme d'application. The process of claim 4 further comprising the step of providing the user an option to override said automatic increase in a user's level of familiarity with the application program. Verfahren von Anspruch 4, das desweiteren den Schritt der Bereitstellung einer Option für den Benutzer zum Übergehen der automatischen Erhöhung des Grades der Vertrautheit eines Benutzers mit dem Anwendungsprogramm umfaßt.
- 6Le procédé selon la revendication 1, comprenant en outre :- le maintien d'une liste d'opérations qui ne se trouvent pas dans un jeu d'opérations propre à l'utilisateur, opérations appelées par l'utilisateur pendant une session avec le programme d'application;- l'addition automatique au jeu d'opérations propre à l'utilisateur de toutes les opérations venant de ladite liste, qui ont été appelées plus qu'un nombre prédéterminé de fois pendant la session;et- l'utilisation desdites opérations additionnelles lors de la génération desdits composants d'interface utilisateurs lors des sessions subséquentes par le même utilisateur avec le programme d'application. The process of claim 1 further comprising: - maintaining a list of operations not in a user's appropriate set of operations which are invoked by the user during a session with the application programs;- automatically adding to the user's appropriate set of operations all operations from said list which were invoked more than a predetermined number of times during the session;and- utilizing said additional operations in generating the user interface components in subsequent sessions by the same user with the application program. Verfahren von Anspruch 1, desweiteren umfassend: - Speichern einer Liste von Arbeitsgängen, die sich nicht in einem geeigneten Satz von Arbeitsgängen eines Benutzers befinden, die während einer Sitzung mit dem Anwendungsprogramm vom Benutzer aufgerufen werden;- automatisches Hinzufügen aller Arbeitsgänge von der Liste, die während der Sitzung öfter als eine vorbestimmte Anzahl von Malen aufgerufen wurden, zum geeigneten Satz von Arbeitsgängen eines Benutzers;und- Verwenden der zusätzlichen Arbeitsgänge beim Erstellen der Benutzerschnittstellen-Komponenten in nachfolgenden Sitzungen desselben Benutzers mit dem Anwendungsprogramm.
- 7Le procédé selon la revendication 6, comprenant en outre l'étape consistant à proposer à l'utilisateur une option pour sauter ladite addition automatique d'opérations du jeu d'opérations propre à l'utilisateur. The process of claim 6 further comprising the step of providing the user an option to override said automatic addition of operations to the user's appropriate set of operations. Verfahren von Anspruch 6, das desweiteren den Schritt der Bereitstellung einer Option für den Benutzer zum Übergehen der automatischen Hinzufügung von Arbeitsgängen zum geeigneten Satz von Arbeitsgängen des Benutzers umfaßt.
- 8Le procédé selon la revendication 1, comprenant en outre :- le maintien d'un comptage d'opérations ne se trouvant pas dans un jeu d'opérations propre à l'utilisateur et appelées par l'utilisateur pendant une session avec le programme d'application;- l'augmentation automatique d'un niveau utilisateur de familiarité avec le programme d'application, chaque fois qu'une section se termine et que ledit comptage est supérieur à un nombre prédéterminé;et- le stockage dudit niveau augmenté de familiarité avec le programme d'application dans la table de profil d'utilisateur afin de chercher la table de personnalisation lors des sessions subséquentes par le même utilisateur avec le programme d'application. The process of claim 1 further comprising: - maintaining a count of operations not in a user's appropriate set of operations which are invoked by the user during a session with the application program;- automatically increasing a user's level of familiarity with the application program each time a session ends with said count being higher than a predetermined number;and- storing said increased level of familiarity with the application program in the user profile table for searching the customization table in subsequent sessions by the same user with the application program. Verfahren von Anspruch 1, desweiteren umfassend: - Speichern eines Zählwertes von Arbeitsgängen, die sich nicht im geeigneten Satz von Arbeitsgängen eines Benutzers befinden, die während einer Sitzung mit dem Anwendungsprogramm vom Benutzer aufgerufen werden;- automatisches Erhöhen des Grades der Vertrautheit eines Benutzers mit dem Anwendungsprogramm jedesmal, wenn eine Sitzung mit einem Zählwert endet, der größer als eine vorbestimmte Zahl ist;und- Speichern des erhöhten Grades der Vertrautheit mit dem Anwendungsprogramm in der Benutzerprofiltabelle, um in nachfolgenden Sitzungen desselben Benutzers mit dem Anwendungsprogramm die Anpassungstabelle zu durchsuchen.
- 9Le procédé selon la revendication 8, comprenant en outre l'étape consistant à fournir à l'utilisateur une option pour sauter ladite augmentation automatique du niveau utilisateur de familiarité avec le programme d'application. The process of claim 8 further comprising the step of providing the user an option to override said automatic increase in a user's level of familiarity with the application program. Verfahren von Anspruch 8, das desweiteren den Schritt der Bereitstellung einer Option für den Benutzer zum Übergehen der automatischen Erhöhung des Grades der Vertrautheit eines Benutzers mit dem Anwendungsprogramm umfaßt.
Independent claims9
38 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention generally relates to user interfaces to software applications and, more particularly, to the creation, maintenance and use of a user interface to an application program which has been tailored to various characteristics of the current user.
Description of the Prior Art
Computer users vary in many respects, such as job duties, level of familiarity with various application programs, need to use various operations of application programs, frequency of use of various operations of application programs, and right of access to different operations of application programs. Most application programs, however, present a single user interface which does not take into account the individual characteristics of the current user. The result is that the user is presented a user interface which may be confusing, inefficient, insufficiently restricted, or otherwise inappropriate for him.
The user interface for an application program can take many forms, such as menus, sets of icons, sets of action bars, or a command line. The user normally selects an operation or moves through the hierarchy of menus, etc. by some combination of keystrokes, cursor movements, mouse operations, commands or the like.
At any given time, the array of choices presented to the user may be so large as to be confusing, to take up an undue amount of the screen space, or to take up so much memory with the code underlying the choices that system performance is compromised. The array may contain operations which the user does not need or does not yet know how to use. In addition, the user may find it necessary or convenient to access in close sequence operations of a program which appear in different aspects (e.g., menus or action bars) of the user interface. In such a case, it is cumbersome to traverse from menu to menu or from action bar to action bar.
As the user gains familiarity with the application program or as his needs change, he may "outgrow" the user interface, requiring access to a broader or different set of operations.
A number of rudimentary attempts have been made to alter the user interface of an application program, or at least the user's access to aspects of the program or manipulated data, in response to a characteristic of the user. Perhaps the earliest example is the assignment of access levels to database users so that some users may not have write access to certain files or fields in files, some users may not have read access to certain files or fields, and some users may not even be able to access the database at all. This feature is now common among commercially available database management systems.
A more closely related technique is the provision of a software switch, set by the user, which governs whether menus or other explanatory aspects of the user interface are visible on the screen. Thus, a novice user would set the switch to make menus appear on the screen so that he may use the menus as a guide in performing operations. On the other hand, an advanced user would set the switch to remove the menus from the screen so that he could view data in the entire screen, unobstructed by the menu. The word processing program WordStar (trademark of MicroPro) uses such an approach, implemented in the form of differing levels of "help."
An even more recent trend has been to provide so-called "soft interfaces" to application programs, which allow the user to emulate to a degree the interface of a program with which he is already familiar or to create an interface which is purely individual. The word processing program Sprint (trademark of Borland) provides a soft interface which enables the user to operate it with the commands used by WordPerfect (trademark of WordPerfect), WordStar, Word (trademark of Microsoft), certain other word processors, or commands of the user's own selection.
The methodology exists on a systems level to allow programmers to automate the creation of menus, etc. in the course of application development. The programmer specifies a list of operations, codes, explanatory material, and format parameters, and the menu generator creates a menu for presentation on the screen.
Finally, Systems and Computers in Japan, Vol.19, No.10, October 1988, pages 80-86, Scripta Technica, Inc., Silver Springs, MD, US, from M.Nagata et al. discloses a method for automatically customizing a user interface of an application program to present a limited set of messages based on relevant characteristics of a user. Such method increases the work load on the computer by replacing the one "typical" message presented to any user using the system, with several individual messages according to a user model based on the characteristics of each user.
There is nothing in the prior art, however, which enables the user or system administrator to select arbitrarily from the range of operations offered by an application program and thereby create an interface which is truly customized to the level of familiarity, type of job, level of access and other characteristics of the user.
SUMMARY OF THE INVENTION
It is therefore an object of the present invention to provide a technique for specifying the range of operations to be presented by the user interface of an application program which is customized for particular users or classes of users and is readily changeable by the user or system administrator.
It is another object of the invention to provide a program for creating and displaying the relevant, customized user interface which has been specified by the user or system administrator.
According to the invention, the user interface of an application program is restructured in a form customized for the current user each time he invokes the program. The user or system administrator first creates a customization table which specifies the operations to be made available to particular classes of users or even individual users. For example, a matrix could be created which specifies certain groups of operations for presentation to users depending on the users' type of job and degree of familiarity with the application program. The customization table could be modified whenever desired. Each time a user invokes the application program, the appropriate set of operations for the user is determined from the customization table by searching a user profile table based on the user's identifier, prompting the user to enter his relevant characteristics, or other means.
Because the user's level of familiarity with the application program will frequently be the most important characteristic, a count of the number of times each user has invoked the application program could be stored and used to estimate the user's level of familiarity and select the appropriate set of operations for the user, automatically raising the level of user interface as thresholds are reached. The user could be permitted to override the system count if it led to an inappropriate level of interface.
Similar types of automatic upgrading could occur by monitoring the number of serious errors that occur in each session and raising the complexity of the user interface if fewer than a certain number occur during the session, or by monitoring calls to operations not presented by the interface and adding an operation to the user interface if it is called more than a certain number of times during the session.
The set of operations appropriate to the user is then used to generate menus, icons, action bars or other interface components which present only the specified operations, rather than the full, and possibly confusing, inefficient or otherwise inappropriate, range of operations available within the application program.
More particularly, the present invention as defined in claim 1 includes a process, in a data processing system, for reducing the memory space necessary to represent user selectable operations presented by an application program, by automatically customizing a user interface of said application program to present a limited set of operations based on relevant characteristics of a user comprising the steps of: <ul id="ul0001" list-style="dash" compact="compact"><li>accepting input data relating to identifiers of actual or potential users of the application program, relevant characteristics of users and/or classes of users, and sets of operations of the application program which are appropriate for each such user or class of users;</li><li>creating a user profile table which stores said relevant characteristics of users in a format which is searchable using the identifier of a user as a key value;</li><li>storing the user profile table for later access;</li><li>creating a customization table which stores said sets of operations in a format which is searchable using said relevant characteristics as key values;</li><li>storing the customization table for later access;</li><li>determining user identifier or relevant characteristics of a user when a user invokes the application program;</li><li>searching the customization table for the appropriate set of operations as a subset of all selectable operations, based on the identifier or relevant characteristics of the user; and</li><li>generating user interface components during the running of the application program which present only the appropriate set of operations.</li></ul>
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, aspects and advantages of the invention will be better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which: <ul id="ul0002" list-style="none" compact="compact"><li>FIG. 1 illustrates a typical table specifying the operations that might be made available to various types of users with various levels of experience with the application program in the practice of the invention;</li><li>FIG. 2A illustrates a typical menu which may be presented to a novice clerical user in the practice of the invention;</li><li>FIG. 2B illustrates a typical menu which may be presented to a moderately experienced clerical user in the practice of the invention;</li><li>FIGS. 3 to 12, taken together, constitute a flow chart of the user interface customization procedure according to the invention in which the connectors in each of the figures indicate the manner in which the several figures are interconnected to form the flow chart and wherein</li><li>FIG. 3 is a portion of the flow chart which illustrates customization table creation and editing logic;</li><li>FIG. 4 is a portion of the flow chart which illustrates user profile table creation and editing logic;</li><li>FIG. 5 is a portion of the flow chart which illustrates initialization and user lookup logic;</li><li>FIG. 6 is a further portion of the flow chart which illustrates operation set creation and interface generation logic;</li><li>FIG. 7 is a further portion of the flow chart which illustrates exception monitor and operation monitor invocation logic;</li><li>FIG. 8 is a further portion of the flow chart which illustrates exit testing and upgrading logic based on the contents of the operation monitor list and the total in the operation count;</li><li>FIG. 9 is a further portion of the flow chart which illustrates exit testing and upgrading logic based on the total in the exception count;</li><li>FIG. 10 is a further portion of the flow chart which illustrates exit testing and upgrading logic based on the user's desires;</li><li>FIG. 11 is a further portion of the flow chart which illustrates exception monitor logic; and</li><li>FIG. 12 is a further portion of the flow chart which illustrates operation monitor logic.</li></ul>
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION
Referring now to the drawings, and more particularly to FIG. 1, the procedure according to the invention creates, stores in electronic storage, and utilizes a customization table which specifies sets of operations to be presented in the user interface to users with the corresponding relevant characteristics. FIG. 1 illustrates a customization table which considers only two user characteristics, namely the familiarity level characteristic 10 and the job type characteristic 12. It will be observed that the appropriate operations set for a user with clerical job type characteristic 14 and novice familiarity level characteristic 16 is operations set 18, comprising the operations listed therein.
FIG. 2 illustrates two sample user interface menus for a user with clerical job type. FIG. 2A illustrates that note function 20, file subfunction 22 provides the novice familiarity level clerical job type user with operations set 24. In contrast, FIG. 2B illustrates that the moderate familiarity level clerical job type user is provided with operations set 26, which contains the operations Link, Merge, and Page Setup in addition to the operations shown in operations set 24 of FIG. 2A.
FIGS. 3 and 4 illustrate the logic of the programs which create and edit the customization table and the user profile table, both of which are used to generate customized user interfaces for individual users. The customization table and user profile table are searchable aggregations, such as arrays, of multifield records as are commonly used in computer programming applications and may be created by a variety of known methods such as interactive entry or editing using a text editor, database management system or set of table creation functions embedded within a table maintenance routine specialized to the present invention.
FIG. 3 illustrates the program which creates and edits the customization table. When this program is first invoked, a test is made to determine whether the customization table exists, as indicated in decision block 30. If the table exists, it is loaded into memory as indicated in block 31. If the table does not exist, a blank table format, which contains table characteristics such as field names, field lengths and required data types, is loaded into memory as indicated in block 32. The existing table or the blank table format, as the case may be, is then displayed to the user as indicated in block 33. The program then enters edit mode so that the user may add or delete records and modify fields in the table as indicated in block 34. Editing ends when the user enters the quit editing command as indicated in block 35. The newly created or edited table is then stored in external memory as indicated in block 36.
FIG. 4 illustrates the program which creates and edits the user profile table. When this program is first invoked, a test is made to determine whether the user profile table exists, as indicated in decision block 40. If the table exists, it is loaded into memory as indicated in block 41. If the table does not exist, a blank table format, which contains table characteristics such as field names, field lengths and required data types, is loaded into memory as indicated in block 42. The existing table or the blank table format, as the case may be, is then displayed to the user as indicated in block 43. The program then enters edit mode so that the user may add or delete records and modify fields in the table as indicated in block 44. Editing ends when the user enters the quit editing command as indicated in block 45. The newly created or edited table is then stored in external memory as indicated in block 46.
FIG. 5 illustrates that the automatic customization procedure according to the invention begins by determining the user's identifier in block 50 by known methods such as testing the system variable which contains the current user's identifier or by prompting the user to enter his or her identifier. The user profile table is then loaded into memory as indicated in block 51, and the user profile table is searched for the current user's identifier in decision block 52. If the user's identifier is not found in the user profile table, the user is prompted to enter data into the fields of a blank user profile record which has been created for that particular user, as indicated in block 53. The data input by the user is moved into the appropriate fields to create the user profile record, which is retained in memory for further use, as indicated in block 54. The newly created user profile record is also added to the user profile table as indicated in block 55, and the program moves to block 60 shown in FIG. 6.
If, on the other hand, the user identifier is found in the user profile table, the user's profile record is moved from the table into memory as indicated in block 56, and the program moves to block 60 of FIG. 6.
In block 60 of FIG. 6, a multikey search is carried out in the customization table to find the entry corresponding to the user characteristics specified in the user profile record. Typical user characteristics contained in the user profile record might include the user's job type, level of familiarity with the application program, number of times the user has invoked the application program, data access and modification rights, and others. There is one field of the user profile record which, if it exists, will not be used in the search. This is a field which lists operations individually specified to be added to the user's customized interface in addition to the operations that would be included based solely on the characteristics in the user profile record. The purpose of this is to provide for an arbitrary degree of customization beyond that provided by the generalized sets of operations deemed appropriate to users of various types.
The list of operations which has thus been generated from both the customization table and the individualized operations of the user profile record is passed to the interface generator as indicated in block 61. The interface generator then creates the corresponding set of interface elements, such as menus, application bars, etc., by merging the operations in the list into the appropriate interface screen designs as indicated in block 62.
In FIG. 7, the exception monitor is invoked by setting the exception count to zero as indicated in block 70 and setting a switch to respond to exception interrupts by calling the exception monitor program as indicated in block 71. The operation monitor is then invoked by emptying the operation list as indicated in block 72, setting the operation count to 0 as indicated in block 73, and setting a switch to call the operation monitor program any time an operation is invoked as indicated in block 74. Control is then passed to the application program for presentation of the top level interface element (e.g., main menu) and use of the application program by the user as indicated in block 75.
FIG. 8 illustrates the exit routine which is entered after the user exits the application program as indicated in block 80. The operation list is loaded from the operation monitor as indicated in block 81, and the operations which were invoked more than a predetermined number of times x during the session are displayed to the user as indicated in block 82. The user is then asked if he wishes to add the displayed operations to his customized user interface as indicated in decision block 83. If the user answers in the affirmative, the new operations are added to the individualized operation field of the user's user profile record as indicated in block 84 and the program moves to decision block 85. If the user answers in the negative, the program moves directly to decision block 85.
In decision block 85, the operation count is tested to determine whether it contains more than a predetermined number y of entries. If so, the field for the user's experience level is incremented in the user profile record as indicated in block 100 of FIG. 10 and the program moves to block 101. If not, the program moves to decision block 90 of FIG. 9.
In FIG. 9, the exception count is tested to determine whether the total number of serious errors is less than a predetermined number z as indicated in decision block 90. If so, the field for the user's experience level is incremented in the user profile record as indicated in block 100 of FIG. 10 and the program moves to block 101. If not, the program moves to block 91 of FIG. 9.
The experience count field, which stores the number of times the user has accessed the application program, is incremented in the user profile record as indicated in block 91, and the incremented value is then tested as indicated in decision block 92 to determine whether the value is greater than a predetermined number w. If so, the field for the user's experience level is incremented in the user profile record as indicated in block 100 of FIG. 10 and the program moves to block 101. If not, the program moves directly to block 101.
In FIG. 10, a message is displayed to the user as indicated in block 101 which lists the upgrading actions which have been taken or states that no upgrading actions have been taken, as the case may be. The user is then asked in decision block 102 whether he wishes to add to, delete or change the upgrading actions. If so, the upgrade is modified in accordance with user input as indicated in block 103, and the program terminates. If not, the program terminates directly.
FIG. 11 illustrates the operation of the exception monitor. Whenever an exception interrupt is generated as indicated in block 110, it is tested as indicated in decision block 111 to determine whether the severity of the error exceeds a predetermined level. If so, the exception count is incremented as indicated in block 112 and control is returned to the main program. If not, control returns directly to the main program.
FIG. 12 illustrates the operation of the operation monitor. Whenever an operation is invoked as indicated in block 120, it is tested as indicated in decision block 121 to determine whether the operation is already contained in the user's customized interface. If not, the operation is added to the operation list maintained by the operation monitor as indicated in block 122, the operation count is incremented as indicated in block 123, and control is returned to the main program. If so, control returns directly to the main program.
Contents4
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
9 members in 6 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 267420 | United States of America | – | |
| 26742088 | United States of America | A | |
| 267420 | – | – | – |
| US19880267420 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| EP0367709A1 | European Patent Office (EPO) | A1 | |
| JPH02130663A | Japan | A | |
| BR8905591A | Brazil | A | |
| US5115501A | United States of America | A | |
| CA1320001C | Canada | C | |
| EP0367709B1This record | European Patent Office (EPO) | B1 | |
| DE68926428D1 | Germany | D1 | |
| DE68926428T2 | Germany | T2 | |
| JP2645430B2 | Japan | B2 |
21 legal events, as 2 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Notification of lapseLapsedST | ST | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0367709
- Publication, DOCDB
- 0367709
- Publication, EPODOC
- EP0367709
- Application
- 89480162
- Application, DOCDB
- 89480162
- Application, EPODOC
- EP19890480162
Titles3
- German
- Personalisierung von Benutzerschnittstellen für Anwendungsprogramme
- English
- Customization of user interface for application programs
- French
- Personnalisation d'interface utilisateur pour programmes d'application
Classification
- CPC, 2
- G06F9/453
- Y10S707/99939
- IPC, 4
- G06F3 02
- G06F3 14
- G06F9 44
- G06F15 00
Designated states4
- Contracting states, 4
- Germany
- France
- United Kingdom
- Italy
