EP0531319A4 - - Google Patents

Info

Publication number
EP0531319A4
EP0531319A4 EP19910909069 EP91909069A EP0531319A4 EP 0531319 A4 EP0531319 A4 EP 0531319A4 EP 19910909069 EP19910909069 EP 19910909069 EP 91909069 A EP91909069 A EP 91909069A EP 0531319 A4 EP0531319 A4 EP 0531319A4
Authority
EP
European Patent Office
Prior art keywords
design data
ifm
display
pdl
subset
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.)
Withdrawn
Application number
EP19910909069
Other languages
French (fr)
Other versions
EP0531319A1 (en
Inventor
Charles W. Bachman
Igor Abramovich
Christopher P. Gane
David A. Krieger
John T. Micco
John J. Cimral
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.)
Sterling Software Southern Inc
Original Assignee
Bachman Information Systems Inc
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
Priority claimed from US07/516,250 external-priority patent/US5195178A/en
Priority claimed from US07/516,247 external-priority patent/US5193182A/en
Priority claimed from US07/516,814 external-priority patent/US5212771A/en
Priority claimed from US07/516,248 external-priority patent/US5193183A/en
Priority claimed from US07/516,128 external-priority patent/US5179698A/en
Priority claimed from US07/516,822 external-priority patent/US5146591A/en
Priority claimed from US07/516,815 external-priority patent/US5241645A/en
Application filed by Bachman Information Systems Inc filed Critical Bachman Information Systems Inc
Publication of EP0531319A1 publication Critical patent/EP0531319A1/en
Publication of EP0531319A4 publication Critical patent/EP0531319A4/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Definitions

  • This invention is directed to a computer system for dynamically modeling information systems of organizations and building models of complex business transactions and creating and manipulating subprocesses and subsets of dynamic information system models of organizations.
  • data base management systems With the advent of so-called data base management systems, many of the problems encountered in the early information processing systems were alleviated. In addition to removing the need for the application program to address the intricacies of data file manipulation, data base management systems promoted efficient design, enhanced file maintenance and modification, eliminated data file redundancy, and provided substantial documentation regarding data file structure.
  • the first level of data representation relates to the manner in which individual data records are stored and how their inter-relationships are depicted.
  • the second level of data representation describes the data base users' view of the data.
  • the physical representation of the data is generally of no concern to the data base user. Rather, the task of manipulating individual data storage areas is left to the data base management system.
  • Data variables are named storage structures which may be used to store information, and which are basic features of information systems. These variables are capable of being assigned a value, holding that value as long as the data variable survives, and returning that value one or more times upon request. The current value of a data variable essentially remains unchanged until some explicit action is taken to change the content of the variable.
  • These data variables have a number of applications, such as being the attributes of entities, being independent global attributes, being variables of processes, and being variables of operating systems, the values of which are available to all processes. While data variables are capable of storing various types of information, each is generally specialized to handle one type of data, such as character strings, integers, or real numbers.
  • data variables may be used to store information.
  • Data variables are named storage structures, and are a basic feature of information systems. These variables are capable of being assigned a value, holding that value as long as the data variable survives, and returning that value once or more times upon request. The current value of a data variable essentially remains unchanged until some explicit action is taken to change the content of the variable.
  • These data variables have a number of applications, such as being the attributes of entities, being independent global attributes, being variables of processes, and being variables of operating systems, the values of which are available to all processes.
  • data variables are capable of storing various types of information, each is generally specialized to handle one type of data, such as character strings, integers, or real numbers.
  • Of concern to the data base user is the logical representation of the data, since the users' ability to store, retrieve, and modify aggregations of data items, data records, and data relationships is dependent upon the form in which the data base management system presents data to the user.
  • Information management systems handle complex environments often consisting of hundreds of elements and relationships, permitting users to manipulate and employ data in ways not always anticipated by systems designers. Representation of such elements and relationships to a user presents a unique set of problems not encountered, and certainly not resolved by present data base management systems. Instead of being organized into application-oriented files, which are always addressed in the same way, as in data base systems, the information is organized so that it can be addressed in a variety of different ways, and can be used to answer a diversity of queries. All the interesting facts about entities are stored together rather than merely those facts needed for one application. As pointed out by J. Martin, "Computer Data-Base Organization", 2d ed., chapter 3, pp. 24-25 (1977), this "reservoir" concept of information systems is much easier to conceive than to implement. It is a complex and lengthy operation to build up such data bases, and it is expensive to search sufficiently quickly to give real-time answers to unanticipated queries.
  • diagrams and windows are one way to depict the intricate relationships among entities, attributes, and other data elements in a complex information model.
  • a variety of "windows" have been used in application programs to facilitate user interaction with a computer system. Windows have been used to show a user a "menu” of selection of operations which may be performed. Windows have also been used for displaying error messages. However, windows are not anticipatory, i.e. are not able to provide a tailored selection of options available to a user at a particular point in time or text.
  • CASE Computer Aided Systems Engineering
  • EXCELERATOR enables an operator to work with data flow diagrams and data model diagrams, structure diagrams. An operator may also modify, delete, copy, rename, list or add a diagram. Diagram objects may be user defined, and are stored in a dictionary.
  • IEW enables a user to work with, and create or change objects on diagrams, which affects an encyclopedia but not existing displays or screens.
  • IEW can model relationships, entities and attributes together, or entities alone, but does not model attributes alone. It is often useful to manipulate attributes independent of entities to which they may later be tied.
  • a user may desire to work with only a portion or subset of an entire complex model.
  • a user may want to test objects on a subset of a model before integrating such objects into the entire model, while still retaining the ability to work with the subset in real-time.
  • Existing systems are not believed to provide a dynamic subset of a model which may be user manipulated.
  • a user may choose to create and manipulate subprocesses of existing processes.
  • a user normally treats business transactions as indivisible elements, each transaction making a state change to the external environment.
  • it is important to provide intermediate states for purposes of modeling that environment.
  • Present systems do not provide for such real-time modeling of business transactions.
  • the present invention is a computer system for dynamically modeling information systems of organizations.
  • the system includes a plurality of editors, or modelers, which enable a user to interact with the system.
  • the interaction may occur via text, tree diagram, or other graphical representation.
  • Such representations also enable the user to dynamically interact with the system.
  • the system may include at least one information modeler, which provides a dynamic environment for the user to create, analyze, and modify IM models which contain IM design data.
  • the IM design data may be representative of entities, attributes, relationships, entity methods, partnership sets, and combinations thereof, each of which may be effected by externally applied signals.
  • An option modeler may include stored predetermined option criteria which is compared with PDL design data, or design data of the logic modeler, for syntactic permissibility.
  • An options window may then display the options which are syntactically permissible at any time during the model building process. The options window also enables the user to dynamically interact with the system.
  • the system may also include at least one process modeler, providing a dynamic environment for the user to create, analyze, and modify IFM models containing IFM design data.
  • the IFM design data is representative of processes, information stores, information flows, messages, sources and/or destinations.
  • the IFM design data specifically information flow contents, correspond to IM design data entities.
  • the IFM modeler and the IM modeler can be dynamically linked, such that a change in one design data set will affect a corresponding change in the other design data set.
  • the system may also include a logic modeler, which provides a dynamic environment for the user to create, analyze, and modify logical operations to be performed on the IM design data and the IFM design data.
  • the logic modeler displays the system in text, tree diagram, or other graphical representations. The resulting display may be dynamic, enabling the user to affect IM and IFM design data, as well as the operations to be performed on that design data.
  • the system can also include a function modeler, which enables a user to generate a function decomposition diagram, displaying the processes of IFM design data and any related subprocesses.
  • the subprocesses may be displayed in a hierarchical fashion, and the user may dynamically manipulate the objects contained within the decomposition diagram.
  • the system may include filters for creating subsets of a model.
  • Each model subset is defined by operator-determined selection criteria.
  • the subset is created by applying the selection criteria to the design data set of the model to be filtered.
  • the resulting model subset may be displayed in a graphical representation. Such representations may enable the user to dynamically interact with the system.
  • Representation of the system may be in the form of a node and pin notation, where nodes define text fields which contain statements and design data. Attached to the nodes may be pins, which identify locations where modifications may be specified for the operation associated with a particular node.
  • Representation of the system interfaces with the user may be established via a series of windows. These windows may include: an options facility, for displaying and selective interaction with the editors; a feedback window, for selectively displaying messages from the editors to the user; and a diagram window, for displaying representations of the system, or aspects of the system, for user interaction therewith.
  • the system may also include syntactic and/or semantic checks of the input from the user. Errors may generate flag signals, which would appear in any of the windows.
  • a user may also "explode” a process from an information flow diagram to its corresponding subprocesses. This creates high-level processes and primitive processes.
  • a high-level process is one which has one or more corresponding subprocesses, whereas a primitive process is one which has no corresponding subprocesses.
  • the logic modeler may be accessed to generate a diagram from each primitive process.
  • the resulting exploded process may simultaneously be displayed with the information flow diagram from which it is derived.
  • subprocesses may be "hidden" within a process on an information flow diagram or PDL display, creating high-level processes from groups of primitive processes.
  • the system of the invention may further include a programmed data computer adapted to establish one or more partnership sets within at least one design data, where each partnership set is representative of zero, one or more partnerhips.
  • the computer is further adapted to establish one or more partnerships, wherein each partnership is characterized by one partnership set associated with itself or associated with one other partnership set.
  • the computer controls access to one or more design data by reference to a partnership set which is in partnership with partnership sets of one or more design data.
  • the system may include storage means for storing transaction data, such as entities, attributes, and relationships.
  • the stored transaction data may then be reversibly transformed, in accordance with predetermined processing algorithms, while it is externally inaccessible.
  • the transformed transaction data is evaluated against predetermined logical criteria, such as logical or semantic rules. The evaluation produces either successful or unsuccessful results. If successful, the transformed data is then made externally accessible. If unsuccessful, the original transaction data is made externally accessible. In this manner, transaction data may be tested in an information system model without irreversibly affecting the existing model.
  • the system may also include storage means for storing ordered sets of references to design data, such as entities.
  • the ordered sets, or entity-sets are assigned a value, and may then be manipulated in a manner similar to a data variable.
  • the references may be ordered in accordance with predetermined criteria, or operator selected criteria.
  • the system may include nested blocks for iteratively processing transaction design data.
  • the transaction design data may be representative of any of the data associated with the design data sets of any of the modelers of the system, including entities, attributes, relationships, and processes, to name a few.
  • the use of an "iterator" statement enables the system to transform transaction data at an outer subsystem and a nested subsystem level. Control is passed from the outer subsystem to the nested subsystem, during operation of the system, to enable iterative processing and evaluation of transaction data against various predetermined criteria.
  • Figure 1 is a flow diagram of an embodiment of the invention.
  • Figures 1-1 through 1-72 collectively show a detailed entity-relationship diagram of the embodiment of Figure 1.
  • Figure IA shows a diagram designating the relative position of each of Figures 1-1 through 1-72
  • Figure 2 is a diagrammatic representation of display windows and facilities of the invention of Figure 1.
  • Figure 3 is a diagrammatic representation of an E-R diagram display which may be generated through an IM modeler of the invention of Figure 1.
  • Figure 3A is a diagrammatic representation of a "create" form which may be accessed through an IM modeler of the invention of Figure 1.
  • Figure 4A is a diagrammatic representation of a network diagram display of the invention of Figure 1.
  • Figure 4B is a diagrammatic representation of multi-layered overlapping boxes display of the invention of Figure 1.
  • Figure 5 is a diagrammatic representation of an IFM diagram display of the invention of Figure 1.
  • Figure 6A is a diagrammatic representation of an IFM diagram display of the invention of Figure 1 having exploded processes, prior to creating a new process boundary.
  • Figure 6B is a diagrammatic representation of an IFM diagram display of the invention of Figure 1 having a new process incorporating subprocesses.
  • Figure 7 is a diagrammatic representation of an FD diagram display of the invention of Figure 1.
  • Figure 8 is a diagrammatic representation of a PDL diagram display of the invention of Figure 1.
  • Figure 9 is a diagrammatic representation of a PDL diagram displayed in a diagram window of the invention of Figure 1.
  • Figure 10 is a diagrammatic representation of an options window of the invention of Figure 1.
  • a system 10 operates using a programmed IBM-compatible 80386 personal computer, having an OS/2 operating system.
  • Other computer hardware and operating systems such as UNIX or DOS, may be used, with some modifications to the software.
  • C computer language
  • other programming languages may be used to implement the present invention.
  • the system 10 assists data analysts and systems analysts in building models of information systems of organizations. These models, or files, can be stored in a database and shared among analysts.
  • the system 10 consists of four modelers, or editors, which can be used to build models, each of which gives a different perspective of the same design.
  • Figures 1-1 through 1-72 collectively show a detailed entity-relationship diagram of the preferred embodiment of the invention.
  • Figure IA shows a diagram designating the relative position of each of Figures 1-1 through 1-72 to form a composite, complete entity-relationship diagram of the preferred embodiment.
  • TABLE 1 identifies, in column I, elements of the system shown in Figures 1-1 through 1-72.
  • column II identifies corresponding names for certain of the elements of column I which are used in the description below.
  • PROCESS processes process local store
  • the primary interface between a user and the system of the invention is through a series of interactive graphics windows presented to the user in the display 3.
  • the windows display text, tree structure diagrams, or other graphical representations of each of the modelers.
  • three windows will generally appear: an options facility 20; a feedback window 22; and, a diagram window 24.
  • the options facility 20 consists of a hierarchy of items which enable the user to perform actions on a specified model. By activating an element displayed in the facility, for example by placing and activating a cursor over the element, a selected model may be activated or deactivated. This facility may also display selections not presently available to the user at that time.
  • the feedback window 22 displays messages informing the user of one or more of the following: when an action has taken place; what step to take next; any mistakes or errors which may occur; when the user is entering or exiting a modeler or mode.
  • the diagram window 24 displays diagrams generated by each of the modelers.
  • This window 24 generally includes the capability to scroll in any direction to view a diagram which is too large to fit in the window 24. Once a diagram is displayed in the diagram window 24, a user may edit the diagram, or create a new diagram.
  • This window 24 also provides a dynamic environment for user interaction to the modelers.
  • Additional windows may be added or included in the present system.
  • pop-up windows (not shown), context menus 26, and icons (not shown) may appear at various times and at various locations on the CRT of a computer.
  • Pop-up windows may be used to control user interactions with the system. Sometimes a pop-up window may be used to provide choices, or warn of a problem.
  • Context menus may be included to enable the user to perform actions within a specific context, or model.
  • An item in a context menu may function in the same manner as the corresponding item in an options facility, but may occur at different times or locations than the options facility.
  • Icons may appear at various locations on the CRT, for example in the lower left corner when a model is initially opened, or as a reminder that other modelers and models are available.
  • Diagrams and forms of the system of the are tools used for defining and manipulating objects of the overall business information system model. Once an object is created using any of the modelers, or editors, of the system, it exists in the system and can be displayed graphically in any applicable diagram, or textually in a form. When an object is manipulated, the new information about the object is accessible from any applicable diagram or form, which provide different ways of accessing the same model objects by offering different perspectives of the same system.
  • the options modeler 5A is a language sensitive editor which prompts the user with grammatical options which may be inserted at any selected location.
  • the modeler 5A defines what can be selected by the user and inserted into a PDL statement, which is further described below.
  • the modeler 5A presents the options to a user in an options window, and shows only the next available syntactic phrase or term. Thus, at any point, the option modeler provides only syntactically valid options.
  • an operation applied to one model using a particular modeler has an immediate effect on another model. This may be accomplished by maintaining logical relationships between the models, thus keeping the representation of design data consistent with the underlying design. It is important, therefore, that a change to a model or diagram in one modeler is reflected in other models and diagrams. For example, if a process is deleted through the function modeler, the deletion is automatically and immediately reflected in the IFM diagram. By way of further example, if a process having associated information flows is created through the process modeler, the information flow model objects, or IFM design data, are reflected in an activated PDL diagram. This change may occur substantially immediately, i.e. without any additional user input.
  • the preferred embodiment is a system designed for interaction with a human user.
  • the system may also be incorporated into a larger system whereby the "user" becomes a generic "operator", such as another computer.
  • the operator may include magnetic tape devices, which download information into the present system. Any other technology which permits transfer of design data, or information, such as laser disc memory devices, may be used.
  • the operator may also be an artificial intelligence device which not only provides design data input, but is capable of dynamically interacting with the present system.
  • the information modeler 4 of the present system invention includes an editor for creating, analyzing, and modifying entity relationship data models, referred to below as information model (IM), and for generating entity-relationship (E-R) diagrams which describe relationships between entities.
  • IM information model
  • E-R entity-relationship
  • An exemplary E-R diagram is shown in Fig. 3.
  • the information modeler consists of IM design data, or IM objects, which may include entities, attributes, attribute methods, relationships, entity methods, keys, domains, dimensions, allowable values, and partnership sets.
  • the modeler 4 also enables the operator to import existing information models created on other systems, or in other environments, into the present system 10.
  • entity is generally defined as an item about which information is being stored.
  • An entity may be a tangible object, such as an employee or a part, or may be an intangible concept, such as a job title or an event.
  • attribute is generally defined as properties of entities. For example, for an entity "customer", attributes may include address, company affiliation, or salary.
  • a “relationship” describes the correlation among entities, or among attributes.
  • attributes may be "free” attributes. Free attributes are attributes not associated with an entity. For example, an attribute may be used to hold constants, or contents of flows that go between processes. A free attribute may later become associated with an entity, or may remain independent.
  • Partnership sets are described in detail in U.S. Patent No. 4,631,664 (Bachman, Dec. 23, 1986).
  • partnership sets are used both for storing and manipulating information.
  • a user may define objects within the system as partnership sets.
  • partnership sets are established to provide the medium through which design data is accessed and exchanged among the modelers of the present system.
  • An "entity method” is a PDL procedure (defined below) attached to an entity in an E-R diagram rather than to a process in the IFM diagram.
  • Each entity method defines a generic operation to be performed on all occurrences of the entity, similar to methods in object-oriented programming. The use of entity methods protects applications from changes made in the design data model.
  • an "attribute method” is a PDL procedure associated with an attribute.
  • a typical use for an entity method might be to specify a referential integrity rule required by a user's business. For example, a company may have a rule that requires the "last-customer-number" attribute to be incremented by one each time a new customer is created, and the assignment of that number to the new customer.
  • the traditional "process-centered" approach would force all developers of applications to include the code for this operation each time an application creates a new customer.
  • a "create-customer" entity method may be created to handle this operation. Then, whenever an application creates a new customer, the developer calls the "create-customer" entity method which insures that the "last-customer-number” attribute is incremented by one and assigned to the new customer.
  • a "derived attribute” is an attribute having a value which is calculated each time it is used in a procedure. The value is not stored in the database, but is recalculated when it is used. For example, for a transaction-based system, a user might create a derived attribute, called “total-tax", that calculates the total sales tax for each sales transaction. A PDL statement is then used to create a derivation rule, which sets the derived attribute "total-tax" equal to 5% of the value of the stored attribute "subtotal-taxable.” Once a derived attribute is created, it can be used in the same manner as any other attibute derived in an E-R diagram.
  • a key is one or more entity components that uniquely identifies an occurrence of an entity. For example, every house has a unique address and every employee has a unique employee identification number.
  • unique keys may represent one or more attributes, partnership sets, or a combination of both attributes and partnership sets. Keys may be primary, alternate, or foreign.
  • a primary key represents a combination of attributes and/or partnership sets that uniquely identify each occurrence of an entity. For example, "Emp-Address" attribute of an Employee entity.
  • Any key other than a primary key is an alternate key, which may later become a primary key.
  • a customer can be uniquely identifed by a customer identification number, or by a name and address combination. A user can choose either identification form as the primary key for the Customer entity. The other key is then an alternate key.
  • Foreign keys represent attributes and/or partnership sets used to establish a recursive relationship or a relationship with another entity or partnership set. Attributes within the entity may correspond to some or all of the attributes in the primary key of a partner entity. That is, a foreign key is a primary key in one entity that acts as a unique identifier in a partner entity, a partner entity essentially being referenced by the primary key in the other entity.
  • the user selectively interacts with the options facility 20 to the information modeler 4 to indicate that a new file is being created.
  • the options facility 20 may include various forms of information display, such as a palette, a dialog box, or context menus, depending upon the type of information to be displayed and/or ergonomic criteria.
  • the new information model (IM) is named, and identified as to type of model.
  • a diagram is generated in the diagram window 24.
  • An operator may then create an IM by creating and placing IM design data, or objects, in the IM diagram.
  • the IM design data may include entities, with associated attributes, relationships, text blocks, and entity methods.
  • IM design data may include at least the following objects and combinations: attributes; attribute methods; entities; entity methods; partnership sets; partnership set methods; entities and relationships; entities and attributes; and entities, relationships, and partnership sets.
  • an operator selects an element in the context menu 26 corresponding to "create”.
  • a "create” form 40 shown in Figure 3A, is then displayed in the diagram window 24.
  • the operator then describes the entity by entering the following information: entity name; description; name of parent entity; and expected volume. This information is then stored, and selectively displayed upon later recall by either the operator or one of the modelers.
  • Attributes may be created in a manner similar to entities, and are described by the following information entered by an operator: attribute name; description; expected length; domain; data type.
  • Data type of an attribute generally may include integers, strings, and the like. Domains may be used to define useful, recurring data types. For example, "date" is a domain, made up of separate pieces of data, each of which may be defined as subdomains. Attributes may only be assigned superior domains as data types. A domain can consist of one or more pieces of data. In the present system, deleting a domain does not delete attributes with that data type, but does leave attributes without data types. Dimension allows a user to group domains which are comparable in value. For example, a value space may have one or more representations such as U.S. format (e.g., November 2, 1990), or European format (e.g., 2 November 1990). By making a dimension "date”, all attributes having "date” data type, regardless of format, will be shown.
  • U.S. format e.g., November 2,
  • attributes may be created independent of entities.
  • relationships may be one-to-one, one-to-many, or many-to-many, depending upon the type and complexity of the system or model created.
  • an IM may be displayed as an IM diagram, as either network diagrams or multi-layered overlapping boxes, shown in Figures 4A and 4B.
  • Other graphical representations may be used, such as text or tree structure diagrams (not shown) .
  • Each design data, or object, of the diagram, or text may be dynamically activated by the user to modify, analyze, or create the associated IM.
  • the information modeler 4 may be accessed by the operator by means of the diagram window 24.
  • the IM diagram 30 may be manipulated as to size or object location.
  • a pointing device such as a mouse, is used in conjunction with the system 10 to manipulate a pointing icon in the related windows.
  • the pointing icon may be used to expand or contract the size of the diagram, the size of the design data associated with the diagram, and placement of the design data in relation to the diagram.
  • the process modeler 5 of the preferred embodiment is an editor used to define an information flow model (IFM).
  • IFM describes a function that occurs within the system.
  • the process modeler 5 enables an operator to define the processes, information stores, information flows, messages, and sources/destinations of the system.
  • the information store of a process modeler 4 corresponds to design data elements in an IM.
  • the information flow of a process modeler represents the flow of design data elements which are usually defined in an IM.
  • the IM is generally established before the related IFM.
  • the IM to which an IFM is attached can be empty; that is, it does not have to contain entities, attributes, or other elements.
  • an operator may begin modeling a system with an IFM diagram, generated through the process modeler to describe relationships between objects in a process model.
  • An exemplary IFM diagram 50 is shown in Figure 5.
  • a new IFM can be created through the process modeler 5 in the same manner that a new IM can be generated through the information modeler 4, as discussed above.
  • creating a new IFM requires operator input of the following: a model name; identification of an associated information model; target database in which the IFM will be stored; and model type.
  • An IFM diagram may be associated with the process modeler 5 such that a user may dynamically interact with the diagram in creating, analyzing and modifying an IFM. Once an IFM diagram is generated, after the above-mentioned information is entered by the user, IFM design data, or IFM objects, may be selectively placed on the IFM diagram.
  • the IFM design data includes processes, information flows, messages, sources/destinations, process local stores, events, flow-partnership, flow-partnership set, flow-entity, flow-attribute, and information stores. After one or more IFM design data are created by the operator, information flow can be added between them. Duplicate names for design data or flows are generally not accepted within an IFM.
  • an information flow may be added to the model once at least two processes, or a process and an information store, or a source/destination object are present.
  • data cannot flow between two information stores, or between two source/destination objects without an intervening process. Therefore, the preferred system accesses information flows created between two processes, between a process and a source/destination, or between a process and an information store.
  • the contents of an information flow are generally referred to as messages, which may consist of design data.
  • Information stores may be created to contain one or more entities, and may be included in the process model. There is an association between information stores and entities, which may be graphically represented in E-R diagrams. An entity may exist in one or many information stores.
  • the IFM diagram, IM diagram, and associated process model and information model forms are linked by the association of the information store and the entity.
  • Forms like diagrams of the preferred system, may be used as tools for defining and manipulating all objects of the system. Diagrams and forms provide graphical and textual ways of accessing the same objects of the system.
  • Events are the one control flow design data in the IFM diagram.
  • Examples of Events include Clock/Calendar Events, User Events, Database Events, and Flow Events.
  • a Clock/Calendar Event may indicate that a process is to execute at a specified time. For example, a user might specify a process to run every day at 2:00pm. User Events generally correspond to a user demand, for example, an explicit "run this process”.
  • a Database Event may be a mechanism that initiates the execution of a process based on the changing of an information store value. For example, if a customer goes from having good credit to having bad credit, this might trigger the "send threatening letter" process.
  • a process triggered by a Flow Event begins execution upon the arrival of the flow structure.
  • Flow Events must correspond to a flow going to that process, or a triggering flow. While events generally appear in IFM diagrams, there may be corresponding clauses in other modelers of the system. For example, in the preferred embodiment, a Triggered-When clause in the logic modeler corresponds to the IFM diagram Event for that process. Further, in the preferred embodiment, every completely specified primitive process (described further in the "Function Modeler" section, below) must have a triggering Event associated with it. This Event is what actuates the process, forcing it to begin "executing" its business logic.
  • Source/destination objects may be defined to direct information in an IFM.
  • these objects may be included in the IFM diagram to indicate the source or destination of IFM design data of that diagram.
  • the size of an IFM diagram 50 may be changed, enlarged or diminished, to accommodate the viewing needs of a user.
  • a user can generate an expanded view of a selected process or design data element.
  • the size of the IFM diagram 50 may also be changed to accomodate an overlapping, or superimposed exploded process or function decomposition diagram (described below) .
  • the layout of the IFM diagram 50 may be modified by moving IFM design data, for example, boxes and graphical representations (arrows) of information flows 54 connecting the boxes, as shown in Fig. 5.
  • the process to be exploded must have at least one information flow attached to it, either incoming or outgoing. In other forms, such a restriction is not necessary.
  • the number of subprocesses generated and named by the system for the exploded process equals the number of flows coming into and out of the process.
  • a subprocess 58 related to an incoming flow has the word "handle” as a prefix to its name; a subprocess 60 related to an outgoing flow has the word “generate” in its name.
  • Subprocesses 62 may exist within a process 56 which have neither incoming nor outgoing flow associated therewith. For example, as shown in Figure 5, a process "fill orders” may be divided into subprocesses “generate inventory update”, “handle orders for shipping”, “put orders in boxes", and "take boxes to mail room”.
  • an IFM diagram may contain both high-level processes 56 and primitive proccesses 62.
  • High-level processes 56 are those processes having subprocesses associated therewith.
  • Primitive processes 62 are those processes having no subprocesses.
  • the subprocesses may be displayed through a functional decomposition diagram 80, (defined below), or superimposed over a segment of the IFM diagram.
  • a user can simultaneously and concurrently view an IFM diagram 50 and an exploded process 56 in the same diagram window 24.
  • a user may use a pointing device to point to an icon representative of a high-level process 56 in an IFM diagram 50, and display the "explosion", or subprocesses, of that process, while maintaining the other processes on the display screen.
  • a user may also display or hide the subprocesses in a corner window, leaving the IFM diagram intact. Subsequent changes to an IFM object or process in either window would be reflected in the other window.
  • a user can create a high-level process 56 for a process or group of processes by defining process boundaries 70.
  • the system prompts the user to name the new high-level process, and then draws the new process 74 around the selected, or "boundaried", processes 72.
  • the original processes 72 become subprocesses of the new process 74.
  • Making a new process boundary 70 is a way of changing the hierarchy of processes in the process model.
  • Each new high-level process has a form. This form lists the subprocesses in the process hierarchy fields of display. Likewise, the forms for each subprocess list the new process as the top-level process.
  • process boundaries 70 may be undone, returning the process model to the state it was in before the process boundary 70 was created.
  • the function modeler 7 may be invoked to generate and display a function decomposition (FD) diagram of the process, as exemplified by diagram 80 shown in Figure 7.
  • the decomposition diagram 80 consists of subprocesses 84 identified by the operator to be associated with an identified process 82. For example, as shown in Figure 7, if the process 82 is identified as “fill orders”, subprocesses 84 identified with that process 82 may include, "generate inventory update", "handle orders for shipping", “put orders in boxes", and "take boxes to mail room".
  • a pointing device such as a mouse, is used to select a process displayed in an IFM diagram. By selecting a process with the pointing device, a decomposition diagram may be superimposed over all or part of the IFM diagram.
  • a typical FD diagram 80 of the present invention is shown in Figure 7.
  • the diagram 80 is a tree-structure type diagram, having nodes containing process description 86, process 82, and subprocess 84.
  • the relationship between the nodes is shown graphically by a main line 88, and branch lines 90.
  • the nodes are each connected to the lines 88, 90 at root pins 92.
  • Each of lines 88, 90 also has an extension pin, 94 at which nodes may be attached.
  • FD objects of the FD diagram 80 are dynamically linked to the IM and IFM objects such that a change to the FD diagram 80 (Fig 7) is substantially immediately reflected in the IFM diagram 50 (Fig. 5) and the design data sets of both the information modeler and the process modeler.
  • a FD diagram 80 may display subprocesses 62 created in a process explosion.
  • subprocesses 62 may be created and displayed: using the process explosion from an IFM diagram 50; or using the function modeler to create a FD diagram 80.
  • the system 10 of the invention also includes a logic modeler 6 which specifies the logic of primitive processes defined in an IFM.
  • the logic modeler 6 primarily embodies a graphical, structured language which enables a user to define business logic of the processes that operate on entities defined in an IM.
  • the logic modeler 6 may be used to define logic models for describing the flow of information between models.
  • the logic modeler 6 refers to entities and attributes in the IM as it defines the logic that operates on the entities and their attributes according to the organization's business rules. For example, the business rule for deriving an attribute can be expressed in the logic modeler 6 and stored.
  • the structured language is a Process Description Language (PDL) , which shows the flow of processing in relation to objects in the IFM and the specific operations performed on entities and attributes in the information model.
  • the logic modeler 6 is generally related to an IFM and to an IM. As shown in Figure 8, a PDL diagram 100 may be built by creating PDL statements, one at a time, in a window. The system then automatically generates graphical representation of the statement in the PDL diagram 100.
  • the logic modeler 6 includes PDL procedures and PDL statements in describing and displaying logical operations on objects. As discussed above, entity methods and derived attributes may be used to define a procedure on an entity in the corresponding IFM diagram 50. PDL procedures may also include process procedures, which describe the business logic of the primitive process, and derived attributes, which are attributes having a value calculated each time it is used.
  • PDL statements may be used to build procedures and write specifications that describe the business logic of primitive processes in a corresponding IFM diagram. Statements may be built by a user or generated by the system, using keywords, identifiers, and expressions. Keywords which may be used in building PDL statements may include, inter alia: CREATE; RETRIEVE; UPDATE; DELETE; SEND; RECEIVE; SIGNAL; and, WHEN.
  • logical access statements (RETRIEVE, CREATE, UPDATE, DELETE), iteration statements (FOREACH, and LOOP) , conditional statements (IF, CASE), and control transfer statements (EXIT, SKIP, RESUME) .
  • Logical access statements describe selecting or changing data defined in information stores. These statements are equivalent to statements that describe database access in a physical database. Any of the logical access statements of the present embodiment can create new objects in the IM diagram and in the IFM diagram.
  • "send” and “receive” statements are also available.
  • the "send” statement defines the destination of information leaving a particular process. It can create an information flow from the process a user is currently editing to another process or source/destination.
  • the syntax, or semantic rule, associated with a "send” statement is:
  • "Information-structure-reference” specifies the information to be sent from the process.
  • the information can be a list of attribute references or an "entity.*" (indicating all attributes of a particular entity) .
  • An attribute reference can be an attribute name or a qualified attribute name.
  • Optional clauses may include "where", "through", and "to”.
  • the "where” clause specifies search conditions that determine the information to send.
  • the "through” clause specifies the information flow through which a user wants to send information. In one embodiment, only one information flow is allowed.
  • the "to” clause specifies one or more processes or source/destination objects to which a user wants to send information.
  • the "receive” statement specifies the source of the information entering the process. It can create an information flow from a specified process or source/destination to the process for which a user is currently specifying PDL.
  • the syntax associated with a "receive” statement is: RECEIVE - (INFORMATION-STRUCTURE-REFERENCE) - WHERE (optional) - THROUGH (optional) - FROM (optional) .
  • the "information-structure-reference" is the same as for "send” statements.
  • the "where" clause specifies search conditions that determine the information to receive
  • the "through " clause specifies the information flow through which a user wants to receive the information
  • the "from” clause specifies the process or source/destination object from which the information is to be received.
  • neither the "send” nor the "receive” statements are allowed in entity method and derived attribute procedures.
  • SEND and RECEIVE can create entities and attributes in the information model by reference. That is, if a user references an entity or attribute which does not exist, the system will prompt the user to create such an entity or attribute.
  • SEND and RECEIVE statements of the present embodiment can create new objects in the IM diagram and in the IFM diagram.
  • a SIGNAL statement may be used to signal an exception condition or error and to transfer control to a condition handler (WHEN clause) defined for the specified condition.
  • a syntax for the statement is: SIGNAL - condition - ( - expression list - ) .
  • the "condition” is one of the system-defined conditions. including: ABORT, DUPLICATE, EMPTY, ONE, BEGIN, FIRST, LAST, EXIT, BETWEEN, END, END GROUP, SKIP, and, OTHERWISE.
  • the system may test for and signal some of these conditions by default.
  • An "expression-list” is a user-defined list of parameters to be passed to the condition handler.
  • a condition handler such as WHEN, may be included to specify the action to take when a particular condition arises. This may be used in place of a user-written PDL statement to test for or signal that a condition exists. This may be used in conjunction with a SIGNAL statement to explicitly signal any of the system default conditions. Thus, as an argument to the SIGNAL statement, a user may specify the condition to be signaled and any parameters to be passed to the condition handler.
  • CONNECT and DISCONNECT Two other important PDL statements are CONNECT and DISCONNECT.
  • these statements provide the means by which two instances of entities are caused to be joined at one of their partnership sets by a single partnership.
  • the CONNECT statement may provide the means for causing a new instance of a partnership to be created joining two instances of a partnership set, each of which is associated with an instance of an entity.
  • the two ends of a single instance of a partnership must both be attached to the same instance of a partnership set.
  • each set must include: (1) identification of the type of entity and instance to be connected; (2) identification of the type of partnership set to be connected; and, (3) identification of the rules of insertion to be applied to the new partnership endpoint.
  • These rules may include identification of the new partnership endpoint as the "first" member, as the "last” member, as the "prior” member to some designated current member, as the "next” member after some designated current member, sorted by some attribute value controlled by sorting rules, or in no particular order. Where the maximum cardinality is one, the rules of insertion are moot, as there can then be only one instance of a partnership endpoint at an instance of a partnership set at any moment in time.
  • the CONNECT statement may be an independent statement, or may be included as an extension of an INSERT statement.
  • the CONNECT statement must be treated as an extension of the INSERT statement to assure that the integrity of the partnship set is maintained after the INSERT is completed.
  • the minimum cardinality is one (1) for both partnship sets of the partnership, it may be necessary to actually INSERT both entities and CONNECT them before the information structure is in a consistent state.
  • the minimum cardinality is zero for both ends of the partnership, or where the maximum cardinality is greater than one (1) for both ends of the partnership, it is essential that there exist an independent CONNECT statement which may add partnerships as they are required.
  • the DISCONNECT statement provides the means for causing an existing partnership to be destroyed.
  • the destroyed partnership might be replaced by a new one, several, or none, depending upon the information situation.
  • a RECONNECT statement be constructed as a separate command, or as a pairing of a DISCONNECT statement and a CONNECT statement to assure that the minimum cardinality rules remains intact.
  • the order of the members of a partnership set is defined as being controlled by the values of one or more attributes, then the modification of the value of one of those attributes might require that the members of a partnership set be reordered to maintain the integrity of the declarations.
  • the SORT statement may be defined to cause the members of a partnership set to be placed in a defined sequence on a batch basis, rather than on an ad hoc basis as they are created.
  • ABORT signals fatal error and rolls back all changes specified by the transaction
  • CASE executes zero, one or more of several possible statement lists; compares several possible values to the value of "case selector"
  • DO calls an entity method or procedure from a process procedure, another entity method, or the same entity method
  • EXIT used in iteration blocks to terminate the iteration statement and transfer control to the EXIT condition handler or to the statement following the iteration block
  • FOREACH starts an iteration block, processing a single entity occurrence on each iteration until a specified condition is met
  • LOOP starts an iteration block, processing the statements within the block until a specified condition is met
  • SKIP terminates the current iteration and transfers control to the SKIP condition handler or to the next iteration of the block
  • the logic modeler 6 may be accessed from any of the other three modelers.
  • an IFM having the processes upon which the logic modeler 6 is to act must be opened prior to accessing the logic modeler.
  • the system 10 automatically creates or modifies the corresponding PDL statements and their graphical representations. For example, if an information flow is created from a source/destination object to a primitive process and the contents of the information flow in the IFM diagram 50 are defined, the PDL diagram 80 for that primitive process contains a node labeled "receive" (nodes are described in detail below). The "receive" node represents a PDL statement that describes the source of information coming into the process.
  • the system creates or modifies the corresponding objects in the IFM diagram 50.
  • any of the PDL logical access statements can create a new entity in the IM diagram 50 or a new information store in the IFM.
  • the PDL diagram 100 may also include graphical representation of the process description, and may enable a user to generate a report containing the text of a process description.
  • the graphical representation is in the form of a tree structure diagram, shown in Figure 8.
  • the tree 100 may have a series of nodes 102, pins 104, and PDL statements 106.
  • the nodes 102 appear as boxes on the tree structure diagram 100.
  • the nodes 102 contain text fields, upon which statements from the modelers or from internal language statements, appear.
  • Pins 104 represent the relationship, or link, between statements or parts of statements.
  • the position of a pin 104 in relation to its node 102 indicates the type of pin 104 it is.
  • pin types may include: extension pins 112; root pins 114; parent/child pins 116; qualifier pins 118; and condition pins 120.
  • An extension pin 112 may be used to mark each location where an operator can add nodes 102 to the end of an existing sequence.
  • An extension pin 112 may appear at the end of a main line 108, or at the end of each line that represents a subsection of a process description.
  • a root pin 114 may be used to mark the location, or root, of a node 102.
  • a root pin 114 may appear along any line of a process description.
  • a parent/child pin 116 may be used to mark the beginning of a subtree of nodes, and allows a user to insert nodes 102 at the beginning of a subtree.
  • a qualifier pin 118 may be used to represent a clause that modifies a PDL statement 106 contained in an associated node 102.
  • a condition pin 120 may be used to represent directions for handling exception conditions and errors associated with statements in a node 102.
  • An important aspect of the nodes/pins relationship is that each pin 104 is associated with at least one node 102, and is graphically represented as such.
  • each node 102 and its attached pins 104 represent a PDL statement 106.
  • Pins 104 may also have active or inactive, and may be displayed to the user independent of its status.
  • a pin 104 having active status is defined as a pin 104 which acts upon the associated node 102, whereas a pin 104 having inactive status is defined as a pin 104 which merely represents the possibility of becoming active upon user input.
  • the logic modeler 6 may have a series of windows associated with it which are unique to the logic modeler. These windows may be similar to those used in the other modelers, but may only reflect activities within the logic modeler and associated logic model.
  • PDL statements and their graphical representations can be created either by being generated by the system 10 from objects in the corresponding IM and IFM, or entered directly by the operator.
  • the graphical representations may be in the form of a tree structure diagram 100, a network diagram (not shown) , or other forms customary in the art, which may be displayed in a diagram window 24.
  • a node 102 representing the scope of the description occurs at the top of each PDL diagram 100.
  • the node is generated by the system 10 to describe the process for which the user is specifying a logic modeler 4. All possible qualifier pins 118 and a condition pin 120 appear on the node 102 independent of whether a user has actually entered them as part of the statement.
  • Addition or modification of design data, or objects, in the PDL diagram 100 may be achieved by establishing an editing focus, which may be user-selected and system activated.
  • An editing focus may be a pin 104 to which the user wants to add a node 102, or it can be a node 102 or pin 104 the user wants to modify.
  • the logic modeler When a new node 102 is added to the end of a LM tree of a PDL diagram, the logic modeler automatically creates a new pin 112 that extends from the new node. This extension pin 112 then becomes the editing focus. An operator can easily change this editing focus by selecting another object in the displayed PDL diagram 100.
  • the logic modeler may also include an options modeler and related options windows which present items available for the operator to use in building PDL statements 106 and manipulating PDL diagrams 100.
  • An exemplary option window 150 is shown in Figure 10.
  • the options modeler is a language sensitive editor which generates a display of syntactically valid options for insertion by the user at a selected point in a line of a procedure, specification, or statement.
  • the options window shows only those terms and/or phrases which are syntactically valid for building PDL statements, and thus may be displayed as a PDL palette as shown in Figure 10.
  • the syntactic validity of an option is determined by comparing the options available, to criteria which may be defined by logical relationships, general semantic rules, expert rules, and heuristics.
  • Logical relationships may include requirements such as certain keywords must be used in conjunction with specific identifiers.
  • General semantic rules may include requirements that two keywords cannot occur next to each other without intervening identifiers.
  • Expert rules and heuristics may involve series of user-defined logical correlations which must occur before a PDL statement structure is considered correct.
  • the options window 150 is a tree-like display of items that a user can use to build PDL statements. These items may include keywords, symbols, identifiers, and the names of objects in the corresponding IM diagram 30 and IFM diagram 50.
  • a single PDL palette 152 appears in the options window.
  • the PDL palette item expands to display one or more categories of the PDL grammar. For example, when a user sets the editing focus to an extension pin 112, a root pin 114, or a parent/child pin 116, the following items appear in the options window: verbs, control flow, qualifiers, NOTE.
  • the first three items are categories of the PDL grammar.
  • the fourth item is a PDL keyword that can be used to add comments to procedures.
  • an option modeler may be used in conjunction with any of the modelers, or editors, in designing and building a model. Additional Aspects of the System
  • An important aspect of the present system is a dynamic linking between the design data sets of each modeler.
  • the system automatically creates or modifies the corresponding PDL statements and their graphical representations. For example, if an operator creates a source/destination design data, or object, with an information flow to a primitive process in the IFM, the PDL diagram 100 for that primitive process contains a node 102 labeled
  • RECEIVE represents a PDL statement that describes the source of information coming into the process.
  • the system creates or modifies the corresponding design data in the IFM and/or IM.
  • the dynamic characteristics of the system of the invention may be achieved by use of partnership sets. As best described in U.S. Patent Number
  • partnership sets may be used to control storage, retrieval, and modification of information in a design data collection contained in storage devices in a design data processing system.
  • partnership sets are used to handle complex information sets, as described above.
  • each of the modeler displays may include text having a combination of icons and alphanumerics.
  • the text may be dynamic, such that a user may affect IM design data, IFM design data, FD design data, and PDL design data by interacting with either the icons or alphanumerics. Since the present system is a primarily graphics system enabling an information system user to create graphic models of complex information systems, the ability to use dynamic icons and alphanumerics may be an important feature of such a system.
  • system of the invention may include an internal diagnostic or consistency check which signals to a user when improper terminology is used.
  • Certain processes, semantic rules, logical relationships, expert rules, heuristics, text fields and pins may be stored in a database storage.
  • the present system will check those statements against internally-stored design data. If the input design data does not correspond to the predetermined design data, the improper design data is "flagged" by the system and appropriate flag signals are displayed to the user.
  • the signals may be a part of an iterative process performed within the system.
  • a design task may be included which is an intelligent, rule-based task that automates the repetitive process of examining and modifying the information model.
  • the design task may include expert rules and heuristics against which statements and procedures are checked.
  • the design task works in the following series of steps: (1) using a built-in set of design rules, the design task searches tha information model for objects that might be more complex than necessary; (2) it then displays a list of those objects and actions that might simplify those objects; (3) the user then decides what action to take next, which may be either selecting an action that modifies one or more of the objects, or marking one or more of the objects as correct, thus indicating that the rule is inappropriate for the particular object; and, (4) the user then decides whether to rerun the same design rule, or to run the next rule.
  • a user may also define and implement filters.
  • a filter allows a user to view and operate on a subset of a model.
  • the objects that are included in a subset, or filtered model, are determined by selection criteria defined by a user when the filter is created.
  • multiple filters may be created for the same model, however only one filter can be active at a time. For example, if a user wants to display objects created by a specific user and also display objects of a certain type, two filters can be defined, each including those respective objects. Both of these filters would be applied to the same original model, but they would each produce a subset of that model.
  • a diagram When using the filters, if a diagram is displayed when a filter is activated, the filter takes effect immediately. That is, all objects which do not meet the selection criteria of the filter are automatically cleared from that diagram. It may be possible to implicitly include objects when an object is explicitly selected to be included in a filtered model. For example, if an information flow is the selection criteria of the filter, the objects that are the source and destination of that flow are implicitly selected, but not associated subordinate objects, such as flow structures. Similarly, when a diagram of a filtered model is displayed, objects that meet the filter selection criteria are displayed, along with any objects upon which their existence may depend.
  • the system of the present invention enables a user to describe the elements and concepts most important to a business organization. Building a model of complex organizations facilitates the communication of vital business functions among the many departments of an organization.
  • PDL enables a user, in a specification/design mode, to specify business logic for a model.
  • Objects and processes i.e. PDL design data
  • PDL enables a user to manipulate instances of objects and processes of the model.
  • Such objects and processes, in both modes include entities, attributes, processes, messages, and relationships.
  • the processes may be independent processes, or cooperating processes which are focused upon the successful processing of individual "business transactions".
  • the transactions specified by PDL are business transactions which are declared to be indivisible elements.
  • the PDL essentially enables the system to assure that a user is working with such indivisible elements by providing a means for defining pieces of discrete business processing.
  • the business world, or environment of an organization can thus be defined in terms of discrete transactions which are known and either processed or not processed.
  • validity checks need to be performed each time an instance of an object or process is manipulated or a process is defined. To do so, user data is effectively maintained in a static form until the specific transaction either becomes "successfully" or "not successfully” processed.
  • the business transactions related to the processes specified by the PDL are thus indivisible elements of work which are to be treated by the business as being in one of four states: waiting to be processed; in process; completely and successfully -5fi-
  • the rules expressed by the PDL for one business transaction can only either specify access to information in an information store that has been placed there by completed other business transactions, or specify receipt of messages from completed business transactions.
  • the PDL enables the storage of new information in the information store, and the sending of information intended for other processes.
  • the stored information will immediately be available to processes cooperating on the same business transaction.
  • an unsuccessful process it may make changes to the user data, and send messages reporting an unsuccessful transactions after its prior actions have been undone. Processes working on other business transactions will not be able to access the new information, nor will the processes be aware of the generation of the messages until after the source process has either successfully terminated or declared that it has been aborted.
  • the present system with PDL enables a user to manipulate instances of objects and processes within a model. That is, the user data is essentially put into a static state during which operations are, in effect, reversibly performed without affecting existing instances of objects or processes. That is, changes to the user data are performed in "quarantine", and are not incorporated into the user data until the process is determined to be (in accordance with criteria or algorithms defined by the PDL design data), and reported successful or unsuccessful. A user-specified process may then abort the action without side-effects to the existing user data, or commit the action. This is analogous to having a master "undo" command which retrieves data deleted, but temporarily stored, in an application. The changed user data may be made accessible for processing in conjunction with other business transactions.
  • a PDL ITERATOR statement may be a major block of a program, having a number of nested blocks. Each nested block contains the logic to be executed under a designated circumstance or set of circumstances.
  • the system of the preferred embodiment may also include entity-sets.
  • entity-sets are defined in terms of references to entity types and conditions.
  • an instance of an entity-set contains references to a list of entity instances, which are then treated as a value.
  • entity-sets may be assigned to a variable or to the attribute of an entity, or may be used as an operand.
  • such entity-sets may be the operand of an ITERATOR statement.
  • An entity-set variable provides the means for storing and accessing a list of references to entity instances. In the execution mode, this collection of references is ordered, i.e., there is a "first" reference, a sequence of "next” references, and finally a "last” reference. The sequence of references is preserved, unless some explicit action is made to reorder that set. New references may be added to, deleted from, or rearranged in the list. It may be possible for one entity instance to be referenced in an entity-set more than once, however explicit action may be used to hide duplicate references to a single entity instance.
  • the type of entity instances referenced within an entity-set may be of the same or different entities.
  • An entity-set is a generalization of the partnership-set of the partnership data model. It takes the properties of a partnership-set expressed as a particular property of an entity and characterizes it as a holder of a list of entity references. These properties are transfered to a new type of data variable, which is not necessarily identified with a particular entity.
  • the assignment of a list of references from a partnership-set has the effect of transforming that list from a dynamic list, responsive to the creation and deletion of partnerships between the subject partnership-set and other partnership-sets, into a static list subject only to explicit commands addressing that list.
  • data variables are named storage structures, where each data variable is specialized to handle particular types of data.
  • an operator may declare a variable to be an entity-set variable; during operation in the execution mode, a user data value may be assigned to an entity-set variable.
  • an entity-set has three basic states: empty (i.e., the entity-set has no members); not-empty (i.e., the entity-set has a list of one or more entity references); and, undefined (i.e., no entity-set, either empty or not empty, has been assigned to the data variable) .
  • the undefined state may appear initially after the data variable has been established but before any value has been assigned to it.
  • the undefined state may also arise subsequent to a data variable being nullified.
  • the association of data variable with a data type entity-set enables the separation of the idea of the set of entity instances associated in partnership with a partnership-set, from the act of iterating over the list of entity instances of a partnership-set to perform the actual processing of those entity instances.
  • a SELECT statement may be used to assign an entity-set to a data variable, and to hold that entity-set value until it becomes appropriate to take some action against the set of entity instances referenced by the entity-set value.
  • Establishment of entity-set data types enables the identification of data variables, including those which are process-local variables, as well as those attributes of entity instances which may be defined, as having the data type of entity-set. Further, any operation which may be performed upon an entity instance may also iteratively operate on a set of entity instances by referencing a variable of the type entity-set. Specifically, within the logic modeler of the preferred embodiment, PDL statements may act upon entity-set variables. Operations may also involve two or more entity-sets. For example, entity-sets may be merged, concatenated, compared, joined, and tested for the inclusion of one within the other, or the exclusion of one from the other.
  • PDL is used to manipulate business transaction design data
  • other embodiments may use mechanisms independent of the PDL of the present system.
  • Business transaction design data may correspond to transaction-related information, such as rules of transactions which operate on entities, attributes, and relationships. These rules may include processing algorithms, and may be stored internal to a computer system. User data may then be transformed in accordance with the transaction design data.
  • the user data of the entire business transaction model described above may be held in an externally perceived static state, while that data is effectively internally transformed in a reversible manner.
  • the discrete elements of the user data of a business transaction may be tested against the existing user data without making externally perceived changes to the existing user data.
  • external signals may be sent by a user to either commit (if "successful") or abort (if "unsuccessful") the changes to the user data.
  • the process may make changes to the user data and send other messages that are relevant to the unsuccessful transaction (e.g. indicative of the unsuccessful processing) .
  • the changed user data then becomes fully externally accessible.
  • Appendix A is a complete printout of the object code for the system described in detail above and is incorporated herein by reference.
  • Appendix B is a manual describing a preferred embodiment of the present system.

Abstract

A computer system (10) for dynamically modeling information systems of organizations. The system (10) includes a plurality of editors (4-7) which enable a user to interact with the system, and an adaptive window system (3). Included in the computer system is an information modeler (4), a process modeler (5), a function modeler (7), and a logic modeler (6) for creating, analyzing and modifying design data associated with each modeler, and a filter for creating a subset of a model established by a modeler. Each of the modelers are dynamically interlinked, such that a change to one design data set (40) will affect a corresponding change in other design data sets (40). The system includes graphic representations (50) associated with each of the modelers to enable a user to interact with the system. The objects (60, 62) of each of the graphic representations may also be dynamically linked, such that a change in one representation affects a substantially immediate change in other representations. The system further enables a user to 'explode' a process (56) from a graphical representation, or diagram, into its corresponding subprocesses (58, 60, 62).

Description

DYNAMIC INFORMATION MANAGEMENT COMPUTER SYSTEM
BACKGROUND
This invention is directed to a computer system for dynamically modeling information systems of organizations and building models of complex business transactions and creating and manipulating subprocesses and subsets of dynamic information system models of organizations.
Early computer information processing systems stored, retrieved, and modified data contained in files specifically created for each information processing application. Knowledge relating to the structure and content of each data file was coded directly into each application program. When a need later developed to use the data within the data file for additional purposes, the user often created other primarily redundant data files, writing a specific application program to interact with each of these files. Subsequent changes in the content of any data file frequently mandated modification of related data files. If the user wished to avoid creating redundant data files, those modifications necessitated by additional demands were made to the original data file. Again, application programs were written to perform new tasks on the modified file.
However, the data file modifications sometimes hampered operation of earlier application programs, thus requiring their modification. As a consequence, computer installations involved in data processing faced the recurrent task of choosing between data file redundancy and repeated software modifications.
With the advent of so-called data base management systems, many of the problems encountered in the early information processing systems were alleviated. In addition to removing the need for the application program to address the intricacies of data file manipulation, data base management systems promoted efficient design, enhanced file maintenance and modification, eliminated data file redundancy, and provided substantial documentation regarding data file structure.
With the shift to data base management systems, the concept of dual data representation fully emerged. The first level of data representation, the physical representation, relates to the manner in which individual data records are stored and how their inter-relationships are depicted. The second level of data representation, the logical representation, describes the data base users' view of the data. The physical representation of the data is generally of no concern to the data base user. Rather, the task of manipulating individual data storage areas is left to the data base management system.
Data variables are named storage structures which may be used to store information, and which are basic features of information systems. These variables are capable of being assigned a value, holding that value as long as the data variable survives, and returning that value one or more times upon request. The current value of a data variable essentially remains unchanged until some explicit action is taken to change the content of the variable. These data variables have a number of applications, such as being the attributes of entities, being independent global attributes, being variables of processes, and being variables of operating systems, the values of which are available to all processes. While data variables are capable of storing various types of information, each is generally specialized to handle one type of data, such as character strings, integers, or real numbers.
At the first level, data variables may be used to store information. Data variables are named storage structures, and are a basic feature of information systems. These variables are capable of being assigned a value, holding that value as long as the data variable survives, and returning that value once or more times upon request. The current value of a data variable essentially remains unchanged until some explicit action is taken to change the content of the variable. These data variables have a number of applications, such as being the attributes of entities, being independent global attributes, being variables of processes, and being variables of operating systems, the values of which are available to all processes. While data variables are capable of storing various types of information, each is generally specialized to handle one type of data, such as character strings, integers, or real numbers. Of concern to the data base user, however, is the logical representation of the data, since the users' ability to store, retrieve, and modify aggregations of data items, data records, and data relationships is dependent upon the form in which the data base management system presents data to the user.
Information management systems handle complex environments often consisting of hundreds of elements and relationships, permitting users to manipulate and employ data in ways not always anticipated by systems designers. Representation of such elements and relationships to a user presents a unique set of problems not encountered, and certainly not resolved by present data base management systems. Instead of being organized into application-oriented files, which are always addressed in the same way, as in data base systems, the information is organized so that it can be addressed in a variety of different ways, and can be used to answer a diversity of queries. All the interesting facts about entities are stored together rather than merely those facts needed for one application. As pointed out by J. Martin, "Computer Data-Base Organization", 2d ed., chapter 3, pp. 24-25 (1977), this "reservoir" concept of information systems is much easier to conceive than to implement. It is a complex and lengthy operation to build up such data bases, and it is expensive to search sufficiently quickly to give real-time answers to unanticipated queries.
The use of diagrams and windows is one way to depict the intricate relationships among entities, attributes, and other data elements in a complex information model. A variety of "windows" have been used in application programs to facilitate user interaction with a computer system. Windows have been used to show a user a "menu" of selection of operations which may be performed. Windows have also been used for displaying error messages. However, windows are not anticipatory, i.e. are not able to provide a tailored selection of options available to a user at a particular point in time or text.
The management of information has evolved into the field of Computer Aided Systems Engineering (CASE). As described by C. Gane, "Computer-Aided Software Engineering: The Methodologies, the Products, the Future" (1988), some of the common characteristics among CASE products are that they internally build a design database "at a higher level than code statements or physical data element definitions," and that they "typically hold[s] information about the data to be stored in the system, the business logic of the processes to be implemented, their physical layout of screens and reports, and other requirements/design information."
There are several such CASE products presently available. Two such products are EXCELERATOR, from Index Technology, Cambridge, Massachusetts, and IEW, from Knowledgeware, Inc., Atlanta, Georgia. EXCELERATOR enables an operator to work with data flow diagrams and data model diagrams, structure diagrams. An operator may also modify, delete, copy, rename, list or add a diagram. Diagram objects may be user defined, and are stored in a dictionary.
In a similar manner, IEW enables a user to work with, and create or change objects on diagrams, which affects an encyclopedia but not existing displays or screens. In addition, IEW can model relationships, entities and attributes together, or entities alone, but does not model attributes alone. It is often useful to manipulate attributes independent of entities to which they may later be tied.
Since one of the attractions of CASE for managing information systems is the availability of graphical tools for analysis, it would be important for a user to be able to graphically work in "real-time", i.e. the ability to make changes to diagram objects, and see a corresponding change to corresponding diagrams on existing screens. Such dynamic linking of objects and diagrams would then become an important aspect of an effective information management system utilizing CASE technology.
In conjunction with graphical tools for analysis, a user may desire to work with only a portion or subset of an entire complex model. A user may want to test objects on a subset of a model before integrating such objects into the entire model, while still retaining the ability to work with the subset in real-time. Existing systems are not believed to provide a dynamic subset of a model which may be user manipulated. A user may choose to create and manipulate subprocesses of existing processes. In a complex environment, it may be desirable to have the ability to embed several processes in a single process for later display and manipulation. In such a manner it may be possible for users to more effectively work with complex information managements systems in a real-time setting.
A user normally treats business transactions as indivisible elements, each transaction making a state change to the external environment. In a complex environment, it is important to provide intermediate states for purposes of modeling that environment. Present systems do not provide for such real-time modeling of business transactions. There is thus a need in the information management field for a computer system which assures that a user is working with a valid model of business transactions as indivisible elements. Of particular importance in the field of complex business transactions, it would be desirable to have a system which allows a user to test different objects of a model without making irreversible changes to the preestablished model.
It is an object of the present invention to provide an improved information management system.
Other objects, features and advantages of the invention will be apparent from the following description of the preferred embodiments thereof, and from the claims. SUMMARY OF THE INVENTION
Briefly, the present invention is a computer system for dynamically modeling information systems of organizations. The system includes a plurality of editors, or modelers, which enable a user to interact with the system. The interaction may occur via text, tree diagram, or other graphical representation. Such representations also enable the user to dynamically interact with the system.
The system may include at least one information modeler, which provides a dynamic environment for the user to create, analyze, and modify IM models which contain IM design data. The IM design data may be representative of entities, attributes, relationships, entity methods, partnership sets, and combinations thereof, each of which may be effected by externally applied signals.
An option modeler may include stored predetermined option criteria which is compared with PDL design data, or design data of the logic modeler, for syntactic permissibility. An options window may then display the options which are syntactically permissible at any time during the model building process. The options window also enables the user to dynamically interact with the system.
The system may also include at least one process modeler, providing a dynamic environment for the user to create, analyze, and modify IFM models containing IFM design data. The IFM design data is representative of processes, information stores, information flows, messages, sources and/or destinations. In general, the IFM design data, specifically information flow contents, correspond to IM design data entities. The IFM modeler and the IM modeler can be dynamically linked, such that a change in one design data set will affect a corresponding change in the other design data set.
The system may also include a logic modeler, which provides a dynamic environment for the user to create, analyze, and modify logical operations to be performed on the IM design data and the IFM design data. The logic modeler displays the system in text, tree diagram, or other graphical representations. The resulting display may be dynamic, enabling the user to affect IM and IFM design data, as well as the operations to be performed on that design data.
The system can also include a function modeler, which enables a user to generate a function decomposition diagram, displaying the processes of IFM design data and any related subprocesses. The subprocesses may be displayed in a hierarchical fashion, and the user may dynamically manipulate the objects contained within the decomposition diagram.
The system may include filters for creating subsets of a model. Each model subset is defined by operator-determined selection criteria. The subset is created by applying the selection criteria to the design data set of the model to be filtered. The resulting model subset may be displayed in a graphical representation. Such representations may enable the user to dynamically interact with the system.
Representation of the system may be in the form of a node and pin notation, where nodes define text fields which contain statements and design data. Attached to the nodes may be pins, which identify locations where modifications may be specified for the operation associated with a particular node.
Representation of the system interfaces with the user may be established via a series of windows. These windows may include: an options facility, for displaying and selective interaction with the editors; a feedback window, for selectively displaying messages from the editors to the user; and a diagram window, for displaying representations of the system, or aspects of the system, for user interaction therewith. The system may also include syntactic and/or semantic checks of the input from the user. Errors may generate flag signals, which would appear in any of the windows.
In addition to the function modeler, a user may also "explode" a process from an information flow diagram to its corresponding subprocesses. This creates high-level processes and primitive processes. A high-level process is one which has one or more corresponding subprocesses, whereas a primitive process is one which has no corresponding subprocesses. The logic modeler may be accessed to generate a diagram from each primitive process. In addition, the resulting exploded process may simultaneously be displayed with the information flow diagram from which it is derived. In a similar fashion, subprocesses may be "hidden" within a process on an information flow diagram or PDL display, creating high-level processes from groups of primitive processes.
The system of the invention may further include a programmed data computer adapted to establish one or more partnership sets within at least one design data, where each partnership set is representative of zero, one or more partnerhips. The computer is further adapted to establish one or more partnerships, wherein each partnership is characterized by one partnership set associated with itself or associated with one other partnership set. The computer controls access to one or more design data by reference to a partnership set which is in partnership with partnership sets of one or more design data.
The system may include storage means for storing transaction data, such as entities, attributes, and relationships. The stored transaction data may then be reversibly transformed, in accordance with predetermined processing algorithms, while it is externally inaccessible. In this externally inaccessible, or static, state the transformed transaction data is evaluated against predetermined logical criteria, such as logical or semantic rules. The evaluation produces either successful or unsuccessful results. If successful, the transformed data is then made externally accessible. If unsuccessful, the original transaction data is made externally accessible. In this manner, transaction data may be tested in an information system model without irreversibly affecting the existing model.
The system may also include storage means for storing ordered sets of references to design data, such as entities. The ordered sets, or entity-sets, are assigned a value, and may then be manipulated in a manner similar to a data variable. The references may be ordered in accordance with predetermined criteria, or operator selected criteria.
Finally, the system may include nested blocks for iteratively processing transaction design data. The transaction design data may be representative of any of the data associated with the design data sets of any of the modelers of the system, including entities, attributes, relationships, and processes, to name a few. The use of an "iterator" statement enables the system to transform transaction data at an outer subsystem and a nested subsystem level. Control is passed from the outer subsystem to the nested subsystem, during operation of the system, to enable iterative processing and evaluation of transaction data against various predetermined criteria. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a flow diagram of an embodiment of the invention.
Figures 1-1 through 1-72 collectively show a detailed entity-relationship diagram of the embodiment of Figure 1.
Figure IA shows a diagram designating the relative position of each of Figures 1-1 through 1-72,
Figure 2 is a diagrammatic representation of display windows and facilities of the invention of Figure 1.
Figure 3 is a diagrammatic representation of an E-R diagram display which may be generated through an IM modeler of the invention of Figure 1.
Figure 3A is a diagrammatic representation of a "create" form which may be accessed through an IM modeler of the invention of Figure 1.
Figure 4A is a diagrammatic representation of a network diagram display of the invention of Figure 1.
Figure 4B is a diagrammatic representation of multi-layered overlapping boxes display of the invention of Figure 1.
Figure 5 is a diagrammatic representation of an IFM diagram display of the invention of Figure 1. Figure 6A is a diagrammatic representation of an IFM diagram display of the invention of Figure 1 having exploded processes, prior to creating a new process boundary.
Figure 6B is a diagrammatic representation of an IFM diagram display of the invention of Figure 1 having a new process incorporating subprocesses.
Figure 7 is a diagrammatic representation of an FD diagram display of the invention of Figure 1.
Figure 8 is a diagrammatic representation of a PDL diagram display of the invention of Figure 1.
Figure 9 is a diagrammatic representation of a PDL diagram displayed in a diagram window of the invention of Figure 1.
Figure 10 is a diagrammatic representation of an options window of the invention of Figure 1.
Like reference characters in the respective drawn figures indicate corresponding parts.
DESCRIPTION OF THE PREFERRED EMBODIMENT
In the preferred embodiment of the invention disclosed herein, a system 10 operates using a programmed IBM-compatible 80386 personal computer, having an OS/2 operating system. Other computer hardware and operating systems, such as UNIX or DOS, may be used, with some modifications to the software. Although the preferred embodiment uses C as its programming language, other programming languages may be used to implement the present invention.
The system 10 assists data analysts and systems analysts in building models of information systems of organizations. These models, or files, can be stored in a database and shared among analysts. In its preferred embodiment, shown in Fig. 1, the system 10 consists of four modelers, or editors, which can be used to build models, each of which gives a different perspective of the same design.
The system 10 further includes a controller 2 and a display 3. The four modelers include: the information modeler 4; the process modeler 5; the logic modeler 6; and the function modeler 7. Each of these modelers generate corresponding models or diagrams, having design data which may be created, analyzed, and modified by a user. These models and • diagrams are referred to as the information model (IM), the information flow model (IFM), the Process Description Language (PDL) diagram, and the functional decomposition (FD) diagram, respectively. Each of these models and diagrams may be dynamically linked in the manner described in further detail below.
Figures 1-1 through 1-72 collectively show a detailed entity-relationship diagram of the preferred embodiment of the invention. Figure IA shows a diagram designating the relative position of each of Figures 1-1 through 1-72 to form a composite, complete entity-relationship diagram of the preferred embodiment.
The following TABLE 1 identifies, in column I, elements of the system shown in Figures 1-1 through 1-72. TABLE 1, column II, identifies corresponding names for certain of the elements of column I which are used in the description below.
TABLE 1 Column I Column II
ABORT abort
ABORT-CLOCK
ALLOW-EXPRESSION
ALLOWABLE-VALUE allowable value
ANY-SELECTION
APPL-ATTRIBUTE
APPL-ENTITY
APPL-P-SET
APPL-PARTNERSHIP
APPL-STRUCTURE information structure
ARGUMENT
ATTRIBUTE attributes
BEGIN
BETWEEN
BLOCK CALLED-PROCEDURE CHAR-STRING TABLE 1 (Cont'd.)
FLOW-MODEL FLOW-P-SET flow-partnership set FLOW-PARTNERSHIP flow-partnership FLOW-STRUCTURE message information flow contents
FOR-EACH foreach loop
FOR-EACH-BLOCK FOR-EACH-TYPE
GLOB-PROCEDURE TABLE 1 (Cont'd.)
GROUP-ATTRIBUTE
GROUP-DOMAIN
GROUP-VALUE
IF if
IF-BLOCK
IM-CONDITION
IM-PROCEDURE methods
IM-PROCEDURE entity methods
IM-PROCEDURE attribute methods
IM-PROCEDURE partnership-set methods
IMAGE
IML
IML-BLOCK
INFO-BASE
INFO-FLOW
INFO-MODEL information model
INFO-STORE information-store
I ST-APPL-ATTRIBUTE
INST-ELEM- TTRIBUTE
INST-GROUP-ATTRIBUTE
INST-SUB-ATTRIBUTE
INST-TOP-ATTRIBUTE
INT-CALLED-PROCEDURE
INT-PROCESS high-level process
IS-ATTRIBUTE
IS-ENTITY
IS-OBJECT
IS-PARTNERSHIP
IS-P-SET
IS-STRUCTURE
JOIN
KEY key LAST LEAVE skip
LEAVE-PROCEDURE LITERAL
MAP
MODIFY update
MOVE
NLS-CHARACTER NONE TABLE 1 (Cont'd.)
NOTE NUMBER
ONE
OPERATOR
OTHER-ATTRIBUTE
OTHER-ENTITY OTHER-P-SET OTHER-PARTNERSHIP OTHER-STRUCTURE
P-SET partnership-sets
PARAMETER
PARTNERSHIP relationships
PERSON
PL-ATTRIBUTE
PL-ENTITY
PL-P-SET
PL-PARTNERSHIP
PL-STRUCTURE
PREDICATE
PROC-BLOCK
PROC-PROCEDURE
PROCESS processes process local store
RECEIVE receive resume
RETURN return ROLLBACK
SELECT
SELECTION
SEND
SORT
SOUND
SOURCE source
STATE
STATEMENT
STOP
STORE create
STORE insert
SUB-ATTRIBUTE
SUB-VALUE TABLE 1 (Cont'd.)
TERM-PROCESS primitive process
TEXT
THEN
TOP-ATTRIBUTE
TOP-VALUE
TRANSACTION
TRANSITION
VALUE
VARIABLE
VIEW-ATTRIBUTE
VIEW-ENTITY
VIEW-P-SET
VIEW-PARTNERSHIP
VIEW-STRUCTURE information flow contents
WHEN when
The primary interface between a user and the system of the invention is through a series of interactive graphics windows presented to the user in the display 3. The windows display text, tree structure diagrams, or other graphical representations of each of the modelers. As shown in Figure 2, when a user accesses either the information modeler or process modeler, three windows will generally appear: an options facility 20; a feedback window 22; and, a diagram window 24.
The options facility 20 consists of a hierarchy of items which enable the user to perform actions on a specified model. By activating an element displayed in the facility, for example by placing and activating a cursor over the element, a selected model may be activated or deactivated. This facility may also display selections not presently available to the user at that time. The feedback window 22 displays messages informing the user of one or more of the following: when an action has taken place; what step to take next; any mistakes or errors which may occur; when the user is entering or exiting a modeler or mode.
The diagram window 24 displays diagrams generated by each of the modelers. This window 24 generally includes the capability to scroll in any direction to view a diagram which is too large to fit in the window 24. Once a diagram is displayed in the diagram window 24, a user may edit the diagram, or create a new diagram. This window 24 also provides a dynamic environment for user interaction to the modelers.
Additional windows may be added or included in the present system. For example, pop-up windows (not shown), context menus 26, and icons (not shown) may appear at various times and at various locations on the CRT of a computer. Pop-up windows may be used to control user interactions with the system. Sometimes a pop-up window may be used to provide choices, or warn of a problem. Context menus may be included to enable the user to perform actions within a specific context, or model. An item in a context menu may function in the same manner as the corresponding item in an options facility, but may occur at different times or locations than the options facility. Icons may appear at various locations on the CRT, for example in the lower left corner when a model is initially opened, or as a reminder that other modelers and models are available. Diagrams and forms of the system of the are tools used for defining and manipulating objects of the overall business information system model. Once an object is created using any of the modelers, or editors, of the system, it exists in the system and can be displayed graphically in any applicable diagram, or textually in a form. When an object is manipulated, the new information about the object is accessible from any applicable diagram or form, which provide different ways of accessing the same model objects by offering different perspectives of the same system.
An additional editor, the options modeler 5A, is available from the logic modeler 5. The options modeler is a language sensitive editor which prompts the user with grammatical options which may be inserted at any selected location. The modeler 5A defines what can be selected by the user and inserted into a PDL statement, which is further described below. The modeler 5A presents the options to a user in an options window, and shows only the next available syntactic phrase or term. Thus, at any point, the option modeler provides only syntactically valid options.
It is also possible to display subprocesses for a process contained in an information flow model concurrently with an information flow diagram in the diagram window. In the preferred embodiment, while an activated information flow model (IFM) diagram is displayed in the diagram window, a user may selectively display subprocesses to specified process within that IFM diagram. This "process explosion" is described in further detail in the section labelled "Process Modeler" below.
Since the four models are essentially views of the same information system design, an operation applied to one model using a particular modeler has an immediate effect on another model. This may be accomplished by maintaining logical relationships between the models, thus keeping the representation of design data consistent with the underlying design. It is important, therefore, that a change to a model or diagram in one modeler is reflected in other models and diagrams. For example, if a process is deleted through the function modeler, the deletion is automatically and immediately reflected in the IFM diagram. By way of further example, if a process having associated information flows is created through the process modeler, the information flow model objects, or IFM design data, are reflected in an activated PDL diagram. This change may occur substantially immediately, i.e. without any additional user input.
The preferred embodiment is a system designed for interaction with a human user. However, the system may also be incorporated into a larger system whereby the "user" becomes a generic "operator", such as another computer. The operator may include magnetic tape devices, which download information into the present system. Any other technology which permits transfer of design data, or information, such as laser disc memory devices, may be used. The operator may also be an artificial intelligence device which not only provides design data input, but is capable of dynamically interacting with the present system.
Information Modeler
An information model describes the objects that are used within the system. The information modeler 4 of the present system invention includes an editor for creating, analyzing, and modifying entity relationship data models, referred to below as information model (IM), and for generating entity-relationship (E-R) diagrams which describe relationships between entities. An exemplary E-R diagram is shown in Fig. 3. The information modeler consists of IM design data, or IM objects, which may include entities, attributes, attribute methods, relationships, entity methods, keys, domains, dimensions, allowable values, and partnership sets. The modeler 4 also enables the operator to import existing information models created on other systems, or in other environments, into the present system 10.
As used in the field of the invention, the term "entity" is generally defined as an item about which information is being stored. An entity may be a tangible object, such as an employee or a part, or may be an intangible concept, such as a job title or an event. The term "attribute" is generally defined as properties of entities. For example, for an entity "customer", attributes may include address, company affiliation, or salary. A "relationship" describes the correlation among entities, or among attributes. Alternately, attributes may be "free" attributes. Free attributes are attributes not associated with an entity. For example, an attribute may be used to hold constants, or contents of flows that go between processes. A free attribute may later become associated with an entity, or may remain independent.
"Partnership sets" are described in detail in U.S. Patent No. 4,631,664 (Bachman, Dec. 23, 1986). In the present system, partnership sets are used both for storing and manipulating information. Thus, using the information modeler 4, a user may define objects within the system as partnership sets. Internal to the system, partnership sets are established to provide the medium through which design data is accessed and exchanged among the modelers of the present system.
An "entity method" is a PDL procedure (defined below) attached to an entity in an E-R diagram rather than to a process in the IFM diagram. Each entity method defines a generic operation to be performed on all occurrences of the entity, similar to methods in object-oriented programming. The use of entity methods protects applications from changes made in the design data model. Similar to an entity method, an "attribute method" is a PDL procedure associated with an attribute.
A typical use for an entity method might be to specify a referential integrity rule required by a user's business. For example, a company may have a rule that requires the "last-customer-number" attribute to be incremented by one each time a new customer is created, and the assignment of that number to the new customer. The traditional "process-centered" approach would force all developers of applications to include the code for this operation each time an application creates a new customer. However, a "create-customer" entity method may be created to handle this operation. Then, whenever an application creates a new customer, the developer calls the "create-customer" entity method which insures that the "last-customer-number" attribute is incremented by one and assigned to the new customer.
A "derived attribute" is an attribute having a value which is calculated each time it is used in a procedure. The value is not stored in the database, but is recalculated when it is used. For example, for a transaction-based system, a user might create a derived attribute, called "total-tax", that calculates the total sales tax for each sales transaction. A PDL statement is then used to create a derivation rule, which sets the derived attribute "total-tax" equal to 5% of the value of the stored attribute "subtotal-taxable." Once a derived attribute is created, it can be used in the same manner as any other attibute derived in an E-R diagram.
A key is one or more entity components that uniquely identifies an occurrence of an entity. For example, every house has a unique address and every employee has a unique employee identification number. In the preferred embodiment of the system, unique keys may represent one or more attributes, partnership sets, or a combination of both attributes and partnership sets. Keys may be primary, alternate, or foreign. A primary key represents a combination of attributes and/or partnership sets that uniquely identify each occurrence of an entity. For example, "Emp-Address" attribute of an Employee entity.
Any key other than a primary key is an alternate key, which may later become a primary key. For example, a customer can be uniquely identifed by a customer identification number, or by a name and address combination. A user can choose either identification form as the primary key for the Customer entity. The other key is then an alternate key.
Foreign keys represent attributes and/or partnership sets used to establish a recursive relationship or a relationship with another entity or partnership set. Attributes within the entity may correspond to some or all of the attributes in the primary key of a partner entity. That is, a foreign key is a primary key in one entity that acts as a unique identifier in a partner entity, a partner entity essentially being referenced by the primary key in the other entity.
To create a new information model, the user selectively interacts with the options facility 20 to the information modeler 4 to indicate that a new file is being created. The options facility 20 may include various forms of information display, such as a palette, a dialog box, or context menus, depending upon the type of information to be displayed and/or ergonomic criteria. The new information model (IM) is named, and identified as to type of model. In the preferred embodiment, a diagram is generated in the diagram window 24. An operator may then create an IM by creating and placing IM design data, or objects, in the IM diagram. The IM design data may include entities, with associated attributes, relationships, text blocks, and entity methods. In the preferred embodiment, IM design data may include at least the following objects and combinations: attributes; attribute methods; entities; entity methods; partnership sets; partnership set methods; entities and relationships; entities and attributes; and entities, relationships, and partnership sets.
To create one or more entities, an operator selects an element in the context menu 26 corresponding to "create". A "create" form 40, shown in Figure 3A, is then displayed in the diagram window 24. The operator then describes the entity by entering the following information: entity name; description; name of parent entity; and expected volume. This information is then stored, and selectively displayed upon later recall by either the operator or one of the modelers.
Attributes may be created in a manner similar to entities, and are described by the following information entered by an operator: attribute name; description; expected length; domain; data type. Data type of an attribute generally may include integers, strings, and the like. Domains may be used to define useful, recurring data types. For example, "date" is a domain, made up of separate pieces of data, each of which may be defined as subdomains. Attributes may only be assigned superior domains as data types. A domain can consist of one or more pieces of data. In the present system, deleting a domain does not delete attributes with that data type, but does leave attributes without data types. Dimension allows a user to group domains which are comparable in value. For example, a value space may have one or more representations such as U.S. format (e.g., November 2, 1990), or European format (e.g., 2 November 1990). By making a dimension "date", all attributes having "date" data type, regardless of format, will be shown.
In the preferred system, attributes may be created independent of entities. Using the partnership set protocols described in U.S. Patent No. 4,631,664, relationships may be one-to-one, one-to-many, or many-to-many, depending upon the type and complexity of the system or model created.
Once an IM is created, it may be displayed as an IM diagram, as either network diagrams or multi-layered overlapping boxes, shown in Figures 4A and 4B. Other graphical representations may be used, such as text or tree structure diagrams (not shown) . Each design data, or object, of the diagram, or text, may be dynamically activated by the user to modify, analyze, or create the associated IM. Thus, the information modeler 4 may be accessed by the operator by means of the diagram window 24. In a similar manner, the IM diagram 30 may be manipulated as to size or object location. In the preferred embodiment, a pointing device, such as a mouse, is used in conjunction with the system 10 to manipulate a pointing icon in the related windows. Thus, the pointing icon may be used to expand or contract the size of the diagram, the size of the design data associated with the diagram, and placement of the design data in relation to the diagram.
Process Modeler
The process modeler 5 of the preferred embodiment is an editor used to define an information flow model (IFM). An IFM describes a function that occurs within the system. The process modeler 5 enables an operator to define the processes, information stores, information flows, messages, and sources/destinations of the system. The information store of a process modeler 4 corresponds to design data elements in an IM. The information flow of a process modeler represents the flow of design data elements which are usually defined in an IM.
Therefore, in the preferred system 10, the IM is generally established before the related IFM. The IM to which an IFM is attached can be empty; that is, it does not have to contain entities, attributes, or other elements. Thus, an operator may begin modeling a system with an IFM diagram, generated through the process modeler to describe relationships between objects in a process model. An exemplary IFM diagram 50 is shown in Figure 5.
A new IFM can be created through the process modeler 5 in the same manner that a new IM can be generated through the information modeler 4, as discussed above. Generally, creating a new IFM requires operator input of the following: a model name; identification of an associated information model; target database in which the IFM will be stored; and model type. An IFM diagram may be associated with the process modeler 5 such that a user may dynamically interact with the diagram in creating, analyzing and modifying an IFM. Once an IFM diagram is generated, after the above-mentioned information is entered by the user, IFM design data, or IFM objects, may be selectively placed on the IFM diagram. The IFM design data includes processes, information flows, messages, sources/destinations, process local stores, events, flow-partnership, flow-partnership set, flow-entity, flow-attribute, and information stores. After one or more IFM design data are created by the operator, information flow can be added between them. Duplicate names for design data or flows are generally not accepted within an IFM.
In the preferred embodiment, an information flow may be added to the model once at least two processes, or a process and an information store, or a source/destination object are present. Generally, data cannot flow between two information stores, or between two source/destination objects without an intervening process. Therefore, the preferred system accesses information flows created between two processes, between a process and a source/destination, or between a process and an information store. The contents of an information flow are generally referred to as messages, which may consist of design data. Information stores may be created to contain one or more entities, and may be included in the process model. There is an association between information stores and entities, which may be graphically represented in E-R diagrams. An entity may exist in one or many information stores. Therefore, the IFM diagram, IM diagram, and associated process model and information model forms are linked by the association of the information store and the entity. Forms, like diagrams of the preferred system, may be used as tools for defining and manipulating all objects of the system. Diagrams and forms provide graphical and textual ways of accessing the same objects of the system.
In the preferred embodiment. Events are the one control flow design data in the IFM diagram. Examples of Events include Clock/Calendar Events, User Events, Database Events, and Flow Events. A Clock/Calendar Event may indicate that a process is to execute at a specified time. For example, a user might specify a process to run every day at 2:00pm. User Events generally correspond to a user demand, for example, an explicit "run this process". A Database Event may be a mechanism that initiates the execution of a process based on the changing of an information store value. For example, if a customer goes from having good credit to having bad credit, this might trigger the "send threatening letter" process. A process triggered by a Flow Event begins execution upon the arrival of the flow structure. Flow Events must correspond to a flow going to that process, or a triggering flow. While events generally appear in IFM diagrams, there may be corresponding clauses in other modelers of the system. For example, in the preferred embodiment, a Triggered-When clause in the logic modeler corresponds to the IFM diagram Event for that process. Further, in the preferred embodiment, every completely specified primitive process (described further in the "Function Modeler" section, below) must have a triggering Event associated with it. This Event is what actuates the process, forcing it to begin "executing" its business logic.
Source/destination objects may be defined to direct information in an IFM. In the preferred system, these objects may be included in the IFM diagram to indicate the source or destination of IFM design data of that diagram.
The size of an IFM diagram 50 may be changed, enlarged or diminished, to accommodate the viewing needs of a user. In the preferred embodiment, a user can generate an expanded view of a selected process or design data element. The size of the IFM diagram 50 may also be changed to accomodate an overlapping, or superimposed exploded process or function decomposition diagram (described below) . In addition, the layout of the IFM diagram 50 may be modified by moving IFM design data, for example, boxes and graphical representations (arrows) of information flows 54 connecting the boxes, as shown in Fig. 5. Once a process is created it may be divided into lower-level processes or subprocesses. Dividing a high-level process into two or more subprocesses is referred to as "explosion". In the preferred embodiment, the process to be exploded must have at least one information flow attached to it, either incoming or outgoing. In other forms, such a restriction is not necessary. When a process is exploded, the number of subprocesses generated and named by the system for the exploded process equals the number of flows coming into and out of the process.
In one embodiment, a subprocess 58 related to an incoming flow has the word "handle" as a prefix to its name; a subprocess 60 related to an outgoing flow has the word "generate" in its name. Subprocesses 62 may exist within a process 56 which have neither incoming nor outgoing flow associated therewith. For example, as shown in Figure 5, a process "fill orders" may be divided into subprocesses "generate inventory update", "handle orders for shipping", "put orders in boxes", and "take boxes to mail room".
Thus, an IFM diagram may contain both high-level processes 56 and primitive proccesses 62. High-level processes 56 are those processes having subprocesses associated therewith. Primitive processes 62 are those processes having no subprocesses. Once a process is exploded, the subprocesses may be displayed through a functional decomposition diagram 80, (defined below), or superimposed over a segment of the IFM diagram. In the preferred embodiment, a user can simultaneously and concurrently view an IFM diagram 50 and an exploded process 56 in the same diagram window 24. For example, a user may use a pointing device to point to an icon representative of a high-level process 56 in an IFM diagram 50, and display the "explosion", or subprocesses, of that process, while maintaining the other processes on the display screen. A user may also display or hide the subprocesses in a corner window, leaving the IFM diagram intact. Subsequent changes to an IFM object or process in either window would be reflected in the other window.
In an IFM diagram 50 a user can create a high-level process 56 for a process or group of processes by defining process boundaries 70. In the illustrated embodiment, and as shown in Figures 6A and 6B, the system prompts the user to name the new high-level process, and then draws the new process 74 around the selected, or "boundaried", processes 72. The original processes 72 become subprocesses of the new process 74. Making a new process boundary 70 is a way of changing the hierarchy of processes in the process model. Each new high-level process has a form. This form lists the subprocesses in the process hierarchy fields of display. Likewise, the forms for each subprocess list the new process as the top-level process. In a similar manner, process boundaries 70 may be undone, returning the process model to the state it was in before the process boundary 70 was created. Function Modeler
Once an IFM containing process is created, the function modeler 7 may be invoked to generate and display a function decomposition (FD) diagram of the process, as exemplified by diagram 80 shown in Figure 7. The decomposition diagram 80 consists of subprocesses 84 identified by the operator to be associated with an identified process 82. For example, as shown in Figure 7, if the process 82 is identified as "fill orders", subprocesses 84 identified with that process 82 may include, "generate inventory update", "handle orders for shipping", "put orders in boxes", and "take boxes to mail room". In the preferred embodiment, a pointing device, such as a mouse, is used to select a process displayed in an IFM diagram. By selecting a process with the pointing device, a decomposition diagram may be superimposed over all or part of the IFM diagram.
A typical FD diagram 80 of the present invention is shown in Figure 7. There, the diagram 80 is a tree-structure type diagram, having nodes containing process description 86, process 82, and subprocess 84. The relationship between the nodes is shown graphically by a main line 88, and branch lines 90. The nodes are each connected to the lines 88, 90 at root pins 92. Each of lines 88, 90 also has an extension pin, 94 at which nodes may be attached.
An important aspect of the present invention is that the FD objects of the FD diagram 80 are dynamically linked to the IM and IFM objects such that a change to the FD diagram 80 (Fig 7) is substantially immediately reflected in the IFM diagram 50 (Fig. 5) and the design data sets of both the information modeler and the process modeler.
In addition, a FD diagram 80 may display subprocesses 62 created in a process explosion. Thus, there are two ways in which subprocesses 62 may be created and displayed: using the process explosion from an IFM diagram 50; or using the function modeler to create a FD diagram 80.
Logic Modeler
The system 10 of the invention also includes a logic modeler 6 which specifies the logic of primitive processes defined in an IFM. The logic modeler 6 primarily embodies a graphical, structured language which enables a user to define business logic of the processes that operate on entities defined in an IM. The logic modeler 6 may be used to define logic models for describing the flow of information between models.
The logic modeler 6 refers to entities and attributes in the IM as it defines the logic that operates on the entities and their attributes according to the organization's business rules. For example, the business rule for deriving an attribute can be expressed in the logic modeler 6 and stored.
In the preferred embodiment, the structured language is a Process Description Language (PDL) , which shows the flow of processing in relation to objects in the IFM and the specific operations performed on entities and attributes in the information model. The logic modeler 6 is generally related to an IFM and to an IM. As shown in Figure 8, a PDL diagram 100 may be built by creating PDL statements, one at a time, in a window. The system then automatically generates graphical representation of the statement in the PDL diagram 100. The logic modeler 6 includes PDL procedures and PDL statements in describing and displaying logical operations on objects. As discussed above, entity methods and derived attributes may be used to define a procedure on an entity in the corresponding IFM diagram 50. PDL procedures may also include process procedures, which describe the business logic of the primitive process, and derived attributes, which are attributes having a value calculated each time it is used.
PDL statements may be used to build procedures and write specifications that describe the business logic of primitive processes in a corresponding IFM diagram. Statements may be built by a user or generated by the system, using keywords, identifiers, and expressions. Keywords which may be used in building PDL statements may include, inter alia: CREATE; RETRIEVE; UPDATE; DELETE; SEND; RECEIVE; SIGNAL; and, WHEN.
In the system of the present invention, several types of statements are available, including logical access statements (RETRIEVE, CREATE, UPDATE, DELETE), iteration statements (FOREACH, and LOOP) , conditional statements (IF, CASE), and control transfer statements (EXIT, SKIP, RESUME) . Logical access statements describe selecting or changing data defined in information stores. These statements are equivalent to statements that describe database access in a physical database. Any of the logical access statements of the present embodiment can create new objects in the IM diagram and in the IFM diagram.
In the preferred embodiment, "send" and "receive" statements are also available. The "send" statement defines the destination of information leaving a particular process. It can create an information flow from the process a user is currently editing to another process or source/destination. The syntax, or semantic rule, associated with a "send" statement is:
SEND-(INFORMATION-STRUCTURE-REFERENCE)-WHERE (optional) - THROUGH (optional) - TO (optional). "Information-structure-reference" specifies the information to be sent from the process. The information can be a list of attribute references or an "entity.*" (indicating all attributes of a particular entity) . An attribute reference can be an attribute name or a qualified attribute name. Optional clauses may include "where", "through", and "to". The "where" clause specifies search conditions that determine the information to send. The "through" clause specifies the information flow through which a user wants to send information. In one embodiment, only one information flow is allowed. The "to" clause specifies one or more processes or source/destination objects to which a user wants to send information. The "receive" statement specifies the source of the information entering the process. It can create an information flow from a specified process or source/destination to the process for which a user is currently specifying PDL. The syntax associated with a "receive" statement is: RECEIVE - (INFORMATION-STRUCTURE-REFERENCE) - WHERE (optional) - THROUGH (optional) - FROM (optional) . The "information-structure-reference" is the same as for "send" statements. Similarly, the "where" clause specifies search conditions that determine the information to receive, the "through " clause specifies the information flow through which a user wants to receive the information, and the "from" clause specifies the process or source/destination object from which the information is to be received. In one embodiment, neither the "send" nor the "receive" statements are allowed in entity method and derived attribute procedures. Both SEND and RECEIVE can create entities and attributes in the information model by reference. That is, if a user references an entity or attribute which does not exist, the system will prompt the user to create such an entity or attribute. Thus, similar to logical access statements, SEND and RECEIVE statements of the present embodiment can create new objects in the IM diagram and in the IFM diagram.
A SIGNAL statement may be used to signal an exception condition or error and to transfer control to a condition handler (WHEN clause) defined for the specified condition. A syntax for the statement is: SIGNAL - condition - ( - expression list - ) . The "condition" is one of the system-defined conditions. including: ABORT, DUPLICATE, EMPTY, ONE, BEGIN, FIRST, LAST, EXIT, BETWEEN, END, END GROUP, SKIP, and, OTHERWISE. The system may test for and signal some of these conditions by default. An "expression-list" is a user-defined list of parameters to be passed to the condition handler.
A condition handler, such as WHEN, may be included to specify the action to take when a particular condition arises. This may be used in place of a user-written PDL statement to test for or signal that a condition exists. This may be used in conjunction with a SIGNAL statement to explicitly signal any of the system default conditions. Thus, as an argument to the SIGNAL statement, a user may specify the condition to be signaled and any parameters to be passed to the condition handler.
Two other important PDL statements are CONNECT and DISCONNECT. In general, these statements provide the means by which two instances of entities are caused to be joined at one of their partnership sets by a single partnership. The CONNECT statement may provide the means for causing a new instance of a partnership to be created joining two instances of a partnership set, each of which is associated with an instance of an entity. In the case of non-directed, recursive partnships, the two ends of a single instance of a partnership must both be attached to the same instance of a partnership set.
In the preferred embodiment, when a CONNECT statement is executed, it is necessary to establish two sets of information; one set for each end of the partnership being created. In that instance, each set must include: (1) identification of the type of entity and instance to be connected; (2) identification of the type of partnership set to be connected; and, (3) identification of the rules of insertion to be applied to the new partnership endpoint. These rules may include identification of the new partnership endpoint as the "first" member, as the "last" member, as the "prior" member to some designated current member, as the "next" member after some designated current member, sorted by some attribute value controlled by sorting rules, or in no particular order. Where the maximum cardinality is one, the rules of insertion are moot, as there can then be only one instance of a partnership endpoint at an instance of a partnership set at any moment in time.
The CONNECT statement may be an independent statement, or may be included as an extension of an INSERT statement. In the preferred embodiment, where the minimum cardinality is one (1) for one of the partnership sets, then the CONNECT statement must be treated as an extension of the INSERT statement to assure that the integrity of the partnship set is maintained after the INSERT is completed. In the situation where the minimum cardinality is one (1) for both partnship sets of the partnership, it may be necessary to actually INSERT both entities and CONNECT them before the information structure is in a consistent state. Where the minimum cardinality is zero for both ends of the partnership, or where the maximum cardinality is greater than one (1) for both ends of the partnership, it is essential that there exist an independent CONNECT statement which may add partnerships as they are required.
The DISCONNECT statement provides the means for causing an existing partnership to be destroyed. The destroyed partnership might be replaced by a new one, several, or none, depending upon the information situation.
Where it is essential to the integrity of the data definitions, it may be necessary that a RECONNECT statement be constructed as a separate command, or as a pairing of a DISCONNECT statement and a CONNECT statement to assure that the minimum cardinality rules remains intact. Where the order of the members of a partnership set is defined as being controlled by the values of one or more attributes, then the modification of the value of one of those attributes might require that the members of a partnership set be reordered to maintain the integrity of the declarations. The SORT statement may be defined to cause the members of a partnership set to be placed in a defined sequence on a batch basis, rather than on an ad hoc basis as they are created.
Other statements available in the illustrated system, plus a brief description, are listed below in TABLE 2. :ABLE 2
ABORT signals fatal error and rolls back all changes specified by the transaction
CASE executes zero, one or more of several possible statement lists; compares several possible values to the value of "case selector"
COMMIT transfers process results to information store
DO calls an entity method or procedure from a process procedure, another entity method, or the same entity method
EXIT used in iteration blocks to terminate the iteration statement and transfer control to the EXIT condition handler or to the statement following the iteration block
FOREACH starts an iteration block, processing a single entity occurrence on each iteration until a specified condition is met
IF makes the execution of a block statement conditional TABLE 2 (Cont'd.')
LOOP starts an iteration block, processing the statements within the block until a specified condition is met
NOTE adds comments to a PDL specification RESUME used in condition handlers to indicate that the condition handler completed successfully, and transfers control to the statement following the SIGNAL statement that raised the condition
RETURN exits from the process with a value
SKIP terminates the current iteration and transfers control to the SKIP condition handler or to the next iteration of the block
Other embodiments may have other statements which perform substantially the same functions as the CREATE, RETRIEVE, UPDATE, DELETE, SEND, RECEIVE, or other statements of the preferred embodiment described above. The description above is not intended to be semantically limiting, but merely to describe functions for affecting the modelers and associated design data.
The logic modeler 6 may be accessed from any of the other three modelers. In general, an IFM having the processes upon which the logic modeler 6 is to act must be opened prior to accessing the logic modeler. When a user creates or modifies objects in the IFM diagram 50, the system 10 automatically creates or modifies the corresponding PDL statements and their graphical representations. For example, if an information flow is created from a source/destination object to a primitive process and the contents of the information flow in the IFM diagram 50 are defined, the PDL diagram 80 for that primitive process contains a node labeled "receive" (nodes are described in detail below). The "receive" node represents a PDL statement that describes the source of information coming into the process.
In a similar manner, when PDL objects are created or modified, the system creates or modifies the corresponding objects in the IFM diagram 50. For example, any of the PDL logical access statements can create a new entity in the IM diagram 50 or a new information store in the IFM.
The PDL diagram 100 may also include graphical representation of the process description, and may enable a user to generate a report containing the text of a process description. In the preferred embodiment of the system 10, the graphical representation is in the form of a tree structure diagram, shown in Figure 8. The tree 100 may have a series of nodes 102, pins 104, and PDL statements 106. The nodes 102 appear as boxes on the tree structure diagram 100. The nodes 102 contain text fields, upon which statements from the modelers or from internal language statements, appear.
Pins 104 represent the relationship, or link, between statements or parts of statements. The position of a pin 104 in relation to its node 102 indicates the type of pin 104 it is. As best shown in Figure 9, pin types may include: extension pins 112; root pins 114; parent/child pins 116; qualifier pins 118; and condition pins 120. An extension pin 112 may be used to mark each location where an operator can add nodes 102 to the end of an existing sequence. An extension pin 112 may appear at the end of a main line 108, or at the end of each line that represents a subsection of a process description. A root pin 114 may be used to mark the location, or root, of a node 102. Selection of a root pin 114 by an operator enables the operator to insert nodes 102 before the root pin 114. A root pin 114 may appear along any line of a process description. A parent/child pin 116 may be used to mark the beginning of a subtree of nodes, and allows a user to insert nodes 102 at the beginning of a subtree. A qualifier pin 118 may be used to represent a clause that modifies a PDL statement 106 contained in an associated node 102. A condition pin 120 may be used to represent directions for handling exception conditions and errors associated with statements in a node 102. An important aspect of the nodes/pins relationship is that each pin 104 is associated with at least one node 102, and is graphically represented as such.
In general, each node 102 and its attached pins 104 represent a PDL statement 106. Pins 104 may also have active or inactive, and may be displayed to the user independent of its status. A pin 104 having active status is defined as a pin 104 which acts upon the associated node 102, whereas a pin 104 having inactive status is defined as a pin 104 which merely represents the possibility of becoming active upon user input.
The logic modeler 6 may have a series of windows associated with it which are unique to the logic modeler. These windows may be similar to those used in the other modelers, but may only reflect activities within the logic modeler and associated logic model.
PDL statements and their graphical representations can be created either by being generated by the system 10 from objects in the corresponding IM and IFM, or entered directly by the operator. The graphical representations may be in the form of a tree structure diagram 100, a network diagram (not shown) , or other forms customary in the art, which may be displayed in a diagram window 24. In the preferred embodiment, a node 102 representing the scope of the description occurs at the top of each PDL diagram 100. The node is generated by the system 10 to describe the process for which the user is specifying a logic modeler 4. All possible qualifier pins 118 and a condition pin 120 appear on the node 102 independent of whether a user has actually entered them as part of the statement. In the preferred embodiment, if a qualifier pin 118 is active, i.e. actually part of the statement, the text of the clause represented by the pin 118 appears to the side of the pin 118. If a pin 103 is not active, it serves as a place holder, telling the user that a clause may be added to the statement. Addition or modification of design data, or objects, in the PDL diagram 100 may be achieved by establishing an editing focus, which may be user-selected and system activated. An editing focus may be a pin 104 to which the user wants to add a node 102, or it can be a node 102 or pin 104 the user wants to modify. When a new node 102 is added to the end of a LM tree of a PDL diagram, the logic modeler automatically creates a new pin 112 that extends from the new node. This extension pin 112 then becomes the editing focus. An operator can easily change this editing focus by selecting another object in the displayed PDL diagram 100.
In the preferred system, the logic modeler may also include an options modeler and related options windows which present items available for the operator to use in building PDL statements 106 and manipulating PDL diagrams 100. An exemplary option window 150 is shown in Figure 10. The options modeler is a language sensitive editor which generates a display of syntactically valid options for insertion by the user at a selected point in a line of a procedure, specification, or statement. The options window shows only those terms and/or phrases which are syntactically valid for building PDL statements, and thus may be displayed as a PDL palette as shown in Figure 10.
The syntactic validity of an option is determined by comparing the options available, to criteria which may be defined by logical relationships, general semantic rules, expert rules, and heuristics. Logical relationships may include requirements such as certain keywords must be used in conjunction with specific identifiers. General semantic rules may include requirements that two keywords cannot occur next to each other without intervening identifiers. Expert rules and heuristics may involve series of user-defined logical correlations which must occur before a PDL statement structure is considered correct.
In the illustrated embodiment, the options window 150 is a tree-like display of items that a user can use to build PDL statements. These items may include keywords, symbols, identifiers, and the names of objects in the corresponding IM diagram 30 and IFM diagram 50. When the logic modeler 6 is first displayed, a single PDL palette 152 appears in the options window. Once a user selects an editing focus, the PDL palette item expands to display one or more categories of the PDL grammar. For example, when a user sets the editing focus to an extension pin 112, a root pin 114, or a parent/child pin 116, the following items appear in the options window: verbs, control flow, qualifiers, NOTE. The first three items are categories of the PDL grammar. The fourth item is a PDL keyword that can be used to add comments to procedures.
In other systems, an option modeler may be used in conjunction with any of the modelers, or editors, in designing and building a model. Additional Aspects of the System
(1) Dynamic Linking
An important aspect of the present system is a dynamic linking between the design data sets of each modeler. Within the logic modeler, when design data is created or modified in the information modeler or process modeler, the system automatically creates or modifies the corresponding PDL statements and their graphical representations. For example, if an operator creates a source/destination design data, or object, with an information flow to a primitive process in the IFM, the PDL diagram 100 for that primitive process contains a node 102 labeled
RECEIVE. The RECEIVE node represents a PDL statement that describes the source of information coming into the process. In a similar way, when an operator creates or modifies PDL objects or design data in the logic modeler, the system creates or modifies the corresponding design data in the IFM and/or IM.
The dynamic characteristics of the system of the invention may be achieved by use of partnership sets. As best described in U.S. Patent Number
4,631,664 (Bachman, 1986), partnership sets may be used to control storage, retrieval, and modification of information in a design data collection contained in storage devices in a design data processing system. In the present system, partnership sets are used to handle complex information sets, as described above. (2) Dynamic Text and Graphics
In addition, each of the modeler displays may include text having a combination of icons and alphanumerics. The text may be dynamic, such that a user may affect IM design data, IFM design data, FD design data, and PDL design data by interacting with either the icons or alphanumerics. Since the present system is a primarily graphics system enabling an information system user to create graphic models of complex information systems, the ability to use dynamic icons and alphanumerics may be an important feature of such a system.
(3) Diagnostics
Further, the system of the invention may include an internal diagnostic or consistency check which signals to a user when improper terminology is used. Certain processes, semantic rules, logical relationships, expert rules, heuristics, text fields and pins may be stored in a database storage. When a user creates, modifies or adds design data in any of the modelers, the present system will check those statements against internally-stored design data. If the input design data does not correspond to the predetermined design data, the improper design data is "flagged" by the system and appropriate flag signals are displayed to the user.
In addition to being a double-check system for syntactic and semantic correctness of statements, the signals may be a part of an iterative process performed within the system. In the preferred embodiment, a design task may be included which is an intelligent, rule-based task that automates the repetitive process of examining and modifying the information model. The design task may include expert rules and heuristics against which statements and procedures are checked.
In the illustrated embodiment, the design task works in the following series of steps: (1) using a built-in set of design rules, the design task searches tha information model for objects that might be more complex than necessary; (2) it then displays a list of those objects and actions that might simplify those objects; (3) the user then decides what action to take next, which may be either selecting an action that modifies one or more of the objects, or marking one or more of the objects as correct, thus indicating that the rule is inappropriate for the particular object; and, (4) the user then decides whether to rerun the same design rule, or to run the next rule.
(4) Filters
A user may also define and implement filters. A filter allows a user to view and operate on a subset of a model. The objects that are included in a subset, or filtered model, are determined by selection criteria defined by a user when the filter is created. In the preferred embodiment, multiple filters may be created for the same model, however only one filter can be active at a time. For example, if a user wants to display objects created by a specific user and also display objects of a certain type, two filters can be defined, each including those respective objects. Both of these filters would be applied to the same original model, but they would each produce a subset of that model.
When using the filters, if a diagram is displayed when a filter is activated, the filter takes effect immediately. That is, all objects which do not meet the selection criteria of the filter are automatically cleared from that diagram. It may be possible to implicitly include objects when an object is explicitly selected to be included in a filtered model. For example, if an information flow is the selection criteria of the filter, the objects that are the source and destination of that flow are implicitly selected, but not associated subordinate objects, such as flow structures. Similarly, when a diagram of a filtered model is displayed, objects that meet the filter selection criteria are displayed, along with any objects upon which their existence may depend.
(5) Process Description Language (ROD
The system of the present invention enables a user to describe the elements and concepts most important to a business organization. Building a model of complex organizations facilitates the communication of vital business functions among the many departments of an organization. In the preferred embodiment, PDL enables a user, in a specification/design mode, to specify business logic for a model. Objects and processes (i.e. PDL design data) are specified and/or defined. In an execution mode, PDL enables a user to manipulate instances of objects and processes of the model. Such objects and processes, in both modes, include entities, attributes, processes, messages, and relationships. In both modes, the processes may be independent processes, or cooperating processes which are focused upon the successful processing of individual "business transactions".
The transactions specified by PDL are business transactions which are declared to be indivisible elements. The PDL essentially enables the system to assure that a user is working with such indivisible elements by providing a means for defining pieces of discrete business processing. The business world, or environment of an organization, can thus be defined in terms of discrete transactions which are known and either processed or not processed. In a model for complex organizations defined in terms of business transactions, or indivisible elements, validity checks need to be performed each time an instance of an object or process is manipulated or a process is defined. To do so, user data is effectively maintained in a static form until the specific transaction either becomes "successfully" or "not successfully" processed.
The business transactions related to the processes specified by the PDL are thus indivisible elements of work which are to be treated by the business as being in one of four states: waiting to be processed; in process; completely and successfully -5fi-
processed; or, completely and unsuccessfully processed. In the preferred embodiment, the rules expressed by the PDL for one business transaction can only either specify access to information in an information store that has been placed there by completed other business transactions, or specify receipt of messages from completed business transactions. During its processing period, i.e., in the execution mode, the PDL enables the storage of new information in the information store, and the sending of information intended for other processes. Moreover, the stored information will immediately be available to processes cooperating on the same business transaction. In the case of an unsuccessful process, it may make changes to the user data, and send messages reporting an unsuccessful transactions after its prior actions have been undone. Processes working on other business transactions will not be able to access the new information, nor will the processes be aware of the generation of the messages until after the source process has either successfully terminated or declared that it has been aborted.
Thus, in execution mode, the present system with PDL enables a user to manipulate instances of objects and processes within a model. That is, the user data is essentially put into a static state during which operations are, in effect, reversibly performed without affecting existing instances of objects or processes. That is, changes to the user data are performed in "quarantine", and are not incorporated into the user data until the process is determined to be (in accordance with criteria or algorithms defined by the PDL design data), and reported successful or unsuccessful. A user-specified process may then abort the action without side-effects to the existing user data, or commit the action. This is analogous to having a master "undo" command which retrieves data deleted, but temporarily stored, in an application. The changed user data may be made accessible for processing in conjunction with other business transactions.
In the preferred embodiment, a PDL ITERATOR statement may be a major block of a program, having a number of nested blocks. Each nested block contains the logic to be executed under a designated circumstance or set of circumstances.
(6) Entity-sets
The system of the preferred embodiment may also include entity-sets. In the specification mode, entity-sets are defined in terms of references to entity types and conditions. In the execution mode, an instance of an entity-set contains references to a list of entity instances, which are then treated as a value. Thus, in the execution mode, entity-sets may be assigned to a variable or to the attribute of an entity, or may be used as an operand. For example, such entity-sets may be the operand of an ITERATOR statement.
An entity-set variable provides the means for storing and accessing a list of references to entity instances. In the execution mode, this collection of references is ordered, i.e., there is a "first" reference, a sequence of "next" references, and finally a "last" reference. The sequence of references is preserved, unless some explicit action is made to reorder that set. New references may be added to, deleted from, or rearranged in the list. It may be possible for one entity instance to be referenced in an entity-set more than once, however explicit action may be used to hide duplicate references to a single entity instance. The type of entity instances referenced within an entity-set may be of the same or different entities.
An entity-set is a generalization of the partnership-set of the partnership data model. It takes the properties of a partnership-set expressed as a particular property of an entity and characterizes it as a holder of a list of entity references. These properties are transfered to a new type of data variable, which is not necessarily identified with a particular entity. The assignment of a list of references from a partnership-set has the effect of transforming that list from a dynamic list, responsive to the creation and deletion of partnerships between the subject partnership-set and other partnership-sets, into a static list subject only to explicit commands addressing that list.
Generally, data variables are named storage structures, where each data variable is specialized to handle particular types of data. In the present embodiment, during operation in the specification mode, an operator may declare a variable to be an entity-set variable; during operation in the execution mode, a user data value may be assigned to an entity-set variable. Thus, this leads to a new type of data variable, i.e., one that can store and return the values which are references to entity instances. In the preferred embodiment, an entity-set has three basic states: empty (i.e., the entity-set has no members); not-empty (i.e., the entity-set has a list of one or more entity references); and, undefined (i.e., no entity-set, either empty or not empty, has been assigned to the data variable) . The undefined state may appear initially after the data variable has been established but before any value has been assigned to it. The undefined state may also arise subsequent to a data variable being nullified.
The association of data variable with a data type entity-set enables the separation of the idea of the set of entity instances associated in partnership with a partnership-set, from the act of iterating over the list of entity instances of a partnership-set to perform the actual processing of those entity instances. In the preferred embodiment, a SELECT statement may be used to assign an entity-set to a data variable, and to hold that entity-set value until it becomes appropriate to take some action against the set of entity instances referenced by the entity-set value.
Establishment of entity-set data types enables the identification of data variables, including those which are process-local variables, as well as those attributes of entity instances which may be defined, as having the data type of entity-set. Further, any operation which may be performed upon an entity instance may also iteratively operate on a set of entity instances by referencing a variable of the type entity-set. Specifically, within the logic modeler of the preferred embodiment, PDL statements may act upon entity-set variables. Operations may also involve two or more entity-sets. For example, entity-sets may be merged, concatenated, compared, joined, and tested for the inclusion of one within the other, or the exclusion of one from the other.
While, in the preferred embodiment, PDL is used to manipulate business transaction design data, other embodiments may use mechanisms independent of the PDL of the present system. Business transaction design data may correspond to transaction-related information, such as rules of transactions which operate on entities, attributes, and relationships. These rules may include processing algorithms, and may be stored internal to a computer system. User data may then be transformed in accordance with the transaction design data.
The user data of the entire business transaction model described above may be held in an externally perceived static state, while that data is effectively internally transformed in a reversible manner. The discrete elements of the user data of a business transaction may be tested against the existing user data without making externally perceived changes to the existing user data. Once the internal check is complete, in accordance with the predetermined algorithms, external signals may be sent by a user to either commit (if "successful") or abort (if "unsuccessful") the changes to the user data. Subsequent to the abort signal and the reversal of prior action on the user data and messages, the process may make changes to the user data and send other messages that are relevant to the unsuccessful transaction (e.g. indicative of the unsuccessful processing) . The changed user data then becomes fully externally accessible.
The specification, or outcome, of the system described above, may be converted into code and implemented to produce a working application system. That conversion may be accomplished manually, or under the control of a programmed digital computer. This specification, or outcome, is preferably in terms of PDL statements similar to those discussed above and as listed in Table 2.
Appendix A, attached hereto, is a complete printout of the object code for the system described in detail above and is incorporated herein by reference.
Appendix B, also attached, is a manual describing a preferred embodiment of the present system.
The invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.

Claims

Claims :
1. A computer system for establishing a dynamic model of information systems of organizations comprising:
A. at least one information modeler including IM means for creating, analyzing and modifying an information model, said information model having IM design data representative of elements including at least one from the group consisting of attribute, entity method, attribute method, partnership set, and partnership set method, said attribute being independent of an entity;
B. at least one process modeler including IFM means for creating, analyzing, and modifying an information flow model, said information flow model having IFM design data representative of elements including at least one from the group consisting of processes, information stores, information flows, messages, views, process local stores, sources, and destinations, said IFM design data relating to at least one of said elements of said IM design data;
C. modeler linking means for dynamically correlating said information modeler and said process modeler, whereby a change to any of said IM design data affects a corresponding IM-IFM change in said IFM design data, and whereby a change to any of said IFM design data affects a corresponding IFM-IM change in said IM design data; and D. operator means for applying external signals to said information modeler and said process modeler, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said IM means and said IFM means.
2. A computer system according to claim 1 wherein said elements of said IM design data further includes at least one from the group consisting of: entities; entity and relationship; entity and attribute; and entity, relationship, and partnership set.
3. A computer system according to claim 2 further comprising at least one logic modeler, including PDL means for defining logical operations on at least one of said IFM design data and IM design data, said logical operations being defined by PDL design data.
4. A computer system according to claim 1 wherein said information modeler further comprises means for establishing an IM display having IM display objects representative of said IM design data, including means associated with said IM display selectively operative for externally applying signals to said IM display objects, whereby an externally applied signal associated with at least one of said IM display objects affects said IM design data; and wherein said process modeler further comprises means for establishing a IFM display having IFM display objects representative of said IFM design data, including means associated with said IFM display selectively operative for externally applying signals to said IFM display objects, whereby an externally applied signal associated with at least one of said IFM display objects affects said IFM design data.
5. A computer system according to claim 4 further comprising display linking means for dynamically correlating said IM display and said IFM display, whereby a change to any of said IM design data affects a substantially immediate corresponding change in said IFM design data, and whereby a change to any of said IFM design data affects a substantially immediate change in said IFM design data.
6. A computer system according to claim 4 wherein said IFM display establishing means further comprises process explosion (PE) means for exploding at least one of said processes of said IFM design data into zero, one or more process explosion (PE) processes; each of said PE processes including at least one of the group consisting of primitive processes and high-level (HL) processes, each of said HL processes including one of the group consisting of primitive processes and HL processes; and wherein each of said HL processes includes
HL means for creating and modifying each of said PE processes. 7. A computer system according to claim 6 wherein said PE means further includes means for establishing a PE display of at least one of said primitive processes having PE display objects representative of said IFM design data associated with said primitive process, and including means associated with said PE display selectively operative for externally applying signals to said PE display objects, whereby an externally applied signal associated with at least one of said PE display objects affects said IFM design data; and wherein said PE display is selectively displayable simultaneous with at least one of said IM display, or said IFM display.
8. A computer system according to claim 4 wherein said design data includes at least two processes, and further comprising implosion means for consolidating at least two of said processes of said design data into a process implosion (PI) process, each of said PI processes defining a high-level (HL) process.
9. A computer according to claim 8 wherein said implosion means further includes means for establishing a PI display of at least one of said HL processes, and including means associated with said PI display selectively operative for externally applying signals to said PI display, whereby an externally applied signal associated with said PI display affects said design data; and wherein said PI display is selectively displayable simultaneous with at least one of said modeler displays.
10. A computer system according to claim 3 wherein said PDL design data is representative of at least one from the group consisting of text and tree structure diagram, and
wherein said operator means further include means for selectively displaying said text and tree structure diagrams.
11. A computer system according to claim 3 further comprising:
A. means for establishing an option modeler, having selectively operative OM means for creating, analyzing, and modifying syntactically permitted options associated with said PDL design data, said OM means including:
(i) means for storing predetermined option criteria, each of said predetermined option criteria being representative of at least one from the group consisting of semantic rules, logical relationships, expert rules, and heuristics;
(ii) means for comparing said PDL design data with said predetermined option criteria; and (iii)means for identifying correlated PDL design data, said correlated PDL design data being ones of said PDL design data which substantially match one of said predeterimined criteria, said correlated PDL design data being representative of said syntactically permitted options;
B. means for establishing an options window having operator selectable option objects representative of said syntactically permitted options, whereby said syntactically permitted options are only ones of said PDL design data syntactically permitted at the time of establishment of said options window; and
C. means associated with said options window selectively operative for externally applying signals to said option modeler whereby an externally applied signal associated with at least one of said option objects affects said PDL design data.
12. A computer system according to claims 3 further comprising linking means for dynamically correlating said logic modeler, said information modeler and said process modeler, whereby a change to any of said PDL design data affects a corresponding PDL-IM/IFM change in said IM design data and said IFM design data, and whereby a change to any of said IM design data or said IFM design data affects a corresponding IM/IFM-PDL change in said PDL design data. 13. A computer system according to claims 3 and 12 wherein said operator means includes means for establishing at least one option facility and option objects therein, including:
means associated with said option facility selectively operative for externally applying signals to said information modeler, said process modeler, and said logic modeler whereby an externally applied signal associated with at least one of said option objects affects said IM design data, said IFM design data and said PDL design data.
14. A computer system according to claim 3 or 12 wherein said operator means includes means for establishing at least one feedback window and feedback objects therein, including:
means associated with said feedback window selectively operative to display data received from at least one of said information modeler, said process modeler, and said logic modeler.
15. A computer system according to claim 3 or 12 wherein said operator means includes means for establishing at least one diagram window and diagram objects therein, including:
means associated with said diagram window selectively operative to display data received from at least one of said information modeler, said process modeler, and said logic modeler, defining said diagram objects; means associated with said diagram window selectively operative for externally applying signals to said diagram objects, whereby an externally applied signal associated with at least one of said diagram objects affects said IM design data, said IFM design data, and said PDL design data.
16. A computer system according to claim 3 or 12 wherein said externally applied signals have associated therewith signal values, and wherein said information modeler, said information flow modeler, and said logic modeler comprises:
means for storing predetermined values, each of said predetermined values being representative of at least one process, semantic rule, expert rule, logical relationship, heuristic, text field, or pin;
means for comparing said signal values with said predetermined value;
means for identifying uncorrelated signals, said uncorrelated signals being ones of said signal values which do not substantially match one of said predetermined values; and
means for generating flag signals representative of the identity of said uncorrelated signals. 17. A computer system according to claim 3 further comprising filter means for creating at least one from the group of subsets consisting of: an IM-subset of said information model; an IFM-subset of
5 said process model; and, a PDL-subset of said PDL design data;
each of said IM-subset, IFM-subset, and PDL-subset being defined by operator-determined 10 selection criteria, and being selected in accordance with said selection criteria from said IM design data, IFM design data, and PDL design data.
18. A computer system according to claim 17
15 wherein said filter means further comprises means for establishing an IM-subset display of said IM-subset having IM-subset display objects representative of said IM-subset, including means associated with said IM-subset display selectively operative for
20 externally applying signals to said IM-subset display objects, whereby an externally applied signal associated with at least one of said IM-subset display objects affects said information model.
25 19. A computer system according to claim 17 wherein said filter means further comprises means for establishing an IFM-subset display of said IFM-subset having IFM-subset display objects representative of said IFM-subset, including means associated with said
30 IFM-subset display selectively operative for externally applying signals to said IFM-subset display objects, whereby an externally applied signal associated with at least one of said IFM-subset display objects affects said process model. 5 20. A computer system according to claim 17 wherein said filter means further comprises means for establishing a PDL-subset display of said PDL-subset having PDL-subset display objects representative of said PDL-subset, including means associated with said PDL-subset display selectively operative for externally applying signals to said PDL-subset display objects, whereby an externally applied signal associated with at least one of said PDL-subset display objects affects said PDL design data.
21. A computer system according to claim 17 wherein said filter means further comprises:
means for establishing an IM-subset display of said IM-subset having IM-subset display objects representative of said IM-subset, including means associated with said IM-subset display selectively operative for externally applying signals to said IM-subset display objects, whereby an externally applied signal associated with at least one of said IM-subset display objects affects said information model;
means for establishing an IFM-subset display of said IFM-subset having IFM-subset display objects representative of said IFM-subset, including means associated with said IFM-subset display selectively operative for externally applying signals to said IFM-subset display objects, whereby an externally applied signal associated with at least one of said IFM-subset display objects affects said process model; and means for establishing a PDL-subset display of said PDL-subset having PDL-subset display objects representative of said PDL-subset, including means associated with said PDL-subset display selectively operative for externally applying signals to said PDL-subset display objects, whereby an externally applied signal associated with at least one of said PDL-subset display objects affects said PDL design data.
22. A computer system according to claim 21 further comprising display linking means for dynamically correlating said IM-subset display, said IFM-subset display, and said PDL-subset display, wherein a change to any of said IM-subset design data affects a substantially immediate corresponding change in said IFM-subset design data and said PDL-subset design data, and wherein a change to any of said IFM-subset design data affects a substantially immediate corresponding change in said IM-subset design data and said PDL-subset design data, and wherein a change to any of said PDL-subset design data affects a substantially immediate corresponding change in said IM-subset design data and said IFM-subset design data.
23. A computer system according to claim 3 further comprising at least one function modeler, including FD design data representative of FD subprocesses, each of said subprocesses corresponding to at least one of said processes of said IFM design data, and having FD means for defining a hierarchy of said FD subprocesses of said IFM design data. 24. A computer system according to claim 23 further comprising filter means for creating at least one of the group of subsets consisting of: an IM-subset of said information model; an IFM-subset of said process model; an FD-subset of said function model; and, a PDL-subset of said PDL design data;
each of said IM-subset, IFM-subset, FD-subset, and PDL-subset being defined by operator-determined selection criteria, and being selected in accordance with said selection criteria from said IM design data, IFM design data, FD design data, and PDL design data.
25. A computer system according to claim 24 wherein said filter means further comprises:
means for establishing an IM-subset display of said IM-subset having IM-subset display objects representative of said IM-subset, including means associated with said IM-subset display selectively operative for externally applying signals to said IM-subset display objects, whereby an externally applied signal associated with at least one of said IM-subset display objects affects said information model;
means for establishing an IFM-subset display of said IFM-subset having IFM-subset display objects representative of said IFM-subset, including means associated with said IFM-subset display selectively operative for externally applying signals to said IFM-subset display objects, whereby an externally applied signal associated with at least one of said IFM-subset display objects affects said process model;
means for establishing an FD-subset display of said FD-subset having FD-subset display objects representative of said FD-subset, including means associated with said FD-subset display selectively operative for externally applying signals to said FD-subset display objects, whereby an externally applied signal associated with at least one of said FD-subset display objects affects said information model; and
means for establishing a PDL-subset display of said PDL-subset having PDL-subset display objects representative of said PDL-subset, including means associated with said PDL-subset display selectively operative for externally applying signals to said PDL-subset display objects, whereby an externally applied signal associated with at least one of said PDL-subset display objects affects said PDL design data.
26. A computer system according to claim 25 further comprising display linking means for dynamically correlating said IM-subset display, said IFM-subset display, said FD-subset display, and said PDL-subset display, wherein a change to any of said IM-subset design data affects a substantially immediate corresponding change in at least one from the group consisting of said IFM-subset design data, FD-subset design data, and said PDL-subset design data. wherein a change to any of said IFM-subset design data affects a substantially immediate corresponding change in at least one from the group consisting of said IM-subset design data, said FD-subset design data, and said PDL-subset design data, wherein a change to any of said FD-subset design data affects a substantially immediate corresponding change in at least one from the group consisting of said IM-subset design data, said
IFM-subset design data, and said PDL-subset design data, and wherein a change to any of said PDL-subset design data affects a substantially immediate corresponding change in said IM-subset design data and said IFM-subset design data.
27. A computer system according to claim 23 wherein said hierarchy is representative of at least one text or graphics, and
wherein said operator means further include means for selectively displaying said text and graphics.
28. A computer system according to claim 27 further comprising linking means for dynamically correlating said function modeler, said logic modeler and said process modeler, whereby a change to any of said FD design data affects a corresponding
FD-PDL/IFM change in said PDL design data and said IFM design data, and whereby a change to any of said PDL design data or said IFM design data affects a corresponding PDL/IFM-FD change in said FD design data.
29. A computer system according to claim 28 wherein said function modeler further comprises means for establishing a FD display having FD display objects representative of said FD design data, including means associated with said FD display selectively operative for externally applying signals to said FD display objects, whereby an externally applied signal associated with at least one of said FD display objects affects said FD design data; and
wherein said process modeler further comprises means for establishing a IFM display having IFM display objects representative of said IFM design data, including means associated with said IFM display selectively operative for externally applying signals to said IFM display objects, whereby an externally applied signal associated with at least one of said IFM display objects affects said IFM design data. _ _
30. A computer system according to claim 29 further comprising display linking means for dynamically correlating said FD display and said IFM display, whereby a change to any of said FD design data affects a substantially immediate corresponding change in said IFM design data, and whereby a change to any of said IFM design data affects a substantially immediate change in said FD design data.
31. A computer system according to claim 30 wherein said IFM display establishing means further comprises process explosion (PE) means for exploding at least one of said processes of said IFM design data into zero, one or more process explosion processes; each of said PE processes including at least one of the group consisting of primitive processes and high-level (HL) processes, each of said HL processes including one of the group consisting of primitive processes and HL processes; and wherein each of said HL processes includes HL means for creating and modifying each of said PE processes.
32. A computer system according to claim 31 wherein said PE means includes means for establishing a PE display of at least one of said primitive processes having PE display objects representative of said IFM design data associated with said primitive process, and including means associated with said PE display selectively operative for externally applying signals to said PE display objects, whereby an externally applied signal associated with at least one of said PE display objects affects said IFM design data; and wherein said PE display is selectively displayable simultaneous with at least one of said IM display, said IFM display, said PDL display, or said FD display.
33. A computer system according to claim 3 further comprising:
A. means for establishing in said computer system one or more partnership sets within at least one IM design data, IFM design data, or PDL design data, each of said partnership sets being representative of zero, one or more partnerships;
B. means for establishing one or more of said partnerships, wherein each of said partnerships is characterized by one partnership set associated with itself or associated with one other partnership set; and C. means for accessing in said computer system one or more of said IM design data, said IFM design data, and said PDL design data by reference to a partnership set which is in partnership with partnership sets of said one or more of said IM design data, said IFM design data, or said PDL design data.
34. A computer system according to claim 3 further comprising:
A. storage means for storing information representative of an ordered set of references to design data;
B. valuation means for assigning a data value to said ordered set, defining an entity-set variable; and
C. processing means selectively operable to process said entity-set variable in accordance with imposed criteria.
35. A computer system according to claim 3 wherein said logic modeler further comprises means for establishing a PDL display having PDL display objects representative of said PDL design data, including means associated with said PDL display selectively operative for externally applying signals to said PDL display objects, whereby an externally applied signal associated with at least one of said PDL display objects affects said PDL design data. 36. A computer system according to claim 35 further comprising display linking means for dynamically correlating said IM display, said IFM display, and said PDL display, whereby a change to any of said IM design data affects a substantially immediate corresponding change in said IFM design data and said PDL design data, and whereby a change to any of said IFM design data affects a substantially immediate change in said IFM design data and said PDL design data, and whereby a change to any of said PDL design data affects a substantially immediate change in said IM design data and said IFM design data; said IM design data being representative of elements including at least one from the group consisting of attributes, partnership sets, keys, domains, dimensions, and allowable values.
37. A computer system according to claim 35 further comprising display linking means for dynamically correlating said IM display, said IFM display, and said PDL display, whereby a change to any of said IM design data affects a substantially immediate corresponding change in said IFM design data and said PDL design data, and whereby a change to any of said IFM design data affects a substantially immediate change in said IFM design data and said PDL design data, and whereby a change to any of said PDL design data affects a substantially immediate change in said IM design data and said IFM design data; said IM design data being representative of elements including entities; and said PDL design data being representative of elements including at least one from the group consisting of send and receive.
38. A computer system according to claim 1 further comprising at least one function modeler, including FD design data representative of FD subprocesses, each of said subprocesses corresponding to at least one of said processes of said IFM design data, and having FD means for defining a hierarchy of said FD subprocess of said IFM design data.
39. An information management method for controlling information systems of organizations comprising steps of:
A. establishing at least one information modeler including IM means for creating, analyzing and modifying an information model, said information model having IM design data representative of elements including at least one from the group consisting of attribute, entity method, and partnership set, said attribute being independent of an entity;
B. establishing at least one process modeler including IFM means for creating, analyzing, and modifying a process model, said information flow model having IFM design data representative of elements including at least one from the group consisting of processes, information storees, information flows, messages, sources, and destinations, said IFM design data corresponding to at least one of said elements of said IM design data; C. establishing modeler linking means for dynamically correlating said information modeler and said process modeler, whereby a change to any of said IM design data affects a corresponding IM-IFM change in said IFM design data, and whereby a change to any of said IFM design data affects a corresponding IFM-IM change in said IM design data; and
D. establishing operator means for applying external signals to said information modeler and said process modeler, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said IM means and said IFM means.
40. A computer system for processing information representative of business transactions comprising:
A. two or more modelers including modeler means for creating, analyzing, and modifying two or more models corresponding to each of said modelers, each of said models having design data;
B. at least one of said modelers being a logic modeler, including PDL means for defining logical operations on at least one of said design data, said logical operations being defined by PDL design data;
C. operator means for applying external signals to each of said modelers, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said modeler means; and D. wherein said PDL design data corresponds to at least one from the group consisting of retrieve entity-set, send, receive, signal, when, reference to an entity method, reference to an entity-set, connect, and disconnect.
41. A computer system according to claim 40 wherein said PDL design data is representative of at least one from the group consisting of text and tree structure diagram, and
wherein said operator means further include means for selectively displaying said text and tree structure diagrams.
42. A computer system according to claim 41 wherein said text is representative of at least one from the group consisting of icons and alphanumeric symbols.
43. A computer system according to claim 42 wherein said operator means further includes means for externally applying signals to said logic modeler whereby an externally applied signal associated with at least one of said text affects said PDL design data.
44. A computer system according to claim 42 wherein said tree structure diagram includes nodes and pins, and wherein said nodes have text fields including data representative of at least one of logical operations, IM design data, or IFM design data. 45. A computer system according to claim 44 wherein said tree structure diagram includes nodes and pins, wherein said pins are representative of operation locations at said node, whereby an external signal applied to at least one of said operation locations performs an operation at said operation location, said operation including at least one from the group consisting of: add data, replace data, delete data, add node, replace node, or delete node.
46. A computer system according to claim 40 further comprising at least one information modeler including IM means for creating, analyzing and modifying an information model, said information model having IM design data representative of elements including at least one from the group consisting of attribute, entity method, attribute method, partnership set, and partnership set method, said attribute being independent of an entity.
47. A computer system according to claim 40 further comprising at least one process modeler including IFM means for creating, analyzing, and modifying a process model, said information flow model having IFM design data representative of elements including at least one from the group consisting of processes, information stores, information flows, messages, views, process local stores, sources, and destinations, said IFM design data relating to at least one of said elements of said IM design data. 48. A computer system according to claims 46 or 47 wherein said information modeler further comprises means for establishing an IM display having IM display objects representative of said IM design data, including means associated with said IM display selectively operative for externally applying signals to said IM display objects, whereby an externally applied signal associated with at least one of said IM display objects affects said IM design data;
wherein said process modeler further comprises means for establishing a IFM display having IFM display objects representative of said IFM design data, including means associated with said IFM display selectively operative for externally applying signals to said IFM display objects, whereby an externally applied signal associated with at least one of said IFM display objects affects said IFM design data; and
wherein said logic modeler further comprises means for establishing a PDL display having PDL display objects representative of said PDL design data, including means associated with said PDL display selectively operative for externally applying signals to said PDL display objects, whereby an externally applied signal associated with at least one of said PDL display objects affects said PDL design data. 49. A computer system according to claim 48 further comprising display linking means for dynamically correlating said IM display, said IFM display, and said PDL display whereby a change to any 5 one of said IM design data, IFM design data, and PDL design data affects a substantially immediate corresponding change in at least one of said IM design data, IFM design data, and PDL design data.
10 50. A computer system according to claim 40 further comprising:
A. storage means for storing information representative of an ordered set of references to
15 design data;
B. valuation means for assigning a data value to said ordered set, defining an entity-set variable;
20
C. processing means selectively operable to process said entity-set variable in accordance with imposed criteria.
5 51. A computer system according to claim 50 wherein said design data includes entities.
52. A computer system according to claim 51 wherein said ordered set is ordered in accordance 0 with predetermined criteria.
53. A computer system according to claim 51 wherein said ordered set is ordered in accordance with operator selected criteria. 5 54. A computer system for establishing an adaptive window system in a dynamic model of information systems of organizations comprising:
A. one or more modelers including modeler means for creating, analyzing, and modifying one or more models corresponding to each of said modelers, each of said models having design data representative of elements including at least one from the group consisting of attribute; attribute method; entity and attribute; entity method; entity and relationship; entity and entity method; entity, relationship and partnership set; process; view; process local store; information store; information flow; message; source; and, destination;
B. at least one of said modelers including at least one logic modeler, having PDL means for defining logical operations on at least one of said design data, said logical operations being defined by PDL design data, said PDL design data corresponding to at least one from the group consisting of insert, retrieve, update, delete, send, receive, signal, when, or reference to an entity method;
C. means for establishing an option modeler, having selectively operative OM means for creating, analyzing, and modifying syntactically permitted options associated with said PDL design data, said OM means including: (i) means for storing predetermined option criteria, each of said predetermined option criteria being representative of at least one from the group consisting of semantic rules, logical relationships, expert rules, and heuristics;
(ii) means for comparing said PDL design data with said predetermined option criteria; and
(iii)means for identifying correlated PDL design data, said correlated PDL design data being ones of said PDL design data which substantially match one of said predeterimined criteria, said correlated PDL design data being representative of said syntactically permitted options;
D. means for establishing an options window having operator selectable option objects representative of said syntactically permitted options, whereby said syntactically permitted options are only ones of said PDL design data syntactically permitted at the time of establishment of said options window; and
E. means associated with said options window selectively operative for externally applying signals to said option modeler whereby an externally applied signal associated with at least one of said option objects affects said PDL design data. 55. A computer system according to claim 54 further comprising at least one information modeler including IM means for creating, analyzing and modifying an information model, said information model having IM design data representative of elements including at least one from the group consisting of attribute, entity method, attribute method, partnership set, and partnership set method, said attribute being independent of an entity;
56. A computer system according to claim 55 further comprising at least one process modeler including IFM means for creating, analyzing, and modifying a process model, said information flow model having IFM design data representative of elements including at least one from the group consisting of processes, information stores, information flows, messages, views, process local stores, sources, and destinations, said IFM design data relating to at least one of said elements of said IM design data;
57. A computer system according to claim 54 wherein said operator means includes means for establishing at least one option facility and option objects therein, including:
means associated with said option facility selectively operative for externally applying signals to said information modeler, said process modeler, and said logic modeler whereby an externally applied signal associated with at least one of said option objects affects said IM design data, said IFM design data and said PDL design data. 58. A computer system according to claim 57 wherein said operator means includes means for establishing at least one feedback window and feedback objects therein, including:
means associated with said feedback window selectively operative to display data received from at least one of said information modeler, said process modeler, and said logic modeler.
59. A computer system according to claim 58 wherein said operator means includes means for establishing at least one diagram window and diagram objects therein, including:
means associated with said diagram window selectively operative to display data received from at least one of said information modeler, said process modeler, and said logic modeler, defining said diagram objects;
means associated with said diagram window selectively operative for externally applying signals to said diagram objects, whereby an externally applied signal associated with at least one of said diagram objects affects said IM design data, said IFM design data, and said PDL design data.
60. A computer system according to claim 59 wherein said externally applied signals have associated therewith signal values, and wherein said information modeler, said information flow modeler, and said logic modeler comprises: means for storing predetermined values, each of said predetermined values being representative of at least one process, semantic rule, expert rule, logical relationship, heuristic, text field, or pin;
means for comparing said signal values with said predetermined value;
means for identifying uncorrelated signals, said uncorrelated signals being ones of said signal values which do not substantially match one of said predetermined values; and
means for generating flag signals representative of the identity of said uncorrelated signals.
61. A computer system according to claim 54 wherein said PDL design data corresponds to at least one from the group consisting of insert, retrieve, update, delete, send, receive, signal, when, reference to an entity method, connect, or disconnect,
62. A computer system according to claim 61 wherein said PDL design data is representative of at least one from the group consisting of text and tree structure diagram, and
wherein said operator means further include means for selectively displaying said text and tree structure diagrams. 63. A computer system according to claim 62 wherein said text is representative of at least one from the group consisting of icons and alphanumeric symbols.
5
64. A computer system according to claim 63 wherein said operator means further includes means for externally applying signals to said logic modeler whereby an externally applied signal associated with
10 at least one of said text affects said PDL design data.
65. A computer system according to claim 62 wherein said tree structure diagram includes nodes
15 and pins, and wherein said nodes have text fields including data representative of at least one of logical operations, IM design data, or IFM design data.
20 66. A computer system for specifying information representative of business transactions, comprising:
A. first storage means for storing transaction design data representative
25 of the rules of a desired business transaction;
B. second storage means for storing user data in an original form;
30 C. processing means for reversibly processing said user data whereby said user data is transformed in accordance with a predetermined processing 5 algorithm defined by said design data, and associated means for making said user data externally inaccessible during said processing;
10 D. means internally operative on said transformed user data for evaluating said transformed user data in accordance with predetermined logical criteria defined by said design data;
15 and
upon identification of a first set of conditions:
20 i. storing said transformed user data;
ii. making said stored transformed user data 25 externally accessible; and
upon identification of a second set of conditions:
30 i. inverse transforming said user data to said original form; ii. storing said original form user data; and
iii. making said stored original form user data externally accessible.
67. A computer system according to claim 66 wherein said user data is representative of elements including at least one from the group consisting of:
attribute; attribute method; entity method; partnership set; partnership set method; entity; entity and relationship; entity and attribute; entity, relationship, and partnership set;
process; information store; information flow; message; view; process local store; source; destination; event;
keywords; identifiers; symbols; and, statements.
68. A computer system according to claim 67 wherein said statements include at least one from the group consisting of: insert; retrieve; update; delete; send; receive; signal; when; connect; disconnect; reference to an entity method; and, reference to an entity.
69. A computer system according to claim 67 wherein said logical criteria includes at least one from the group consisting of logical relationships, expert rules, semantic rules, and heuristics. _ _
70. A computer system according to claim 66 further comprising:
A. one or more modelers, and including
5 modeler means for creating, analyzing, and modifying one or more models corresponding to each of said modelers, each of said models having design data; and
B. operator means for applying external 0 signals to said modelers, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said modeler means.
15 71. A computer system according to claim 70 wherein at least one of said modelers comprises a logic modeler, including PDL means for defining logical operations on at least one of said design data, said logical operations being defined by PDL
20 design data.
72. A computer system according to claim 71 wherein said PDL design data corresponds to at least one from the group consisting of insert, retrieve, 25 update, delete, send, receive, signal, when, reference to an entity, connect, or disconnect.
73. A computer system according to claim 72 wherein said PDL design data is representative of at least one from the group consisting of text and tree structure diagram, and
wherein said operator means further include means for selectively displaying said text and tree structure diagrams.
74. A computer system according to claim 73 wherein said text is representative of at least one from the group consisting of icons and alphanumeric symbols.
75. A computer system according to claim 74 wherein said operator means further includes means for externally applying signals to said logic modeler whereby an externally applied signal associated with at least one of said text affects said PDL design data.
76. A computer system according to claim 73 wherein said tree structure diagram includes nodes and pins, and wherein said nodes have text fields including data representative of at least one of logical operations, IM design data, or IFM design data.
77. A computer system according to claim 76 wherein said tree structure diagram includes nodes and pins, wherein said pins are representative of operation locations at said node, whereby an external signal applied to at least one of said operation locations performs an operation at said operation location, said operation including at least one from the group consisting of: add data, replace data, delete data, add node, replace node, or delete node.
78. A computer system according to claim 71 further comprising at least one information modeler including IM means for creating, analyzing and modifying an information model, said information model having IM design data representative of elements including at least one from the group consisting of attribute, entity method, attribute method, partnership set, and partnership set method, said attribute being independent of an entity.
79. A computer system according to claim 78 further comprising at least one process modeler including IFM means for creating, analyzing, and modifying a process model, said information flow model having IFM design data representative of elements including at least one from the group consisting of processes, information stores, information flows, messages, views, process local stores, sources, and destinations, said IFM design data relating to at least one of said elements of said IM design data. 80. A computer system according to claim 79 wherein said information modeler further comprises means for establishing an IM display having IM display objects representative of said IM design data, including means associated with said IM display selectively operative for externally applying signals to said IM display objects, whereby an externally applied signal associated with at least one of said IM display objects affects said IM design data;
wherein said process modeler further comprises means for establishing a IFM display having IFM display objects representative of said IFM design data, including means associated with said IFM display selectively operative for externally applying signals to said IFM display objects, whereby an externally applied signal associated with at least one of said IFM display objects affects said IFM design data; and
wherein said logic modeler further comprises means for establishing a PDL display having PDL display objects representative of said PDL design data, including means associated with said PDL display selectively operative for externally applying signals to said PDL display objects, whereby an externally applied signal associated with at least one of said PDL display objects affects said PDL design data. 81. A computer system according to claim 80 further comprising display linking means for dynamically correlating said IM display, said IFM display, and said PDL display whereby a change to any one of said IM design data, IFM design data, and PDL design data affects a substantially immediate corresponding change in at least one of said IM design data, IFM design data, and PDL design data.
82. A computer system for processing complex business transactions comprising:
A. at least one selectively operable outer subsystem including:
i. first outer subsystem storage means for storing transaction design data representative of the rules of a desired business transaction;
ii. second outer subsystem storage means for storing first user data in an original form;
iii. processing means for reversibly processing said first user data whereby said first user data is transformed in accordance with a predetermined processing algorithm defined by said design data, and associated means for making said stored first user data externally inaccessible during said processing; iv. means internally operative on said transformed first user data for evaluating said transformed first user data in accordance with predetermined logical criteria defined by said design data; and
upon identification of a first set of conditions:
10
(a) storing said transformed first user data;
(b) making said stored transformed 15 first user data externally accessible; and
upon identification of a second set of conditions: 20
(a) inverse transforming said first user data to said original form;
(b) storing said original form first 25 user data; and
(c) making said stored original form user data externally accessible;
B. at least one selectively operable nested inner subsystem including:
i. first inner subsystem storage means for storing nested transaction design data representative of the rules of a desired business transaction;
ii. second inner subsystem storage means for storing nested user data in an original form;
iii. processing means for reversibly processing said nested user data whereby said nested user data is transformed in accordance with a predetermined processing algorithm defined by said design data, and associated means for making said nested user data externally inaccessible during said processing;
iv. means internally operative on said transformed nested user data for evaluating said transformed nested user data in accordance with predetermined logical criteria defined by said design data; and
upon identification of a first set of conditions:
(a) storing said transformed nested user data; (b) making said stored transformed nested user data externally accessible; and
upon identification of a second set of conditions:
(a) inverse transforming said nested user data to said original form;
10
(b) storing said original form user data; and
(c) making said stored original form 15 nested user data accessible to said outer subsystem;
C. means for controling in sequence:
20 i. said outer subsystem to be operative using said first user data;
ii. said nested inner subsystem to be operative using said nested user data; 25 and
iii. said outer subsystem to be operative using said accessible nested user data,
83. A computer system according to claim 82 wherein said first user data is representative of elements including at least one from the group consisting of:
attribute; attribute method; entity method; partnership set; partnership set method; entity; entity and relationship; entity and attribute; entity, relationship, and partnership set;
process; information store; information flow; message; view; process local store; source; destination; event;
keywords; identifiers; symbols; and, statements.
84. A computer system according to claim 82 wherein said nested user data is representative of elements including at least one from the group consisting of:
attribute; attribute method; entity method; partnership set; partnership set method; entity; entity and relationship; entity and attribute; entity, relationship, and partnership set;
process; information store; information flow; message; view; process local store; source; destination; event;
keywords; identifiers; symbols; and, statements. 85. A computer system according to claim 82 further comprising:
A. storage means for storing information representative of an ordered set of references to design data;
B. valuation means for assigning a data value to said ordered set, defining an entity-set variable;
C. processing means selectively operable to process said entity-set variable in accordance with imposed criteria.
86. A computer system according to claim 85 wherein said design data includes entities.
87. A computer system according to claim 86 wherein said ordered set is ordered in accordance with predetermined criteria.
88. A computer system according to claim 86 wherein said ordered set is ordered in accordance with operator selected criteria.
89. A computer system according to claim 86 wherein said first user data includes entity-set variables.
90. A computer system according to claim 86 wherein said nested user data includes entity-set variables. _ Λ C
—106—
91. A computer system for establishing model subsets of a dynamic model of information systems of organizations comprising:
A. two or more modelers including modeler means for creating, analyzing, and modifying two or more models corresponding to each of said modelers, each of said models having design data representative of elements including at least one from the group consisting of:
attribute; entity and attribute; attribute method; entity and relationship; entity method; entity and entity method; entity, relationship and partnership set; process; view; process local store; information store; information flow; message; source; and, destination;
B. operator means for applying external signals to each of said modelers, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said modeler means;
C. modeler linking means for dynamically correlating said design data, whereby a change to any of said design data of one of said modelers affects a substantially immediate corresponding change to said design data of others of said modelers; and D. filter means for creating at least one model subset of at least one of said models, each of said model subsets being defined by operator-determined selection criteria, and being selected in accordance with said selection criteria from each of said design data.
92. A computer system according to claim 91 wherein said filter means further comprises means for establishing at least one model subset display of each of said model subsets, and having model subset display objects representative of at least one of said model subsets, including means associated with each of said model subset displays selectively operative for externally applying signals to each of said model subset display objects, whereby an externally applied signal associated with at least one of said model subset display objects affects at least one associated one of said models.
93. A computer system according to claim 92 further comprising display linking means for dynamically correlating each of said model subset displays, wherein a change to any of said model subset design data affects a substantially immediate corresponding change in others of said model subset design data.
94. A computer system for establishing model subsets of a dynamic model of information systems of organizations comprising:
A. at least one information modeler including IM means for creating, analyzing and modifying an information model, said information model having IM design data;
B. at least one process modeler including
IFM means for creating, analyzing, and modifying a process model, said information flow model having IFM design data representative of elements including at least one from the group consisting of processes, information stores, information flows, messages, views, process local stores, sources, and destinations, said IFM design data relating to at least one of said elements of said IM design data;
C. at least one logic modeler, including
PDL means for defining logical operations on at least one of said IFM design data and IM design data, said logical operations being defined by PDL design data;
D. modeler linking means for dynamically correlating said information modeler, said process modeler, and said logic modeler, wherein a change to any of said IM design data affects a corresponding IM-IFM/PDL change in said IFM design data and said PDL design data, and wherein a change to any of said IFM design data affects a corresponding IFM-IM/PDL change in said IM design data and said PDL design data, and wherein a change to any of said PDL design data affects a corresponding PDL-IM/IFM change in said IM design data and said IFM design data;
E. operator means for applying external signals to said information modeler and said process modeler, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said IM means and said IFM means; and
F. filter means for creating at least one of the group of subsets consisting of an IM-subset of said information model, an IFM-subset of said process model, and a PDL-subset of said PDL design data, each of said IM-subset, IFM-subset, and PDL-subset being defined by operator-determined selection criteria, and being selected in accordance with said selection criteria from said IM design data, IFM design data, and PDL design data.
95. A computer system according to claim 94 wherein said IM design data is representative of elements including at least one from the group consisting of: attribute; attribute method; partnership set; partnership set method; entity; entity method; entity and relationship; entity and attribute, and; entity, relationship, and partnership set.
96. A computer system according to claim 95 wherein said filter means further comprises:
means for establishing an IM-subset display of said IM-subset having IM-subset display objects representative of said IM-subset, including means associated with said IM-subset display selectively operative for externally applying signals to said IM-subset display objects, whereby an externally applied signal associated with at least one of said IM-subset display objects affects said information model;
means for establishing an IFM-subset display of said IFM-subset having IFM-subset display objects representative of said IFM-subset, including means associated with said IFM-subset display selectively operative for externally applying signals to said IFM-subset display objects, whereby an externally applied signal associated with at least one of said IFM-subset display objects affects said process model; and -Ill-
means for establishing a PDL-subset display of said PDL-subset having PDL-subset display objects representative of said PDL-subset, including means associated with said PDL-subset display selectively operative for externally applying signals to said PDL-subset display objects, whereby an externally applied signal associated with at least one of said PDL-subset display objects affects said PDL design data.
97. A computer system according to claim 96 further comprising display linking means for dynamically correlating said IM-subset display, said IFM-subset display, and said PDL-subset display, wherein a change to any of said IM-subset design data affects a substantially immediate corresponding change in said IFM-subset design data and said PDL-subset design data, and wherein a change to any of said IFM-subset design data affects a substantially immediate corresponding change in said IM-subset design data and said PDL-subset design data, and wherein a change to any of said PDL-subset design data affects a substantially immediate corresponding change in said IM-subset design data and said IFM-subset design data.
98. A computer system according to claim 94 wherein said PDL design data corresponds to at least one from the group consisting of insert, retrieve, update, delete, send, receive, signal, when, reference to an entity method, connect, and disconnect. 99. A computer system according to claim 94 further comprising at least one function modeler, including FD design data representative of FD subprocesses, each of said subprocesses corresponding to at least one of said processes of said IFM design data, and having FD means for defining a hierarchy of said FD subprocesses of said IFM design data.
100. A computer system according to claim 99 further comprising linking means for dynamically correlating said function modeler, said logic modeler and said process modeler, whereby a change to any of said FD design data affects a corresponding FD-PDL/IFM change in said PDL design data and said IFM design data, and whereby a change to any of said PDL design data or said IFM design data affects a corresponding PDL/IFM-FD change in said FD design data.
101. A computer system according to claim 100 wherein said function modeler further comprises means for establishing a FD display having FD display objects representative of said FD design data, including means associated with said FD display selectively operative for externally applying signals to said FD display objects, whereby an externally applied signal associated with at least one of said FD display objects affects said FD design data; and
wherein said process modeler further comprises means for establishing a IFM display having IFM display objects representative of said IFM design data, including means associated with said IFM display selectively operative for externally applying signals to said IFM display objects, whereby an externally applied signal associated with at least one of said IFM display objects affects said IFM design data.
102. A computer system according to claim 101 further comprising display linking means for dynamically correlating said FD display and said IFM display, whereby a change to any of said FD design data affects a substantially immediate corresponding change in said IFM design data, and whereby a change to any of said IFM design data affects a substantially immediate change in said FD design data.
103. A computer system for establishing subprocesses in a model of information management systems of organizations, comprising:
A. at least one modeler including modeler means for creating, analyzing, and modifying one or more models corresponding to each of said modelers, each of said models having design data, said design data including at least one process;
B. operator means for applying external signals to each of said modelers, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said modeler means; C. means for establishing at least one modeler display having display objects representative of said design data, including means associated with said display selectively operative for externally applying signals to said display objects, whereby an externally applied signal associated with at least one of said display objects affects associated ones of said design data;
D. process explosion (PE) means for exploding at least one of said processes of said design data into zero, one or more process explosion (PE) processes; each of said PE processes including at least one of the group consisting of primitive processes and high-level (HL) processes, each of said HL processes including one of the group consisting of primitive processes and HL processes; and wherein each of said HL processes includes HL means for creating and modifying each of said PE processes; and
E. means for establishing a PE display of at least one of said primitive processes having PE display objects representative of said design data associated with said primitive process, and including means associated with said PE display selectively operative for externally applying signals to said PE display objects, whereby an externally applied signal associated with at least one of said PE display objects affects said design data; and wherein said PE display is selectively displayable simultaneous with at least one of said modeler displays. 104. A computer system according to claim 103 wherein said design data includes at least two processes, and further comprising implosion means for consolidating at least two of said processes of said design data into a process implosion (PI) process, each of said PI processes defining a high-level (HL) process.
105. A computer system according to claim 104 wherein said implosion means further includes means for establishing a PI display of at least one of said HL processes, and including means associated with said PI display selectively operative for externally applying signals to said PI display, whereby an externally applied signal associated with said PI display affects said design data; and wherein said PI display is selectively displayable simultaneous with at least one of said modeler displays.
106. Display apparatus comprising:
A. means for establishing at least one set of one or more objects, wherein at least one of said objects is representative of a subset of one or more sub-objects;
B. means for selectively displaying said objects of said set in a structured set array; C. means for selectively displaying said sub-objects of said subset in a structured subset array, wherein said structured subset array is selectively displayable simultaneous with said structured set array;
D. means associated with said structured set array selectively operative for externally applying signals to said objects, whereby an externally applied signal associated with at least one of said objects affects said sub-objects; and
E. means associated with said structured subset array selectively operative for externally applying signals to said sub-objects, whereby an externally applied signal associated with at least one of said sub-objects affects said objects of said set.
107. A computer system for establishing subprocesses in a model of information management systems of organizations, comprising:
A. at least one modeler including modeler means for creating, analyzing, and modifying one or more models corresponding to each of said modelers, each of said models having design data, said design data including at least two processes;
B. operator means for applying external signals to each of said modelers, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said modeler means; C. means for establishing at least one modeler display having display objects representative of said design data, including means associated with said display selectively operative for externally applying signals to said display objects, whereby an externally applied signal associated with at least one of said display objects affects associated ones of said design data; and
D. implosion means for consolidating at least two of said processes of said design data into a process implosion (PI) process, each of said PI processes defining a high-level (HL) process.
108. A computer system according to claim 107 wherein said implosion means further includes means for establishing a PI display of at least one of said HL processes, and including means associated with said PI display selectively operative for externally applying signals to said PI display, whereby an externally applied signal associated with said PI display affects said design data; and wherein said PI display is selectively displayable simultaneous with at least one of said modeler displays.
109. A computer system for information management systems of organizations, comprising:
A. one or more modelers including modeler, means for creating, analyzing, and modifying one or more models corresponding to each of said modelers, each of said models having design data; B. means for establishing in said computer system one or more partnership sets within at least one of said design data, each of said partnership sets being representative of zero, one or more partnerships;
C. means for establishing one or more of said partnerships, wherein each of said partnerships is characterized by one partnership set associated with itself or associated with one other partnership set;
D. means for accessing in said computer system one or more of said design data by reference to a partnership set which is in partnership with partnership sets of said one or more of said design data;
E. operator means for applying external signals to each of said modelers, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said modeler means; and
F. modeler linking means for dynamically correlating said design data, whereby a change to any of said design data of one of said modelers affects a substantially immediate corresponding change to said design data of others of said modelers. 110. A computer system according to claim 109 wherein said design data is representative of elements including at least one from the group consisting of:
attribute; attribute method; entity and attribute; entity and relationship; entity and entity method; entity, relationship and partnership set; process; view; process local store; information store; information flow; message; event; source; and, destination.
111. A computer system according to claim 110 wherein at least one modeler comprises an information modeler, including IM means for creating, analyzing and modifying an information model, said information model having IM design data representative of elements including at least one from the group consisting of: attribute; entity method; attribute method; partnership set; and, partnership set method, said attribute being independent of an entity.
112. A computer system according to claim 111 wherein at least one modeler comprises a process modeler, including IFM means for creating, analyzing, and modifying a process model, said information flow model having IFM design data representative of elements including at least one from the group consisting of: processes; information stores; information flows; messages; views; process local stores; events; sources; and, destinations, said IFM design data relating to at least one of said elements of said IM design data;
113. A computer system according to claim 112 further comprising modeler linking means for dynamically correlating said information modeler and said process modeler, wherein a change to any of said IM design data affects a corresponding IM-IFM change in said IFM design data, and wherein a change to any of said IFM design data affects a corresponding IFM-IM change in said IM design data.
114. A computer system according to claim 113 wherein said information modeler further comprises means for establishing an IM display having IM display objects representative of said IM design data, including means associated with said IM display selectively operative for externally applying signals to said IM display objects, whereby an externally applied signal associated with at least one of said. IM display objects affects said IM design data; and wherein said process modeler further comprises means for establishing a IFM display having IFM display objects representative of said IFM design data, including means associated with said IFM display selectively operative for externally applying signals to said IFM display objects, whereby an externally applied signal associated with at least one of said IFM display objects affects said IFM design data.
115. A computer system according to claim 114 further comprising display linking means for dynamically correlating said IM display and said IFM display, whereby a change to any of said IM design data affects a substantially immediate corresponding change in said IFM design data, and whereby a change to any of said IFM design data affects a substantially immediate change in said IFM design data.
116. A computer system for an information management system, comprising:
A. storage means for storing information representative of an ordered set of references to user data;
B. valuation means for assigning a data value to said ordered set, defining an entity-set variable;
C. processing means selectively operable to process said entity-set variable in accordance with imposed criteria. 117. A computer system according to claim 116 wherein said design data includes entity instances.
118. A computer system according to claim 117 wherein said ordered set is ordered in accordance with predetermined criteria.
119. A computer system according to claim 117 wherein said ordered set is ordered in accordance with operator selected criteria.
120. A computer system according to claim 117 further comprising:
A. at least one modeler including modeler means for creating, analyzing, and modifying one or more models corresponding to each of said modelers, each of said models having design data, said design data including at least one process; and
B. operator means for applying external signals to each of said modelers, said signals being effective to evoke a creating, analyzing, or modifying response from at least one of said modeler means.
EP91909069A 1990-04-27 1991-04-26 Dynamic information management computer system Withdrawn EP0531319A1 (en)

Applications Claiming Priority (16)

Application Number Priority Date Filing Date Title
US516815 1983-07-25
US51681390A 1990-04-27 1990-04-27
US516822 1990-04-27
US07/516,250 US5195178A (en) 1990-04-27 1990-04-27 Adaptive window system for dynamically modeling information systems
US516814 1990-04-27
US516247 1990-04-27
US07/516,247 US5193182A (en) 1990-04-27 1990-04-27 Computer system for defining logical operations on design data including retrieve entity-set, send, receive, signal, when, reference to entity-set, reference to entity method, connect and disconnect
US07/516,814 US5212771A (en) 1990-04-27 1990-04-27 System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems
US516128 1990-04-27
US07/516,248 US5193183A (en) 1990-04-27 1990-04-27 System for accessing design data of modeler subsystems by reference to partnership set and for dynamically correlating design data of modeler subsystems
US07/516,128 US5179698A (en) 1990-04-27 1990-04-27 System for transforming user data in accordance with an algorithm defined by design data and for evaluating the transformed data against logical criteria
US07/516,822 US5146591A (en) 1990-04-27 1990-04-27 Dynamic information management system utilizing entity-relationship information model in which the attribute is independent of an entity
US516813 1990-04-27
US516248 1990-04-27
US07/516,815 US5241645A (en) 1990-04-27 1990-04-27 Computer system for creating and manipulating subsets of dynamic information systems models
US516250 2000-03-01

Publications (2)

Publication Number Publication Date
EP0531319A1 EP0531319A1 (en) 1993-03-17
EP0531319A4 true EP0531319A4 (en) 1994-01-12

Family

ID=27575459

Family Applications (1)

Application Number Title Priority Date Filing Date
EP91909069A Withdrawn EP0531319A1 (en) 1990-04-27 1991-04-26 Dynamic information management computer system

Country Status (4)

Country Link
EP (1) EP0531319A1 (en)
JP (1) JPH06501576A (en)
CA (1) CA2081546A1 (en)
WO (1) WO1991017494A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390330A (en) * 1993-02-11 1995-02-14 Talati; Kirit K. Control system and method for direct execution of software application information models without code generation
DE59410242D1 (en) * 1993-11-15 2003-03-20 Siemens Ag METHOD FOR AUTOMATICALLY MODELING A PARTIAL PROCESS FROM A TOTAL PROCESS BY A COMPUTER
US5764543A (en) * 1995-06-16 1998-06-09 I2 Technologies, Inc. Extensible model network representation system for process planning
US20060122845A1 (en) * 2002-07-31 2006-06-08 Mark Denford Method and apparatus for the analysis of complex systems
US9665270B2 (en) 2013-06-28 2017-05-30 Sap Se Layout algorithm for entity relation model diagram
CN112581561A (en) * 2020-12-25 2021-03-30 深圳市元征科技股份有限公司 Method and device for creating pin view, electronic equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631664A (en) * 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
FR2607284A1 (en) * 1986-08-18 1988-05-27 Neuron Data Inc INTERACTIVE DYNAMIC DISPLAY SYSTEM FOR KNOWLEDGE BASE

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4841441A (en) * 1984-08-01 1989-06-20 Adata Software Limited Method of creating a computer system
US4774661A (en) * 1985-11-19 1988-09-27 American Telephone And Telegraph Company, At&T Information Systems Database management system with active data dictionary
JPH01162979A (en) * 1987-12-19 1989-06-27 Ricoh Co Ltd Extension mechanism for data base control system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631664A (en) * 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
FR2607284A1 (en) * 1986-08-18 1988-05-27 Neuron Data Inc INTERACTIVE DYNAMIC DISPLAY SYSTEM FOR KNOWLEDGE BASE

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. TOPPER: "Building up to IEW/WS", PC TECH JOURNAL, vol. 6, no. 9, September 1989 (1989-09-01), USA, pages 110 - 123 *
K. ORR ET AL.: "Methodology: The Experts Speak", BYTE, vol. 14, no. 4, April 1989 (1989-04-01), USA, pages 221 - 233 *
S. JANUS: "POSE Explores the CASE Frontier", PC WEEK JOURNAL, vol. 6, no. 22, 5 June 1989 (1989-06-05), pages 89 - 90 *
See also references of WO9117494A1 *

Also Published As

Publication number Publication date
CA2081546A1 (en) 1991-10-28
EP0531319A1 (en) 1993-03-17
JPH06501576A (en) 1994-02-17
WO1991017494A1 (en) 1991-11-14

Similar Documents

Publication Publication Date Title
US5241645A (en) Computer system for creating and manipulating subsets of dynamic information systems models
US5212771A (en) System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems
US5195178A (en) Adaptive window system for dynamically modeling information systems
US5249300A (en) System and method of constructing models of complex business transactions using entity-set variables for ordered sets of references to user data
US5193182A (en) Computer system for defining logical operations on design data including retrieve entity-set, send, receive, signal, when, reference to entity-set, reference to entity method, connect and disconnect
US5179698A (en) System for transforming user data in accordance with an algorithm defined by design data and for evaluating the transformed data against logical criteria
US5193183A (en) System for accessing design data of modeler subsystems by reference to partnership set and for dynamically correlating design data of modeler subsystems
US5146591A (en) Dynamic information management system utilizing entity-relationship information model in which the attribute is independent of an entity
US5019961A (en) Computer apparatus and method for logical modelling
US7966356B2 (en) Apparatus and methods for displaying and determining dependency relationships among subsystems in a computer software system
US5877966A (en) System and method for creating configurations using templates
US6957206B2 (en) Computer system and method with adaptive N-level structures for automated generation of program solutions based on rules input by subject matter experts
US6035300A (en) Method and apparatus for generating a user interface from the entity/attribute/relationship model of a database
Florijn et al. Tool support for object-oriented patterns
US6567812B1 (en) Management of query result complexity using weighted criteria for hierarchical data structuring
JP3136035B2 (en) Automatic layout generator for database system interface and method for generating the same
US7461042B2 (en) Method, system, and program for defining and managing complex contingent rules, and exceptions thereto, in a rule-based computer system
US6415275B1 (en) Method and system for processing rules using an extensible object-oriented model resident within a repository
Cybulski et al. A hypertext based software-engineering environment
US5630069A (en) Method and apparatus for creating workflow maps of business processes
US5530861A (en) Process enaction and tool integration via a task oriented paradigm
JP3303926B2 (en) Structured document classification apparatus and method
US8626756B1 (en) Tagging data assets
Hudson et al. A generator of direct manipulation office systems
WO1991017494A1 (en) Dynamic information management computer system

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19921102

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LI LU NL SE

A4 Supplementary search report drawn up and despatched

Effective date: 19931125

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): AT BE CH DE DK ES FR GB GR IT LI LU NL SE

17Q First examination report despatched

Effective date: 19960805

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 19970416