Etapa de Anlisis
Las pginas siguientes corresponden a la etapa de anlisis, la cual se extiende hasta la documentacin de los contratos de las operaciones del sistema inclusive -.
Proyeccin ventas
Adquisiciones
Ventas
Servicio postventa
Macroprocesos
Devoluciones
Devoluciones
Bibliografa: Esta presentacin se basa principalmente en el libro Applying UML and Patterns de Craig Larman - 1998 (Prentice Hall) ISBN 0-13-748880-7
Bibliografa: Adicionalmente, esta presentacin se basa en la serie de libros de gestin, anlisis y sistemas de Juan Bravo C. que incluye, entre otros, a: LA NUEVA VISION, Diseo y construccin de sistemas computacionales (1996) y Gestin de Procesos (2002).
Flujograma : Proceso de Recepcin de Productos de Proveedores - (Gua Interna de Recepcin por Compra)
Proveedor
3 G/D 1 Proveed. 2
Encargado de Recepcin
3 G/D 1 Proveed. 2
Control de Calidad
Inventario (Bodega)
Depto. de Compras
Depto. de Contabilidad
2
G/R 2 Interna
G/R 3 Interna
G/R 1 Interna
3 2
Nota: Un determinado documento (papel o electrnico) puede ser cambiado (por ejemplo: VB, firma, tick) ... para indicar algn tipo de accin que se ha tomado con l - tal como: revisin, aprobacin, etc -. Con ello, aunque el documento sigue siendo el mismo, ya no es el mismo. Se indica grficamente esta situacin por medio de cremillas, que se incrementan, como se muestra en este flujograma para diversos pasos que sigue la copia # 2 de la Gua de Recepcin.
G/D 3 Proveed.
G/D 1 Proveed.
3 2
G/R 2 Interna
G/R 2 Interna
G/R 2 Interna
Casos de Uso: Crear Guas Internas de Recepcin por Compra y de Despacho por Venta (Productos con registro persistente)
Ref. # 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
Funciones Bsicas
(Base Craig Larman)
Categora evidente evidente evidente evidente evidente evidente evidente evidente evidente evidente evidente evidente oculta oculta
Funcin Capturar y activar opciones desde un Men de Opciones, aceptar Opcin (Seleccin Manual). Desplegar la Interfaz de Creacin de Gua de Recepcin, N de Gua de Recepcin (correlativo) y Fecha de la Transaccin, - aceptar eventual modificacin de Fecha (Ingreso Manual). Capturar el Cdigo del Encargado de Recepcin (Ingreso Manual). Desplegar datos del Encargado de Recepcin registrados en almacenamiento persistente. Capturar la informacin del Proveedor usando el RUT (Ingreso Manual) y desplegar datos pertinentes del Proveedor registrados en almacenamiento persistente. Capturar N de Gua de Despacho del Proveedor (Ingreso Manual), verificar validez (No Existencia previa) y desplegarlo. Capturar Fecha (Propia) de Gua de Despacho del Proveedor (Ingreso Manual) y desplegarla. Capturar/Verificar (C/E) N de Orden de Compra (Ingreso Manual) y desplegarlo. Registrar la transaccin en proceso: los Productos a recibir. Capturar la informacin del Producto a recibir usando el Cdigo (interno) (Ingreso Manual). Desplegar la descripcin del Producto registrado en almacenamiento persistente. Capturar el Costo (Precio del Proveedor) 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 Recepcin en la Interfaz al dar OK a la lnea. Grabar en el Detalle de la Gua de Recepcin (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 recibido de Productos (evitando doble actualizacin) al dar OK a la Gua de Recepcin en su totalidad. Adems calcular el nuevo Costo Promedio.
Nota: (Craig Larman, 5.6.1.a 5.6.3, pgs. 42 a 44) Las funciones bsicas se descubren durante el desarrollo de las entrevistas con los usuarios, quienes relatan qu es lo que el sistema debe hacer, (en forma evidente u oculta). Tambin el analista agregar algunas que no son evidentes para el usuario.
Casos de Uso: Crear Guas Internas de Recepcin por Compra y de Despacho por Venta (Productos con registro persistente)
Ref. # R1.15 R2.1 R2.2 Funcin Ofrecer un mecanismo de almacenamiento persistente.
Funciones Bsicas
(Base Craig Larman)
Categora oculta evidente evidente
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.
R2.3
R2.4 R2.5 R2.6
evidente
evidente evidente evidente
R2.7
R2.8 R2.9 R2.10 R2.11 R2.12 R2.13
evidente
evidente evidente evidente evidente oculta oculta
En colores y efectos 3D
R1.12 Capturar la Cantidad de unidades del Producto respectivo y calcular valor de la lnea actualizando los totales de la Gua de Recepcin en la Interfaz al dar OK a la lnea. Ofrecer un mecanismo de almacenamiento persistente. evidente Tiempo de respuesta mx. 2 segundos
obligatoria
R1.15
oculta
Plataforma
obligatoria
Nota: (Craig Larman, 5.7.1, pgs. 45 y 46) Los atributos y restricciones de las funciones bsicas se descubren durante el desarrollo de las entrevistas con los usuarios, quienes relatan qu atributos debiera tener el sistema y cules eventualmente seran las correspondientes restricciones, - si las hubiera - y si ellas seran obligatorias u opcionales. (Aqu, por razones de espacio, se dan unos pocos ejemplos).
Nota: Administrador, Encargado de Recepcin, Encargado de Despacho... son roles que juegan las personas de la Organizacin. (No necesariamente son tres personas distintas).
Proveedor
Administrador (Empleado)
Caso de Uso: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Comentarios relevantes : 1) Se trata de una transaccin entre dos entidades, (con Proveedor y Encargado de Recepcin). 2) Se trata de una transaccin que implica una entrega / recepcin de Productos. 3) Existe un Registro de Proveedores. 4) Existe un Registro de Encargados de Recepcin (Empleado). 5) Existe un Registro de Productos. 6) Se lleva un registro persistente de la transaccin.
Nota: Descripcin - Sigue la narrativa que se desprende del Flujograma de Informacin correspondiente -.
Descripcin: Este Caso de Uso comienza cuando un Proveedor llega con mercadera acompaando la documentacin legal de rigor. El Encargado registra el ingreso de la mercadera, emite la Gua Interna de Recepcin por Compra, firma toda la documentacin, entrega las copias pertinentes al Proveedor y enva las restantes copias a sus respectivos destinos. El Proveedor se retira, con lo cual termina el Caso de Uso.
Nota: El inicio y el fin del Caso de Uso deberan estar inequvocamente indicados en la narrativa. Ello evita las superposiciones y ambigedades en las especificaciones.
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)
Caso de Uso: (Expandido) Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
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). Encargado de Recepcin
Terminal Recepcin
Proveedor
Proveedor (Iniciador) , Encargado de Recepcin (Actor Primario). Capturar Datos de Recepcin de Productos Comprados. Este Caso de Uso comienza cuando un Proveedor contacta a un Encargado de Recepcin para solicitarle que reciba los Productos que est entregando, la Transaccin requerida la documenta con una Gua de Despacho o Factura. El Encargado de Recepcin verifica la entrega fsica (Cantidad y Estado General) contra lo indicado por el Documento adjunto y despus registra en el Terminal de Recepcin los datos consignados en el mismo, al terminar confirma la Transaccin. El Proveedor recibe la 3 copia de la Gua de Recepcin y la 3 copia de su Gua de Despacho o Factura ambas firmadas por el Encargado de Recepcin, quien enva a sus respectivos destinos las restantes copias tambin firmadas (segn Flujograma de Informacin correspondiente). El Caso de Uso termina cuando el Proveedor se retira. Primario y real.
Tipo:
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
Nota: Este Caso de Uso comprende desde la Hoja actual hasta las siguientes 4 Hojas (5 en total)
Caso de Uso: (Expandido) Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman ) Curso Normal de los Eventos
Accin de los actores
1. Este caso comienza cuando un Proveedor se contacta con un Encargado de Recepcin para solicitar que se efecte una Recepcin de Productos. (Peticin). 2. El Encargado de Recepcin acuerda realizar la Transaccin. (Aceptacin del compromiso) y para ello ingresa a la opcin de Crear Gua de Recepcin del Men de Opciones haciendo ( Click) y despus oprimiendo la tecla (Tab). 4. El Encargado de Recepcin verifica visualmente el N de Gua de Recepcin y Fecha ofrecidos por el sistema y a continuacin ingresa su identificacin (Cdigo) en C. 6. El Encargado de Recepcin ingresa en E el RUT del Proveedor y verifica los datos del mismo desplegados por el sistema. 8. El Encargado de Recepcin ingresa en M, N y O respectivamente el N de Gua de Despacho del Proveedor, la Fecha de la Gua de Despacho y el N de la Orden de Compra. 10. El Encargado de Recepcin pasa a la seccin de detalle, en el cual ingresa el Cdigo del Producto en P. 12. El Encargado de Recepcin verifica los datos del Producto e ingresa el costo unitario(Precio) y la cantidad recibida en R y S. Luego oprime (Tab) para grabar la lnea actual y crear una nueva lnea o terminar el ingreso de datos. 14. Al terminar de ingresar los Productos, el Encargado de Recepcin oprime el botn V para indicar al sistema el fin de la captura de datos. 16. El Encargado de Recepcin cierra la interfaz de Transaccin oprimiendo el botn XX para volver al Men de Opciones y entrega o enva una copia de la Transaccin terminada al Proveedor por la va de comunicacin preestablecida. (Notificacin de cumplimiento del compromiso). Opcionalmente vuelve a oprimir ( Tab) para ingresar otra recepcin, con lo cual el sistema pasa a 3.
3. El sistema despliega la interfaz de Creacin de Gua de Recepcin, asigna y despliega automticamente en A el N de Gua de Recepcin correlativo correspondiente y en B la fecha del sistema. 5. El sistema obtiene y despliega el nombre del Encargado de Recepcin en D. 7. El sistema despliega los datos bsicos del Proveedor (Razn Social, Direccin, e-Mail, Comuna, Ciudad, Telfono, Fax) en F, G, H, I, J, K y L respectivamente. 9. El sistema verifica la validez / existencia del N de la Orden de Compra. 11. El sistema despliega el N de Lnea en LL, obtiene y despliega la descripcin del Producto en Q.
13. El sistema calcula el valor de la lnea ingresada y lo acumula, desplegando los valores en T y U, a la vez que graba la lnea recin completada.
15. El sistema calcula los valores subtotales / total y los despliega / redespliega en los campos T y U, adems actualiza los datos de la transaccin en el sistema de almacenamiento persistente. Calcula el costo promedio y lo actualiza Genera un original y 2 copias de la transaccin realizada utilizando la interfaz de salida indicada. Limpia la interfaz de entrada y posiciona el cursor en A.
Caso de Uso: (Expandido) Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Interfaz de Entrada
Gua Interna de Recepcin por Compra
Cdigo Enc. Recepcin RUT Proveedor Direccin Proveedor Comuna
E I
D F
e-Mail
G
Ciudad M
Fono
K N
Precio
L O
Valor Neto
Fecha G/ D. Proveedor
N de O/C.
L.
Cdigo
Descripcin
Cantidad
LL
Cerrada Anulada
W Y
Cerrar X Anular Z
XX
Salir
V
Grabar Total acumulado
Caso de Uso: (Expandido) Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman) Excepciones al Curso Normal de los Eventos: - Cursos Alternos al Curso Normal de los Eventos (para desarrollar los Casos de Uso correspondientes en otras vueltas de la espiral) 1) Campo F : Producto no registrado (Cdigo no existe). Comunicarse con Administrador. 2) Campo M : N de Gua ya existe para el RUT del Proveedor. Indicar error, rechazar. 3) Campo E : RUT de Proveedor no registrado (RUT no existe). Comunicarse con Administrador. 4) Campo C : Encargado de Recepcin no registrado (Cdigo no existe). Comunicarse con Administrador. 5) Campo O : N de Orden de Compra no existe. Comunicarse con Departamento de Compras.
Caso de Uso (Expandido): Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Interfaz de Salida
Gua de Recepcin N
RUT Proveedor 999.999.999 - X XXXXXXX
XXXXXXX e-Mail XXXXXXX XXXXXXX XXXXXXX
999.999 Fecha
99/99/9999
Encargado Recepcin
XXXXXXX
Ciudad
Telfono 99/99/9999
Fax
XXXXXXX
999.999
N de O/C.
L. 99
Cdigo XXXXXXX
Descripcin XXXXXXXXXXXX
Precio 9999,99
Total Neto
99999999,99
Modelo Conceptual (simplificado) Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Nota : En este modelo se consideran los conceptos mnimos. En un anlisis y desarrollo posteriores se podran incluir conceptos tales como Bodega, Terminal, Empresa, etc. Por lo contrario, se podran excluir : Empleados, Ordenes de Compra. Encabezado de Gua Interna de Recepcin por Compra N de Gua Fecha Proveedor Nombre
* Empleados
Cdigo Nombre
* * Proveedores
RUT Nombre Direccin
1 1..5
Detalle de Gua Interna de Recepcin por Compra
Nota: La flecha gruesa entre el Encabezado y el Detalle indica una Relacin de Pertenencia. (Base Juan Bravo C.La Nueva Visin... pg 200)
Productos
Cdigo Descripcin Costo
Ordenes de Compra
N OC Fecha
Nota: Segn Craig Larman (9.3 y 9.4 - pgs. 87 a 91 -, adems de 9.6.1 a 9.6.3 - pgs.96 y 97) Se trata de conceptos, asociaciones y atributos del mundo real, no se trata de un modelo de software.
Nota: Dentro de los requerimientos, no necesariamente se encuentra el concepto de Orden de Compra. (Puede ser un ingreso manual).
Diagrama de Diseo de Clases (Borrador inicial) Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Nota: Segn Craig Larman (21.3, pg.257): Si bien la presentacin de los diagramas de clases es posterior a la creacin de los diagramas de interaccin, en la prctica usualmente se crean en paralelo. Muchas clases, mtodos y relaciones pueden bosquejarse tempranamente en la etapa de Diseo
Nota: A diferencia del Modelo Conceptual, que muestra atributos tiles para entender los conceptos del contexto, se descubri - observando la interfaz de entrada -, la conveniencia de agregar otros atributos al encabezado. (A su vez se elimin : Nombre)
* * Proveedores 1 Nombre
Direccin RUT
Empleados
Cdigo Nombre
validarRut()
Nota: Segn Craig Larman (21.8.4 a 21.8.8 - pgs.262 - 264) Salvo casos especficos, es conveniente 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 -
* Productos
Cdigo Descipcin Costo
Ordenes de Compra
N OC Fecha
costoProm()
Nota: Dentro de los requerimientos, no necesariamente se encuentra el concepto de Orden de Compra. (Puede ser un ingreso manual).
Diagrama de Secuencia del Sistema Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Caso de Uso: Crear Gua de Recepcin ( Curso Normal de los Eventos) Obtener / Ingresar(Tab) N de Gua Recepcin y Fecha sistema, verificar correlativo y fecha. Ingresar Cdigo del Empleado y obtener / verificar el nombre del mismo. Ingresar RUT del Proveedor y obtener / verificar los datos del mismo. Ingresar datos de G/D Proveedor ( N Gua, Fecha, N O/C ) 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
Encargado de Recepcin
Ingresar a la Opcin del Men Desplegar la Interfaz Crear la Gua de Recepcin Ingresar Cdigo del Empleado en Encabezado Ingresar RUT del Proveedor en Encabezado Ingresar N Gua Proveedor, Fecha y N O/C en Encabezado
Diagrama de Secuencia del Sistema Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Caso de Uso: Crear Gua de Recepcin ( Curso Normal de los Eventos) Obtener / Ingresar(Tab) N de Gua Recepcin y Fecha sistema, verificar correlativo y fecha. Ingresar Cdigo del Empleado y obtener / verificar el nombre del mismo. Ingresar RUT del Proveedor y obtener / verificar los datos del mismo. Ingresar datos de G/D Proveedor ( N Gua, Fecha, N O/C ) 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
:Sistema
Encargado de Recepcin
ingresarOpcin(CrearGuiaRecepcion) desplegar(NumGuiaRecCom, FechaR) crearEncabezado(NumGuiaRecCom, FechaR) ingresarCodEmpleado(CodigoEmpleado) ingresarRutProveedor(RutProveedor) ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC) ingresarCodProducto(CodigoProducto) Reiterar hasta que no haya ms Productos que ingresar ingresarPrecioCantidad(Precio,Cantidad) grabarLnea() calcularTotales() terminarTransaccin() salirAMen()
Nota: desplegar es subordinado de
ingresarOpcion y no es invocado por el actor en forma directa.
Operaciones del Sistema Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Visin Dinmica del Sistema
Sistema
ingresarOpcin(CrearGuiaRecepcion) desplegar(NumGuiaRecCom, FechaR) crearEncabezado(NumGuiaRecCom, FechaR) crearEncabezado(NumGuiaRecCom, FechaR) ingresarCodEmpleado(CodigoEmpleado) ingresarRutProveedor(RutProveedor) ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC) ingresarCodProducto(CodigoProducto) ingresarPrecioCantidad(Precio,Cantidad) grabarLnea() calcularTotales() terminarTransaccin() salirAMenu()
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: Responsabilidades: ingresarOpcion(CrearGuiaRecepcion) Aceptar (Click) en la opcin del Men. Obtener el siguiente N de Gua correlativo (NumGuiaRecCom). Obtener la fecha del sistema (FechaR) . Usar ambos parmetros para invocar el despliegue de la interfaz de CrearGuiaRecepcin Sistema R1.1 Usar Sistema de Men; Ahora() de MS Access; obtener ltimo N de Gua de Recepcin vlido y sumarle 1 (uno) para obtener el nuevo N correlativo de Gua de Recepcin. N /A N /A El sistema tiene el Men y la opcin Crear Gua de Recepcin por Compra requerida instalados y activos.Adems conoce y tiene acceso a EncGuiaRecCompra.NumGuiaRecCom
Postcondiciones: Se acept (Click) en el Men de Opciones. Nota: Obtener Fecha del sistema y obtener N de Gua correlativo son operaciones (mtodos) que no son evidentes para el usuario en este momento, sin embargo, se harn evidentes al momento real de despliegue, (descrito por el siguiente contrato). Se obtuvo la fecha del sistema (FechaR). Se obtuvo el ltimo N vigente y se calcul el nuevo N correlativo de Gua de Recepcin por Compra (NumGuiaRecCom). Se invoc el despliegue de la interfaz de Creacin de la Gua de Recepcin por Compra usando los parmetros NumGuiaRecCom y FechaR.
Contratos:Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: Responsabilidades: desplegar(NumGuiaRecCom, FechaR) Desplegar la Interfaz de Creacin de Gua de Recepcin. Aceptar (Tab) para iniciar el ingreso de la transaccin. Desplegar NumGuiaRecCom, desplegar FechaR, opcionalmente aceptar modificacin manual de la fecha. Sistema
Tipo:
Nota:
Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 18, al Modelo de Clases de pg. N 38
Referencias cruzadas: R1.2 Notas: Esta operacin es invocada por ingresarOpcion. El Empleado oprime (Tab) para iniciar el ingreso. Excepciones: N /A Salida: Precondiciones: N /A
El sistema tiene el Men y la opcin Crear Gua de Recepcin por Compra requerida instalados y activos. Tiene disponibles a NumGuiaRecCom y FechaR. Postcondiciones: Se despleg la interfaz de Crear Gua de Recepcin por Compra (limpia). Se posicion el cursor en A y se acept (Tab) para proseguir. Se despleg el Nmero correlativo de Gua de Recepcin: NumGuiaRecCompra en A y la Fecha: FechaR en B.
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: Responsabilidades: crearGuiaRecCompra(NumGuiaRecCom, FechaR) Crear instancias de EncGuiaRecCompra y DetGuiaRecCompra y establecer las asociaciones necesarias entre Terminal, EncGuiaRecCompra y DetGuiaRecCompra Sistema
Tipo:
Nota:
Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 18, al Modelo de Clases de pg. N 38
Referencias cruzadas: R1.15 Notas: El Empleado oprime (Tab) para cambiar de campo en la interfaz para el ingreso. Opcionalmente usa el mouse Excepciones: N /A Salida: Precondiciones: N /A El sistema tiene el Men, la opcin Crear Gua de Recepcin por Compra y la interfaz correspondiente requerida instalados y activos.
Postcondiciones: Se cre una nueva instancia de EncGuiaRecCompra (creacin de instancia) Se asoci EncGuiaRecCompra a Terminal (asociacin formada) Se cre una nueva instancia DetGuiaRecCompra (creacin de instancia) Se asoci DetGuiaRecCompra a EncGuiaRecCompra (asociacin formada) Se asign el Nmero correlativo de Gua de Recepcin al campo: EncGuiaRecCompra.NumGuiaRecCom (modificacin de atributos) Se asign la Fecha del sistema al campo: EncGuaRecCompra.FechaR ( modificacin de atributos) Se posicion el cursor en el campo C : Cdigo Enc. Recepcin
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: Responsabilidades: ingresarCodEmpleado(CodigoEmpleado) 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 Usar Base de Datos MS Access y (Tab) para sucesivos campos Error en ingreso manual del Cdigo o Cdigo no registrado N /A El sistema conoce a Empleados.CodigoEmpleado (Registrado oportunamente con anterioridad)
Notas:
Excepciones: Salida: Precondiciones:
Postcondiciones: Se despleg CodigoEmpleado en C y Nombre en D.. Se asoci EncGuiaRecCompra a una instancia de Empleados basado en una igualdad de CodigoEmpleado (asociacin formada) Se asign CodigoEmpleado a EncGuiaRecCompra.CodigoEmpleado (modificacin de atributo) Nota : Alternativamente ( desde Lista de Valores Posibles ) - Sustituyendo CodigoEmpleado por Nombre - Se asign Nombre a EncGuiaRecCompra.Nombre (modificacin de atributo). Se posicion el cursor en el campo E: RUT Proveedor
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: Responsabilidades: ingresarRutProveedor(RutProveedor) Aceptar el ingreso de RutProveedor, por su intermedio, obtener y desplegar los Datos del Proveedor registrados en el sistema de almacenamiento persistente. A continuacin posicionar el cursor en el campo M. Sistema R1.5, R1.15 Usar Base de Datos MS Access - el Encargado de Recepcin oprime (Tab) para pasar a los sucesivos campos Error en ingreso manual del RUT o RUT no registrado N /A El sistema conoce a Proveedores.RutProveedor (Registrado oportunamente con anterioridad)
Postcondiciones: Se despleg RutProveedor en el campo E Se asoci EncGuiaRecCompra a una instancia de Proveedores basado en una igualdad de RutProveedor (asociacin formada) Se asign RutProveedor a EncGuiaRecCompra.RutProveedor (modificacin de atributo) Se desplegaron los datos bsicos del Proveedor 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: Gua de Despacho de Proveedor N
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman) Nombre:
Responsabilidades:
Contrato
ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC) Aceptar el ingreso de NumGDP, FecGD, NumOC, eventualmente verificar existencia del N de Orden de Compra registrada en el sistema de almacenamiento persistente. A continuacin posicionar el cursor en el campo P. Sistema R1.6, R1.7 y R1.8, R1.15
Tipo:
Nota:
Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 18, al Modelo de Clases de pg. N 38
Usar Base de Datos MS Access - el Encargado de Recepcin oprime (Tab) para pasar a los sucesivos campos N /A
N /A
El sistema eventualmente conoce a EncOrdCompra.NumOC (Registrado oportunamente con anterioridad). Est disponible la Gua de Despacho del Proveedor. Postcondiciones: Se despleg NumGDP, FecGD, NumOC en los campos M, N y O Eventualmente, se asoci EncGuiaRecCompra a una instancia de EncOrdCompra basado en una igualdad de NumOC (asociacin formada) Se asign NumGDP a EncGuiaRecCompra.NumGDP (modificacin de atributo) Se asign FecGD a EncGuiaRecCompra.FecGD (modificacin de atributo) Se asign NumOC a EncGuiaRecCompra.NumOC (modificacin de atributo) Se posicion el cursor en el campo P:Cdigo.
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: Responsabilidades: ingresarCodProducto(CodigoProducto) Aceptar el ingreso de CodigoProducto. Basado en CodigoProducto, obtener y desplegar los Datos del Producto registrados en el sistema de almacenamiento persistente. Al oprimir (Tab) - fin de ingreso de CodigoProducto - asignar Nmero correlativo a la Instancia de DetGuaRecCompra.NumLinea y pasar al campo Q. Si la Descripcin es la correcta pasar (Tab) al campo R: Precio. Tipo: Sistema Referencias cruzadas: R1.9, R1.10, R1.15 Notas: Usar Base de Datos MS Access y tecla (Tab) Error en ingreso manual del Cdigo o Cdigo no registrado N /A El sistema conoce a Productos.CodigoProducto (Registrado oportunamente con anterioridad)
Nota:
Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 18, al Modelo de Clases de pg. N 38
Postcondiciones: Se redespleg CodigoProducto en P Se despleg el Nmero de Lnea NumLnea en LL Se asoci DetGuaRecCompra a una instancia de Productos basado en una igualdad de CodigoProducto (asociacin formada) Se asign NumLnea a DetGuiaRecCompra.NumLnea ( modificacin de atributo ) Se asoci la nueva lnea de DetGuaRecCompra a EncGuaRecCompra (asociacin formada) Se asign CodigoProducto a DetGuiaRecCompra.CodigoProducto (modificacin de atributo) Se despleg la Descripcin del Producto, Descripcion en Q. Se posicion el cursor en R: Precio
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
ingresarPrecioCantidad(Precio, Cantidad) Aceptar el Precio del Producto del Proveedor 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 Usar Base de Datos MS Access N /A N /A El sistema conoce a Productos.Existencia (Registrado oportunamente 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 DetGuiaRecCompra.Precio y Cantidad a DetGuiaRecCompra.Cantidad ( modificacin de atributos) Se posicion el cursor en T: Valor Neto
Nombre:
Responsabilidades:
Tipo:
Nota:
Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 18, al Modelo de Clases de pg. N 38
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: grabarLnea() Responsabilidades: Aceptar avance con (Tab) hasta la siguiente lnea de la interfaz, creando una nueva Lnea de DetGuiaRecCompra. Calcular /ValorLnea y desplegarlo en T de la lnea previa. Grabar en almacenamiento persistente un registro de DetGuiaRecCompra con los datos ingresados/calculados en la lnea previa (anterior). Calcular /ValorTotal y desplegarlo en U. Posicionar el cursor en P de la nueva lnea. Tipo: Sistema Referencias cruzadas: R1.13, R1.15 Notas: 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 N /A N/A
Nota:
Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 18, al Modelo de Clases de pg. N 38
Postcondiciones: Se calcul /ValorLnea y se despleg en T Se calcul/recalcul /ValorTotal y se despleg/redespleg en U. Se asign /ValorLnea a DetGuiaRecCompra./ValorLnea ( modificacin de atributo ) Se grab en almacenamiento persistente el registro de DetGuiaRecCompra recin completado Se cre una nueva Lnea de DetGuiaRecCompra. (creacin de instancia) Se asoci la nueva Lnea de DetGuiaRecCompra. a EncGuiaRecCompra (asociacin formada) Se posicion el cursor en P de la nueva Lnea de DetGuiaRecCompra.
Contratos: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)
Contrato
Nombre: terminarTransaccin() Responsabilidades: Aceptar (click) del Botn V (Grabar). Recalcular /ValorTotal y redesplegarlo en U. Grabar en almacenamiento persistente la instancia actual de EncGuiaRecCompra.Limpiar los datos desplegados en la interfaz. Actualizar Productos.Existencia, Productos.Recibido, Productos.CostoUn y DetGuiaRecCompra.notAct. Posicionar en A el cursor. Tipo: Sistema Referencias cruzadas: Notas: R1.2, R1.14, R1.15 Usar Base de Datos MS Access. Al terminar, el sistema queda listo para ingresar una nueva transaccin o volver al Men de opciones. Productos.Existencia y Productos.Recibido ya fueron actualizados. N /A N /A
Nota:
Los nombres de elementos usados en los contratos hacen referencia al Diagrama de Secuencia de pg. 18, al Modelo de Clases de pg. N 38
Postcondiciones: Se activ onClick_CBGrabar de commandGrabar Se recalcul /ValorTotal y se grab/regrab en almacenamiento persistente la instancia EncGuiaRecCompra y las lneas completadas DetGuiaRecCompra. Se verific notAct() de DetGuiaRecCompra y se actualiz Productos.Existencia, Productos.Recibido y Productos.CostoUn, regrabando los registros de Productos afectados por la transaccin (modificacin de atributo), despus de ello, se le asign el valor false al atributo DetGuiaRecCompra.notAct (modificacin de atributo), regrabando los registros correspondientes de DetGuiaRecCompra. Se cre una nueva EncGuiaRecCompra (creacin de instancia) (en blanco) La nueva EncGuiaRecCompra fue asociada a Terminal (asociacin formada) Se cre una nueva DetGuiaRecCompra ( creacin de instancia) (en blanco) Se asoci la nueva instancia de DetGuiaRecCompra a EncGuiaRecCompra (asociacin formada) Se posicion el cursor en A, esperando la prxima accin del usuario.
Etapa de Diseo
Las pginas siguientes corresponden a la etapa de diseo, la cual se extiende hasta la documentacin de las clases de diseo y los diagramas correspondientes -.
Diagramas de Colaboracin: Creacin de EncGuiaRecCompra ingresarOpcion(CrearGuiaRecepcion) desplegar(GuiaRecCompra) crearEncabezado(NumGuiaRecCom, FechaR) (Productos con registro persistente) (Base Craig Larman)
Nota: desplegar() es mtodo propio de Terminal, por ello este mensaje no va ms all de este punto. ingresarOpcion(CrearGuiaRecepcion) desplegar(GuaRecCompra)
Nota: ingresarOpcion(CrearGuiaRecepcion) es un mtodo del Men. La clase Fecha es una clase del Sistema en s - siendo ahora() un mtodo de la misma-, mientras que desplegar(Guia RecCompra) pertenece a Terminal y siguiente() pertenece a la clase EncRecCompra - an cuando esta ltima es una funcin genrica reutilizable-. Nota: En forma excepcional se representan en este diagrama de colaboracin los mensajes correspondientes a dos operaciones y sus respectivos contratos (desplegar es subordinado de ingresarOpcion).
t1:Terminal
1:NumGuiaRecCom := siguiente():NumGuia
:EncGuiaRecCompra
2:FechaR := ahora():Fecha
Fecha
crearEncabezado(NumGuiaRecCom, FechaR)
t1:Terminal
r 1:EncGuiaRecCompra
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 / coleccin en s mismo... estas clases ( tales como java.util.Vector... ) son clases predefinidas de la biblioteca de clases... no es til mostrarlas explcitamente... agregan ruido pero poca informacin nueva.
Nota : crearDetRecCompra() es una de las 4 funciones bsicas implcitas. (Podra ser omitida en el Modelo de Datos).
l1:DetGuiaRecCompra
Diagramas de Colaboracin: Creacin de EncGuiaRecCompra ingresarCodEmpleado(CodigoEmpleado) ingresarRutProveedor(RutProveedor) (Productos con registro persistente) ingresarCodEmpleado(CodigoEmpleado) (Base Craig Larman)
t1:Terminal
1:ingresarCodEmpleado(CodigoEmpleado)
r1:EncGuiaRecCompra
1.1:Nombre := consultarDatos(CodigoEmpleado) Asignacin de Responsabilidades Nota: Segn Craig Larman ( 18.9 a 18.11 - pg.193 a 205 ) La aplicacin de los patrones GRASP es la gua para determinar las responsabilidades y la estructura del diagrama. La forma y secuencia de los mensajes que activarn las operaciones respectivas se derivan de la aplicacin de estos patrones.
e1:Empleados
ingresarRutProveedor(RutProveedor) 2:ingresarRutProveedor(RutProveedor)
t1:Terminal
r1:EncGuiaRecCompra
2.1.a:RazonSocial := consultarDatos (RutProveedor) 2.1.b:Direccion := consultarDatos (RutProveedor) 2.1.c: eMail := consultarDatos (RutProveedor) 2.1.d:Comuna := consultarDatos (RutProveedor) 2.1.e:Ciudad := consultarDatos (RutProveedor) 2.1.f: Fono := consultarDatos (RutProveedor) 2.1.g:Fax := consultarDatos (RutProveedor) p1:Proveedores
t1:Terminal
ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC) es equivalente a repetir tres veces la funcin aceptarDatos(), enviando cada vez un parmetro correspondiente a un atributo distinto de la misma instancia de 1.a: aceptarDatos(NumGuiaRecCom, NumGDP) 1.b: aceptarDatos(NumGuiaRecCom, FecGD) 1.c: aceptarDatos(NumGuiaRecCom, NumOC)
ll:DetGuiaRecCompra
Diagramas de Colaboracin: Creacin de EncGuiaRecCompra ingresarCodProducto(CodigoProducto) (Productos con registro persistente) (Base Craig Larman)
ingresarCodProducto(CodigoProducto) siguiente () : NumLinea 1:ingresarCodProducto(CodigoProducto) 2 *:[i:=1...6] NumLnea:= siguiente () : NumLinea
t1:Terminal
r1:EncGuiaRecCompra
Asignacin de Responsabilidades Nota: Segn Craig Larman ( 18.9 a 18.11 - pg.193 a 205 ) La aplicacin de los patrones GRASP es la gua para determinar las responsabilidades y la estructura del diagrama. La forma y secuencia de los mensajes que activarn las operaciones respectivas se derivan de estos patrones.
1.2:Descripcion := consultarDatos(CodigoProducto)
ll:DetGuiaRecCompra
b1:Productos
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 / coleccin en s mismo... estas clases ( tales como java.util.Vector... ) son clases predefinidas de la biblioteca de clases... no es til mostrarlas explcitamente... agregan ruido pero poca informacin nueva.
Diagramas de Colaboracin: Creacin de EncGuiaRecCompra ingresarPrecioCantidad(Precio, Cantidad) grabarLnea() y calcularTotales() (Productos con registro persistente) (Base Craig Larman)
ingresarPrecioCantidad(Precio, Cantidad)
t1:Terminal
1:ingresarPrecioCantidad(Precio, Cantidad)
r1:EncGuiaRecCompra
1.1:aceptarDatos(Precio, Cantidad)
ll:DetGuiaRecCompra r1:EncGuiaRecCompra
t1:Terminal
2: /ValorTotal := calcularTotales()
Nota:No se muestra la secuencia de mensajes que correspondera a grabarLinea(). Esta correspondera a la interaccin entre la capa del dominio (aplicacin) y la capa de servicios de almacenamiento persistente. (Otro conjunto de diagramas - no abordado aqu -).
ll:DetGuiaRecCompra
Nota: Despus de grabarLinea() el usuario vuelve a la accin anterior de ingresarCodProducto() hasta que no queden ms productos que ingresar, en cuyo caso pasa a la siguiente accin : terminarTransaccion()
Diagramas de Colaboracin: Creacin de EncGuiaRecCompra terminarTransaccion() (Primera Parte) (Productos con registro persistente) (Base Craig Larman)
Nota: terminarTransaccion() es muy amplio y se presenta dividido en dos partes.
calcularTotales()
Nota:terminarTransaccin() es realmente un mensaje compuesto , que se desdobla en : calcularTotales() y los mensajes que interactan con las capas de almacenamiento persistente y presentacin. Esto es, por ejemplo, sumarExistencia() se realiza en la capa de dominio, sin embargo se registra en la capa de almacenamiento persistente (Tema no considerado aqu)
t1:Terminal
1: /ValorTotal := calcularTotales()
r1:EncGuiaRecCompra
1.1*:[i:=1...6] /ValorLnea := calcularValor() sumarExistencia(CodigoProducto, Cantidad) sumarRecibido(CodigoProducto, Cantidad) calcularCPP(CodigoProducto, Cantidad, Precio) 2.a*:[i:=1...6 ][notAct] sumarExistencia(CodigoProducto, Cantidad) 2.b*:[i:=1...6 ][notAct] sumarRecibido(CodigoProducto, Cantidad) 2.c*:[i:=1...6 ][notAct] calcularCPP(CodigoProducto, Cantidad, Precio)
ll:DetGuiaRecCompra
t1:Terminal
r1:EncGuiaRecCompra
2.1.a*:[i:=1...6 ][notAct] sumarExistencia(CodigoProducto, Cantidad) 2.1.b*:[i:=1...6 ][notAct] sumarRecibido(CodigoProducto, Cantidad) 2.1.c*:[i:=1...6 ][notAct] calcularCPP(CodigoProducto, Cantidad, Precio)
2.3*:[i:=1...6 ][notAct] notAct := notAct(notAct := false) 2.2.a*:[i:=1...6 ][notAct] sumarExistencia(CodigoProducto, Cantidad) 2.2.b*:[i:=1...6 ][notAct] sumarRecibido(CodigoProducto, Cantidad) 2.2.c*:[i:=1...6 ][notAct] calcularCPP(CodigoProducto, Cantidad, Precio)
ll:DetGuiaRecCompra
b1:Productos
Diagramas de Colaboracin: Creacin de EncGuiaRecCompra terminarTransaccion() (Segunda Parte) (Productos con registro persistente) (Base Craig Larman)
siguiente():NumGuia ahora():Fecha
Nota: terminarTransaccin() finalmente termina enviando los mensajes para crearEncadezado() y obtener los datos de inicializacin desplegndolos en la interfaz limpia. Por cierto que esto implica una interaccin entre la capa de dominio y la capa de presentacin. (Tema no abordado aqu). Para implementar el mensaje compuesto terminarTransaccin() (completo), se usaran los patrones aplicables - entre otros, por ejemplo, Indireccin, Fachada, Observador -.
t1:Terminal
3:NumGuiaRecCom := siguiente():NumGuia
:EncGuiaRecCompra
4:FechaR := ahora():Fecha
Fecha
crearEncabezado(NumGuiaRecCom, FechaR)
t1:Terminal
r 1:EncGuiaRecCompra
l1:DetGuiaRecCompra
Diagrama de Diseo de Clases Crear Gua Interna de Proveedores Recepcin por Compra (Productos con Registro RUT Proveedor Razn Social persistente)
Direccin e-Mail Comuna Ciudad Pas Contacto Fono Fax
Gua de Despacho de Proveedor N Gua de Proveedor RUT Proveedor Fecha Gua etc... 1 Productos Cdigo Producto Descripcin U.Medida Costo Unitario Existencia Inicial Existencia Recibido Despachado sumarExistencia() restarExistencia() sumarRecibido() sumarDespachado() existenciaNegativa() calcularCPP()
Nota: Agregado para clarificar el contexto, en principio es una Lista de Valores Posibles.
Nota: Segn Craig Larman (21.8.4 a 21.8.8 - pgs.262 - 264) Salvo casos especificos, es conveniente 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 -
N Lnea Cdigo Producto Precio Cantidad / Valor Lnea notAct Lnea Cerrada Lnea Anulada
crearLnea() aceptarCodigo() aceptarDatos() calcularValor() cerrarLnea() anularLnea() copiarLnea() siguiente() notAct()
Modelo Funcional (Detallado y Generalizado) Crear Gua Interna de Recepcin por Compra (Productos con Registro persistente) (Base Juan Bravo C.- La Nueva Visin..., pg. 221)
Proveedores C/E, msg1, msg2, msg6 y msg10 C/E y msg4 RUT Proveedor Razn Social Direccin e_Mail Comuna Ciudad Pas Contacto Fono Fax 4. consultarDatos() Empleados Cdigo Empleado Nombre ... 4. consultarDatos()
Terminal
Encabezado, detalle y totales segn formato de pantalla adjunto. 1. Desplegar interfaz(Correlativo, Fecha). 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
C/E y msg4
msg3, y msg11
Productos Cdigo Producto Descripcin U.Medida Costo Unitario Existencia Inicial Existencia Recibido Despachado
4. consultarDatos() 6. sumarExistencia() 7. restarExistencia() 8. sumarRecibido() 9. sumarDespachado() 10. existenciaNegativa() 11. calcularCPP()
Gua de Despacho de Proveedor N Gua de Proveedor RUT Proveedor Fecha Gua etc... 4. consultarDatos()