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
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