Un modelo lógico es una vista estática de los objetos y las clases que cubren el espacio de análisis y diseño. Típicamente, un modelo de dominio es una vista más pobre, de alto nivel de los objetos de negocio y de las entidades, mientras que el modelo de clases es un modelo más riguroso y enfocado al diseño. Esta discusión describe principalmente el modelo de clases.
El Modelo de Clases
Una clase es un elemento
estándar del UML, que se usa para especificar
el patrón del que se
producirán los objetos en tiempo de ejecución.
Una clase es una especificación; un objeto
es una
instancia de una clase. Las clases se pueden
heredar de otras clases (es decir, heredan todo
el
comportamiento y el estado de sus padres y agregan
nueva funcionalidad propia), pueden tener
otras clases como atributos, pueden delegar sus
responsabilidades a otras clases e implementar
interfaces abstractas.
El modelo de clases está en
el núcleo del desarrollo y del diseño
orientados a
objetos; expresa el estado persistente y el comportamiento
del sistema. Una clase encapsula el
estado (los atributos) y ofrece los servicios
para manipularlo (el comportamiento). Un buen
diseño
orientado a objetos limita el acceso directo
a los atributos de la clase y ofrece los servicios
que
manipulan a solicitud del solicitante. Este ocultamiento
de los datos y exposición de los servicios
asegura que las modificaciones de los datos se
realizan sólo en un lugar y de acuerdo
con reglas
específicas; para grandes sistemas la
cantidad de código que tiene acceso directo
a los elementos
de datos en muchos sitios es extremadamente alto.
Las clases se representan
usando la siguiente notación:

Observe que la clase tiene tres áreas diferentes:
| 1.
|
El nombre
de la clase (y el estereotipo, si corresponde) |
| 2. |
El área de los
atributos (es decir los elementos de datos
internos) |
| 3. |
El comportamiento;
privado y público |
Los atributos y los métodos pueden ser
marcados como:
| - |
Privados
(private), indicando que no son visibles
para los solicitantes fuera de la clase |
| - |
Protegidos (protected),
son visibles sólo para las clases
hijas |
| - |
Públicos (public),
son visibles para todos. |
La herencia mostrada a continuación
consiste en: una clase abstracta en este caso,
es el padre de dos clases hijos, las cuales heredan
las características y extienden sus comportamientos.

Las clases se pueden agrupar
en unidades lógicas o paquetes. Ellos juntan
elementos relacionados entre sí. El
diagrama siguiente ilustra esto.

|