Uml - diagramas de clase: fundamentos

Solo disponible en BuenasTareas
  • Páginas : 18 (4353 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de junio de 2011
Leer documento completo
Vista previa del texto
UML - Diagramas de clase: fundamentos

El diagrama de clase describe los tipos de objetos que hay en el sistema y las diversas clases de relaciones estáticas que existen entre ellos. Hay dos tipos principales de relaciones estáticas:

Asociaciones (por ejemplo, un cliente puede rentar diversas videocintas).
Subtipos (una enfermera es un tipo de persona).
Los diagramas de clase tambiénmuestran los atributos y operaciones de una clase y las restricciones a que se ven sujetos, según la forma en que se conecten los objetos.

Introducción

La técnica del diagrama de clase se ha vuelto medular en los métodos orientados a objetos. Virtualmente, todos los métodos han incluido alguna variación de esta técnica.

El diagrama de clase, además de ser de uso extendido, también está sujetoa la más amplia gama de conceptos de modelado. Aunque los elementos básicos son necesarios para todos, los conceptos avanzados se usan con mucha menor frecuencia. Por eso, he dividido mi estudio de los diagramas de clase en dos partes; los fundamentos (en el presente capítulo) y los conceptos avanzados los conceptos avanzados (véase el capítulo siguiente).

El diagrama de clase describe lostipos de objetos que hay en el sistema y las diversas clases de relaciones estáticas que existen entre ellos. Hay dos tipos principales de relaciones estáticas:

Asociaciones (por ejemplo, un cliente puede alquilar diversas videocintas).
Subtipos (una enfermera es un tipo de persona).
Los diagramas de clase también muestran los atributos y operaciones de una clase y las restricciones a que se vensujetos, según la forma en que se conecten los objetos.

Los diversos métodos OO utilizan terminologías diferentes (y con frecuencia antagónicas) para estos conceptos. Se trata de algo sumamente frustrante pero inevitable, dado que los lenguajes OO son tan desconsiderados como los métodos. Es en esta área que el UML aportará algunos de sus mayores beneficios, al simplificar estos diferentesdiagramas.

La figura 4-1 muestra un diagrama de clase típico.



Figura 4-1 Diagrama de clase

Perspectivas

Antes de empezar a describir los diagramas de clase, quisiera señalar una importante sutileza sobre el modo en que se usan. Tal sutileza generalmente no está documentada, pero tiene sus repercusiones en el modo en que debe interpretarse un diagrama, ya que se refiere a lo que se vaa describir con un modelo.

Siguiendo la recomendación de Steve Cook y John Daniels (1994), considero que hay tres perspectivas que se pueden manejar al dibujar diagramas de clase (o, de hecho, cualquier modelo, aunque esta división se advierte de modo especial en relación con los diagramas de clase).

Conceptual. Si se adopta la perspectiva conceptual, se dibuja un diagrama que represente losconceptos del dominio que se está estudiando. Estos conceptos se relacionan de manera natural con las clases que los implementan, pero con frecuencia no hay una correlación directa. De hecho, los modelos conceptuales se deben dibujar sin importar (o casi) el software con que se implementarán, por lo cual se pueden considerar como independientes del lenguaje. (Cook y Daniels llaman perspectivaesencial a esto; por mi parte, empleo el término" conceptual", pues se ha usado durante mucho tiempo.)
Especificación. Ahora estamos viendo el software, pero lo que observamos son las interfaces del software, no su implementación, por tanto, en realidad vemos los tipos, no las clases. El desarrollo orientado a objetos pone un gran énfasis en la diferencia entre interfaz e implementación, pero estocon frecuencia se pasa por alto en la práctica, ya que el concepto de clase en un lenguaje OO combina tanto la interfaz como la implementación. Así, a menudo se hace referencia a las interfaces como tipos y a la implementación de esas interfaces como clases. Influidos por este manejo del lenguaje, la mayor parte de los métodos han seguido este camino. Esto está cambiando (Java y CORBA tendrán...
tracking img