lunes, 9 de diciembre de 2013

DIAGRAMA DE CLASES

CONCEPTOS BÁSICOS DIAGRAMA DE CLASES

El diagrama de clase es el diagrama principal de diseño y análisis para un sistema, y en él se agrupan todas las clases y relaciones que existen entre ellas y que serán utilizadas dentro del sistema.  Los diagramas de Clases por definición son estáticos, esto es, representan que partes interactúan entre sí, sin indicar el momento en que ocurre.

Una clase agrupa los objetos que comparten estructura, comportamiento y relaciones similares. Una clase representa los conceptos del sistema que se desea modelar.

Gráficamente una clase se dibuja como un rectángulo con hasta tres (3) compartimentos:
Nombre de la clase
Lista de Atributos (opcional)
Lista de Operaciones (opcional)


Atributos de una clase

Los atributos representan alguna propiedad dentro de la clase.  Los atributos son valores que son instanciados de la clase. Una clase puede tener varios atributos o ninguno.

Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos. Por esta razón se crearon niveles de visibilidad para los elementos que son:
  • (-)  Privado: Son accesibles sólo por métodos propios de la clase.
  • (#) Protegidos: Son accesible sólo por las clases derivadas de la original.
  • (+) Públicos: Son accesibles por cualquier clase


Operaciones de una clase

Una operación es la implementación de un servicio que podrá ser requerido por cualquier objeto de la clase para afectar su comportamiento. En otras palabras, una operación es una abstracción de algo que se quiera hacer sobre un objeto y sea compartido por todos los objetos de la clase.

Se puede diferenciar una operación colocando su firma:
  • Declarando el nombre de la operación
  • Declarando los parámetros
  • Declarando el valor retornado


Relaciones entre clases

Al construir abstracciones, descubrimos que muy pocas de las clases diseñadas actúan solas, y muchas otras colaboran con otras clases. Por lo que debemos conocer cómo se relacionan unas con otras. 


Existen en el modelado orientado a objetos tres tipos de relaciones:
  • Dependencia
  • Generalización
  • Asociación


La Dependencia representa el uso de las relaciones entre clases, La Generalización sirve para conectar las clases generales a otras más específicas, es decir, para relaciones subclase/superclase, y la Asociación indica relaciones estructurales entre los objetos.

La Agregación se deriva de la Asociación y la Especialización se deriva de la Generalización. Ambos tipos de relaciones forman jerarquías de clases.

Dependencia

La dependencia se usa para mostrar que una clase usa otra clase como un argumento, el cual se especifica en la firma de la operación. En el diagrama anterior la clase Event es utilizado por la clase Window por sus métodos.
Se dibuja como una flecha punteada.




Generalización

La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general.  A la clase más general se le denomina “Superclase” o “Padre” y a la clase más específica se le denomina “Subclase” o “Hijo”.  A veces este tipo de relación es referenciada como "is-a-kind-of" o “es-un-tipo-de”.  Por ejemplo, la clase CuadroDialogo es un tipo de la clase Ventana.

Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones y asociaciones de la clase padre están disponibles en sus clases hijas.

Una clase puede tener cero, uno o más padres. Una clase que no tiene padre es llamada clase raíz o clase base. Una clase que no tiene hijos es una clase hoja. Una clase que tiene exactamente un padre se dice que usa herencia sencilla; una clase que tiene más de un padre se dice que tiene herencia múltiple.

La Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas. La Especialización es una técnica muy eficaz para la extensión y reutilización.



Asociación

Es la relación estructural que especifica que objetos de una cosa están conectados a objetos de otras. Dada una conexión de asociación en dos clases, se puede navegar desde un objeto de una clase a un objeto de la otra clase, y viceversa.

Una asociación que conecta exactamente dos clases se llama asociación binaria, aunque se pueden asociar más clases la cual se llamaría asociación n-aria. Se dibuja como una línea continua.

Existen cuatro conceptos que se aplican a la asociación:

  • Nombre
  • Rol
  • Multiplicidad

 Nombre

Una asociación puede tener un nombre para describir su naturaleza.


Rol

Cuando una clase participa dentro de una asociación, tiene un rol específico que juega en la relación.





Multiplicidad


En el modelado, es importante definir cuantos objetos pueden estar conectados en una instancia de la asociación. Mostrándose la multiplicidad en el rol de la asociación.

Puede determinarse por la especificación de multiplicidad (mínima...máxima)
Uno y sólo uno
0..1 Cero o uno
M...N Desde M hasta N (enteros naturales)
* Cero o muchos
0..* Cero o muchos
1..* Uno o muchos (al menos uno)
Un número específico (N)




El diagrama de clases se desarrolla a través de información obtenida en los Casos de Uso, Diagramas de Secuencia y Diagramas de Colaboración. Los objetos encontrados durante el análisis son modelados en términos de la clase a la que instancian, y las interacciones entre objetos son referenciados a relaciones entre las clases instanciadas.

No hay comentarios:

Publicar un comentario