Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica...

22
María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas de clases del diseño 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.

Transcript of Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica...

Page 1: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Diagramas de clases del diseñoDiagramas 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 tiempoque los diagramas de interacción.

Page 2: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Ejemplo de un diagrama de clases de diseñoEjemplo de un diagrama de clases de diseño

TPDV

introducirProducto()

Venta

FechaestaTerminada:Booleanohora

hacerLíneadeProducto()

Captura

1 1

Casilla de tres seccionespara la definición de clase Navegabilidad

Métodos Información sobre tipos

Page 3: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Diagramas de clases del diseñoDiagramas de clases del diseño

Describe gráficamente las especificaciones de las clases desoftware y de las interfaces (por ejemplo, las de Java) enuna 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.

Page 4: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Diagramas de clases del diseñoDiagramas de clases del diseño

Para elaborar un diagrama de clases orientado al diseño:

2. Dibújelas en un diagrama de clases.

1. Identifique todas las clases que participan en la solución del software. Para ello analice los diagramas de interacción.

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.

Page 5: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Diagramas de clases del diseñoDiagramas 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.

Page 6: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Comparación entre el Modelo ConceptualComparación entre el Modelo Conceptualy los Diagramas de Clases de Diseñoy los Diagramas de Clases de Diseño

TPDVCapturaModelo Conceptual

Venta

fechaestaTerminada:Booleanohora

1 1

Concepto; abstracción

Diagrama de clasesdel diseño

TPDV

terminarVenta()introducirProducto()efectuarPago()

Venta

fechaestaTerminada:Booleanohora

hacerLineadeProducto()

Captura

1 1

Componente del software

Page 7: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara 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).

TPDV

Tiendadireccionnombre

CatalogodeProductos

cantidad

EspecificaciondeProductodescripcionprecioCUP

VentafechaestaTerminadahora

VentasLineadeProductocantidad

Pagomonto

Page 8: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara 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 :Venta3:hacerLineadeProductos(especif,cant)

VentafechaestaTerminadahorahacerLineadeProducto()

Page 9: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara el punto de venta

TPDV

terminarVenta()introducirProducto()efectuarPago()

TiendadireccionnombreagregarVenta()

CatalogodeProductos

especificación()

EspecificaciondeProductodescripcionprecioCUP

VentafechaestaTerminadahoraseTermina()hacerLineadeProducto()efectuarPago()total()

VentasLineadeProducto

cantidad

subtotal()

Pagomonto

Page 10: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Aspectos especiales referentes a los Aspectos especiales referentes a los nombres de los métodosnombres de los métodos

El mensaje crear: En UML representa instanciación einicialización.

En C++ Asignación automática o en el almacenamiento libre con New llamada al constructor.

En JavaInvocar New seguido de la llamada a un constructor.

Se acostumbra omitir los métodos relacionados con lacreación y los constructores procedentes del diagrama declases del diseño.

Page 11: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

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).

Aspectos especiales referentes a los Aspectos especiales referentes a los nombres de los métodosnombres de los métodos

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).

Page 12: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Mensajes a Multiobjetos: Un mensaje a un multiobjeto se interpreta como destinado al objeto contenedor/colección

Aspectos especiales referentes a los Aspectos especiales referentes a los nombres de los métodosnombres de los métodos

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.

:CatalogodeProductos

:EspecificaciondeProducto

2:especif:=especificacion(cup)

2.1:especif:=encontrar(cup)

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.

Page 13: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

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.

Aspectos especiales referentes a los Aspectos especiales referentes a los nombres de los métodosnombres de los métodos

Page 14: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

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

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara el punto de venta

Page 15: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

TPDV

terminarVenta()introducirProducto(cup:Entero,cant:Entero)efectuarPago(efectivoOfrecido:Cantidad)

Tienda

direccion:Direccionnombre:Texto

agregarVenta(v.Venta)

CatalogodeProductos

especificacion(cup:Entero):EspecificaciondeProducto

EspecificaciondeProductodescripcion:Textoprecio:Cantidadcup:CUP

Ventafecha:FechaestaTerminada:Booleanohora:Hora

seTermina()hacerLineadeProducto(especif:EspecificaciondeProd,cant:Entero)efectuarPago(efectivoOfrecido: Cantidad)total():Cantidad

VentasLineadeProducto

cantidad:Entero

subtotal():Cantidad

Pago

monto:Cantidad

Incorporación de información sobre los tipos.

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara el punto de venta

Page 16: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

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ñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara el punto de venta

La flecha de navegabilidad indica que los objetos TPDV están conectadosunidireccionalmente con los objetos Venta.

TPDV

terminarVenta()introducirProducto()efectuarPago()

VentafechaestaTerminadahora

seTermina()hacerLineadeProducto()efectuarPago()total()

Captura

1 1

La clase TPDV probablemente tengaun atributo que apunta a un objetoVenta.

Page 17: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

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.

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara el punto de venta

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.

Page 18: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Asociaciones con símbolos de navegabilidadAsociaciones con símbolos de navegabilidad Tienda

direccion:Direccionnombre:Texto

agregarVenta( )

TPDV

terminarVenta( )introducirProducto( )efectuarPago( )

CatalogodeProductos

especificacion( )

EspecificaciondeProductodescripcion:Textoprecio:Cantidadcup:CUP

Ventafecha:FechaestaTerminada:Booleanohora:Hora

seTermina( )hacerLineadeProducto( )efectuarPago( )total( )

VentasLineadeProducto

cantidad:Entero

subtotal( )

Pago

monto:Cantidad

1

1

1 1

1

1

1

1 1

1 1

1

1 1..*

1..*

*Registros-terminados

Captura Contiene

Contiene

Usa

Alberga

Mira-en

Pagado-por

Page 19: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara 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.

Page 20: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Creación de Diagramas de Clases de DiseñoCreación de Diagramas de Clases de Diseñopara el punto de ventapara el punto de venta

Tienda

direccion:Direccionnombre:Texto

agregarVenta( )

TPDV

terminarVenta( )introducirProducto( )efectuarPago( )

CatalogodeProductos

especificacion( )

EspecificaciondeProductodescripcion:Textoprecio:Cantidadcup:CUP

Ventafecha:FechaestaTerminada:Booleanohora:Hora

seTermina( )hacerLineadeProducto( )efectuarPago( )total( )

VentasLineadeProducto

cantidad:Entero

subtotal( )

Pago

monto:Cantidad

1

1

1 1

1

1

1

1 1

1 1

1

1 1..*

1..*

*Registros-terminados

Captura Contiene

Contiene

Usa

AlbergaMira-en

Pagado-porDependencia de TPDV que conoce sobre EspecificaciondeProducto.Se recomienda cuando existe un parámetro y visibilidad global o declarada localmente.

Page 21: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Notación de los detalles de los miembros Notación de los detalles de los miembros de la clasede la clase

Nombre de la clase

atributoatributo:tipoatributo:tipo=valor inicialatributodeClase/atributoDerivado...

metodo1()metodo2(lista de parametros):tipo de retornometodoAbstracto()+metodoPrivado()#metodoProtegido()metododeClase()...

Java.awt.Font

plain:Integer=0bold:Integer=1name:Stringstyle:Integer=0...

+getFont(name:String):Font+getName():String...

Java.awt.Toolkit

#createButton(target:Button):ButtonPeer...+getColorModel():ColorModel...

Page 22: Diagramas de clases del diseño - tecnocomputo.cotecnocomputo.co/almacen/Root/Informatica Pdf/Informatica_Maria... · María Eugenia Valencia Dpto. Ciencias de la Computación Diagramas

María Eugenia ValenciaDpto. Ciencias de la Computación

Notación de los detalles de los miembros Notación de los detalles de los miembros de la clasede la clase

TPDV

+terminarVenta()+introducirProducto()+efectuarPago()

Tienda

direccionnombre

+agregarVenta()

CatalogodeProductos

+especificacion()

EspecificaciondeProductodescripcionpreciocup

VentafechaestaTerminadahora

+seTermina()+hacerLineadeProducto()+efectuarPago()+total()

VentasLineadeProducto

cantidad

+subtotal()

Pago

monto