A logical model is a static
view of the objects and classes that make up the
design/analysis space. Typically, a Domain Model
is a looser, high level view of Business Objects
and entities, while the Class Model is a more
rigorous and design focused model. This discussion
relates mainly to the Class Model
The Class Model
A Class is a standard
UML construct used to detail the pattern from
which objects will be produced at run-time. A
class is a specification - an object an instance
of a class. Classes may be inherited from other
classes (that is they inherit all the behaviour
and state of their parent and add new functionality
of their own), have other classes as attributes,
delegate responsibilities to other classes and
implement abstract interfaces.
The Class Model is at the core
of object-oriented development and design - it
expresses both the peristent state of the system
and the behaviour of the system. A class encapsulates
state (attributes) and offers services to manipulate
that state (behaviour). Good object-oriented design
limits direct access to class attributes and offers
services which manipulate attributes on behalf
of the caller. This hiding of data and exposing
of services ensures data updates are only done
in one place and according to specific rules -
for large systems the maintenance burden of code
which has direct access to data elements in many
places is extremely high.
The class is represented as
below:

Note that the class has three
distinct areas:
| 1.
|
The class
name (and stereotype if applied) |
| 2. |
The class attributes area
(that is internal data elements) |
| 3. |
The behaviour - both
private and public |
Attributes and methods
may be marked as
| - |
Private, indicating
they are not visible to callers outside the
class |
| - |
Protected, they are only
visible to children of the class |
| - |
Public, they are visible
to all |
Class inheritance is shown
as below: an abstract class in this case, is the
parent of two children, each of which inherits
the base class features and extends it with their
own behaviour.

Class models may be collected
into packagesof related behaviour and state. The
diagram below illustrates this.

|