Logo Studenta

Proceso_DSD_DCD_v1_07 - Alberto Medina

¡Este material tiene más páginas!

Vista previa del material en texto

Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 1/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
Proceso para construir DSD y DCD 
Diseño de Sistemas 
 
 
 
 
1. Índice 
1. Índice ...................................................................................................................................... 1 
2. Introducción ............................................................................................................................ 1 
2.1. Propósito del documento ................................................................................................ 1 
2.2. Alcance del documento ................................................................................................... 2 
2.3. Definiciones, abreviaturas y acrónimos .......................................................................... 2 
2.4. Documentos Relacionados ............................................................................................. 2 
2.5. Visión general del documento ........................................................................................ 2 
3. Proceso para construir Diagrama de Secuencia de Diseño (DSD) y Diagrama de Clases de 
Diseño (DCD) ................................................................................................................................ 3 
3.1. Desarrollo del proceso paso a paso sobre el ejemplo .................................................... 3 
3.1.1. Descripción del Caso de Uso .................................................................................. 3 
3.1.2. Diagrama de Secuencia de Sistema ....................................................................... 4 
3.1.3. Modelo de Dominio .................................................................................................. 4 
3.1.4. DCD Inicial ............................................................................................................... 5 
3.1.5. DSD evento 1 (crearNuevaVenta) ........................................................................... 6 
3.1.5.1. Crear líneas de vida iniciales ............................................................................... 6 
3.1.5.2. Crear mensaje para el evento .............................................................................. 6 
3.1.5.3. Mensaje Create a Venta ...................................................................................... 7 
3.1.5.3.1. Controlar necesidad de variable de instancia .................................................. 7 
3.1.5.3.2. Dibujar mensaje en el DSD .............................................................................. 8 
3.1.5.3.3. Agregar mensaje en el DCD ............................................................................ 8 
3.1.5.4. Inicializar y agregar Notas en el DSD .................................................................. 9 
3.1.5.4.1. Agregar mensaje y atributos en el DCD ........................................................... 9 
3.1.5.5. Mensaje Create de la colección ......................................................................... 10 
3.1.5.5.1. Agregar la colección lineas en el DSD ........................................................... 11 
3.1.6. DSD evento 2 (introducirArticulo) .......................................................................... 12 
3.1.6.1. Crear Líneas de Vida iniciales ........................................................................... 12 
3.1.6.2. Crear Mensaje para el evento ............................................................................ 12 
3.1.6.3. Mensaje BuscarProducto ................................................................................... 13 
3.1.6.3.1. Mensaje getId ................................................................................................. 14 
3.1.6.4. Mensajes para obtener Descripción y Precio .................................................... 16 
3.1.6.5. Mensaje para crear instancia LineaDeVenta ..................................................... 18 
3.1.6.6. Mensaje para Agregar la Linea de Venta a la colección lineas ......................... 22 
3.1.6.7. Cálculo del subtotal ............................................................................................ 25 
3.1.7. DCD completo para eventos 1 y 2 ........................................................................ 26 
3.2. Proceso para hacer DCD y DSD simultáneamente: ..................................................... 27 
4. Historia de Versiones del documento .................................................................................. 27 
 
2. Introducción 
2.1. Propósito del documento 
Especificar las actividades a realizar para construir los diagramas de secuencia de 
diseño y los diagramas de clase de diseño en la asignatura Diseño de Sistemas. 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 2/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
2.2. Alcance del documento 
Las consignas de este documento aplican a todos los alumnos de la asignatura Diseño 
de Sistemas de la carrera de Ingeniería en Sistemas de Información dictada en la Universidad 
Tecnológica Nacional - Facultad Regional Rosario. 
 
2.3. Definiciones, abreviaturas y acrónimos 
DSD � Diagrama de Secuencia de Diseño 
 
DCD � Diagrama de Clase de Diseño 
 
RSM � Rational Software Modeler 
 
 
2.4. Documentos Relacionados 
 
Documento Nombre / Ubicación del archivo Fuente 
DR1 – Políticas de 
Diagramas UML 
Nombre: Politicas_de_Diagramas_UML_v...pdf 
 
 
Ubicación: 
http://es.groups.yahoo.com/group/ds_utn_rosario/files 
Enrique Porta 
Luciano Ripani 
 
 
 
2.5. Visión general del documento 
Esta solución esta basada en el ejemplo presentado por Larman en el libro UML y 
patrones. Nuestra solución no coincide exactamente con la solución propuesta por Larman, ya 
que este documento se basa en las políticas de nuestra cátedra (ver DR1 – Políticas de 
Diagramas UML). 
En la sección 3 de este documento se presenta un ejemplo del proceso para hacer 
DSD y DCD. Vamos a realizar solo los eventos crearNuevaVenta e introducirArticulo . No 
vamos a hacer los eventos realizarPago y finalizarVenta para simplificar este trabajo. 
Para dibujar los diagramas utilizaremos un software. El software que estamos utilizando 
es IBM Rational Software Modeler (RSM) versión 7.5.4 y está basada en UML 2.1. 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 3/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla:campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3. Proceso para construir Diagrama de Secuencia de 
Diseño (DSD) y Diagrama de Clases de Diseño (DCD) 
3.1. Desarrollo del proceso paso a paso sobre el ej emplo 
3.1.1. Descripción del Caso de Uso 
 
 
Caso de Uso: Procesar venta 
Nivel de la meta: Usuario Alcance del Caso de Uso: Sistema 
Caja: Negra Instanciación: Real Interacción: Dialogal Usabilidad: No contemplada 
 
ACTORES Primario: Cliente Iniciador: Cajero 
PRECONDICIONES: (de sistema): 
DISPARADOR: El cliente llega a un punto de venta 
 
FLUJO DE SUCESOS: 
CAMINO BÁSICO: 
 
1. El Cajero comienza una nueva venta 
2. El Sistema 
2.1 Muestra la ventana para ingreso de artículos 
3. El Cajero ingresa la identificación del artículo y la cantidad 
4. El Sistema 
4.1 muestra la descripción del artículo y el subtotal 
 Se repite los pasos 3 y 4 hasta que el cajero lo indique 
5 El Cajero selecciona finalizar venta 
6 El Sistema 
6.1 muestra el total 
7 El Cajero ingresa el importe pagado 
8 El Sistema 
8.1 muestra el importe del cambio 
8.2 registra la venta 
 
CAMINOS ALTERNATIVOS: 
 
No se incluyen para simplificar este ejemplo 
 
POSTCONDICIONES: (de sistema) 
Éxito: La venta quedó registrada 
Fracaso: La venta no quedó registrada 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 4/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.2. Diagrama de Secuencia de Sistema 
 
 
3.1.3. Modelo de Dominio 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 5/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.4. DCD Inicial 
 
 
En el DCD Procesar Venta creamos las clases que están el Modelo de Dominio (MD) y que 
estén involucradas en el caso de uso (en este apunte solo limitado a los eventos 
crearNuevaVenta e introducirArticulo ), o sea creamos EspecificacionDelProducto , 
LineaDeVenta y Venta. 
 
Luego creamos las clases que no están en el MD. En este caso, agregamos al DCD inicial las 
clases ControladorProcesarVenta y CatalogoDeProductos (a esta clase le agregamos el 
estereotipo Singleton). Finalmente teniendo en cuenta que en el MD las clases son clases 
candidatas, debemos revisar la coherencia del DCD para determinar si hay que eliminar alguna 
clase, o dividir una clase en dos o más clases, o juntar varias clases en una clase. Esta revisión 
deberá realizarse continuamente mientras se construye los DSD. 
 
 
El Diagrama de Clases inicial nos queda: 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 6/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
 
3.1.5. DSD evento 1 (crearNuevaVenta) 
3.1.5.1. Crear líneas de vida iniciales 
Luego creamos en el diagrama de secuencia crearNuevaVenta la línea de vida para el 
actor Cajero. En los DSD Larman no incluye al actor, pero incluimos la línea de vida del actor 
Cajero porque RSM no nos permites originar un mensaje si no hay una línea de vida. 
 
Luego creamos la línea de vida de la clase ControladorProcesarVenta y nos queda: 
 
 
 
3.1.5.2. Crear mensaje para el evento 
Luego agregamos al DSD el mensaje como CrearNuevaVenta(). 
 
 
 
Ahora se agrega a la clase ControladorProcesarVenta la operación crearNuevaVenta(). 
 
Nota: Si utilizamos RSM por cada mensaje agregado en el diagrama de secuencia se agrega en forma 
automática una operación a la clase en el diagrama de clase. Esto también es aplicable al resto de los casos que 
aparecerán en este documento. 
 
 
 
 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 7/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.5.3. Mensaje Create a Venta 
 
Ahora comenzaremos a agregar las líneas de vida y los mensajes al DSD. 
 
Comencemos con el mensaje create() desde ControladorProcesarVenta a Venta 
 
3.1.5.3.1. Controlar necesidad de variable de insta ncia 
Antes de agregar un mensaje en el DSD primero tenemos que plantearnos lo siguiente: 
1) A que clase se enviará el mensaje 
En este caso la clase Venta 
 
2) ¿Debemos guardar el objeto obtenido o creado, para que lo use otro evento? 
Si es así, necesito asignarlo a una variable de instancia del controlador, y crear la 
asociación, agregarle la navegabilidad hacia la clase Venta y el rol. Esto es en caso de que no 
se haya realizado esto previamente. 
Para eso tenemos que crear la asociación entre ControladorProcesarVenta y Venta. 
Luego agregar el rol ventaActual, la multiplicidad [0..1] y la navegabilidad desde la clase 
ControladorProcesarVenta hacia la clase Venta. 
La variable de instancia la podemos representar como a) un atributo en la clase o b) 
como un rol en la asociación. 
a) La variable de instancia la representamos como un atributo en la clase 
 
b) La variable de instancia la representamos como un rol en la asociación 
 
Admitiremos ambas representaciones. En este apunte, a partir de ahora solo 
utilizaremos la representación como rol. 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 8/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.5.3.2. Dibujar mensaje en el DSD 
Después de crear en el DCD la asociación entre las clases ControladorProcesarVenta y 
Venta, creamos la línea de vida de la instancia ventaActual de la clase Venta y agregamos el 
mensaje create() desde ControladorProcesarVenta a ventaActual:Venta. 
 
El DSD nos queda:3.1.5.3.3. Agregar mensaje en el DCD 
Ahora agregamos en la clase Venta la operación create() 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 9/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.5.4. Inicializar y agregar Notas en el DSD 
 
Luego se inicializa en la instancia creada. Se agrega una nota indicando la 
inicialización de los atributos fecha con la fecha actual (date())y hora con la hora actual (time()). 
También se agrega una nota indicando que se asigna ventaActual : Venta a la instancia de 
Venta creada. 
El DSD nos queda 
 
 
3.1.5.4.1. Agregar mensaje y atributos en el DCD 
 
Ahora agregamos en la clase Venta los atributos fecha : Date y hora : Time, y la 
operación inicializarVenta() 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 10/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.5.5. Mensaje Create de la colección 
 
Antes de agregar un mensaje en el DSD primero tenemos que plantearnos lo siguiente: 
1) A que clase se enviará el mensaje 
En este caso a la colección líneas de LineaDeVenta 
2) ¿Debemos guardar el objeto obtenido o creado, para que lo use otro evento? 
En este caso sí. Para eso tenemos que crear la asociación entre Venta y 
LineaDeVenta. Esta asociación es de tipo composición, ya que una línea de venta depende de 
la existencia de una venta. Agregamos en la asociación la navegabilidad de Venta hacia 
LineaDeVenta, la multiplicidad 1..* y el rol líneas . 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 11/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.5.5.1. Agregar la colección lineas en el DSD 
 
Después de crear en el DCD la asociación entre las clases Venta y LineaDeVenta, 
creamos la línea de vida de la colección líneas:LineaDeVenta en el DSD. Para indicar que es 
una colección utilizaremos el estereotipo <<multiobjeto>> en la línea de vida. 
 
Luego agregamos el mensaje create() desde Venta a LineaDeVenta y agregamos el 
mensaje de retorno. 
Como el mensaje es a la colección del multiobjeto y no a la clase LineaDeVenta, no se 
agrega la operación create() a la clase LineaDeVenta. 
 
Nota: Si utilizamos RSM por cada mensaje agregado en el diagrama de secuencia se agrega en forma 
automática una operación a la clase en el diagrama de clase. Para este caso, como es un mensaje enviado a una 
colección no debe mostrarse en el DCD, entonces tenemos que ocultar el mensaje en RSM. Esto también es aplicable 
al resto de los casos que aparecerán en este documento. 
 
Por último agregamos notas para documentar la asignación en variables de instancias 
de la colección “líneas” creada. 
 
El DSD nos queda: 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 12/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.6. DSD evento 2 (introducirArticulo) 
 
Luego creamos en el diagrama de secuencia introducirArticulo la línea de vida para 
el actor Cajero. 
3.1.6.1. Crear Líneas de Vida iniciales 
 
Luego creamos la clase ControladorProcesarVenta en el DSD, y nos queda: 
 
 
3.1.6.2. Crear Mensaje para el evento 
Luego agregamos al DSD el mensaje introducirArticulo(id : String, cantidad : Real) 
 
 
 
 
Ahora agregamos en la clase ControladorProcesarVenta la operación introducirArticulo 
con los parámetros id : String y cantidad : Real. 
 
 
 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 13/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.6.3. Mensaje BuscarProducto 
 
Vamos a agregar el mensaje BuscarProducto desde ControladorProcesarVenta a 
CatalogoDeProductos 
 
Antes de agregar otro mensaje en el DSD primero tenemos que plantearnos lo 
siguiente: 
1) A que clase se enviará el mensaje 
En este caso CatalogoDeProductos 
2) ¿ Tenemos alguna variable en el DCD que me permita acceder a esa clase?. 
Para eso tenemos que crear la asociación entre ControladorProcesarVenta y 
CatalogoDeProductos. Adornamos la asociación con el rol cp, la navegabilidad y las 
multiplicidades. 
Otra opción en este caso, dado que CatalogoDeProductos es singleton, es poner una 
dependencia entre ControladorProcesarVenta y CatalogoDeProductos. 
 
El DCD nos queda 
 
Luego creamos la línea de vida de la clase CatalogoDeProductos en el DSD y 
agregamos el mensaje buscarProducto con el parámetro artId : String desde 
ControladorProcesarVenta a CatalogoDeProductos 
 
El DSD nos queda: 
 
 
 
 
Ahora agregamos a la clase CatalogoDeProductos la operación buscarProducto con el 
parámetro artId : String. 
 
 
 
 
 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 14/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.6.3.1. Mensaje getId 
 
Vamos a agregar el mensaje getId() desde CatalogoDeProductos a 
EspecificacionDelProducto 
Antes de agregar otro mensaje en el DSD primero tenemos que plantearnos lo 
siguiente: 
1)A que clase se enviará el mensaje 
En este caso EspecificacionDelProducto 
2) ¿ Tenemos alguna variable en el DCD que me permita acceder a esa clase?. 
Para eso tenemos que crear la asociación entre CatalogoDeProductos y 
EspecificacionDelProducto. Adornamos la asociación con el rol especif, la navegabilidad y las 
multiplicidades. 
 
 
Luego creamos la línea de vida que representa a una instancia de la colección especif. 
O sea creamos especif[i] : EspecificacionDelProducto en el DSD 
 
 Luego agregamos el mensaje getid() desde CatalogoDeProductos a especif[i] : 
EspecificacionDelProducto. 
 
 
 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 15/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
 
Ahora agregamos a la clase EspecificacionDelProducto la operación getId y el atributo 
Id : String. 
 
 
 
 
Luego agregamos el mensaje de retorno id : String. También agregamos el marco 
bucle (loop) y la condición de guarda [para cada e en especif]. 
Luego agregamos el mensaje de retorno ep : EspecificacionDelProducto 
 
 
 
 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 16/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.6.4. Mensajes para obtener Descripción y Precio 
 
Vamos a agregar mensajes para obtener la descripción y el precio de un item desde 
ControladorProcesarVenta a ep:EspecificacionDelProducto. 
 
Antes de agregar otro mensaje en el DSD primero tenemos que plantearnos lo 
siguiente: 
1) A que clase se enviará el mensaje 
En este caso EspecificacionDelProducto 
2) ¿ Tenemos alguna variable en el DCD que me permita acceder a esa clase?. 
Como no tenemos una variable, creamos la dependencia entre 
ControladorProcesarVenta y EspecificacionDelProducto 
 
En el DCD agregamos la dependencia entre ControladorProcesarVenta y 
EspecificacionDelProducto. 
También tenemos que agregar los atributos descripción: String y precio : Real a la 
clase EspecificacionDelProducto. 
El DCD nos queda 
 
 
 
 
 
Luego agregamos en el DSD la línea de vida de la instancia ep de 
EspecificacionDelProducto 
 
Luego agregamos el mensaje getDescripcion desde ControladorProcesarVenta a 
ep:EspecificacionDelProducto. Luego agregamos el mensaje de retorno descripcion : String 
 
Luego agregamos el mensaje getPrecio desde ControladorProcesarVenta a ep : 
EspecificacionDelProducto. Luego agregamos el mensaje de retorno Precio : Real 
 
 
 
 
 
 
 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 17/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
 
El DSD nos queda 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 18/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
Ahora agregamos a la clase EspecificacionDelProducto las operaciones getDescripcion() y getPrecio() 
 
El DCD nos queda 
 
 
 
 
 
 
3.1.6.5. Mensaje para crear instancia LineaDeVenta 
 
Vamos a agregar mensajes para crear una instancia de línea de venta desde ControladorProcesarVenta a LineaDeVenta. 
 
Como no tenemos una variable en el DCD que me permita acceder a esa clase LineaDeVenta, entonces en el DCD tenemos que agregar la 
dependencia entre ControladorProcesarVenta y LineaDeVenta 
 
Además, en el DCD agregamos la asociación entre LineaDeVenta y EspecificacionDelProducto, y adornamos la asociación con el rol ep y la 
navegabilidad. 
 
 
 
 
 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 19/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
 
El DCD nos queda 
 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 20/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
Luego creamos la línea de vida de la instancia lv:LineaDeVenta y agregamos el mensaje create(ep : EspecificacionDelProducto ,cantidad : 
Real) desde ControladorProcesarVenta a lv:LineaDeVenta. 
 
El DSD nos queda: 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 21/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
 Ahora agregamos a la clase LineaDeVenta la operación create( ep : EspecificacionDelProducto ,cantidad : Real ) y el atributo cantidad : Real. 
 
El DCD nos queda: 
 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.22/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.6.6. Mensaje para Agregar la Linea de Venta a l a colección lineas 
Primero creamos la línea de vida ventaActual : Venta. Posteriormente creamos el mensaje agregarLinea(lv : LineaDeVenta) desde 
ControladorProcesarVenta a ventaActual:Venta. Luego creamos el mensaje de retorno y el DSD nos queda 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 23/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
El DCD nos queda 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 24/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
Luego agregamos al DSD la línea de vida que representa a la colección lineas : LineasDeVenta <<multiobjeto>> 
Posteriormente creamos el mensaje add(lv : LineasDeVenta) desde ventaActual : Venta a líneas : LineaDeVenta <<multiobjeto>>. 
Luego creamos el mensaje de retorno. Como el mensaje add(lv : LineasDeVenta) es a la colección lineas y no a la clase LineaDeVenta, no se 
agrega en el DCD la operación add(lv : LineasDeVenta) a la clase LineaDeVenta. El DSD nos queda: 
 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 25/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.1.6.7. Cálculo del subtotal 
Agregamos en el DCD el atributo subtotal:Real = 0 en la clase ControladorProcesarVenta. En el DSD agregamos una nota con la forma calcular 
el subtotal y el mensaje de retorno desde el ControladorProcesarVenta al actor Cajero con el texto “Descripcion + Subtotal”. 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 26/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
 
3.1.7. DCD completo para eventos 1 y 2 
El DCD nos queda: 
 
 
Proceso para construir DSD y DCD - Diseño de Sistemas 
Autor: E. Porta (Director Cátedra DS) - L. Ripani (Director Área Sistemas - DISI) Versión : 1.07 [25/04/12]
Cátedra Diseño de Sistemas UTN – F.R.Ro.
 
 
 27/27 25/04/2012 10:21:00 
C:\Enrique_UTN_2012\DS\Clase_pre_examen\Originales_Clase_pre_examen\Proceso_DSD_DCD_v1_07.doc 
Plantilla: campo word: doc_basico_UTN_v3_0.dot hardwired: doc_basico_UTN v. 3.0 [25/7/07] 
3.2. Proceso para hacer DCD y DSD simultáneamente: 
A modo de conclusión si reflexionamos sobre las actividades expuestas en la sub-sección anterior (paso a paso sobre el ejemplo), podemos 
formalizar de manera breve el proceso de la siguiente manera: 
 
1- Agregar al DCD las clases (sin atributos) del MD que sean necesarias para el caso de uso 
2- Agregar al DCD las clases de diseño que hagan falta a priori (sin atributos) 
3- Realizar los pasos 4 y 5 para cada evento del DSS 
4 - Poner el actor y el mensaje del DSS al controlador en el DSD 
5 - Ir trabajando en el DSD, agregando mensajes, y por cada mensaje plantearse: 
 a- ¿A qué clase le enviaré el mensaje? 
 a.1- Como alternativa puedo tener solo que agregar una nota, como inicialización de variables o acumulación de valores. 
 b - ¿Tenemos algún rol (o alguna variable) en el DCD que me permite acceder a esa clase? o 
 ¿Debemos guardar el objeto obtenido o creado, para que lo use otro evento? 
 b.1- Crear asociación --> agregando en DCD el rol (o atributo) y adornar la asociación con la navegabilidad y la multiplicidad 
 b.2- Otra opción a b.1 sería Crear dependencia --> agregando en DCD la relación 
 c- Crear la línea de vida al DSD 
 d- Ponerle nombre al objeto en el DSD 
 d.1- si es variable de instancia --> el nombre debe coincidir con el DCD 
 d.2- si es variable local --> no hace falta coincidir con DCD 
 e- Crear el método en el DSD y en el DCD (solo si es mensaje no es a la colección de un multiobjeto) 
 f- Dibujar los retornos 
 h- Agregar los atributos y sus tipos en el DCD 
 i- Agregar los tipos en los parámetros de los mensajes 
 j- Si se agregaron marcos, agregar las condiciones de guarda 
6 – Revisar el DCD para controlar si han quedado clases del MD que no se usan. 
4. Historia de Versiones del documento 
Versión Fecha Autor Descripción 
1.01 27/06/08 LR / EP Versión inicial 
1.02 01/07/08 LR / EP Revisión general 
1.03 08/10/08 LR / EP Revisión (Proceso_DSD_DCD.mdx ) 
1.04 11/10/08 EP Revisión en DSD 
1.05 03/04/10 EP Se corrigió error en título 3. 
1.06 11/04/12 EP Se adaptó a nuevas políticas para diagramas UML. Los diagramas se realizaron con RSM 
1.07 25/04/12 EP Se modificaron puntos 3.1.6.7 y 3.1.7

Continuar navegando

Otros materiales