230 likes | 549 Views
Diagramas de clases del diseño. Su preparación exige crear antes:. Diagramas de interacción. De ellos se identifican las clases de software que intervienen en la solución y sus métodos. Modelo conceptual: a partir de él se agregan detalles a la definición de las clases.
E N D
Diagramas de clases del diseño Su preparación exige crear antes: • Diagramas de interacción. De ellos se identifican las clases de software que intervienen en la solución y sus métodos. • Modelo conceptual: a partir de él se agregan detalles a la definición de las clases. Los diagramas de clases se pueden crear al mismo tiempo que los diagramas de interacción.
Casilla de tres secciones para la definición de clase Navegabilidad TPDV introducirProducto() Venta Fecha estaTerminada:Booleano hora hacerLíneadeProducto() Captura 1 1 Métodos Información sobre tipos Ejemplo de un diagrama de clases de diseño
Diagramas de clases del diseño Describe gráficamente las especificaciones de las clases de software y de las interfaces (por ejemplo, las de Java) en una aplicación. Contiene la siguiente información: • Clases, asociaciones y atributos. • Interfaces, con sus operaciones y constantes. • Métodos. • Información sobre los tipos de los atributos. • Navegabilidad. • Dependencias.
Diagramas de clases del diseño Para elaborar un diagrama de clases orientado al diseño: 1. Identifique todas las clases que participan en la solución del software. Para ello analice los diagramas de interacción. 2. Dibújelas en un diagrama de clases. 3. Duplique los atributos provenientes de los conceptos asociados del modelo conceptual. 4. Agregue los nombres de los métodos analizando los diagramas de interacción.
Diagramas de clases del diseño 5. Incorpore la información sobre los tipos a los atributos y a los métodos. 6. Agregue las asociaciones necesarias para dar soporte a la visibilidad requerida de los atributos. 7. Agregue flechas de navegabilidad a las asociaciones para indicar la dirección de la visibilidad de los atributos. 8. Agregue las líneas de relaciones de dependencia para indicar la visibilidad no relacionada con los atributos.
Venta fecha estaTerminada:Booleano hora TPDV Modelo Conceptual 1 Captura 1 Concepto; abstracción TPDV terminarVenta() introducirProducto() efectuarPago() Venta fecha estaTerminada:Booleano hora hacerLineadeProducto() Diagrama de clases del diseño Captura 1 1 Componente del software Comparación entre el Modelo Conceptualy los Diagramas de Clases de Diseño
EspecificaciondeProducto descripcion precio CUP TPDV Venta fecha estaTerminada hora Tienda direccion nombre CatalogodeProductos cantidad VentasLineadeProducto cantidad Pago monto Creación de Diagramas de Clases de Diseñopara el punto de venta 1. Identificar las clases de software y su ilustración. (Se encuentran examinando todos los diagramas de interacción, luego se dibujan los diagramas de clase correspondientes y se incluyen los atributos que aparecen en el modelo conceptual).
Venta fecha estaTerminada hora hacerLineadeProducto() 3:hacerLineadeProductos(especif,cant) :TPDV :Venta Creación de Diagramas de Clases de Diseñopara el punto de venta 2. Agregar los nombres de los métodos. Estos se sacan de los mensajes de los diagramas de colaboración. Por cada mensaje enviado a la clase X, esta deberá definir un método con el mismo nombre.
TPDV terminarVenta() introducirProducto() efectuarPago() EspecificaciondeProducto descripcion precio CUP Venta fecha estaTerminada hora seTermina() hacerLineadeProducto() efectuarPago() total() Tienda direccion nombre agregarVenta() CatalogodeProductos especificación() VentasLineadeProducto cantidad subtotal() Pago monto Creación de Diagramas de Clases de Diseñopara el punto de venta
Aspectos especiales referentes a los nombres de los métodos El mensajecrear: En UML representa instanciación e inicialización. En C++ Asignación automática o en elalmacenamiento libre con New llamada al constructor. En JavaInvocar New seguido de la llamada a un constructor. Se acostumbra omitir los métodos relacionados con la creación y los constructores procedentes del diagrama de clases del diseño.
Aspectos especiales referentes a los nombres de los métodos Métodos de Acceso: Son los que recuperan o los que establecen el valor de los atributos. Una estructura común cuenta con una forma de tener acceso y de establecer el valor para cada atributo y declara privados todos los atributos (obliga al encapsulamiento). Estos métodos normalmente NO se incluyen en la descripción del diagrama de clase (Ejemplo: El método obtenerPrecio no se muestra auque esta presente).
2:especif:=especificacion(cup) :Catalogo deProductos 2.1:especif:=encontrar(cup) :Especificacion deProducto Aspectos especiales referentes a los nombres de los métodos Mensajes a Multiobjetos: Un mensaje a un multiobjeto se interpreta como destinado al objeto contenedor/colección El mensaje encontrar dirigido a un multiobjeto se interpreta como destinado a un objeto contenedor/colección; ejemplo: Una tabla Hashtable, un Map de C++ o un Dictionary de Smalltalk. El método encontrar NO forma parte de la clase EspecificacióndeProducto, sino más bien de la definición de la tabla Hastable o Dictionary.
Aspectos especiales referentes a los nombres de los métodos Las clases contenedor/colección (como java.util.Vector y java.util.Hashtable) son clases predefinidas de las bibliotecas y no se acostumbra mostrarlas de forma explícita en el diagrama de clases porque aportan muy poca información nueva e incorporan ruido.
Creación de Diagramas de Clases de Diseñopara el punto de venta 3. Agregar más información sobre los tipos. Es opcional mostrar el tipo de los atributos, de los parametros del método y de los valores de devolver método. Se recomienda mostrarlo cuando se usan herramientas CASE con generación automática de código porque ellas requieren todos los detalles
TPDV terminarVenta() introducirProducto(cup:Entero, cant:Entero) efectuarPago(efectivoOfrecido: Cantidad) CatalogodeProductos especificacion(cup:Entero): EspecificaciondeProducto EspecificaciondeProducto descripcion:Texto precio:Cantidad cup:CUP Venta fecha:Fecha estaTerminada:Booleano hora:Hora seTermina() hacerLineadeProducto(especif: EspecificaciondeProd,cant:Entero) efectuarPago(efectivoOfrecido: Cantidad) total():Cantidad Tienda direccion:Direccion nombre:Texto agregarVenta(v.Venta) VentasLineadeProducto cantidad:Entero subtotal():Cantidad Pago monto:Cantidad Creación de Diagramas de Clases de Diseñopara el punto de venta Incorporación de información sobre los tipos.
La flecha de navegabilidad indica que los objetos TPDV están conectados unidireccionalmente con los objetos Venta. La clase TPDV probablemente tenga un atributo que apunta a un objeto Venta. TPDV terminarVenta() introducirProducto() efectuarPago() Venta fecha estaTerminada hora seTermina() hacerLineadeProducto() efectuarPago() total() Captura 1 1 Creación de Diagramas de Clases de Diseñopara el punto de venta 4. Incorporar Asociaciones y Navegabilidad. La Navegabilidad indica la posibilidad de navegar unidireccionalmente en una asociación, desde los objetos fuente hasta la clase destino. También significa visibilidad (generalmente de atributos).
Creación de Diagramas de Clases de Diseñopara el punto de venta En los diagramas de clase orientados al diseño, la mayoría de las asociaciones deberían completarse con las flechas necesarias de navegación. La visibilidad y las asociaciones requeridas entre las clases se indican con los diagramas de interacción. Es necesario definir una asociación con una flecha de navegabilidad A a B en las siguientes situaciones comunes: • A envía un mensaje a B. • A crea una instancia B. • A necesita mantener una conexión con B.
Usa 1 1 1 Contiene 1 1..* 1 1 CatalogodeProductos especificacion( ) Mira-en EspecificaciondeProducto descripcion:Texto precio:Cantidad cup:CUP Alberga 1 1 Contiene Captura TPDV terminarVenta( ) introducirProducto( ) efectuarPago( ) Venta fecha:Fecha estaTerminada:Booleano hora:Hora seTermina( ) hacerLineadeProducto( ) efectuarPago( ) total( ) VentasLineadeProducto cantidad:Entero subtotal( ) Tienda direccion:Direccion nombre:Texto agregarVenta( ) 1 1 1 1..* Pago monto:Cantidad 1 Pagado-por * 1 Registros-terminados Asociaciones con símbolos de navegabilidad
Creación de Diagramas de Clases de Diseñopara el punto de venta 5. Relaciones de Dependencia. El UML incluye una relación general de dependencia la cual indica que un elemento (clase, caso de uso, etc.) conoce la existencia de otro. Se denota con una línea punteada y con flecha. En los diagramas de clase, la relación de dependencia describe la visibilidad de un parámetro global o visibilidad declarada localmente.
Usa 1 1 1 Contiene 1 1..* 1 1 CatalogodeProductos especificacion( ) Mira-en Alberga EspecificaciondeProducto descripcion:Texto precio:Cantidad cup:CUP 1 1 Contiene Captura TPDV terminarVenta( ) introducirProducto( ) efectuarPago( ) Venta fecha:Fecha estaTerminada:Booleano hora:Hora seTermina( ) hacerLineadeProducto( ) efectuarPago( ) total( ) Tienda direccion:Direccion nombre:Texto agregarVenta( ) VentasLineadeProducto cantidad:Entero subtotal( ) 1 1 1 1..* * Registros-terminados Pago monto:Cantidad 1 Pagado-por 1 Dependencia de TPDV que conoce sobre EspecificaciondeProducto. Se recomienda cuando existe un parámetro y visibilidad global o declarada localmente. Creación de Diagramas de Clases de Diseñopara el punto de venta
Java.awt.Font plain:Integer=0 bold:Integer=1 name:String style:Integer=0 ... +getFont(name:String):Font +getName():String ... Nombre de la clase atributo atributo:tipo atributo:tipo=valor inicial atributodeClase /atributoDerivado ... metodo1() metodo2(lista de parametros) :tipo de retorno metodoAbstracto() +metodoPrivado() #metodoProtegido() metododeClase() ... Java.awt.Toolkit #createButton(target:Button):ButtonPeer ... +getColorModel():ColorModel ... Notación de los detalles de los miembros de la clase
TPDV +terminarVenta() +introducirProducto() +efectuarPago() CatalogodeProductos +especificacion() EspecificaciondeProducto descripcion precio cup Venta fecha estaTerminada hora +seTermina() +hacerLineadeProducto() +efectuarPago() +total() Tienda direccion nombre +agregarVenta() VentasLineadeProducto cantidad +subtotal() Pago monto Notación de los detalles de los miembros de la clase