son modelos de análisis y diseño, principalmente con base en uml

33
Son modelos de Análisis y Diseño, principalmente con base en UML Comienza desde mapa de procesos y flujograma de información Clase 2: Despacho por Ventas Evolución Informática S.A. Clases de Software del Método Genérico de Desarrollo de Sistemas de Información

Upload: melba

Post on 19-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

Son modelos de Análisis y Diseño, principalmente con base en UML Comienza desde mapa de procesos y flujograma de información Clase 2: Despacho por Ventas. Evolución Informática S.A. Clases de Software del Método Genérico de Desarrollo de Sistemas de Información. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Son modelos de Análisis y Diseño, principalmente con base en UML

• Son modelos de Análisis y Diseño, principalmente con base en UML

• Comienza desde mapa de procesos y flujograma de información

• Clase 2: Despacho por Ventas

Evolución Informática S.A.Clases de Software del

Método Genérico de Desarrollo de Sistemas de Información

Page 2: Son modelos de Análisis y Diseño, principalmente con base en UML

Devoluciones

RECEPCIÓNPOR COMPRAS

Ventas Servicio postventaProyección ventas Adquisiciones

DESPACHOPOR VENTAS

Devoluciones

Macro-procesos

MAPA DE PROCESOS (como parte del Modelo de Negocios)

Procesosoperativos

Segundo Flujo-grama de

Información

Page 3: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 3

Flujograma : Proceso de Despacho de Productos a Clientes - (Guía Interna de Despacho por Venta )

Cliente

Nota de Venta

12

3

Encargado de Despacho

Nota deVenta.

12

3

Depto. deVentas

Depto. deContabilidad

Despachador(Bodega)

Emitir Guía de Despacho

Recibir PagoG/D

Interna1’

2’

3’

Nota de Venta

1’

Nota de Venta.

1’2’

3’

Cajero

Despachar Productosde Bodega

2’’’G/D Interna

G/D Interna

12

3

2’G/D Interna

1’

1’’’G/D Interna

Nota :1) Este Flujograma no sigue todas las reglas ortodoxas del diseño, sin embargo, cumple con la función de mostrar la emisión de la Guía de Despacho en su contexto.

2’’G/D Interna

1’’

2’’G/D Interna

1’’

1’’’G/D Interna

Normalmente la firma de la Guía de Despacho se- ría en conjunto entre el

Despachador y el Cliente. (Copias 1 y 2 ).

Page 4: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 4

Crear Guía Interna de Recepción por Compra

Crear Guía Interna de Despacho por Venta

Administrar Sistema de Bodega de Despacho

Iniciar Sistema de Bodegas

Administrar Sistema de Bodega de Recepción

Diseño de Clases:Diagrama de Casos de Uso

(Casos de Uso Básicos)

Administrar Sistema ...Son Casos de Uso Genéricos queen el transcurso del análisis se des- agregarían en otros Casos de Uso

Encargadode Recepción(Empleado)

Encargadode Despacho(Empleado)

Cliente

Proveedor

Administrador(Empleado)

• Administrador, • Encargado de Recepción, • Encargado de Despacho...son “roles” que juegan las personasde la Organización. ( No necesariamente son tres personas distintas ).

Page 5: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 5

Diseño de Clases: Guía de DespachoCaso de Uso: Crear Guía Interna de Despacho por Venta ( Productos con

registro persistente )

Comentarios relevantes :

1) Se trata de una transacción entre dos entidades, (con Cliente y Encargado de Despacho).2) Se trata de una transacción que implica una entrega / recepción 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 transacción

Encargadode Despacho(Empleado)

Crear Guía Interna de Despacho por Venta

Terminal Despacho

• Caso de Uso: Crear Guía Interna de Despacho por Venta• Actores: Cliente, Encargado de Despacho• Tipo: Primario• Un Cliente llega para solicitar la entrega de Mercadería, presentando como documentación una Nota de Venta. El Encargado de Despacho registra los datos de la mercadería emitiendo una Guía Interna de Despacho por Venta y firma la docu- mentación 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, envía las partes de la Guía de Despacho firmadas a sus respectivos destinos. (Según Flujograma de Información )

Cliente

Caso de Uso de Alto Nivel

Nota : (Craig Larman, 2.7.2, pg. 26): “Los Casos de Uso de Alto Nivel sonbreves descripciones de un proceso - usualmente dos o tres frases - “Ver también: (Craig Larman, 6.3.1, pg. 49)

Bibliografía: Esta presentación se basa principalmente en el libro “ Applying UML and Patterns “ de Craig Larman - 1998 - ( Prentice Hall) ISBN 0-13-748880-7

Page 6: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 6

Funciones BásicasDiseño de Clases :Caso de Uso: Crear Guía Interna de Despacho por Venta ( Productos con registro persistente)

R1.1R1.2

R1.3R1.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 Opción (Selección Manual).Desplegar la Interfaz de Creación de Guía de Despacho, Nº de Guía de Despacho (correlativo) y Fecha de la Transacción, - aceptar eventual modificación de Fecha (Ingreso Manual).Capturar el Código del Encargado de Despacho (Ingreso Manual).Desplegar datos del Encargado de Despacho registrados en almacenamiento persistente

Capturar la información 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. Condición de Pago de la Venta (Ingreso Manual) y desplegarla.

Registrar la transacción en proceso: los Productos a despachar. Capturar la información del Producto a despachar usando el Código (interno) (Ingreso Manual).Desplegar la descripción 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 línea actualizando los totales de la Guía de Despacho en la Interfaz al dar OK a la línea.Grabar en el Detalle de la Guía de Despacho (línea a línea) los datos de cada línea a medida que se completa y calcula cada una de ellas.Actualizar los valores de existencia y despachado de Productos (evitando doble actualización) al dar OK a la Guía de Despacho en su totalidad. Ofrecer un mecanismo de almacenamiento persistente.

evidenteevidente

evidenteevidente

evidente

evidente

evidente

evidente

evidente

evidente

evidente

evidente

oculta

oculta

oculta

Ref. # Función Categoría

Page 7: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 7

Diseño de Clases :Caso de Uso: Crear Guía Interna de Despacho por Venta ( Productos con registro persistente). Crear Guía Interna de

Despacho por Ventas

Caso de Uso : Crear Guía Interna de Despacho por Venta

Actores : Cliente (Iniciador) , Encargado de Despacho (Actor Primario)

Propósito: 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 Transacción 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 Transacción. El Cliente recibe la 1ª copia de la Nota de Venta firmada por el Encargado de Despa- cho, quien envía a sus respectivos destinos las copias firmadas de la Guía deDespa- cho y las restantes de la Nota de Venta ( según Flujograma del Proceso ). El Cliente se retira en dirección 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 sonextensas narrativas de descripciónde un proceso - pueden contener cientos de frases - “Ver también: (Craig Larman, 6.3.2, pg. 50)

Caso de Uso Expandido

Este Caso de Uso comprende desde la Hoja # 7 (la actual) hastala Hoja # 11

Page 8: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 8

Curso Normal de los Eventos

Acción de los actores Respuestas del Sistema1. Este caso comienza cuando un Cliente se contacta con un Encargado de Despacho, presentando una Nota de Venta, para solicitar que se efectúe una Despacho de Productos. (Petición)

2. El Encargado de Despacho acuerda realizar la Transacción. (Aceptación del compromiso) y para ello ingresa a la opción de Crear Guía de Despacho del Menú de Opciones haciendo (Click) y después oprimiendo la tecla (Tab). 3. El sistema despliega la interfaz de Creación de Guía de Despacho,

asigna y despliega automáticamente en A el Nº de Guía de Despacho correlativo correspondiente y en B la fecha del sistema.4. El Encargado de Despacho verifica visualmente el Nº de Guía de

Despacho y Fecha ofrecidos por el sistema y a continuación ingresa su identificación (Código) 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 básicos del Cliente (Razón Social, Dirección, e-Mail, Comuna, Ciudad, Teléfono, Fax) en F, G, H, I, J, K y L respectivamente,

10. El Encargado de Despacho pasa a la sección de detalle, en el cual ingresa el Código del Producto en P. 11. El sistema despliega el Nº de Línea en LL, obtiene y despliega la

descripción 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 línea actual y crear una nueva línea o terminar el ingreso de datos. 13. El sistema calcula el valor de la línea ingresada y lo acumula, desplegan-

do los valores en T y U, a la vez que graba la línea recién completada.14. Al terminar de ingresar los Productos, el Encargado de Despacho oprime el botón 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, además actualiza los datos de la transacción en el sistema de almacenamiento persistente. Genera tres copias de la transacción 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 Transacción opri- miendo el botón XX para volver al Menú de Opciones y entrega la 1ª copia de la Nota de Venta (firmada) al Cliente (Notificación de cumplimiento del compromiso). El Cliente se retira en dirección a la Caja.• Las restantes copias de la Nota de Venta y Guía Interna de Despacho (fir- madas), el Encargado de Despacho las envía por la vía de comunicación preestablecida.

Diseño de Clases : Caso de Uso: Crear Guía 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

Page 9: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 9

Nº Guía Despacho

Fecha Despacho

RUT Cliente -

Razón Social Cliente

Código Enc. Despacho

A C

B D

E F

G

Diseño de Clases :Caso de Uso ( Expandido ): Crear Guía Interna de Despacho por Venta( Productos con registro persistente) Interfaz de Entrada

Dirección Cliente

Comuna Ciudad Fono Fax

H

I J K L

M N O

Grabar

L. Código Descripción Precio Cantidad Valor Neto

Total acumulado

P Q R

Encargado Despacho

Cerrada

Anulada

S T

UCerrar V

Anular

W

Salir

X

Guía Interna de Despacho por Venta

Nota de Venta Nº Fecha Nota de Venta Cond. Pago

e-Mail

Y Z

LL

XX

Page 10: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 10

Notas adicionales a la Interfaz de Entrada:( para desarrollar en una próxima vuelta de la espiral )

Curso Normal 1) Considerar operacion(es) de Cerrado en Encabezado 2) Considerar operacion(es) y “flag” de Cerrada en LíneasExcepciones 3) Considerar operación(es) y “flag” de Reversado en Encabezado 4) Considerar operacion(es) de Anulado de Encabezado 5) Considerar operacion(es) y “flag” de Anulada en Líneas 6) Considerar operacion(es) y “flag” de Reversada en Líneas 7) Considerar operación(es) de Modificar en Encabezado 8) Considerar operación(es de Modificar en Encabezado 9) Considerar operación(es) de Cancelar en Encabezado10) Considerar operación(es) de Cancelar en Líneas

Excepciones al Curso Normal de los Eventos: (para desarrollar los Casos de Uso correspondientes en una próxima vuelta de la espiral )

1) Producto no registrado (Código 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 (Código no existe) 5) Existencia negativa (Inventario insuficiente) 6) Nota de Venta de más de 6 productos

Diseño de Clases :Caso de Uso ( Expandido ): Crear Guía Interna de

Despacho por Venta( Productos con registro persistente)

Page 11: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 11

Guía de Despacho Nº Fecha

RUT Cliente X-

Comuna Ciudad Teléfono Fax

L. Código Descripción Precio Cantidad Valor Neto

Total Neto

999.999 99/99/9999

999.999.999 XXXXXXX

Razón Social Cliente XXXXXXX

Dirección Cliente XXXXXXX

XXXXXXX XXXXXXX XXXXXXX XXXXXXX

XXXXXXX XXXXXXXXXXXX 99999999,99 999999,99

99999999,99

99

Encargado Despacho

Diseño de Clases :Caso de Uso ( Expandido ): Crear Guía 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

EncargadoDespacho

CajaDespachador

Cliente

Conforme :

Page 12: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 12

Productos

Clientes

Encabezado de Guía Interna de Despacho por

Venta

1

*

*

*

Diseño de Clases:Modelo Conceptual (simplificado)

Crear Guía Interna de Despacho por Venta

(Productos con registro persistente)

Detalle de Guía Interna de Despa-

cho por Venta

1

1

11..*

Notas de Venta1

1Emplea-

dos

Nombre

CódigoDescripciónPrecio

Nº de GuíaFechaClienteNombre

DescripciónPrecioCantidad

RUTNombreDirección

Nº Nota de VentaFecha

Dentro de los requerimientos,podría sustituirse por la consultaa los Encabezados de Guía anteriores.( Condición de NO existencia previa )

Nota : En este modelo se consideranlos conceptos mínimos. En un análisisy desarrollo posteriores se podrían in-cluir conceptos tales como Bodega, Terminal, Empresa, etc.

Page 13: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 13

Productos

Clientes

Encabezado de Guía Interna de Despacho por

Venta

1

*

*

*

Diseño de Clases:Diagrama de Diseño

de Clases ( Borrador inicial )Crear Guía Interna de

Despacho por Venta(Productos con registro persistente)

Detalle de Guía Interna de Despa-

cho por Venta

1

111..*

Notas de Venta1

1

Nombre

CódigoDescripcionPrecio

Nº de GuíaFechaClienteNombre

DescripciónPrecioCantidad

RUTNombreDirección

Nº Nota de VentaFecha

Dentro de los requerimientos, podría sustituirse por la consultaa los Encabezados de Guía anteriores.( Condición de NO existencia previa )

Nota: Según Craig Larman( pg.257 ) : “ Si bien la presen-tación de los diagramas de claseses posterior a la creación de los diagramas de interacción, en la prác-tica usualmente se crean en paralelo. Muchas clases, métodos y relaciones pueden bosquejarse tempranamenteen la etapa de Diseño”

Emplea-dos

Nota: Según Craig Larman(21.8.4 a 21.8.8 - pgs.262 - 264)Salvo casos especificos, es conve-niente omitir los métodos : crear(),modificar(), eliminar() y consultar()en los diagramas de clases dado queno agregan valor y aumentan el“ruido” - se consideran implícitos -

Page 14: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 14

Diseño de Clases: Crear Guía Interna de Despacho por Venta

Diagrama de Secuencia del Sistema(Productos con registro persistente)

(Base Craig Larman)

Encargado de Despacho:Sistema

Ingresar a la Opción Crear Guía de Despacho

Ingresar RUT del Cliente en Encabezado

Ingresar Código del Empleado en Encabezado

Ingresar Código del Producto en Línea Detalle

Ingresar Precio y Cantidad del Producto

Dar OK a la Línea de Detalle

Dar OK al Final para Terminar la Creación

Caso de Uso:Crear Guía de Despacho( Curso Normal de los Eventos)

Obtener / Ingresar(Tab) Nº de Guía Despacho y Fecha sistema, verificar correlativo y fecha. Ingresar Código 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 línea:• Ingresar el Código del Producto• Obtener / Verificar datos del Producto• Ingresar precio y cantidad del Producto• Dar OK a la línea (Grabar)Al terminar:•Dar OK a la Transacción (Grabar)• Salir al Menú

Versión en Lenguaje Natural

Reiterar hastaque no haya más Productos que ingresar

Salir al Menú

Ingresar Nº Nota de Venta, Fecha y C. Pago en Encabezado

Ingresar RUT del Cliente en Encabezado

Page 15: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 15

Diseño de Clases: Crear Guía 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)

grabarLínea()

terminarTransacción()

Versión llamando los Eventospor su Nombre

( equivalente a Operaciones del sistema)

salirAMenú()

Caso de Uso:Crear Guía de Despacho( Curso Normal de los Eventos)

Obtener / Ingresar(Tab) Nº de Guía Despacho y Fecha sistema, verificar correlativo y fecha. Ingresar Código 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 línea:• Ingresar el Código del Producto• Obtener / Verificar datos del Producto• Ingresar precio y cantidad del Producto• Dar OK a la línea (Grabar)Al terminar:•Dar OK a la Transacción (Grabar)• Salir al Menú

Reiterar hastaque no haya más Productos que ingresar

ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)

Page 16: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 16

Diseño de Clases:Crear Guía Interna de Despacho

por Venta Operaciones del Sistema

(Productos con registro persistente)(Base Craig Larman)

grabarLínea()

terminarTransacción()

Sistema

Visión Dinámica del Sistema

salirAMenu()

crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)

ingresarCodEmpleado(CodigoEmpleado)

ingresarRutCliente(RutCliente)

ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)

ingresarCodProducto(CodigoProducto)

ingresarPrecioCantidad(Precio,Cantidad)

Page 17: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 17

Diseño de Clases: ContratosCrear Guía Interna

de Despachopor Venta

(Productos con registro persistente)

(Base Craig Larman)

Postcondiciones:

ContratoNombre: crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)

Responsabilidades:

Tipo:

Referencias cruzadas:

Notas:

Excepciones:

Salida:

Precondiciones:

Aceptar (Click) en la opción del Menú.Desplegar la Interfaz de Creaciónde Guía de Despacho. Aceptar (Tab) para iniciar el ingreso de la transac-ción. Crear instancias de EncGuiaDespVenta y DetGuiaDespVenta, obtenery desplegar NumGuiaDespVen, obtener y desplegar FechaV desde la fecha del sistema, opcionalmente aceptar modificación 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 opción Crear Guía de Despacho por Ventarequerida instalados y activos

• Se aceptó (Click) en el Menú de Opciones para pasar a CrearGuíaDespacho• Se desplegó la interfaz de Crear Guía de Despacho por Venta (“limpia”)• Se creó una nueva instancia de EncGuiaDespVenta (creación de instancia)• Se asoció EncGuiaDespVenta a Terminal (asociación formada)• Se creó una nueva instancia DetGuiaDespVenta (creación de instancia)• Se asoció DetGuiaDespVenta a EncGuiaDespVenta (asociación formada)• Se posicionó el cursor en A y se aceptó (Tab) para proseguir• Se desplegó el Número correlativo de Guía de Despacho: NumGuiaDespVen en A y la Fecha: FechaV en B• Se asignó el Número correlativo de Guía de Despacho al campo: EncGuiaDespVenta .NumGuiaDespVen (modificación de atributos)• Se asignó la Fecha del sistema al campo: EncGuíaDespVenta .FechaV ( modificación de atributos)• Se posicionó el cursor en el campo C : Código Enc. Despacho

Nota:

Los nombres de elementos usados

en los contratos hacen referencia

al Diagrama de Secuencia de pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 18: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 18

Postcondiciones:

Contrato

Nombre: ingresarCodEmpleado(CodigoEmpleado)Responsabilidades:

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 continuación posicionar el cursor en el campo E.

Sistema

R1.3, R1.4, R1.15

Error en ingreso manual del Código o Código 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 (asociación formada) • Se asignó CodigoEmpleado a EncGuiaDespVenta.CodigoEmpleado (modi- ficación de atributo) Nota : Alternativamente ( desde Lista de Valores Posibles ) - Sustituyendo CodigoEmpleado por Nombre - - Se asignó Nombre a EncGuiaDespVenta.Nombre (modificación de atributo).• Se posicionó el cursor en el campo E: RUT Cliente

Diseño de Clases: ContratosCrear Guía Interna deDespacho 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 pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 19: Son modelos de Análisis y Diseño, principalmente con base en UML

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 continuación 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 (asociación formada) • Se asignó RutCliente a EncGuiaDespVenta.RutCliente (modificación de atributo)• Se desplegaron los datos básicos del Cliente según 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 -

Diseño de Clases: ContratosCrear Guía 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 pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 20: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 20

Postcondiciones:

Contrato

Nombre: ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)

Responsabilidades:

Tipo:

Referencias cruzadas:

Notas:

Excepciones:

Salida:

Precondiciones:

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 continuación 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). Están disponibles los Encabezados de Guías de Despacho previas.

• Se desplegó NumNV, FecNV, CPag en los campos M, N y O• Se asignó NumNV a EncGuiaDespVenta.NumNV (modificación de atributo)• Se asignó FecNV a EncGuiaDespVenta.FecNV (modificación de atributo)• Se asignó CPag a EncGuiaDespVenta.CPag (modificación de atributo)• Se posicionó el cursor en el campo P:Código.

Usar Base de Datos MS Access - el Encargado de Despacho oprime (Tab) para pasar a los sucesivos campos -

Diseño de Clases: ContratosCrear Guía 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 pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 21: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 21

Usar Base de Datos MS Access y tecla (Tab)

Postcondiciones:

ContratoNombre: 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 Número correlativo a la Instancia de DetGuía-DespVenta.NumLinea y pasar al campo Q. Si la Descripción es la cor-recta pasar (Tab) al campo R: Precio.Sistema

R1.9, R1.10, R1.15

Error en ingreso manual del Código o Código no registrado

N / A

El sistema conoce a Productos.CodigoProducto (Registrado oportuna-mente con anterioridad)

• Se redesplegó CodigoProducto en P• Se desplegó el Número de Línea NumLínea en LL• Se asoció DetGuíaDespVenta a una instancia de Productos basado en una igualdad de CodigoProducto (asociación formada) • Se asignó NumLínea a DetGuiaDespVenta.NumLínea ( modificación de atributo )• Se asoció la nueva línea de DetGuíaDespVenta a EncGuíaDespVenta (asociación formada) • Se asignó CodigoProducto a DetGuiaDespVenta.CodigoProducto (modi- ficación de atributo)• Se desplegó la Descripción del Producto, Descripcion en Q. • Se posicionó el cursor en R: Precio

Diseño de Clases: ContratosCrear Guía 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 pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 22: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 22

Usar Base de Datos MS Access

Postcondiciones:

Contrato

Nombre: ingresarPrecioCantidad(Precio, Cantidad)

Responsabilidades:

Tipo:

Referencias cruzadas:

Notas:

Excepciones:

Salida:

Precondiciones:

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 ( modificación de atributos)• Se posicionó el cursor en T: Valor Neto

Diseño de Clases: ContratosCrear Guía 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 pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 23: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 23

ContratoNombre: grabarLínea()

Responsabilidades: Aceptar avance con (Tab) hasta la siguiente línea de la interfaz, creandouna nueva Línea de DetGuiaDespVenta. Calcular /ValorLínea y desple-garlo en T de la línea previa. Grabar en almacenamiento persistente un registro de DetGuiaDespVenta con los datos ingresados/calculados en la línea previa (anterior). Calcular /ValorTotal y desplegarlo en U. Posicio-nar el cursor en P de la nueva línea.

Postcondiciones:

Tipo:

Referencias cruzadas:

Notas:

Excepciones:

Salida:

Precondiciones: N / A

Sistema

R1.13, R1.15

N / A

• Se calculó /ValorLínea y se desplegó en T • Se calculó/recalculó /ValorTotal y se desplegó/redesplegó en U.• Se asignó /ValorLínea a DetGuiaDespVenta./ValorLínea ( modificación de atributo )• Se grabó en almacenamiento persistente el registro de DetGuiaDespVenta recién completado• Se creó una nueva Línea de DetGuiaDespVenta (creación de instancia)• Se asoció la nueva Línea de DetGuiaDespVenta a EncGuiaDespVenta (asociación formada)• Se posicionó el cursor en P de la nueva Línea de DetGuiaDespVenta.

Usar Base de Datos MS Access. En este punto el sistema queda listo para reiterar el ingreso de un nuevo código CodigoProducto o caso contrario, pasar a terminarTransacción()

N / A

Diseño de Clases: ContratosCrear Guía 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 pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 24: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 24

Postcondiciones:

ContratoNombre: terminarTransacción()

Responsabilidades:

Tipo:

Referencias cruzadas:

Notas:

Excepciones:

Salida:

Precondiciones:

Aceptar (click) del Botón 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 líneas completadas DetGuiaDespVenta.• Se verificó notAct() de DetGuiaDespVenta y se actualizó Productos.Existencia, Productos.Despachado, regrabando los registros de Productos afectados por la transacción (modificación de atributo), después de ello, se le asignó el valor false al atributo DetGuiaDespVenta.notAct (modificación de atributo), regra- bando los registros correspondientes de DetGuiaDespVenta.• Se creó una nueva EncGuiaDespVenta (creación de instancia) (en blanco)• La nueva EncGuiaDespVenta fue asociada a Terminal (asociación formada)• Se creó una nueva DetGuiaDespVenta ( creación de instancia) (en blanco)• Se asoció la nueva instancia de DetGuiaDespVenta a EncGuiaDespVenta (asociación formada)• Se posicionó el cursor en A, esperando la próxima acción del usuario.

Usar Base de Datos MS Access. Al terminar, el sistema queda listo pa-ra ingresar una nueva transacción o volver al Menú de opciones.

N / A

Productos.Existencia y Productos.Despachado ya fueron actualizados.

Diseño de Clases: ContratosCrear Guía 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 pág. 15,

al Modelo Funcional de pág. Nº 32

y al Modelo de Clases de pág. Nº 33.

Page 25: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 25

Diseño de Clases:Creación de EncGuiaDespVenta

Diagramas de ColaboracióningresarOpcion(CrearGuiaDespacho)

(Productos con registro persistente)(Base Craig Larman)

Fecha

:EncGuiaDespVentat1:Terminal1:NumGuiaDespVen := siguiente():NumGuia

2:FechaV := ahora():Fecha

d1:EncGuiaDespVenta 3 :[NuevaGuiaDespacho] crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)

t1:Terminal

l1:DetGuiaDespVenta

3.1 :[NuevaGuiaDespacho] crearDetGuiaDespVenta(NumGuiaDespVen)

siguiente():NumGuiaahora():Fecha

crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)

Omisión del Contenedor de LíneasNota: Según Craig Larman( 21.8.6 - pg.262 ) : “ Un mensaje a un multiobjeto se interpreta como un mensaje al objeto contenedor / colec-ción en sí mismo... estas clases ( tales comojava.util.Vector... ) son clases predefinidasde la biblioteca de clases... no es útil mos-trarlas explícitamente... agregan “ruido” pero poca información nueva. ”

El mensaje invoca un método de clase ( no de instancia ), específicamenteel método ahora() de la clase Fecha

Page 26: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 26

Diseño de Clases:Creación de EncGuiaDespVenta

Diagramas de ColaboracióningresarCodEmpleado(CodigoEmpleado)

ingresarRutCliente(RutCliente)(Productos con registro persistente)

(Base Craig Larman)

c1:Clientes

d1:EncGuiaDespVentat1: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:EncGuiaDespVenta1:ingresarCodEmpleado(CodigoEmpleado)

e1:Empleados

1.1:Nombre := consultar(CodigoEmpleado)

ingresarCodEmpleado(CodigoEmpleado)

ingresarRutCliente (RutCliente)

Page 27: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 27

Diseño de Clases:Creación de EncGuiaDespVenta

Diagramas de ColaboracióningresarNumNVFechaNVCond(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)

:EncGuiaDespVenta1.1: consultar (NumNV)

La instancia específica :d1:EncGuíaDespVenta hace la con-sulta a los Encabezados de Guía anterio-res. ( Condición de NO existencia previa )

Page 28: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 28

Diseño de Clases:Creación de EncGuiaDespVenta

Diagramas de ColaboracióningresarCodProducto(CodigoProducto)

(Productos con registro persistente)(Base Craig Larman)

1.2:Descripcion := consultar(CodigoProducto)

1:ingresarCodProducto(CodigoProducto)

2 *:[i:=1...6] NumLínea:= siguiente () : NumLinea

ll:DetGuiaDespVenta

t1:Terminal

b1:Productos

1.1:aceptarCodigo(CodigoProducto)

d1:EncGuiaDespVenta

2.1 *:[i:=1...6] NumLínea:= siguiente () : NumLinea

2.2:crearLinea(NumLinea)

ingresarCodProducto(CodigoProducto)

siguiente () : NumLinea

Omisión del Contenedor de LíneasNota: Según Craig Larman( 21.8.6 - pg.262 ) : “ Un mensaje a un multiobjeto se interpreta como un mensaje al objeto contenedor / colec-ción en sí mismo... estas clases ( tales comojava.util.Vector... ) son clases predefinidasde la biblioteca de clases... no es útil mos-trarlas explícitamente... agregan “ruido” pero poca información nueva. ”

Page 29: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 29

Diseño de Clases:Creación de EncGuiaDespVenta

Diagramas de ColaboracióningresarPrecioCantidad(Precio, Cantidad)

grabarLínea()(Productos con registro persistente)

(Base Craig Larman)

ll:DetGuiaDespVentaa

t1:Terminal1:ingresarPrecioCantidad(Precio, Cantidad)

1.1:aceptarDatos(Precio, Cantidad)

d1:EncGuiaDespVenta

2: /ValorTotal := calcularTotales()t1:Terminal d1:EncGuiaDespVenta

2.1*:[i:=1...6]: /ValorLínea := calcularValor()

ll:DetGuiaDespVenta

Después de grabarLinea() el usua-rio vuelve a la acción anterior de ingresarCodProducto() hasta queno queden más productos queingresar, en cuyo caso pasa a la siguiente acción : teminarTransaccion()

ingresarPrecioCantidad(Precio, Cantidad)

calcularTotales()

Page 30: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 30

Diseño de Clases:Creación de EncGuiaDespVenta

Diagramas de ColaboraciónterminarTransaccion()

(Primera Parte)(Productos con registro persistente)

(Base Craig Larman)t1:Terminal

1: /ValorTotal := calcularTotales()d1:EncGuiaDespVenta

1.1*:[i:=1...6] /ValorLínea := 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)

ll:DetGuiaDespVenta

b1:Productos

2.3*:[i:=1...6 ][notAct] notAct := notAct(notAct := false)

2.2.a*:[i:=1...6 ][notAct] restarExistencia(CodigoProducto, Cantidad)

2.2.b*:[i:=1...6 ][notAct] sumarDespachado(CodigoProducto, Cantidad)

2.a*:[i:=1...6 ][notAct] restarExistencia(CodigoProducto, Cantidad)2.b*:[i:=1...6 ][notAct] sumarDespachado(CodigoProducto, Cantidad)

calcularTotales()

sumarDespachado(CodigoProducto, Cantidad) restarExistencia(CodigoProducto, Cantidad)

Este Diagrama reitera lo indicadoen grabarLínea() al recalcular lostotales ( se expone por completitud )

Page 31: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 31

Diseño de Clases:Creación de EncGuiaDespVenta

Diagramas de ColaboraciónterminarTransaccion()

(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 :EncGuiaDespVenta3:NumGuiaDespVen := siguiente():NumGuia

4:FechaV := ahora():Fecha

siguiente():NumGuiaahora():Fecha

crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)

Esta Segunda Parte del Diagramade terminarTransacción() reiteralo indicado en pág 25 ingresarOpción()( se expone por completitud )

Page 32: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 32

Encabezado de Guía de Despacho

•Nº Guia de DespachoRUT Cliente Nº Nota de VentaFecha DespachoCódigo EmpleadoFecha Nota de VentaCondición de Pago/ Valor Total

Transacción CerradaTransacción Anulada

1. Crear Encabezado() 2. Aceptar datos() 6. Calcular Totales() 7. Cerrar Transacción() 8. Anular Transacción() 9. Copiar Transacción()10. Siguiente()

•Nº LíneaCódigo ProductoPrecio Cantidad/ Valor líneanotActLínea CerradaLínea Anulada

Detalle de Guía de Despacho

1. Crear Línea() 2. Aceptar Codigo() 3. Aceptar datos() 6. Calcular Valor() 7. Cerrar Línea() 8. Anular Línea() 9. Copiar Línea() 10. Siguiente()11. notAct()

Clientes

•RUT Cliente Razón Social Dirección e_Mail Comuna Ciudad País Contacto Fono Fax

Diseño de Clases :Modelo Funcional

(Detallado y Generalizado)Crear Guía Interna de

Despacho por Venta(Productos con Registro

persistente)

Productos

•Código ProductoDescripciónU.MedidaPrecioCosto UnitarioExistencia InicialExistenciaRecibidoDespachado

4. Consultar datos()6. Sumar Existencia() 7. Restar Existencia()8. Sumar Recibido()9. Sumar Despachado()10. Existencia Negativa()11. Calcular CPP()

Empleados

•Código Empleado Nombre ...

Terminal

1.Cargar correlativo y fecha de sistema2. Aceptar datos.3. Enviar mensajes de C/E a registros.4. Enviar mensajes de consulta de datos5. Calcular totales cumulativos6. Enviar mensajes de actualización de existencias y actualizar línea a línea el registro de la transacción

Encabezado, detalle y totales según 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 línea de detalle, notAct

se incializa a: true

Page 33: Son modelos de Análisis y Diseño, principalmente con base en UML

25/09/2002 33

EncGuíaDespVentaNumGuíaDespVenRUTCliente NumNVFechaVCódigoEmpleado FecNVCPag/ValorTotalTransacciónCerradaTransacciónAnulada

crearEncGuiaDespVenta() ingresarCodEmpleado() ingresarRutCliente() ingresarNumNVFechaNVCond() ingresarCodProducto() ingresarPrecioCantidad() restarExistencia() sumarDespachado() calcularTotales() cerrarTransacción() anularTransacción() copiarTransacción() siguiente()

•NumLineaCodigoProductoPrecioCantidad/ValorLíneanotActLíneaCerradaLíneaAnulada

DetGuíaDespVenta

crearDetGuiaDespVenta() crearLínea() aceptarCodigo() aceptarDatos() calcularValor() restarExistencia() sumarDespachado() cerrarLínea() anularLínea() copiarLínea() siguiente() notAct()

Clientes

•RUTCliente RazónSocial Dirección eMail Comuna Ciudad País Contacto Fono Fax

Diseño de Clases : Modelo de DatosDiagrama de Diseño de Clases

Crear Guía Interna de Despacho por Venta

(Productos con Registropersistente)

1

1

*

*

1 1..*

Productos

•CodigoProductoDescripciónUMedidaPrecioCostoUnitarioExistenciaInicialExistenciaRecibidoDespachado

sumarExistencia() restarExistencia()sumarRecibido()sumarDespachado()existenciaNegativa()calcularCPP()

Empleados

• CódigoEmpleado 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 línea de detalle, notAct

se incializa a: true

Nota: Según Craig Larman(21.8.4 a 21.8.8 - pgs.262 - 264)Salvo casos especificos, es conve-niente omitir los métodos : crear(),modificar(), eliminar() y consultar()en los diagramas de clases dado queno agregan valor y aumentan el“ruido” - se consideran implícitos -

Dentro de los requerimientos, podría sustituirse por la consultaa los Encabezados de Guía anteriores.( Condición de NO existencia previa )