Interactive tool for semi-automatic creation of a domain model
First Claim
1. A method of creating a domain model, said method being usable by persons inexperienced in creating domain models to create a domain model, said method comprising the steps of:
- deriving a representation of domain knowledge from a domain specification, said representation being a plurality of domain objects, each of said domain objects including one or more attributes; and
nesting said domain objects, wherein one or more of said domain objects point to one or more other domain objects.
4 Assignments
0 Petitions
Accused Products
Abstract
A method, system and program product 100 usable by domain developers having any experience level in creating domain models. A representation of domain model knowledge is derived from a domain specification. The domain specification includes multiple potential domain objects, e.g., tables of APIs functional arguments, and each of the potential domain objects include one or more attributes. Potential domain objects are selected one at a time 102 from the specification and offered to the developer. The developer decides 104 whether or not to include the potential domain object in the domain model. If the developer decides to include the potential domain object 106, then the system provides a default name 108, i.e., the table name or argument name, and allows the developer to rename the selected domain object 110. Then, after having selected the object, potential attributes 112, e.g., table columns 1122, are selected from the object and offered to the developer 116. If the developer decides to include a potential attribute, then a default name, i.e., the column name or name extracted from an API function, is offered 1126 for the selected attribute and the developer is allowed to rename attributes 1128. Once all the potential domain objects have been offered 118 to the developer and the developer has either decided to include the potential objects or not, the system checks the domain model for nesting structure 200. If domain objects include attributes that are shared with other domain objects 2006, then those domain objects may be reorganized such that some domain objects include instances of identically named attributes from other domain objects.
189 Citations
31 Claims
-
1. A method of creating a domain model, said method being usable by persons inexperienced in creating domain models to create a domain model, said method comprising the steps of:
-
deriving a representation of domain knowledge from a domain specification, said representation being a plurality of domain objects, each of said domain objects including one or more attributes; and
nesting said domain objects, wherein one or more of said domain objects point to one or more other domain objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
a) selecting an object from said domain specification;
b) naming said selected object;
c) selecting attributes in said selected object; and
d) assigning names to selected ones of said attributes.
-
-
3. A method as in claim 2, wherein the step (a) of selecting the object further comprises:
-
i) selecting a candidate object from said domain specification; and
ii) determining whether to include said selected candidate object in said representation, candidate objects determined to be included in said representation being selected objects.
-
-
4. A method as in claim 3, wherein as a name is provided for said selected object in step (b), said provided name is presented to a developer for acceptance, said presented name being a default object name.
-
5. A method as in claim 4, wherein when said developer rejects said default object name, said developer assigns an object name to said selected object.
-
6. A method as in claim 5, wherein the step of deriving the representation further comprises the step of:
e) repeating steps a-d until all candidate objects have been selected in step (a)(i).
-
7. A method as in claim 6, wherein the step (c) of selecting attributes further comprises:
-
i) selecting an attribute candidate for said selected object; and
ii) determining whether to include said attribute candidate in said representation, attribute candidates determined to be included being selected attributes.
-
-
8. A method as in claim 7, wherein the step (d) of selectively naming the attributes comprises presenting a default attribute name to said developer, said developer selectively accepting said attribute name.
-
9. A method as in claim 8, wherein when said developer rejects said default attribute name, said developer assigns an attribute name.
-
10. A method as in claim 7, wherein the candidate objects are tables in a relational database, attribute candidates are columns in said tables and step (a)(ii) of determining whether to include a selected table comprises presenting said selected table to said developer, said developer deciding whether said table is included as a domain object;
- and wherein, the step (c)(ii) of determining whether to include attribute candidates comprises presenting columns from said table to said developer, said developer deciding whether to include said column as an attribute.
-
11. A method as in claim 1, wherein the step of nesting domain objects comprises the steps of:
-
a) pairing domain objects;
b) identifying attributes having identical names within said paired objects;
c) identifying conflicting identically named attributes; and
d) renaming said conflicting attributes.
-
-
12. A method as in claim 11, wherein the step (c) of identifying conflicting identically named attributes further comprises:
-
i) identifying non-conflicting attributes in at least two objects;
ii) including in one or more of the at least two objects an instance of a selected one of the identically named attributes.
-
-
13. A method as in claim 12, wherein conflicting attributes have conflicting value types and non-conflicting attributes have non-conflicting value types.
-
14. A method as in claim 13, wherein the included instance is given a new domain attribute name.
-
15. A method as in claim 14, wherein the value type of the new domain attribute is set to the value type of the other of said non-conflicting attributes.
-
16. A system usable by domain developers having any domain development skill level to interactively create domain models, said system comprising:
-
means for automatically deriving a representation of domain knowledge from a domain specification, said representation being a plurality of domain objects, each of said domain objects including one or more attributes; and
means for automatically nesting said domain objects, wherein one or more of said domain objects points to one or more other domain objects. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
means for selecting an object from said domain specification and presenting said object to a developer;
means for selecting attributes in selected objects and presenting said attributes to said developer; and
means for assigning names to selected objects and selected attributes.
-
-
18. A system as in claim 17, wherein the means for assigning names comprises:
-
means for deriving a default name;
means for presenting said default name to said developer; and
means for receiving an alternate name from said developer.
-
-
19. A system as in claim 18, wherein the developer decides whether to include the presented object in a domain model, included objects being selected objects.
-
20. A system as in claim 18, wherein the developer decides whether to include the presented attributes in the domain model, included attributes being selected attributes.
-
21. A system as in claim 16, wherein the domain object nesting means comprises:
-
means for identifying attributes having identical names within said domain objects;
means for identifying conflicting attributes with identical names; and
means for renaming identified conflicting attributes.
-
-
22. A system as in claim 21, wherein the domain nesting means further comprises:
-
means for pairing objects; and
means for comparing value types of identically named attributes in paired said objects.
-
-
23. A system as in claim 22, further comprising means for assigning a value type to attributes.
-
24. A computer program product for enabling a domain developer to create domain models, regardless of the domain developer'"'"'s skill level, said computer program product comprising a computer usable medium having computer readable program code thereon, said computer readable program code comprising:
-
computer readable program code means for automatically deriving a representation of domain knowledge from a domain specification, said representation being a plurality of domain objects, each of said domain objects including one or more attributes; and
computer readable program code means for automatically nesting said domain objects, wherein one or more of said domain objects points to one or more other domain objects. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
computer readable program code means for selecting an object from said domain specification and presenting said object to a developer;
computer readable program code means for selecting attributes in selected objects and presenting said attributes to said developer; and
computer readable program code means for assigning names to selected objects and selected attributes.
-
-
26. A computer readable program code means for enabling a domain developer to create domain models as in claim 25, wherein the computer readable program code means for assigning names comprises:
-
computer readable program code means for deriving a default name;
computer readable program code means for presenting said default name to said developer; and
computer readable program code means for receiving an alternate name from said developer.
-
-
27. A computer readable program code means for enabling a domain developer to create domain models as in claim 26, further comprising:
computer readable program code means for allowing the developer to decide whether to include the presented object in a domain model, included objects being selected objects.
-
28. A computer readable program code means for enabling a domain developer to create domain models as in claim 27, further comprising:
computer readable program code means for allowing the developer to decide whether to include the presented attributes in the domain model, included attributes being selected attributes.
-
29. A computer readable program code means for enabling a domain developer to create domain models as in claim 28, wherein computer readable program code means for domain object nesting comprises:
-
computer readable program code means for identifying attributes having identical names within different said domain objects;
computer readable program code means for identifying conflicting attributes with identical names; and
computer readable program code means for renaming identified conflicting attributes.
-
-
30. A computer readable program code means for enabling a domain developer to create domain models as in claim 29, wherein the computer readable program code means for domain nesting further comprises:
-
computer readable program code means for pairing domain objects; and
computer readable program code means for comparing value types of identically named attributes in paired said domain objects.
-
-
31. A computer readable program code means for enabling a domain developer to create domain models as in claim 30, further comprising computer readable program code means for selectively assigning value types to attributes.
Specification