Está en la página 1de 22

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.

María Eugenia Valencia


Dpto. Ciencias de la Computación
Ejemplo de un diagrama de clases de diseño

Casilla de tres secciones


para la definición de clase Navegabilidad

Venta
TPDV Captura Fecha
estaTerminada:Booleano
1 1 hora
introducirProducto()
hacerLíneadeProducto()

Métodos Información sobre tipos

María Eugenia Valencia


Dpto. Ciencias de la Computación
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.

María Eugenia Valencia


Dpto. Ciencias de la Computación
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.

María Eugenia Valencia


Dpto. Ciencias de la Computació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.

María Eugenia Valencia


Dpto. Ciencias de la Computación
Comparación entre el Modelo Conceptual
y los Diagramas de Clases de Diseño
Venta
TPDV
Modelo Conceptual 1 Captura 1
fecha
estaTerminada:Booleano
hora

Concepto; abstracción

TPDV Venta
Diagrama de clases
Captura
del diseño fecha
terminarVenta() 1 1 estaTerminada:Booleano
introducirProducto() hora
efectuarPago()
hacerLineadeProducto()

Componente del software

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para 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 CatalogodeProductos EspecificaciondeProducto
descripcion
cantidad precio
CUP

Tienda Venta VentasLineadeProducto


direccion fecha cantidad
estaTerminada
nombre
hora

Pago
monto

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para 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.
Venta
fecha
estaTerminada
hora
hacerLineadeProducto()

3:hacerLineadeProductos
:TPDV (especif,cant) :Venta

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para el punto de venta

TPDV CatalogodeProductos EspecificaciondeProducto


descripcion
precio
terminarVenta() especificación() CUP
introducirProducto()
efectuarPago()

Tienda Venta VentasLineadeProducto


direccion fecha
estaTerminada cantidad
nombre
hora
agregarVenta() subtotal()
seTermina()
hacerLineadeProducto()
efectuarPago() Pago
total() monto

María Eugenia Valencia


Dpto. Ciencias de la Computación
Aspectos especiales referentes a los
nombres de los métodos
El mensaje crear: En UML representa instanciación e
inicialización.
En C++  Asignación automática o en el almacenamiento libre
con New llamada al constructor.

En JavaInvocar 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.

María Eugenia Valencia


Dpto. Ciencias de la Computación
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).

María Eugenia Valencia


Dpto. Ciencias de la Computación
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

2:especif:=especificacion El mensaje encontrar dirigido a


(cup) un multiobjeto se interpreta
:Catalogo
deProductos como destinado a un objeto
2.1:especif:=encontrar contenedor/colección; ejemplo:
(cup) Una tabla Hashtable, un Map de
:Especificacion C++ o un Dictionary de Smalltalk.
deProducto

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 Valencia
Dpto. Ciencias de la Computación
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.

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para 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

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para el punto de venta
Incorporación de información sobre los tipos.

TPDV CatalogodeProductos EspecificaciondeProducto


descripcion:Texto
precio:Cantidad
terminarVenta() especificacion(cup:Entero): cup:CUP
introducirProducto(cup:Entero, EspecificaciondeProducto
cant:Entero)
efectuarPago(efectivoOfrecido:
Cantidad) VentasLineadeProducto

cantidad:Entero
Tienda Venta
fecha:Fecha
direccion:Direccion subtotal():Cantidad
estaTerminada:Booleano
nombre:Texto hora:Hora
agregarVenta(v.Venta) seTermina() Pago
hacerLineadeProducto(especif: monto:Cantidad
EspecificaciondeProd,cant:Entero)
efectuarPago(efectivoOfrecido: Cantidad)
total():Cantidad

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para 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).
La clase TPDV probablemente tenga La flecha de navegabilidad indica
un atributo que apunta a un objeto que los objetos TPDV están conectados
Venta. unidireccionalmente con los objetos Venta.

Venta
TPDV
fecha
Captura estaTerminada
hora
terminarVenta() 1 1
introducirProducto() seTermina()
efectuarPago() hacerLineadeProducto()
efectuarPago()
total()

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para 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.

María Eugenia Valencia


Dpto. Ciencias de la Computación
Asociaciones con símbolos de navegabilidad
Usa
Tienda
1 1 1
direccion:Direccion EspecificaciondeProducto
nombre:Texto CatalogodeProductos descripcion:Texto
Contiene precio:Cantidad
agregarVenta( )
cup:CUP
1 1 1 1..*
Mira-en especificacion( )

Alberga

VentasLineadeProducto
Venta
1 1 fecha:Fecha cantidad:Entero
Captura estaTerminada:Booleano Contiene
TPDV hora:Hora subtotal( )
1 1 1 1..*
seTermina( )
terminarVenta( ) hacerLineadeProducto( )
introducirProducto( ) efectuarPago( )
efectuarPago( ) total( ) Pago
monto:Cantidad
* 1 Pagado-por 1
Registros-terminados

María Eugenia Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para 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 Valencia


Dpto. Ciencias de la Computación
Creación de Diagramas de Clases de Diseño
para
Usa
el punto de venta
Tienda
1 1 1
direccion:Direccion EspecificaciondeProducto
nombre:Texto CatalogodeProductos descripcion:Texto
Contiene precio:Cantidad
agregarVenta( )
cup:CUP
1 1 1 1..*
Mira-en especificacion( )
Alberga

1 1
Venta VentasLineadeProducto
TPDV
fecha:Fecha
cantidad:Entero
estaTerminada:Booleano
Captura hora:Hora Contiene
terminarVenta( ) subtotal( )
introducirProducto( ) 1 1 seTermina( ) 1 1..*
efectuarPago( ) hacerLineadeProducto( )
efectuarPago( )
Registros-terminados * total( )
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. María Eugenia Valencia
Dpto. Ciencias de la Computación
Notación de los detalles de los miembros
de la clase
Nombre de la clase Java.awt.Font

atributo plain:Integer=0
atributo:tipo bold:Integer=1
atributo:tipo=valor inicial name:String
atributodeClase style:Integer=0
/atributoDerivado ...
...
+getFont(name:String):Font
metodo1() +getName():String
metodo2(lista de parametros) ...
:tipo de retorno
metodoAbstracto() Java.awt.Toolkit
+metodoPrivado()
#metodoProtegido()
metododeClase()
... #createButton(target:Button):ButtonPeer
...
+getColorModel():ColorModel
...

María Eugenia Valencia


Dpto. Ciencias de la Computación
Notación de los detalles de los miembros
de la clase

TPDV CatalogodeProductos EspecificaciondeProducto


descripcion
precio
+terminarVenta() cup
+especificacion()
+introducirProducto()
+efectuarPago()
Venta
fecha VentasLineadeProducto
Tienda estaTerminada
cantidad
direccion hora
nombre +subtotal()
+seTermina()
+agregarVenta() +hacerLineadeProducto()
+efectuarPago()
+total() Pago
monto

María Eugenia Valencia


Dpto. Ciencias de la Computación