Comienza desde mapa de procesos y flujograma de informacin Clase 2: Despacho por Ventas Evolucin Informtica S.A. Clases de Software del Mtodo Genrico de Desarrollo de Sistemas de Informacin Devoluciones RECEPCIN POR COMPRAS Ventas Servicio postventa Proyeccin ventas Adquisiciones DESPACHO POR VENTAS Devoluciones Macro- procesos MAPA DE PROCESOS (como parte del Modelo de Negocios) Procesos operativos Segundo Flujo- grama de Informacin 25/09/2002 3 Flujograma : Proceso de Despacho de Productos a Clientes - (Gua Interna de Despacho por Venta ) Cliente Nota de Venta
1 2 3 Encargado de Despacho Nota de Venta.
1 2 3 Depto. de Ventas Depto. de Contabilidad Despachador (Bodega) Emitir Gua de Despacho Recibir Pago
G/D Interna 1
2 3 Nota de Venta
1 Nota de Venta.
1 2 3 Cajero Despachar Productos de Bodega 2 G/D Interna G/D Interna 1 2 3 2 G/D Interna 1 1 G/D Interna Nota : 1) Este Flujograma no sigue todas las reglas ortodoxas del diseo, sin embargo, cumple con la funcin de mostrar la emisin de la Gua de Despacho en su contexto. 2 G/D Interna 1 2 G/D Interna 1 1 G/D Interna Normalmente la firma de la Gua de Despacho se- ra en conjunto entre el Despachador y el Cliente. (Copias 1 y 2 ). 25/09/2002 4 Crear Gua Interna de Recepcin por Compra Crear Gua Interna de Despacho por Venta Administrar Sistema de Bodega de Despacho Iniciar Sistema de Bodegas
Administrar Sistema de Bodega de Recepcin
Diseo de Clases: Diagrama de Casos de Uso (Casos de Uso Bsicos) Administrar Sistema ... Son Casos de Uso Genricos que en el transcurso del anlisis se des- agregaran en otros Casos de Uso Encargado de Recepcin (Empleado) Encargado de Despacho (Empleado) Cliente Proveedor Administrador (Empleado) Administrador, Encargado de Recepcin, Encargado de Despacho... son roles que juegan las personas de la Organizacin. ( No necesariamente son tres personas distintas ).
25/09/2002 5 Diseo de Clases: Gua de Despacho Caso de Uso: Crear Gua Interna de Despacho por Venta ( Productos con registro persistente ) Comentarios relevantes :
1) Se trata de una transaccin entre dos entidades, (con Cliente y Encargado de Despacho). 2) Se trata de una transaccin que implica una entrega / recepcin de Productos. 3) Existe un Registro de Clientes . 4) Existe un Registro de Encar- gados de Despacho (Empleado). 5) Existe un Registro de Productos. 6) Se lleva un registro persistente de la transaccin
Encargado de Despacho (Empleado) Crear Gua Interna de Despacho por Venta Terminal Despacho
Caso de Uso: Crear Gua Interna de Despacho por Venta Actores: Cliente, Encargado de Despacho Tipo: Primario Un Cliente llega para solicitar la entrega de Mercadera, presentando como documentacin una Nota de Venta. El Encargado de Despacho registra los datos de la mercadera emitiendo una Gua Interna de Despacho por Venta y firma la docu- mentacin en todos sus ejemplares para indicar la conformidad. El Cliente se retira para pasar a la Caja llevado su copia de la Nota de Venta firmada por el Encargado de Despa- cho, quien, a su vez, enva las partes de la Gua de Despacho firmadas a sus respectivos destinos. (Segn Flujograma de Informacin ) Cliente
Caso de Uso de Alto Nivel Nota : (Craig Larman, 2.7.2, pg. 26): Los Casos de Uso de Alto Nivel son breves descripciones de un proceso - usualmente dos o tres frases - Ver tambin: (Craig Larman, 6.3.1, pg. 49) Bibliografa: Esta presentacin se basa principalmente en el libro Applying UML and Patterns de Craig Larman - 1998 - ( Prentice Hall) ISBN 0-13-748880-7 25/09/2002 6 Funciones Bsicas Diseo de Clases :Caso de Uso: Crear Gua Interna de Despacho por Venta ( Productos con registro persistente) R1.1 R1.2
R1.3 R1.4
R1.5
R1.6
R1.7
R1.8
R1.9
R1.10
R1.11
R1.12
R1.13
R1.14
R1.15 Capturar y activar opciones desde un Men de Opciones, aceptar Opcin (Seleccin Manual). Desplegar la Interfaz de Creacin de Gua de Despacho, N de Gua de Despacho (correlativo) y Fecha de la Transaccin, - aceptar eventual modificacin de Fecha (Ingreso Manual). Capturar el Cdigo del Encargado de Despacho (Ingreso Manual). Desplegar datos del Encargado de Despacho registrados en almacenamiento persistente
Capturar la informacin del Cliente usando el RUT (Ingreso Manual) y desplegar datos pertinentes del Cliente registrados en almacenamiento persistente. Capturar N de Nota de Venta del Cliente (Ingreso Manual), verificar validez ( No Existencia previa) y desplegarlo. Capturar Fecha (Propia) de Nota de Venta del Cliente (Ingreso Manual) y desplegarla.
Capturar/Verificar. Condicin de Pago de la Venta (Ingreso Manual) y desplegarla.
Registrar la transaccin en proceso: los Productos a despachar. Capturar la informacin del Producto a despachar usando el Cdigo (interno) (Ingreso Manual). Desplegar la descripcin del Producto registrado en almacenamiento persistente
Capturar el Precio al Cliente del Producto (Ingreso manual) y desplegarlo.
Capturar la Cantidad de unidades del Producto respectivo (Ingreso manual). y calcular valor de la lnea actualizando los totales de la Gua de Despacho en la Interfaz al dar OK a la lnea. Grabar en el Detalle de la Gua de Despacho (lnea a lnea) los datos de cada lnea a medida que se completa y calcula cada una de ellas. Actualizar los valores de existencia y despachado de Productos (evitando doble actualizacin) al dar OK a la Gua de Despacho en su totalidad. Ofrecer un mecanismo de almacenamiento persistente.
evidente evidente
evidente evidente
evidente
evidente
evidente
evidente
evidente
evidente
evidente
evidente
oculta
oculta
oculta Ref. # Funcin Categora 25/09/2002 7 Diseo de Clases : Caso de Uso: Crear Gua Interna de Despacho por Venta ( Productos con registro persistente). Crear Gua Interna de Despacho por Ventas Caso de Uso : Crear Gua Interna de Despacho por Venta Actores : Cliente (Iniciador) , Encargado de Despacho (Actor Primario) Propsito: Capturar Datos de Despacho de Productos Vendidos. Resumen: Un Cliente contacta a un Encargado de Despacho para solicitar la Entrega de Pro- ductos que ha pedido, la Transaccin requerida la documenta con una Nota de Venta. El Encargado de Despacho verifica los datos indicados por el Documento y los ingresa en el Terminal de Despacho, al terminar confirma la Transaccin. El Cliente recibe la 1 copia de la Nota de Venta firmada por el Encargado de Despa- cho, quien enva a sus respectivos destinos las copias firmadas de la Gua deDespa- cho y las restantes de la Nota de Venta ( segn Flujograma del Proceso ). El Cliente se retira en direccin a la Caja. Tipo: Primario y real. Referencias cruzadas: Funciones: R1.1, R1.2, R1.3, R1.4, R1.5, R1.6, R1.7, R1.8 R1.9, R1.10, R1.11, R1.12, R1.13, R1.14, R1.15 Encargado de Despacho Terminal Despacho Cliente Caso de Uso Expandido Nota : (Craig Larman, 2.7.2, pg. 26): Los Casos de Uso Expandidos son extensas narrativas de descripcin de un proceso - pueden contener cientos de frases - Ver tambin: (Craig Larman, 6.3.2, pg. 50)
Caso de Uso Expandido Este Caso de Uso comprende desde la Hoja # 7 (la actual) hasta la Hoja # 11
25/09/2002 8 Curso Normal de los Eventos Accin de los actores Respuestas del Sistema 1. Este caso comienza cuando un Cliente se contacta con un Encargado de Despacho, presentando una Nota de Venta, para solicitar que se efecte una Despacho de Productos. (Peticin)
2. El Encargado de Despacho acuerda realizar la Transaccin. (Aceptacin del compromiso) y para ello ingresa a la opcin de Crear Gua de Despacho del Men de Opciones haciendo (Click) y despus oprimiendo la tecla (Tab).
3. El sistema despliega la interfaz de Creacin de Gua de Despacho, asigna y despliega automticamente en A el N de Gua de Despacho correlativo correspondiente y en B la fecha del sistema. 4. El Encargado de Despacho verifica visualmente el N de Gua de Despacho y Fecha ofrecidos por el sistema y a continuacin ingresa su identificacin (Cdigo) en C.
6. El Encargado de Despacho ingresa en E el RUT del Cliente y verifica los datos del mismo desplegados por el sistema. 5. El sistema obtiene y despliega el nombre del Encargado de Despacho en D.
7. El sistema despliega los datos bsicos del Cliente (Razn Social, Direccin, e-Mail, Comuna, Ciudad, Telfono, Fax) en F, G, H, I, J, K y L respectivamente, 10. El Encargado de Despacho pasa a la seccin de detalle, en el cual ingresa el Cdigo del Producto en P. 11. El sistema despliega el N de Lnea en LL, obtiene y despliega la descripcin del Producto en Q. 12. El Encargado de Despacho verifica los datos del Producto e ingresa el Precio unitario y la cantidad a despachar en R y S. Luego oprime (Tab) para grabar la lnea actual y crear una nueva lnea o terminar el ingreso de datos. 13. El sistema calcula el valor de la lnea ingresada y lo acumula, desplegan- do los valores en T y U, a la vez que graba la lnea recin completada. 14. Al terminar de ingresar los Productos, el Encargado de Despacho oprime el botn V para indicar al sistema el fin de la captura de datos. 15. El sistema calcula los valores subtotales / total y los despliega / re- despliega en los campos T y U, adems actualiza los datos de la transaccin en el sistema de almacenamiento persistente. Genera tres copias de la transaccin realizada utilizando la inter- faz de salida indicada. Limpia la interfaz de entrada y posiciona el cursor en A 16. El Encargado de Despacho cierra la interfaz de Transaccin opri- miendo el botn XX para volver al Men de Opciones y entrega la 1 copia de la Nota de Venta (firmada) al Cliente (Notificacin de cumplimiento del compromiso). El Cliente se retira en direccin a la Caja. Las restantes copias de la Nota de Venta y Gua Interna de Despacho (fir- madas), el Encargado de Despacho las enva por la va de comunicacin preestablecida. Diseo de Clases : Caso de Uso: Crear Gua Interna de Despacho por Venta (Expandido ) ( Base Craig Larman ) (Productos con registro persistente) 8. El Encargado de Despacho ingresa en M, N y O respectivamente el N de Nota de Venta, la Fecha de la Nota de Venta y las Condi- ciones de Pago de la Venta. 9. El sistema verifica la validez / no existencia del N de la Nota de Venta 25/09/2002 9 N Gua Despacho Fecha Despacho RUT Cliente - Razn Social Cliente Cdigo Enc. Despacho A C B D E F G Diseo de Clases : Caso de Uso ( Expandido ): Crear Gua Interna de Despacho por Venta ( Productos con registro persistente) Interfaz de Entrada Direccin Cliente Comuna Ciudad Fono Fax H I J K L M N O Grabar L. Cdigo Descripcin Precio Cantidad Valor Neto Total acumulado P Q R Encargado Despacho Cerrada Anulada S T U Cerrar V Anular W Salir X Gua Interna de Despacho por Venta Nota de Venta N Fecha Nota de Venta Cond. Pago e-Mail Y Z LL XX 25/09/2002 10 Notas adicionales a la Interfaz de Entrada: ( para desarrollar en una prxima vuelta de la espiral ) Curso Normal 1) Considerar operacion(es) de Cerrado en Encabezado 2) Considerar operacion(es) y flag de Cerrada en Lneas Excepciones 3) Considerar operacin(es) y flag de Reversado en Encabezado 4) Considerar operacion(es) de Anulado de Encabezado 5) Considerar operacion(es) y flag de Anulada en Lneas 6) Considerar operacion(es) y flag de Reversada en Lneas 7) Considerar operacin(es) de Modificar en Encabezado 8) Considerar operacin(es de Modificar en Encabezado 9) Considerar operacin(es) de Cancelar en Encabezado 10) Considerar operacin(es) de Cancelar en Lneas Excepciones al Curso Normal de los Eventos: (para desarrollar los Casos de Uso correspondientes en una prxima vuelta de la espiral ) 1) Producto no registrado (Cdigo no existe) 2) N de Nota de Venta ya existe. 3) RUT de Cliente no registrado ( RUT no existe) 4) Encargado de Despacho no registrado (Cdigo no existe) 5) Existencia negativa (Inventario insuficiente) 6) Nota de Venta de ms de 6 productos Diseo de Clases : Caso de Uso ( Expandido ): Crear Gua Interna de Despacho por Venta ( Productos con registro persistente) 25/09/2002 11 Gua de Despacho N Fecha RUT Cliente X - Comuna Ciudad Telfono Fax L. Cdigo Descripcin Precio Cantidad Valor Neto Total Neto 999.999 99/99/9999 999.999.999 XXXXXXX Razn Social Cliente XXXXXXX Direccin Cliente XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXXXXXXX 9999 9999,99 999999,99 99999999,99 99 Encargado Despacho Diseo de Clases : Caso de Uso ( Expandido ): Crear Gua Interna de Despacho por Venta ( Productos con registro persistente) Interfaz de Salida N de Nota de Venta 999.999 Fecha Nota de Venta 99/99/9999 Cond. Pago e-Mail XXXXXXX XXXXXXX Encargado Despacho Caja Despachador Cliente Conforme : 25/09/2002 12 Productos Clientes Encabezado de Gua Interna de Despacho por Venta 1 * * * Diseo de Clases: Modelo Conceptual (simplificado) Crear Gua Interna de Despacho por Venta (Productos con registro persistente) Detalle de Gua Interna de Despa- cho por Venta 1 1 1 1..* Notas de Venta 1 1 Emplea- dos Nombre Cdigo Descripcin Precio N de Gua Fecha Cliente Nombre Descripcin Precio Cantidad RUT Nombre Direccin N Nota de Venta Fecha
Dentro de los requerimientos, podra sustituirse por la consulta a los Encabezados de Gua anteriores. ( Condicin de NO existencia previa ) Nota : En este modelo se consideran los conceptos mnimos. En un anlisis y desarrollo posteriores se podran in- cluir conceptos tales como Bodega, Terminal, Empresa, etc. 25/09/2002 13 Productos Clientes Encabezado de Gua Interna de Despacho por Venta 1 * * * Diseo de Clases: Diagrama de Diseo de Clases ( Borrador inicial ) Crear Gua Interna de Despacho por Venta (Productos con registro persistente) Detalle de Gua Interna de Despa- cho por Venta 1 1 1 1..* Notas de Venta 1 1 Nombre Cdigo Descripcion Precio N de Gua Fecha Cliente Nombre Descripcin Precio Cantidad RUT Nombre Direccin N Nota de Venta Fecha Dentro de los requerimientos, podra sustituirse por la consulta a los Encabezados de Gua anteriores. ( Condicin de NO existencia previa ) Nota: Segn Craig Larman ( pg.257 ) : Si bien la presen- tacin de los diagramas de clases es posterior a la creacin de los diagramas de interaccin, en la prc- tica usualmente se crean en paralelo. Muchas clases, mtodos y relaciones pueden bosquejarse tempranamente en la etapa de Diseo
Emplea- dos Nota: Segn Craig Larman (21.8.4 a 21.8.8 - pgs.262 - 264) Salvo casos especificos, es conve- niente omitir los mtodos : crear(), modificar(), eliminar() y consultar() en los diagramas de clases dado que no agregan valor y aumentan el ruido - se consideran implcitos -
25/09/2002 14 Diseo de Clases: Crear Gua Interna de Despacho por Venta Diagrama de Secuencia del Sistema (Productos con registro persistente) (Base Craig Larman) Encargado de Despacho
:Sistema Ingresar a la Opcin Crear Gua de Despacho Ingresar RUT del Cliente en Encabezado Ingresar Cdigo del Empleado en Encabezado Ingresar Cdigo del Producto en Lnea Detalle Ingresar Precio y Cantidad del Producto Dar OK a la Lnea de Detalle Dar OK al Final para Terminar la Creacin Caso de Uso: Crear Gua de Despacho ( Curso Normal de los Eventos)
Obtener / Ingresar(Tab) N de Gua Despacho y Fecha sistema, verificar correlativo y fecha. Ingresar Cdigo del Empleado y obtener / verificar el nombre del mismo. Ingresar RUT del Cliente y obtener / verificar los datos del mismo. Ingresar datos de Nota de Venta ( N Nota, Fecha, Condiciones ) Para cada lnea: Ingresar el Cdigo del Producto Obtener / Verificar datos del Producto Ingresar precio y cantidad del Producto Dar OK a la lnea (Grabar) Al terminar: Dar OK a la Transaccin (Grabar) Salir al Men Versin en Lenguaje Natural Reiterar hasta que no haya ms Productos que ingresar Salir al Men Ingresar N Nota de Venta, Fecha y C. Pago en Encabezado Ingresar RUT del Cliente en Encabezado 25/09/2002 15 Diseo de Clases: Crear Gua Interna de Despacho por Venta Diagrama de Secuencia del Sistema (Productos con registro persistente) (Base Craig Larman) Encargado de Despacho
:Sistema crearEncGuiaDespVenta(NumGuiaDespVen, FechaV) ingresarRutCliente(RutCliente) ingresarCodEmpleado(CodigoEmpleado) ingresarCodProducto(CodigoProducto) ingresarPrecioCantidad(Precio,Cantidad) grabarLnea() terminarTransaccin() Versin llamando los Eventos por su Nombre ( equivalente a Operaciones del sistema) salirAMen() Caso de Uso: Crear Gua de Despacho ( Curso Normal de los Eventos)
Obtener / Ingresar(Tab) N de Gua Despacho y Fecha sistema, verificar correlativo y fecha. Ingresar Cdigo del Empleado y obtener / verificar el nombre del mismo. Ingresar RUT del Cliente y obtener / verificar los datos del mismo. Ingresar datos de Nota de Venta ( N Nota, Fecha, Condiciones ) Para cada lnea: Ingresar el Cdigo del Producto Obtener / Verificar datos del Producto Ingresar precio y cantidad del Producto Dar OK a la lnea (Grabar) Al terminar: Dar OK a la Transaccin (Grabar) Salir al Men Reiterar hasta que no haya ms Productos que ingresar ingresarNumNVFechaNVCond(NumNV, FecNV, CPag) 25/09/2002 16 Diseo de Clases: Crear Gua Interna de Despacho por Venta Operaciones del Sistema (Productos con registro persistente) (Base Craig Larman) grabarLnea() terminarTransaccin() Sistema Visin Dinmica del Sistema salirAMenu() crearEncGuiaDespVenta(NumGuiaDespVen, FechaV) ingresarCodEmpleado(CodigoEmpleado) ingresarRutCliente(RutCliente) ingresarNumNVFechaNVCond(NumNV, FecNV, CPag) ingresarCodProducto(CodigoProducto) ingresarPrecioCantidad(Precio,Cantidad) 25/09/2002 17 Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Postcondiciones: Contrato Nombre: crearEncGuiaDespVenta(NumGuiaDespVen, FechaV) Responsabilidades: Tipo: Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: Aceptar (Click) en la opcin del Men.Desplegar la Interfaz de Creacin de Gua de Despacho. Aceptar (Tab) para iniciar el ingreso de la transac- cin. Crear instancias de EncGuiaDespVenta y DetGuiaDespVenta, obtener y desplegar NumGuiaDespVen, obtener y desplegar FechaV desde la fecha del sistema, opcionalmente aceptar modificacin manual de la fecha. Sistema R1.1, R1.2, R1.15 Usar Sistema de Men, Ahora() de MS Access, - el Empleado oprime (Tab) para iniciar el ingreso - N / A N / A El sistema tiene el Men y la opcin Crear Gua de Despacho por Venta requerida instalados y activos Se acept (Click) en el Men de Opciones para pasar a CrearGuaDespacho Se despleg la interfaz de Crear Gua de Despacho por Venta (limpia) Se cre una nueva instancia de EncGuiaDespVenta (creacin de instancia) Se asoci EncGuiaDespVenta a Terminal (asociacin formada) Se cre una nueva instancia DetGuiaDespVenta (creacin de instancia) Se asoci DetGuiaDespVenta a EncGuiaDespVenta (asociacin formada) Se posicion el cursor en A y se acept (Tab) para proseguir Se despleg el Nmero correlativo de Gua de Despacho: NumGuiaDespVen en A y la Fecha: FechaV en B Se asign el Nmero correlativo de Gua de Despacho al campo: EncGuiaDespVenta .NumGuiaDespVen (modificacin de atributos) Se asign la Fecha del sistema al campo: EncGuaDespVenta .FechaV ( modificacin de atributos) Se posicion el cursor en el campo C : Cdigo Enc. Despacho Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 18 Postcondiciones:
Tipo: Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: Aceptar el ingreso de CodigoEmpleado. Basado en CodigoEmpleado, obtener y desplegar Nombre registrado en el sistema de almacenamiento persistente. (Alternativa a Lista de Valores Posibles). A continuacin posicionar el cursor en el campo E. Sistema R1.3, R1.4, R1.15 Error en ingreso manual del Cdigo o Cdigo no registrado N / A El sistema conoce a Empleados.CodigoEmpleado (Registrado opor- tunamente con anterioridad) Usar Base de Datos MS Access y (Tab) para sucesivos campos Se despleg CodigoEmpleado en C y Nombre en D.. Se asoci EncGuiaDespVenta a una instancia de Empleados basado en una igualdad de CodigoEmpleado (asociacin formada) Se asign CodigoEmpleado a EncGuiaDespVenta.CodigoEmpleado (modi- ficacin de atributo) Nota : Alternativamente( desde Lista de Valores Posibles ) - Sustituyendo CodigoEmpleado por Nombre - - Se asign Nombre a EncGuiaDespVenta.Nombre (modificacin de atributo). Se posicion el cursor en el campo E: RUT Cliente Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 19
Postcondiciones:
Contrato Nombre: ingresarRutCliente(RutCliente) Responsabilidades: Tipo: Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: Aceptar el ingreso de RutCliente, por su intermedio, obtener y des- plegar los Datos del Cliente registrados en el sistema de almacena- miento persistente. A continuacin posicionar el cursor en el campo M. Sistema R1.5, R1.15 Error en ingreso manual del RUT o RUT no registrado N / A El sistema conoce a Clientes.RutCliente (Registrado oportuna- mente con anterioridad) Se despleg RutCliente en el campo E Se asoci EncGuiaDespVenta a una instancia de Clientes basado en una igualdad de RutCliente (asociacin formada) Se asign RutCliente a EncGuiaDespVenta.RutCliente (modificacin de atributo) Se desplegaron los datos bsicos del Cliente segn los campos de la interfaz ( RazonSocial, Direccion, eMail, Comuna, Ciudad, Fono, Fax) (Campos F, G, H, I, J, K, L ) Se posicion el cursor en el campo M: Nota de Venta N
Usar Base de Datos MS Access - el Encargado de Despacho oprime (Tab) para pasar a los sucesivos campos - Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 20 Postcondiciones:
Aceptar el ingreso de NumNV, FecNV, CPag, verificar no existencia del N de Nota de Venta en registros del sistema de almacenamiento persis- tente. A continuacin posicionar el cursor en el campo P. Sistema R1.6, R1.7 y R1.8, R1.15 El N de Nota de Venta ya existe. N / A El sistema conoce a EncGuiaDespVenta.NumNV (Registrado oportuna- mente con anterioridad). Estn disponibles los Encabezados de Guas de Despacho previas.
Se despleg NumNV, FecNV, CPag en los campos M, N y O Se asign NumNV a EncGuiaDespVenta.NumNV (modificacin de atributo) Se asign FecNV a EncGuiaDespVenta.FecNV (modificacin de atributo) Se asign CPag a EncGuiaDespVenta.CPag (modificacin de atributo) Se posicion el cursor en el campo P:Cdigo.
Usar Base de Datos MS Access - el Encargado de Despacho oprime (Tab) para pasar a los sucesivos campos - Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 21 Usar Base de Datos MS Access y tecla (Tab) Postcondiciones: Contrato Nombre:
ingresarCodProducto(CodigoProducto)
Responsabilidades:
Tipo: Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: Aceptar el ingreso de CodigoProducto. Basado en CodigoProducto, ob- tener y desplegar los Datos del Producto registrados en el sistema de almacenamiento persistente. Al oprimir (Tab) - fin de ingreso de Codi- goProducto - asignar Nmero correlativo a la Instancia de DetGua- DespVenta.NumLinea y pasar al campo Q. Si la Descripcin es la cor- recta pasar (Tab) al campo R: Precio. Sistema R1.9, R1.10, R1.15 Error en ingreso manual del Cdigo o Cdigo no registrado N / A El sistema conoce a Productos.CodigoProducto (Registrado oportuna- mente con anterioridad) Se redespleg CodigoProducto en P Se despleg el Nmero de Lnea NumLnea en LL Se asoci DetGuaDespVenta a una instancia de Productos basado en una igualdad de CodigoProducto (asociacin formada) Se asign NumLnea a DetGuiaDespVenta.NumLnea ( modificacin de atributo ) Se asoci la nueva lnea de DetGuaDespVenta a EncGuaDespVenta (asociacin formada) Se asign CodigoProducto a DetGuiaDespVenta.CodigoProducto (modi- ficacin de atributo) Se despleg la Descripcin del Producto, Descripcion en Q. Se posicion el cursor en R: Precio
Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 22 Usar Base de Datos MS Access Postcondiciones:
Aceptar el Precio del Producto del Cliente en R, avanzar con (Tab) hasta el campo S. Aceptar Cantidad en S. Si todo est correcto pasar con (Tab) al campo T.
Sistema R1.11 y R1.12 N / A El sistema conoce a Productos.Existencia (Registrado oportuna- mente con anterioridad) Se posicion el cursor en R Se redespleg Precio en R y se posicion el cursor en S. Se redespleg Cantidad en S Se asign Precio a DetGuiaDespVenta.Precio y Cantidad a DetGuiaDespVenta.Cantidad ( modificacin de atributos) Se posicion el cursor en T: Valor Neto
Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Existencia negativa ( falta producto para despachar). Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 23 Contrato Nombre: grabarLnea() Responsabilidades:
Aceptar avance con (Tab) hasta la siguiente lnea de la interfaz, creando una nueva Lnea de DetGuiaDespVenta. Calcular /ValorLnea y desple- garlo en T de la lnea previa. Grabar en almacenamiento persistente un registro de DetGuiaDespVenta con los datos ingresados/calculados en la lnea previa (anterior). Calcular /ValorTotal y desplegarlo en U. Posicio- nar el cursor en P de la nueva lnea. Postcondiciones:
Tipo: Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: N / A
Sistema R1.13, R1.15 N / A Se calcul /ValorLnea y se despleg en T Se calcul/recalcul /ValorTotal y se despleg/redespleg en U. Se asign /ValorLnea a DetGuiaDespVenta./ValorLnea ( modificacin de atributo ) Se grab en almacenamiento persistente el registro de DetGuiaDespVenta recin completado Se cre una nueva Lnea de DetGuiaDespVenta (creacin de instancia) Se asoci la nueva Lnea de DetGuiaDespVenta a EncGuiaDespVenta (asociacin formada) Se posicion el cursor en P de la nueva Lnea de DetGuiaDespVenta.
Usar Base de Datos MS Access. En este punto el sistema queda listo para reiterar el ingreso de un nuevo cdigo CodigoProducto o caso contrario, pasar a terminarTransaccin() N / A Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 24
Postcondiciones: Contrato Nombre: terminarTransaccin() Responsabilidades: Tipo: Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: Aceptar (click) del Botn V (Grabar). Recalcular /ValorTotal y redesple- garlo en U. Grabar en almacenamiento persistente la instancia actual de EncGuiaDespVenta.Limpiar los datos desplegados en la interfaz. Actua- lizar Productos.Existencia, Productos.Despachado y DetGuiaDesp- Venta.notAct. Posicionar en A el cursor.
Sistema R1.2, R1.14, R1.15 N / A Se activ onClick_CBGrabar de commandGrabar Se recalcul /ValorTotal y se grab/regrab en almacenamiento persistente la instancia EncGuiaDespVenta y las lneas completadas DetGuiaDespVenta. Se verific notAct() de DetGuiaDespVenta y se actualiz Productos.Existencia, Productos.Despachado, regrabando los registros de Productos afectados por la transaccin (modificacin de atributo), despus de ello, se le asign el valor false al atributo DetGuiaDespVenta.notAct (modificacin de atributo), regra- bando los registros correspondientes de DetGuiaDespVenta. Se cre una nueva EncGuiaDespVenta (creacin de instancia) (en blanco) La nueva EncGuiaDespVenta fue asociada a Terminal (asociacin formada) Se cre una nueva DetGuiaDespVenta ( creacin de instancia) (en blanco) Se asoci la nueva instancia de DetGuiaDespVenta a EncGuiaDespVenta (asociacin formada) Se posicion el cursor en A, esperando la prxima accin del usuario. Usar Base de Datos MS Access. Al terminar, el sistema queda listo pa- ra ingresar una nueva transaccin o volver al Men de opciones. N / A Productos.Existencia y Productos.Despachado ya fueron actualizados. Diseo de Clases: Contratos Crear Gua Interna de Despacho por Venta (Productos con registro persistente) (Base Craig Larman) Nota: Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 15, al Modelo Funcional de pg. N 32 y al Modelo de Clases de pg. N 33. 25/09/2002 25 Diseo de Clases: Creacin de EncGuiaDespVenta Diagramas de Colaboracin ingresarOpcion(CrearGuiaDespacho) (Productos con registro persistente) (Base Craig Larman) Fecha :EncGuiaDespVenta t1:Terminal 1:NumGuiaDespVen := siguiente():NumGuia 2:FechaV := ahora():Fecha
3.1 :[NuevaGuiaDespacho] crearDetGuiaDespVenta(NumGuiaDespVen) siguiente():NumGuia ahora():Fecha crearEncGuiaDespVenta(NumGuiaDespVen, FechaV) Omisin del Contenedor de Lneas Nota: Segn Craig Larman ( 21.8.6 - pg.262 ) : Un mensaje a un multiobjeto se interpreta como un mensaje al objeto contenedor / colec- cin en s mismo... estas clases ( tales como java.util.Vector... ) son clases predefinidas de la biblioteca de clases... no es til mos- trarlas explcitamente... agregan ruido pero poca informacin nueva.
El mensaje invoca un mtodo de clase ( no de instancia ), especficamente el mtodo ahora() de la clase Fecha 25/09/2002 26 Diseo de Clases: Creacin de EncGuiaDespVenta Diagramas de Colaboracin ingresarCodEmpleado(CodigoEmpleado) ingresarRutCliente(RutCliente) (Productos con registro persistente) (Base Craig Larman) c1:Clientes d1:EncGuiaDespVenta t1:Terminal 2:ingresarRutCliente (RutCliente) 2.1.a:RazonSocial := consultar (RutCliente) 2.1.b:Direccion := consultar (RutCliente) 2.1.c: eMail := consultar (RutCliente) 2.1.d:Comuna := consultar (RutCliente) 2.1.e:Ciudad := consultar (RutCliente) 2.1.f: Fono := consultar (RutCliente) 2.1.g:Fax := consultar (RutCliente) t1:Terminal d1:EncGuiaDespVenta 1:ingresarCodEmpleado(CodigoEmpleado) e1:Empleados 1.1:Nombre := consultar(CodigoEmpleado) ingresarCodEmpleado(CodigoEmpleado) ingresarRutCliente (RutCliente) 25/09/2002 27 Diseo de Clases: Creacin de EncGuiaDespVenta Diagramas de Colaboracin ingresarNumNVFechaNVCond(NumNV, FecNV, CPag) (Productos con registro persistente) (Base Craig Larman) 1: ingresarNumNVFechaNVCond(NumNV, FecNV, CPag) ll:DetGuiaDespVenta t1:Terminal d1:EncGuiaDespVenta ingresarNumNVFechaNVCond(NumNV, FecNV, CPag) :EncGuiaDespVenta 1.1: consultar (NumNV) La instancia especfica : d1:EncGuaDespVenta hace la con- sulta a los Encabezados de Gua anterio- res. ( Condicin de NO existencia previa ) 25/09/2002 28 Diseo de Clases: Creacin de EncGuiaDespVenta Diagramas de Colaboracin ingresarCodProducto(CodigoProducto) (Productos con registro persistente) (Base Craig Larman) 1.2:Descripcion := consultar(CodigoProducto) 1:ingresarCodProducto(CodigoProducto) 2 * :[i:=1...6] NumLnea:= siguiente () : NumLinea ll:DetGuiaDespVenta t1:Terminal b1:Productos 1.1:aceptarCodigo(CodigoProducto) d1:EncGuiaDespVenta 2.1 * :[i:=1...6] NumLnea:= siguiente () : NumLinea 2.2:crearLinea(NumLinea) ingresarCodProducto(CodigoProducto) siguiente () : NumLinea Omisin del Contenedor de Lneas Nota: Segn Craig Larman ( 21.8.6 - pg.262 ) : Un mensaje a un multiobjeto se interpreta como un mensaje al objeto contenedor / colec- cin en s mismo... estas clases ( tales como java.util.Vector... ) son clases predefinidas de la biblioteca de clases... no es til mos- trarlas explcitamente... agregan ruido pero poca informacin nueva.
25/09/2002 29 Diseo de Clases: Creacin de EncGuiaDespVenta Diagramas de Colaboracin ingresarPrecioCantidad(Precio, Cantidad) grabarLnea() (Productos con registro persistente) (Base Craig Larman) ll:DetGuiaDespVentaa t1:Terminal 1:ingresarPrecioCantidad(Precio, Cantidad) 1.1:aceptarDatos(Precio, Cantidad) d1:EncGuiaDespVenta 2: /ValorTotal := calcularTotales() t1:Terminal d1:EncGuiaDespVenta 2.1 * :[i:=1...6]: /ValorLnea := calcularValor() ll:DetGuiaDespVenta Despus de grabarLinea() el usua- rio vuelve a la accin anterior de ingresarCodProducto() hasta que no queden ms productos que ingresar, en cuyo caso pasa a la siguiente accin : teminarTransaccion() ingresarPrecioCantidad(Precio, Cantidad) calcularTotales() 25/09/2002 30 Diseo de Clases: Creacin de EncGuiaDespVenta Diagramas de Colaboracin terminarTransaccion() (Primera Parte) (Productos con registro persistente) (Base Craig Larman) t1:Terminal 1: /ValorTotal := calcularTotales() d1:EncGuiaDespVenta 1.1 * :[i:=1...6] /ValorLnea := calcularValor() ll:DetGuiaDespVenta t1:Terminal d1:EncGuiaDespVenta 2.1.a * :[i:=1...6 ][notAct] restarExistencia(CodigoProducto, Cantidad) 2.1.b * :[i:=1...6 ][notAct] sumarDespachado(CodigoProducto, Cantidad)
restarExistencia(CodigoProducto, Cantidad) Este Diagrama reitera lo indicado en grabarLnea() al recalcular los totales ( se expone por completitud ) 25/09/2002 31 Diseo de Clases: Creacin de EncGuiaDespVenta Diagramas de Colaboracin terminarTransaccion() (Segunda Parte) (Productos con registro persistente) (Base Craig Larman) d1:EncGuiaDespVenta 5 :[NuevaGuiaDespacho] crearEncGuiaDespVenta(NumGuiaDespVen, FechaV) t1:Terminal l1:DetGuiaDespVenta 5.1 :[NuevaGuiaDespacho] crearDetGuiaDespVenta (NumGuiaDespVen) Fecha t1:Terminal :EncGuiaDespVenta 3:NumGuiaDespVen := siguiente():NumGuia 4:FechaV := ahora():Fecha siguiente():NumGuia ahora():Fecha crearEncGuiaDespVenta(NumGuiaDespVen, FechaV) Esta Segunda Parte del Diagrama de terminarTransaccin() reitera lo indicado en pg 25 ingresarOpcin() ( se expone por completitud ) 25/09/2002 32 Encabezado de Gua de Despacho N Guia de Despacho RUT Cliente N Nota de Venta Fecha Despacho Cdigo Empleado Fecha Nota de Venta Condicin de Pago / Valor Total Transaccin Cerrada Transaccin Anulada 1. Crear Encabezado() 2. Aceptar datos() 6. Calcular Totales() 7. Cerrar Transaccin() 8. Anular Transaccin() 9. Copiar Transaccin() 10. Siguiente() N Lnea Cdigo Producto Precio Cantidad / Valor lnea notAct Lnea Cerrada Lnea Anulada Detalle de Gua de Despacho 1. Crear Lnea() 2. Aceptar Codigo() 3. Aceptar datos() 6. Calcular Valor() 7. Cerrar Lnea() 8. Anular Lnea() 9. Copiar Lnea() 10. Siguiente() 11. notAct() Clientes
RUT Cliente Razn Social Direccin e_Mail Comuna Ciudad Pas Contacto Fono Fax
Diseo de Clases : Modelo Funcional (Detallado y Generalizado) Crear Gua Interna de Despacho por Venta (Productos con Registro persistente) Productos Cdigo Producto Descripcin U.Medida Precio Costo Unitario Existencia Inicial Existencia Recibido Despachado 4. Consultar datos() 6. Sumar Existencia() 7. Restar Existencia() 8. Sumar Recibido() 9. Sumar Despachado() 10. Existencia Negativa() 11. Calcular CPP() Empleados
Cdigo Empleado Nombre ... Terminal 1.Cargar correlativo y fecha de sistema 2. Aceptar datos. 3. Enviar mensajes de C/E a registros. 4. Enviar mensajes de consulta de datos 5. Calcular totales cumulativos 6. Enviar mensajes de actualizacin de existencias y actualizar lnea a lnea el registro de la transaccin Encabezado, detalle y totales segn formato de pantalla adjunto. C/E, msg1, msg2, msg6 y msg10 C/E, msg1, msg2, msg3, msg6, msg10 y msg11 4. Consultar datos() 4. Consultar datos() C/E y msg4 C/E y msg4 C/E, msg4, msg7, msg9 y msg10 C/E y msg4 Notas de Venta N Nota de Venta Datos 4. Consultar datos() Al crear la lnea de detalle, notAct se incializa a: true 25/09/2002 33 EncGuaDespVenta NumGuaDespVen RUTCliente NumNV FechaV CdigoEmpleado FecNV CPag /ValorTotal TransaccinCerrada TransaccinAnulada crearEncGuiaDespVenta() ingresarCodEmpleado() ingresarRutCliente() ingresarNumNVFechaNVCond() ingresarCodProducto() ingresarPrecioCantidad() restarExistencia() sumarDespachado() calcularTotales() cerrarTransaccin() anularTransaccin() copiarTransaccin() siguiente() NumLinea CodigoProducto Precio Cantidad /ValorLnea notAct LneaCerrada LneaAnulada DetGuaDespVenta crearDetGuiaDespVenta() crearLnea() aceptarCodigo() aceptarDatos() calcularValor() restarExistencia() sumarDespachado() cerrarLnea() anularLnea() copiarLnea() siguiente() notAct() Clientes
RUTCliente RaznSocial Direccin eMail Comuna Ciudad Pas Contacto Fono Fax
Diseo de Clases : Modelo de Datos Diagrama de Diseo de Clases Crear Gua Interna de Despacho por Venta (Productos con Registro persistente) 1 1 * * 1 1..* Productos CodigoProducto Descripcin UMedida Precio CostoUnitario ExistenciaInicial Existencia Recibido Despachado sumarExistencia() restarExistencia() sumarRecibido() sumarDespachado() existenciaNegativa() calcularCPP() Empleados CdigoEmpleado Nombre
1 * Notas de Venta
NumNV RUTCliente FechaNV etc... 1 1 Agregado para clarificar contexto, en principio es una lista de valores posibles Al crear la lnea de detalle, notAct se incializa a: true Nota: Segn Craig Larman (21.8.4 a 21.8.8 - pgs.262 - 264) Salvo casos especificos, es conve- niente omitir los mtodos : crear(), modificar(), eliminar() y consultar() en los diagramas de clases dado que no agregan valor y aumentan el ruido - se consideran implcitos -
Dentro de los requerimientos, podra sustituirse por la consulta a los Encabezados de Gua anteriores. ( Condicin de NO existencia previa )