El Modelo Lógico
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.