Applying the Class Elimination Rule (Step N2)

 

" CER1: Redundant classes. Two nouns represent the same abstraction. We keep the

more descriptive noun. For example, we use customer, instead of user in ATM domain.

" CER2: Irrelevant classes. The nouns have nothing to do with the problem to be

solved. The noun is beyond the scope of the problem being modeled. For example,

in a video rental domain, the occupations of the customers are irrelevant when we

focus on rental transactions.

" CER3: Vague classes. The nouns have ill-defined or too broad scope. For example,

business activities are vague in most domains.

" CER4: Operations. The nouns represent operations. For example, ROI (Return-on-

Investment) is an operation (Blaha & Premerlani, 1998), and bonus calculation is a

noun form of an operation called calculate bonus.

" CER5: Implementation constructs. The nouns represent an implementationrelated

class such as set, string, or algorithm. These implementation classes can be

added at the design or implementation stages, but not at the conceptual level.

To be published as a chapter in Information Modeling Methods and Methodologies, Ed (J. Krogstie, et al.), Idea Group Publishing, 2004.

10

" CER6: Meta-language. The noun is used to describe and explain requirements and

the system at a very high level. Examples are systems, information, or reporting

requirements.

" CER7: Attributes. The nouns represent a text or a number. For example, name,

age, and phone number represent attributes that carry a value. There are often

delicate cases where it seems uncertain whether a noun should be modeled as an

attribute or a class. In those cases, we use the following rules in determining

whether a noun represents an attribute or a class as follows:

/* R1: The Rule of One-Property */

IF a noun has only one property to remember

THEN it is an attribute of another class

ELSE it is a class

Example: If we need to remember only city name, city will be an attribute of

another class. If we need to remember city name, the type of city, the state it

belongs to, then city should be modeled as a class.

/* R2: The Rule of Dependence */

IF the identification of an object (noun) relies on another concept object (noun)

THEN it is an attribute

Example: Name is not important in its own right. It is only meaningful when we

connect the name to some object. So, name will be an attribute of some class. On

the other hand, Customer is a good domain class since it is important in its own

right.

/* R3: The Rule of Independence */

IF the noun represents an object which is important in its own right

THEN it is a class

" CER8:Values. The nouns represent a value itself. For example, in an account will

be put on hold state if the balance is unpaid for more than 100 days, the noun

phrase hold state represents a value of another attribute, possibly, account-status.

" CER9: Derived classes. The concepts can be derived from other domain classes.

The decision to include a derived class in the analysis model should be deferred

until the design stage. However, we add a derived class in the data dictionary.

Derived classes do not add new information, but they could be useful in real-world

and in design

We note that these class elimination rules may not be mutually exclusive. They are used to

admonish the modeler to include only meaningful classes at the analysis level.

To be published as a chapter in Information Modeling Methods and Methodologies, Ed (J. Krogstie, et al.), Idea Group Publishing, 2004.

11

/* R4: The Class Elimination Rule */

IF the noun candidate belongs to one of the nine CER rules

THEN it is not a class.

Any noun phrases that pass these nine rules are candidates for classes.

 

 

 

Applying the Class Category Rule (Step N3)

 

" CC1: Roles of People. They represent humans who carry out some important

function. Examples are Student, Employee, and Customer.

" CC2: Places. They represent locations where important business activities are held.

Examples are Office, Warehouse, and Store.

" CC3: Physical Things. They represent tangible objects that are important in

business activities. Examples are Machine, Product, Device, and Book.

" CC4: Organizations. They represent important business units. Examples are

Company, Team, and Department.

" CC5: Events (Transactions). They represent important activities that need to

record some data with the time the event occurred. Examples are Order,

Promotion, and Payment.

" CC6: Transaction Line Items. They represent an element of a transaction.

Examples are Order-Line-Item, Purchase-Line-Item, and Rental-Line-Item.

" CC7: Concepts (Discovered Class; Intangible Things). They represent intangible

ideas used to keep track of business activities. Examples are Project, Account, and

Complaint.

" CC8: Specification. They represent a description of other items that need to be

distinguished from one another. Examples are Video-Title or Flight-Plan. For

example, a movie called Harry Potter is a title, but a store may have many tape

instances, where each tape has a different barcode. (Note here Video Title is not

just one attribute that stores the title of a tape. Instead, it is a specification class that

keeps track of title, actors, release year, running time, etc. In a video store, one title

may have many video tapes.)

To be published as a chapter in Information Modeling Methods and Methodologies, Ed (J. Krogstie, et al.), Idea Group Publishing, 2004.

12

" CC9: Interaction. They represent an association between two classes, where the

association has meaningful attributes. An example of this class is Reservation

between Passenger and Flight classes.

" CC10: Rules/Policies. They represent important business rules. Examples are

Rental-Policy and ShippingMethod. The Rule here does not mean if-then-else logic.

Instead, A rule/policy class represents a business rule that can be broken down into

several attributes in a tabular form. For example, a rental policy may state rental

charges and rental durations. ShippingMethod class may define carrier name, fee,

and delivery period.

" CC11: Containers of other things. They represent classes that will contain other

classes. Examples are Store, Shelf, Catalog, Pick List, and Bin.

" CC12: Things in a container. They represent classes that will be contained in

another class. Examples are Order Line Item, Pick List Line Item, Passenger, and

Video-Title in a catalog.

" CC13: Financial Instruments and Services. They represent class that are used to

support financial activities. Examples are Stock, Bond, and Mortgage.

" CC14: Lookup/References. They represent a single class that is used for referring

to a list of predefined items. Examples are Airport codes and Accounting codes.

In our class categories, we have