The invention relates to the field of programming languages and computer management of logical entities such as objects/classes.
There exists a need for a comprehensive tool allowing to represent, as close as possible, reality and logic in classes.
With prior art systems, the organization of an object-oriented architecture is highly dependent upon the programmers expertise level. With currently available tools, it is difficult to create objects/classes of a chosen domain. Furthermore, none of the currently available classification systems allow structured creation and naming of all the classes necessary to a given application.
Other difficulties associated with currently available systems include: the difficulty in uniquely naming classes since existing software does not provide any nomenclature rules that makes it easy for a programmer not familiar with the architecture of a system to follow. As a system is being developed and grows in complexity, it becomes harder to maintain a certain consistency in naming of different classes.
Another drawback associated with prior art systems is the difficulty in separately representing a class and its activities. It is common practice therefore to create different classes to represent the same reality, e.g. client, supplier, etc.
It is also difficult to represent the cardinality of a set of objects/classes, since multiplicity is a property that can only be used to characterize links between classes.
Furthermore, with current tools, classes need to be assembled into packages in order to build an architecture. While some current systems provide tools for class creation, these are poorly adapted to describe logical associations between classes.
There are further difficulties in defining packages expressing a dynamic view of an application by associating different classes expressed in a static view.
There are also difficulties in coherently naming packages, as well as certain components such as interfaces and databases.
There are therefore numerous difficulties in imparting knowledge regarding the classes and their associations to other programmers.
The modeling method according to an embodiment of the present invention comprises a hierarchical rooted classification method including a method of naming classes according to inheritance principles.
A generated model classification class (EM) represents the concept of a model. Within the model classification hierarchy, a model/package-group class (EM_GpEB) represents a logical class assembly model, built around a logic classification class (EB), for implementation in package-group class (EBGp). Furthermore, in an example, model/package-group classes for single-element classes (EBU) and multiple-element classes (EBG) are provided within the hierarchy.
Within a generated logic classification class (EB) hierarchy, both single-element classes (EBU) and multiple-element classes (EBG) can be organized into logic families. The families of single-element class (EBU) include domain class (EBUD), link class (EBUL), role class (EBUR) and data class (EBUI). The families of multiple-element class (EBG) include associative-group class (EBGa), inheritance-group class (EBGh), family-group class (EBGf) and package-group class (EBGp).
Furthermore, the exemplary concepts represented by the above classes facilitate their logical associations in order to represent better and separately any class and its behaviour
The naming method according to an embodiment of the present invention facilitates the maintenance of a coherent “name space” since it allows the creation of class names providing information regarding the logic family to which a class belongs, as well as references to other classes.
The modeling method according to an embodiment of the present invention further comprises, in another aspect, a method for associating classes into class assembly models according to exemplarily concepts such as role, group and transaction. Such class assembly models are implemented in model/package-group classes (EM_GpEB). In still another aspect, the inherent logic of the classification, the naming method and class assembly method according to an embodiment the present invention, further facilitate pseudo code creation.
In order to achieve a logical and coherent approach for class creation within an application, an embodiment of the present invention allows creation and naming of each class within a hierarchical rooted classification including classes representing a logical assembly of classes such as class assembly models and packages.
According to an embodiment, there is provided a method for modeling classes to create an application in an object-oriented programming environment based on a hierarchical rooted classification (E) and inheritance-based naming of an entity. The method comprising, in the logic classification (EB), on a first level, determining whether the entity belongs to a single-element class (EBU) or a multiple-element class (EBG) and providing a first indication therefor; on a second level, if the entity belongs to a single-element class (EBU), determining whether the entity is one of a data (I), a link (L), a role (R) and a domain (D) and providing a second indication therefor; and creating a name for the entity by aggregating the first and the second indications.
According to another embodiment, the method for modeling classes further comprises if said entity represents a multiple-element class (EBG), determining whether said multiple-element class is one of: a family group (f) in which all elements are implemented objects from classes descendant from the same hierarchical class; an inheritance group (h) in which all elements are implemented objects from the same class; an associative group (a), in which elements belong to different classes; and a package group (p) in which elements are part of a logical class assembly.
According to another embodiment, there is provided a method for creating pseudo-code comprising: creating classes according to the method for modeling classes as disclosed above; creating a class assembly model for each model/package-group class; assembling said classes into package-group classes according to said model/package-group classes; and creating pseudo-code from said classes.
According to another embodiment, there is provided a computer implemented method for creating an application from model classes, the application for use in an object-oriented programming environment and based on a hierarchical rooted classification (E) and inheritance-based naming of an entity, the method comprising: in a logic classification (EB), on a first level, determining whether the entity belongs to a single-element class (EBU) or a multiple-element class (EBG) and providing a first indication therefor; on a second level, if the entity belongs to a single-element class (EBU), determining whether the entity is one of a data (I), a link (L), a role (R) and a domain (D) and providing a second indication therefor; creating a name for the entity by aggregating the first and the second indications; and using the name and the classes to create the application for execution by a data-processing system.
According to another embodiment, there is provided a data-processing system for creating an application comprising: a processing unit; a memory unit for communication with the processing unit, the memory unit comprising a program, the program for adapting the computer system to perform the following steps: in a logic classification (EB), on a first level, determining whether the entity belongs to a single-element class (EBU) or a multiple-element class (EBG) and providing a first indication therefor; on a second level, if the entity belongs to a single-element class (EBU), determining whether the entity is one of a data (I), a link (L), a role (R) and a domain (D) and providing a second indication therefor; creating a name for the entity by aggregating the first and the second indications; using the name and the classes to create the application; and storing the application in the memory unit for execution by the processing unit.
According to another embodiment, there is provided a computer readable medium having recorded thereon statements and instructions for execution by a data-processing system to carry out a computer-implemented method for creating an application from model classes, the method comprising: in a logic classification (EB), on a first level, determining whether the entity belongs to a single-element class (EBU) or a multiple-element class (EBG) and providing a first indication therefor; on a second level, if the entity belongs to a single-element class (EBU), determining whether the entity is one of a data (I), a link (L), a role (R) and a domain (D) and providing a second indication therefor; creating a name for the entity by aggregating the first and the second indications; and using the name and the classes to create the application.
These and other features, aspects and advantages of the present invention will become better understood with regard to the following description and accompanying drawings wherein:
The rooted hierarchic classification method according to an embodiment of the present invention provides a structural base from which all classes necessary to a computer application can be easily declared and classified according to inheritance principles. The classification method further allows for inheritance-based naming of an entity according to its place within the hierarchical classification, as well as with respect to other referenced classes.
With respect to
Within model classification class (EM) 23 hierarchy, generated class (EM_EB) 22 represents the model for implementation of a logic classification class (EB) 25. As shown in
Returning to
Still with respect to
Single-element class (EBU) 29 can also generate a logical link class (EBUL) 41, which can be used to model a link in a contextual class association, e.g., the relationship between a class and its role, the inheriting relationship between classes or the relationship between a class and the group to which it belongs. Examples of single-element link classes are therefore link role, link inheritance, link group, etc. A link class exposes a contextual class association.
Another type of generated single-element class is a logical role class (EBUR) 43, which is used to represent the role imparted to a given class and serve to dissociate a class from its role; i.e., what a thing is and what it does are represented by different classes. Examples of single-element role classes include activities such as seller and buyer.
Also generated are virtual data classes (EBUI) 39 for representing computer tools. This representation provides, in the model, the data necessary to the computer application; e.g., data, state, function, interface.
Still with respect to
Still another multiple-element class is the inheritance-group class (EBGh) 49 which is a class for representing a set of implemented objects from a same class. For example, a group of all commercial entities or a group of all link roles for project resources are classes (EBGh) 49. Example class (Gh_UDTr) 50 is shown and will be further discussed below.
Yet another multiple-element class is the package-group class (EBGP) 51 which is a class representing the implementation of a class assembly model from a model/package-group class (EM_GpEB) 32.
Now, with respect to
The product class (UDP) 61 is a parent class to child classes (UDPP) 69 for a physical product and (UDPs) 71 for a service product.
The transaction class (UDTr) 63 plays an important role in representing a class common to two different activity assemblies (such as buying and selling, for example). Indeed, a (UDTr) 63 class allows to link logically different package-group classes implemented in a computer application.
Finally, as shown in
Now, with respect to
In
Still, with respect to
Classes of type link-role (ULr) 97 are used to build role behavior in class assembly i.e. to link a class to its role. In fact, a link-role class exposes what a class is as well as which role it plays. Again, as for other class types, these may be links for single-element classes (ULr_U) 113 or multiple-element classes (ULrLG) 115. Example class (ULr_UDCen) 114 is shown and will be further discussed below.
Now, with respect to
While not shown in the appended drawings, the multiple-element classes (EBGf) 47 and (EBGh) 49, may each be used for creating a class grouping a plurality of implemented objects from either a single-element class or a multiple-element class, designated with the usual “_U” or “G” notation respectively. Also not shown, the multiple-element classes (EBGa) 45 and (EBGp) 51 may each be used to represent class assemblies for either single-element classes or multiple-element classes, designated with the usual “_U” or “_G” notation, respectively.
As can be seen from the classification method described above, an embodiment of the present invention may be used for implementing a naming method representative of the hierarchical position of a class in the classification, as well as of its reference to another class. In the context of computer application development, the naming method may be used for creating a coherent library of class names for the whole system. The naming method therefore provides a basis from which all entities necessary in an application can be named in a unique manner. The inheritance naming method provides for child classes incorporating the name of the parent classes, as well as the names of other referenced classes.
The syntax of the naming method is based on several principles that include use of one-letter abbreviations to represent upper-level classes, use of two-letter abbreviations for intermediate-level classes, use of three-letter abbreviations for final classes and the use of the underscore character “_” in order to indicate class references.
The aggregation of the letters and characters may be read by separating the elements starting by the letters U or G.
The following are examples of entity names created according to an embodiment of the present invention.
(Gh_UDTr) 50 (see
(URa_UDCen) 120 (see
(Gf_URaUDCen) 48 (see
(ULr_UDCen) 114 (see
An embodiment of the present invention comprises, in a second aspect, an easy and improved method of associating classes. Exemplarily behaviour concepts such as role, group and transaction are embodied in class assembly construct. Such constructs are implemented in the model/package-group classes required by the application. In effect, behavior for any given class of the classification may then be represented by a logical class assembly model built around that class.
With respect to
With respect to
The implementation according to an embodiment the present invention requires creating the appropriate classes within the classification and using model/package-group classes to assemble them in order to obtain the packages needed in a given computer application. The packages will be represented by a class of the multiple-element package-group class.
An embodiment of present invention also provides, as shown in
With respect to
The routines or steps executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific computer application, component, program, object, module or sequence of instructions will be referred to herein as “computer programs”, or simply “programs”. The computer programs typically comprise one or more instructions that are resident at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause that computer to perform the steps necessary to execute steps or elements embodying the various aspects of the invention.
It should be noted that the present invention can be carried out as a method, can be embodied in a system, a computer readable medium or an electrical or electromagnetic signal. Indeed, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of signal bearing media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, magnetic tape, optical disks (e.g., CD-ROM's, DVD's, etc.), among others, and transmission type media such as digital and analog communication links.
Furthermore, those skilled in the art will recognize that the exemplary environments illustrated in
Numerous fields of expertise can take advantage of the present invention. For example, the management of resources in corporations or institutions can be greatly facilitated by the method or system described herein. The ability to reflect reality and logic in the naming and organization of multiple objects or classes provides for enhanced retrieval, processing and/or management of any type of data. Easier maintenance of consistency within the overall architectures having multiples packages, interfaces and databases becomes possible, along with obtaining dynamic views of an application by associating different classes together. For example, in a large institution, various roles for employees can be grouped together in a certain manner, reflecting their hierarchy and their respective function at a certain time. Commercial entities along with their products and services, the registration of clients and suppliers, with their transactions can also be managed effectively. Transactions between senders and receivers, or sellers and buyers can be better retrieved, monitored and accomplished. Other applications involve creating coherent libraries of various elements such as names, objects, databases, etc., in order to create an entire system with a more efficient organization.
Other more specific applications include products that focus on Enterprise Resource Planning (ERP), advanced planning and optimizing solutions, Business Information Warehousing (BW), Costumer Relationship Management (CRM), Supply Chain Management (SCM), Supplier Relationship Management (SRM), Human Resource Management Systems (HRMS), Product Lifecycle Management (PLM), Exchange Infrastructure (XI), Enterprise Portal (EP), and Knowledge Warehouse (KW). As an example relating to ERP, the invention permits the integration of all data and processes of an organization into a single unified system, wherein a single, unified and structured database is used to store all the data of the various system modules.
Hence, all the basic functions of an organization, regardless of the organization's business or charter are integrated and controlled by the system. Business, non-profit organizations, non governmental organizations, governments, and other large entities benefit from ERP systems. The present invention can be used as a software package that provides both payroll and accounting functions, for example. The benefits of the present invention is not limited to, but can range from standardization and lower maintenance to easier and/or greater reporting capabilities as all data is typically kept in one database and is structured more effectively.
The embodiments of the invention described above are intended to be exemplary only. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CA2006/001695 | 10/13/2006 | WO | 00 | 4/4/2008 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2007/041867 | 4/19/2007 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5418964 | Conner et al. | May 1995 | A |
5519868 | Allen et al. | May 1996 | A |
5615112 | Sheng et al. | Mar 1997 | A |
6023578 | Birsan et al. | Feb 2000 | A |
6381743 | Mutschler, III | Apr 2002 | B1 |
6678882 | Hurley et al. | Jan 2004 | B1 |
6684388 | Gupta et al. | Jan 2004 | B1 |
6742175 | Brassard | May 2004 | B1 |
6895586 | Brasher et al. | May 2005 | B1 |
6901579 | Suguta | May 2005 | B1 |
7165239 | Hejlsberg et al. | Jan 2007 | B2 |
7219328 | Schloegel et al. | May 2007 | B2 |
20030204517 | Skinner et al. | Oct 2003 | A1 |
20040015833 | Dellarocas et al. | Jan 2004 | A1 |
20040044990 | Schloegel et al. | Mar 2004 | A1 |
20050015775 | Russell et al. | Jan 2005 | A1 |
20050034107 | Kendall et al. | Feb 2005 | A1 |
20050060695 | Hostetter et al. | Mar 2005 | A1 |
20050066338 | Bloesch et al. | Mar 2005 | A1 |
20050149906 | Okrongli | Jul 2005 | A1 |
20060136482 | Conn et al. | Jun 2006 | A1 |
Number | Date | Country |
---|---|---|
WO 0043871 | Jul 2000 | WO |
Entry |
---|
Epstein, Pete, et al., “Towards a UML Based Approach to Role Engineering”, RBAC '99, Fairfax, VA, Oct. 1999, pp. 135-143. |
PCT/Notification of transmittal of the International Search Report (ISR) and the Written Opinion of the International Searching Authority,or the Declaration—PCT/CA2006/001695 (Form PCT/ISA/220)—Jan. 19, 2007—3 pages. |
PCT/International Search Report (ISR)—PCT/CA2006/001695 (Form PCT/ISA/210)—Jan. 19, 2007—4 pages. |
Number | Date | Country | |
---|---|---|---|
20080270975 A1 | Oct 2008 | US |
Number | Date | Country | |
---|---|---|---|
60725658 | Oct 2005 | US |