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.
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
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.
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.
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.
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
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
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()
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
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.
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).
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.
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
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
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
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.
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.
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
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.
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.
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...
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
Top Related