Anda di halaman 1dari 39

www.evolucion.

cl Clases de Software preparadas para libro Diseo de Sistemas Computacionales


Son modelos de Anlisis y Diseo, principalmente con base en UML Comienza desde mapa de procesos y flujograma de informacin Clase 1: Recepcin por Compras

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 -.

MAPA DE PROCESOS (como parte del Modelo de Negocios)


(Base Juan Bravo C.)

Proyeccin ventas

Adquisiciones

Ventas

Servicio postventa

Macroprocesos

Primer Flujograma de Informacin


RECEPCIN POR COMPRAS DESPACHO POR VENTAS
Procesos operativos

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)

(Base Juan Bravo C.)

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

Ingresar Gua de Recepcin


3
G/R 1 Interna

2
G/R 2 Interna

G/R 3 Interna

G/R 1 Interna

3 2

Verificar Calidad de Productos

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

Ingresar Productos a Bodega

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

Funciones Bsicas - Atributos y restricciones de las funciones del sistema


(Base Craig Larman)
Ref. # R1.5 Funcin Capturar la informacin del Proveedor usando el RUT y desplegar sus datos. Categora evidente Atributo Tiempo de respuesta Interfaz Restriccin mx. 2 segundos Estilo Windows Categora obligatoria obligatoria opcional

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

Usar base de datos corporativa actualmente instalada

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).

Diagrama de Casos de Uso


(Casos de Uso Bsicos) (Base Craig Larman)
Nota: Para ejemplificar el mtodo de Desarrollo en espiral, se estara proponiendo estos casos de uso para ser desarrollados en las primeras vueltas de la espiral. (No se muestran aqu todos por razones de espacio).

Crear Gua Interna de Recepcin por Compra

Nota: Administrador, Encargado de Recepcin, Encargado de Despacho... son roles que juegan las personas de la Organizacin. (No necesariamente son tres personas distintas).

Encargado de Recepcin (Empleado)

Crear Gua Interna de Despacho por Venta

Proveedor

Iniciar Sistema de Bodegas


Cliente

Encargado de Despacho (Empleado)

Administrar Sistema de Bodega de Recepcin y Despacho

Realizar procesos de Fin de Da


Nota: Administrar Sistema ... Son Casos de Uso Genricos que en el transcurso del anlisis se desagregaran en otros Casos de Uso.

Administrador (Empleado)

Caso de Uso: Crear Gua Interna de Recepcin por Compra (Productos con registro persistente) (Base Craig Larman)

Caso de Uso de Alto Nivel


Terminal Recepcin

Crear Gua Interna de Recepcin por Compra


Caso de Uso: Crear Gua Interna de Recepcin por Compra. Actores: Proveedor, Encargado de Recepcin. Tipo: Primario.
Encargado de Recepcin (Empleado) Proveedor

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

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

Crear Gua Interna de Recepcin por Compras

Caso de Uso : Crear Gua Interna de Recepcin por Compra


Actores : Propsito: Resumen:

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.

Respuestas del Sistema

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

Encargado Recepcin Razn Social Proveedor -

D F
e-Mail

N Gua Recepcin Fecha Recepcin H


Fax

G
Ciudad M

Fono

K N
Precio

L O
Valor Neto

Gua de Despacho de Proveedor N

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.

Notas adicionales a la Interfaz de Entrada:


( para desarrollar en vueltas futuras 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

Nota: Se indican algunas de las excepciones posibles nicamente a modo de ejemplo.

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

Razn Social Proveedor Direccin Proveedor Comuna


XXXXXXX

Ciudad

Telfono 99/99/9999

Fax

XXXXXXX

N G/D del Proveedor

999.999

Fecha G/D Proveedor

N de O/C.

999.999 Cantidad 9999 Valor Neto 999999,99

L. 99

Cdigo XXXXXXX

Descripcin XXXXXXXXXXXX

Precio 9999,99

Firma Autorizada y Timbre

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

Descripcin Costo Cantidad

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

Encabezado de Gua Interna de Recepcin por Compra


RUT Proveedor N de Gua Proveedor N Gua Interna Fecha Recepcin Cdigo Enc. Recepcin Fecha Gua Proveedor N de Ord. de Compra total()

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

1 1..5 Detalle de Gua Interna de Recepcin por Compra


Descripcin Costo Cantidad subtotal()

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

Versin en Lenguaje Natural :Sistema

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

Ingresar Cdigo del Producto en Lnea Detalle


Reiterar hasta que no haya ms Productos que ingresar Ingresar Precio y Cantidad del Producto Dar OK a la Lnea de Detalle Calcular la Lnea de Detalle Dar OK al Final para Terminar la Creacin Salir al Men

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

Versin llamando los Eventos por su Nombre


( equivalente a Operaciones del sistema)

: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.

Nota: calcularTotales es subordinado


de grabarLnea 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

Tipo: Referencias cruzadas: Notas:


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

Excepciones: Salida: Precondiciones:

y al Modelo Funcional de pg. N 39.

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

y al Modelo Funcional de pg. N 39.

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.

y al Modelo Funcional de pg. N 39.

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)

Tipo: Referencias cruzadas:


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

Notas:
Excepciones: Salida: Precondiciones:

y al Modelo Funcional de pg. N 39.

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)

Tipo: Referencias cruzadas:


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

Notas: Excepciones: Salida: Precondiciones:

y al Modelo Funcional de pg. N 39.

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

Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones:

Usar Base de Datos MS Access - el Encargado de Recepcin oprime (Tab) para pasar a los sucesivos campos N /A
N /A

y al Modelo Funcional de pg. N 39.

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

Excepciones: Salida: Precondiciones:

y al Modelo Funcional de pg. N 39.

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

Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: Postcondiciones:

y al Modelo Funcional de pg. N 39.

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

Excepciones: Salida: Precondiciones:

y al Modelo Funcional de pg. N 39.

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

Excepciones: Salida: Precondiciones:

y al Modelo Funcional de pg. N 39.

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

3 :[NuevaGuiaRecepcion] crearEncabezado(NumGuiaRecCom, FechaR)

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.

3.1 :[NuevaGuiaRecepcion] crearDetRecCompra(NumGuiaRecCom)

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

Diagramas de Colaboracin: Creacin de EncGuiaRecCompra


ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC)

(Productos con registro persistente) (Base Craig Larman)


ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC)
1: ingresarNGuiaFechaNOrdC(NumGDP,

FecGD, NumOC) r1:EncGuiaRecCompra

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.1:aceptarCodigo(CodigoProducto) 2.1 *:[i:=1...6] NumLnea:= siguiente () : NumLinea 2.2:crearLinea(NumLinea)

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

Nota: calcularTotales es subordinado de grabarLnea grabarLinea() calcularTotales()


y no es invocado por el actor en forma directa.

1.1:aceptarDatos(Precio, Cantidad)

ll:DetGuiaRecCompra r1:EncGuiaRecCompra

t1:Terminal

2: /ValorTotal := calcularTotales()

2.1*:[i:=1...6]: /ValorLnea := calcularValor()

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)

5 :[NuevaGuiaRecepcion] crearEncabezado(NumGuiaRecCom, FechaR)

t1:Terminal

r 1:EncGuiaRecCompra

5.1 :[NuevaGuiaRecepcion] crearDetRecCompra(NumGuiaRecCom)

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

Encabezado de Gua de Recepcin * 1 1


RUT Proveedor N Gua Proveedor N de Gua Recepcin Fecha Recepcin Cdigo Empleado Fecha Guia Proveedor N Orden de Compra / Valor Total Transaccin Cerrada Transaccin Anulada crearEncabezado() aceptarDatos() calcularTotales() cerrarTransaccin() anularTransaccin() copiarTransaccin() siguiente()

Empleados * * Cdigo Empleado Nombre

Nota: Agregado para clarificar el contexto, (ingreso manual).

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.

1..* Detalle de Gua de Recepcin 1 *

Nota: Agregado para clarificar el contexto, (ingreso manual).

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()

Ordenes de Compra 1 N Orden de Compra Datos

Nota: Al crear la lnea de detalle, notAct se incializa a: true

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)

Encabezado de Gua de Recepcin


RUT Proveedor N Guia Proveedor N Gua Recepcin Fecha Recepcin Cdigo Empleado Fecha Gua Proveedor N Orden de Compra / Valor Total

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

Transaccin Cerrada Transaccin Anulada


1. crearEncabezado() 2. aceptarDatos() 6. calcularTotales() 7. cerrarTransaccin() 8. anularTransaccin() 9. copiarTransaccin() 10. siguiente()

C/E y msg4

Nota: Agregado para clarificar el contexto, (ingreso manual).

C/E, msg1, msg2, msg6, msg10 C/E y msg4

msg3, y msg11

Detalle de Gua de Recepcin


N Lnea Cdigo Producto Precio Cantidad / Valor lnea notAct Lnea Cerrada Lnea Anulada 1. crearLnea() 2. aceptarCodigo() 3. aceptardatos() 6. calcularValor() 7. cerrarLnea() 8. anularLnea() 9. copiarLnea() 10. siguiente() 11. notAct()

C/E, msg4, msg6, msg8 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()

C/E y msg4 Ordenes de Compra N Orden de Compra Datos 4. consultarDatos()

Nota: Al crear la lnea de detalle, notAct se incializa a: true

Anda mungkin juga menyukai