Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelos UML Ventas V4
Modelos UML Ventas V4
Macro-
Proyección ventas Adquisiciones Ventas Servicio postventa
procesos
Segundo Flujo-
grama de
Información
RECEPCIÓN DESPACHO
POR COMPRAS POR VENTAS
Procesos
operativos
Devoluciones Devoluciones
Flujograma : Proceso de Despacho de Productos a Clientes - (Guía Interna de Despacho por Venta )
Emitir Guía de
Despacho
Nota :
1) Este Flujograma no sigue
3 todas las reglas ortodoxas
2 del diseño, sin embargo,
G/D 1
Interna cumple con la función de
2’ mostrar la emisión de la
G/D 1’
Interna Guía de Despacho en su
contexto.
3’
2’
Recibir
G/D 1’ Pago
Interna
2’’
G/D 1’’
2’’ Interna
G/D 1’’
Normalmente la firma de
Interna
Despachar la Guía de Despacho se-
3’ Productos
1’ ría en conjunto entre el
Nota de 2’ de Bodega
Nota de 1’ Despachador y el Cliente.
Venta
Venta. (Copias 1 y 2 ).
G/D 1’’’
Interna G/D 1’’’
Interna G/D 2’’’
Interna
25/09/2002 3
Diseño de Clases:
Diagrama de Casos de Uso
(Casos de Uso Básicos)
Crear Guía Interna de
Recepción por Compra
Administrar Sistema de
Encargado Bodega de Recepción
de Despacho
(Empleado)
Administrar Sistema de
Bodega de Despacho
Administrar Sistema ... Administrador
Son Casos de Uso Genéricos que (Empleado)
en el transcurso del análisis se des-
agregarían en otros Casos de Uso
25/09/2002 4
Diseño de Clases: Guía de Despacho Caso de Uso de Alto Nivel
Caso de Uso: Crear Guía Interna de
Terminal Despacho
Despacho por Venta ( Productos con registro
persistente )
Crear Guía Interna de
Despacho por Venta
R1.5 Capturar la información del Cliente usando el RUT (Ingreso Manual) y desplegar datos evidente
pertinentes del Cliente registrados en almacenamiento persistente.
R1.6 Capturar Nº de Nota de Venta del Cliente (Ingreso Manual), verificar validez ( No Existencia evidente
previa) y desplegarlo.
R1.7 Capturar Fecha (Propia) de Nota de Venta del Cliente (Ingreso Manual) y desplegarla. evidente
R1.9 Registrar la transacción en proceso: los Productos a despachar. Capturar la información del evidente
Producto a despachar usando el Código (interno) (Ingreso Manual).
R1.10 Desplegar la descripción del Producto registrado en almacenamiento persistente evidente
R1.11 Capturar el Precio al Cliente del Producto (Ingreso manual) y desplegarlo. evidente
R1.12 Capturar la Cantidad de unidades del Producto respectivo (Ingreso manual). y calcular valor de evidente
la línea actualizando los totales de la Guía de Despacho en la Interfaz al dar OK a la línea.
R1.13 Grabar en el Detalle de la Guía de Despacho (línea a línea) los datos de cada línea a medida que oculta
se completa y calcula cada una de ellas.
R1.14 Actualizar los valores de existencia y despachado de Productos (evitando doble actualización) oculta
al dar OK a la Guía de Despacho en su totalidad.
R1.15 Ofrecer un mecanismo de almacenamiento persistente. oculta
25/09/2002 6
Caso de Uso Expandido
Diseño de Clases :
Terminal Despacho
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 Expandido
Nota : (Craig Larman, 2.7.2, pg. 26):
“Los Casos de Uso Expandidos son
Encargado de Despacho
extensas narrativas de descripción
de un proceso - pueden contener
Cliente
cientos de frases - “
Ver también: (Craig Larman, 6.3.2, Caso de Uso : Crear Guía Interna de Despacho por Venta
pg. 50)
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
Este Caso de Uso comprende
Venta. El Encargado de Despacho verifica los datos indicados por el Documento
desde la Hoja # 7 (la actual) hasta y los ingresa en el Terminal de Despacho, al terminar confirma la Transacción. El
la Hoja # 11 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
25/09/2002 7
Diseño de Clases : Caso de Uso:
Crear Guía Interna de Despacho por Venta
(Expandido ) ( Base Craig Larman )
(Productos con registro persistente) Curso Normal de los Eventos
Acción de los actores Respuestas del Sistema
1. Este caso comienza cuando un Cliente se contacta con un
Encargado de Despacho, presentando una Nota de Venta,
para solicitar que se 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
4. El Encargado de Despacho verifica visualmente el Nº de Guía de correlativo correspondiente y en B la fecha del sistema.
Despacho y Fecha ofrecidos por el sistema y a continuación
ingresa su identificación (Código) en C. 5. El sistema obtiene y despliega el nombre del Encargado de Despacho
en D.
6. El Encargado de Despacho ingresa en E el RUT del Cliente y
verifica los datos del mismo desplegados por el sistema.
7. El sistema despliega los datos básicos del Cliente (Razón Social,
8. El Encargado de Despacho ingresa en M, N y O respectivamente Dirección, e-Mail, Comuna, Ciudad, Teléfono, Fax) en F, G, H, I, J, K
el Nº de Nota de Venta, la Fecha de la Nota de Venta y las Condi- y L respectivamente,
ciones de Pago de la Venta.
9. El sistema verifica la validez / “no existencia” del Nº de la Nota de
Venta
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-
16. El Encargado de Despacho cierra la interfaz de Transacción opri- despliega en los campos T y U, además actualiza los datos de la
miendo el botón XX para volver al Menú de Opciones y entrega la transacción en el sistema de almacenamiento persistente.
1ª copia de la Nota de Venta (firmada) al Cliente (Notificación de Genera tres copias de la transacción realizada utilizando la inter-
cumplimiento del compromiso). El Cliente se retira en dirección a faz de salida indicada. “Limpia” la interfaz de entrada y posiciona el
la Caja. cursor en A
• 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.
25/09/2002 8
Diseño de Clases :
Caso de Uso ( Expandido ): Crear Guía
Interna de Despacho por Venta
( Productos con registro persistente)
Interfaz de Entrada
Guía Interna de Despacho por Venta Nº Guía Despacho A
Código Enc. Despacho C Encargado Despacho
D
Fecha Despacho B
Razón Social Cliente
RUT Cliente E - F
Dirección Cliente G e-Mail H
Comuna I Ciudad J Fono K Fax L
Nota de Venta Nº M Fecha Nota de Venta N Cond. Pago O
Cerrada W Cerrar X XX V
Anulada Y Anular Z Salir Grabar Total acumulado U
25/09/2002 9
Diseño de Clases :
Caso de Uso ( Expandido ): Crear Guía Interna de
Despacho por Venta
( Productos con registro persistente)
Curso Normal
1) Considerar operacion(es) de Cerrado en Encabezado
2) Considerar operacion(es) y “flag” de Cerrada en Líneas
Excepciones
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 Encabezado
10) Considerar operación(es) de Cancelar en Líneas
25/09/2002 10
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 XXXXXXX
Conforme : Caja
Despachador
Encargado
Cliente Total Neto 99999999,99
Despacho
25/09/2002 11
Diseño de Clases:
Modelo Conceptual (simplificado)
Crear Guía Interna de
Despacho por Venta
(Productos con registro persistente)
Nota : En este modelo se consideran
los conceptos mínimos. En un análisis Encabezado de
y desarrollo posteriores se podrían in- Guía Interna de
cluir conceptos tales como Bodega,
* Despacho por *
Venta
Terminal, Empresa, etc.
Nº de Guía 1
Emplea- Fecha
dos Cliente Clientes
Nombre Nombre 1
1 RUT
1 Nombre
1..* Dirección
Detalle de Guía
Interna de Despa-
cho por Venta
*
Descripción Notas de
Productos Precio Venta
1
Código
1 Cantidad
Nº Nota de Venta
Descripción Fecha
Precio
25/09/2002 12
Diseño de Clases:
Diagrama de Diseño
de Clases ( Borrador inicial )
Crear Guía Interna de
Despacho por Venta Encabezado de
(Productos con registro persistente) Guía Interna de
Despacho por
Venta
Nota: Según Craig Larman
( pg.257 ) : “ Si bien la presen- Nº de Guía
tación de los diagramas de clases Fecha
es posterior a la creación de los Cliente *
diagramas de interacción, en la prác- Emplea- Nombre 1
tica usualmente se crean en paralelo.
*
dos
Muchas clases, métodos y relaciones Clientes
pueden bosquejarse tempranamente Nombre
en la etapa de Diseño” 1 RUT
1 1 Nombre
1..* Dirección
Detalle de Guía
Interna de Despa-
Nota: Según Craig Larman cho por Venta
(21.8.4 a 21.8.8 - pgs.262 - 264) * Notas de
Salvo casos especificos, es conve- Descripción
Productos Precio Venta
niente omitir los métodos : crear(), 1
modificar(), eliminar() y consultar() Código
1 Cantidad
Nº Nota de Venta
en los diagramas de clases dado que Descripcion Fecha
no agregan valor y aumentan el Precio
“ruido” - se consideran implícitos -
25/09/2002 13
Diseño de Clases: Crear Guía
Interna de Despacho por Venta
Diagrama de Secuencia del Sistema
(Productos con registro persistente) Versión en Lenguaje Natural
(Base Craig Larman)
Caso de Uso:
Crear Guía de Despacho :Sistema
( Curso Normal de los Eventos) Encargado de Despacho
Ingresar a la Opción Crear Guía de Despacho
Obtener / Ingresar(Tab) Nº de
Guía Despacho y Fecha sistema,
verificar correlativo y fecha.
Ingresar Código del Empleado y Ingresar Código del Empleado en Encabezado
obtener / verificar el nombre del
mismo.
Ingresar RUT del Cliente en Encabezado
Ingresar RUT del Cliente y
obtener / verificar los datos del
mismo.
Ingresar Nº Nota de Venta, Fecha y C. Pago en Encabezado
Ingresar datos de Nota de Venta
( Nº Nota, Fecha, Condiciones )
Para cada línea: Ingresar Código del Producto en Línea Detalle
• Ingresar el Código del
Producto
• Obtener / Verificar datos del Reiterar hasta
Producto que no haya
más Productos Ingresar Precio y Cantidad del Producto
• Ingresar precio y cantidad del que ingresar
Producto
• Dar OK a la línea (Grabar) Dar OK a la Línea de Detalle
Al terminar:
Dar OK al Final para Terminar la Creación
•Dar OK a la Transacción
(Grabar)
Salir al Menú
• Salir al Menú
25/09/2002 14
Diseño de Clases: Crear Guía Interna
de Despacho por Venta
Diagrama de Secuencia del Sistema Versión llamando los Eventos
(Productos con registro persistente) por su Nombre
(Base Craig Larman) ( equivalente a Operaciones del sistema)
Caso de Uso:
Crear Guía de Despacho :Sistema
( Curso Normal de los Eventos) Encargado de Despacho
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
Obtener / Ingresar(Tab) Nº de
Guía Despacho y Fecha sistema,
verificar correlativo y fecha.
ingresarCodEmpleado(CodigoEmpleado)
Ingresar Código del Empleado y
obtener / verificar el nombre del
mismo.
ingresarRutCliente(RutCliente)
Ingresar RUT del Cliente y
obtener / verificar los datos del
mismo. ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
Ingresar datos de Nota de Venta
( Nº Nota, Fecha, Condiciones )
Para cada línea: ingresarCodProducto(CodigoProducto)
• Ingresar el Código del
Producto
• Obtener / Verificar datos del Reiterar hasta
Producto que no haya
más Productos
• Ingresar precio y cantidad del que ingresar
ingresarPrecioCantidad(Precio,Cantidad)
Producto
• Dar OK a la línea (Grabar) grabarLínea()
Al terminar:
•Dar OK a la Transacción terminarTransacción()
(Grabar)
• Salir al Menú salirAMenú()
25/09/2002 15
Diseño de Clases:
Crear Guía Interna de Despacho
por Venta
Operaciones del Sistema
(Productos con registro persistente)
(Base Craig Larman)
Visión Dinámica del Sistema
Sistema
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
ingresarCodEmpleado(CodigoEmpleado)
ingresarRutCliente(RutCliente)
ingresarCodProducto(CodigoProducto)
ingresarPrecioCantidad(Precio,Cantidad)
grabarLínea()
terminarTransacción()
salirAMenu()
25/09/2002 16
Diseño de Clases: Contratos
Crear Guía Interna Contrato
de Despacho Nombre: crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
por Venta Responsabilidades: Aceptar (Click) en la opción del Menú.Desplegar la Interfaz de Creación
de Guía de Despacho. Aceptar (Tab) para iniciar el ingreso de la transac-
(Productos con registro ción. Crear instancias de EncGuiaDespVenta y DetGuiaDespVenta, obtener
persistente) y desplegar NumGuiaDespVen, obtener y desplegar FechaV desde la fecha
del sistema, opcionalmente aceptar modificación manual de la fecha.
(Base Craig Larman) Tipo: Sistema
25/09/2002 18
Diseño de Clases: Contratos
Crear Guía Interna de Contrato
Despacho por Venta
(Productos con registro Nombre: ingresarRutCliente(RutCliente)
Tipo: Sistema
25/09/2002 19
Diseño de Clases: Contratos
Crear Guía Interna de
Despacho por Venta
(Productos con registro Contrato
persistente)
Nombre: ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
(Base Craig Larman)
Responsabilidades: 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.
Tipo: Sistema
Nota: Referencias cruzadas: R1.6, R1.7 y R1.8, R1.15
Los nombres de elementos usados
en los contratos hacen referencia
Notas: Usar Base de Datos MS Access - el Encargado de Despacho oprime
(Tab) para pasar a los sucesivos campos -
al Diagrama de Secuencia de pág. 15,
Excepciones: El Nº de Nota de Venta ya existe.
al Modelo Funcional de pág. Nº 32
y al Modelo de Clases de pág. Nº 33. Salida: N /A
Precondiciones: El sistema conoce a EncGuiaDespVenta.NumNV (Registrado oportuna-
mente con anterioridad). Están disponibles los Encabezados de Guías de
Despacho previas.
Postcondiciones:
• 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.
25/09/2002 20
Diseño de Clases: Contratos Contrato
Crear Guía Interna de Nombre: ingresarCodProducto(CodigoProducto)
Despacho por Venta Responsabilidades: Aceptar el ingreso de CodigoProducto. Basado en CodigoProducto, ob-
(Productos con registro tener y desplegar los Datos del Producto registrados en el sistema de
almacenamiento persistente. Al oprimir (Tab) - fin de ingreso de Codi-
persistente)
goProducto - asignar Número correlativo a la Instancia de DetGuía-
(Base Craig Larman) DespVenta.NumLinea y pasar al campo Q. Si la Descripción es la cor-
recta pasar (Tab) al campo R: Precio.
Tipo: Sistema
Referencias cruzadas: R1.9, R1.10, R1.15
25/09/2002 21
Diseño de Clases: Contratos
Crear Guía Interna de
Despacho por Venta
(Productos con registro Contrato
persistente)
Nombre: ingresarPrecioCantidad(Precio, Cantidad)
(Base Craig Larman)
Responsabilidades: 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.
Tipo: Sistema
25/09/2002 22
Diseño de Clases: Contratos Contrato
Crear Guía Interna de Nombre: grabarLínea()
Despacho por Venta
Responsabilidades: Aceptar avance con (Tab) hasta la siguiente línea de la interfaz, creando
(Productos con registro
una nueva Línea de DetGuiaDespVenta. Calcular /ValorLínea y desple-
persistente) garlo en T de la línea previa. Grabar en almacenamiento persistente un
(Base Craig Larman) 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.
Tipo: Sistema
Referencias cruzadas: R1.13, R1.15
Notas: Usar Base de Datos MS Access. En este punto el sistema queda listo para
Nota:
reiterar el ingreso de un nuevo código CodigoProducto o caso contrario,
Los nombres de elementos usados pasar a terminarTransacción()
en los contratos hacen referencia
Excepciones: N /A
al Diagrama de Secuencia de pág. 15,
al Modelo Funcional de pág. Nº 32 Salida: N /A
y al Modelo de Clases de pág. Nº 33.
Precondiciones: N/A
Postcondiciones: • 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.
25/09/2002 23
Diseño de Clases: Contratos Contrato
Crear Guía Interna de
Nombre: terminarTransacción()
Despacho por Venta
Responsabilidades: Aceptar (click) del Botón V (Grabar). Recalcular /ValorTotal y redesple-
(Productos con registro garlo en U. Grabar en almacenamiento persistente la instancia actual de
persistente) EncGuiaDespVenta.”Limpiar” los datos desplegados en la interfaz. Actua-
(Base Craig Larman) lizar Productos.Existencia, Productos.Despachado y DetGuiaDesp-
Venta.notAct. Posicionar en A el cursor.
Tipo: Sistema
Notas: Usar Base de Datos MS Access. Al terminar, el sistema queda listo pa-
Nota:
ra ingresar una nueva transacción o volver al Menú de opciones.
Los nombres de elementos usados Excepciones: Productos.Existencia y Productos.Despachado ya fueron actualizados.
en los contratos hacen referencia Salida: N /A
al Diagrama de Secuencia de pág. 15, Precondiciones: N /A
al Modelo Funcional de pág. Nº 32
y al Modelo de Clases de pág. Nº 33. Postcondiciones: • 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.
25/09/2002 24
Diseño de Clases:
Creación de EncGuiaDespVenta
Diagramas de Colaboración
ingresarOpcion(CrearGuiaDespacho)
(Productos con registro persistente)
(Base Craig Larman)
siguiente():NumGuia
ahora():Fecha
1:NumGuiaDespVen := siguiente():NumGuia
t1:Terminal :EncGuiaDespVenta
El mensaje invoca un método de
clase ( no de instancia ), específicamente
el método ahora() de la clase Fecha
2:FechaV := ahora():Fecha
Fecha
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
25/09/2002 25
Diseño de Clases:
Creación de EncGuiaDespVenta
Diagramas de Colaboración
ingresarCodEmpleado(CodigoEmpleado)
ingresarRutCliente(RutCliente)
(Productos con registro persistente) ingresarCodEmpleado(CodigoEmpleado)
(Base Craig Larman)
1:ingresarCodEmpleado(CodigoEmpleado)
t1:Terminal d1:EncGuiaDespVenta
1.1:Nombre := consultar(CodigoEmpleado)
e1:Empleados
ingresarRutCliente (RutCliente)
2:ingresarRutCliente (RutCliente)
t1:Terminal d1:EncGuiaDespVenta
c1:Clientes
25/09/2002 26
Diseño de Clases:
Creación de EncGuiaDespVenta
Diagramas de Colaboración
ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
(Productos con registro persistente)
(Base Craig Larman)
La instancia específica :
d1:EncGuíaDespVenta hace la con- ll:DetGuiaDespVenta
sulta a los Encabezados de Guía anterio-
res. ( Condición de NO existencia previa )
25/09/2002 27
Diseño de Clases:
Creación de EncGuiaDespVenta
Diagramas de Colaboración
ingresarCodProducto(CodigoProducto)
(Productos con registro persistente)
(Base Craig Larman)
ingresarCodProducto(CodigoProducto)
siguiente () : NumLinea
1:ingresarCodProducto(CodigoProducto)
2 *:[i:=1...6] NumLínea:= siguiente () : NumLinea
t1:Terminal d1:EncGuiaDespVenta
1.1:aceptarCodigo(CodigoProducto)
2.2:crearLinea(NumLinea)
1.2:Descripcion := consultar(CodigoProducto)
ll:DetGuiaDespVenta
b1:Productos
Omisión del Contenedor de Líneas
Nota: 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 como
java.util.Vector... ) son clases predefinidas
de la biblioteca de clases... no es útil mos-
trarlas explícitamente... agregan “ruido”
pero poca información nueva. ”
25/09/2002 28
Diseño de Clases:
Creación de EncGuiaDespVenta
Diagramas de Colaboración
ingresarPrecioCantidad(Precio, Cantidad)
grabarLínea()
ingresarPrecioCantidad(Precio, Cantidad)
(Productos con registro persistente)
(Base Craig Larman)
1:ingresarPrecioCantidad(Precio, Cantidad)
t1:Terminal d1:EncGuiaDespVenta
1.1:aceptarDatos(Precio, Cantidad)
calcularTotales()
ll:DetGuiaDespVentaa
2: /ValorTotal := calcularTotales()
t1:Terminal d1:EncGuiaDespVenta
ll:DetGuiaDespVenta
25/09/2002 29
Diseño de Clases:
Creación de EncGuiaDespVenta
Diagramas de Colaboración Este Diagrama reitera lo indicado
en grabarLínea() al recalcular los
terminarTransaccion() totales ( se expone por completitud )
(Primera Parte)
calcularTotales()
(Productos con registro persistente)
(Base Craig Larman) 1: /ValorTotal := calcularTotales()
d1:EncGuiaDespVenta
t1:Terminal
restarExistencia(CodigoProducto, Cantidad)
sumarDespachado(CodigoProducto, Cantidad) ll:DetGuiaDespVenta
25/09/2002 30
Diseño de Clases:
Creación de EncGuiaDespVenta
Diagramas de Colaboración Esta Segunda Parte del Diagrama
de terminarTransacción() reitera
terminarTransaccion() lo indicado en pág 25 ingresarOpción()
(Segunda Parte) ( se expone por completitud )
3:NumGuiaDespVen := siguiente():NumGuia
t1:Terminal :EncGuiaDespVenta
4:FechaV := ahora():Fecha
Fecha
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
l1:DetGuiaDespVenta
25/09/2002 31
Encabezado de Guía
de Despacho Clientes
Diseño de Clases : •Nº Guia de Despacho
C/E, msg1, msg2, C/E y msg4
Modelo Funcional RUT Cliente msg6 y msg10 •RUT Cliente
Nº Nota de Venta Razón Social
(Detallado y Generalizado) Fecha Despacho Dirección
Crear Guía Interna de Código Empleado Terminal e_Mail
Fecha Nota de Venta
Despacho por Venta Condición de Pago Encabezado, detalle y totales según Comuna
/ Valor Total formato de pantalla adjunto. Ciudad
(Productos con Registro País
Transacción Cerrada 1.Cargar correlativo y fecha de sistema
persistente) Transacción Anulada 2. Aceptar datos. Contacto
3. Enviar mensajes de C/E a registros. Fono
1. Crear Encabezado()
4. Enviar mensajes de consulta de datos Fax
2. Aceptar datos()
5. Calcular totales cumulativos
6. Calcular Totales() 4. Consultar datos()
6. Enviar mensajes de actualización de
7. Cerrar Transacción()
existencias y actualizar línea a línea
8. Anular Transacción()
el registro de la transacción Empleados
9. Copiar Transacción()
10. Siguiente() C/E y msg4
•Código
Empleado
C/E, msg1, msg2, msg3,
C/E, msg4, Productos Nombre
msg6, msg10 y msg11
msg7, msg9 ...
Detalle de Guía de •Código Producto
y msg10 Descripción
Despacho 4. Consultar datos()
•Nº Línea U.Medida
Código Producto Precio
Precio Costo Unitario
Cantidad C/E y msg4
/ Valor línea Existencia Inicial
notAct Existencia Notas de
Línea Cerrada Recibido Venta
Línea Anulada Despachado
4. Consultar datos() • Nº Nota
1. Crear Línea()
2. Aceptar Codigo() Al crear la línea 6. Sumar Existencia() de Venta
de detalle, notAct se 7. Restar Existencia()
3. Aceptar datos() incializa a: true
Datos
6. Calcular Valor() 8. Sumar Recibido()
7. Cerrar Línea() 9. Sumar Despachado() 4. Consultar datos()
8. Anular Línea() 10. Existencia Negativa()
9. Copiar Línea() 11. Calcular CPP()
25/09/2002 10. Siguiente() 32
11. notAct()
Diseño de Clases : Modelo de Datos EncGuíaDespVenta
Diagrama de Diseño de Clases * NumGuíaDespVen
RUTCliente
Crear Guía Interna de Clientes
NumNV
FechaV
1 CódigoEmpleado *
Despacho por Venta 1 FecNV Empleados
•RUTCliente CPag
(Productos con Registro RazónSocial /ValorTotal • CódigoEmpleado
TransacciónCerrada 1
persistente) Dirección TransacciónAnulada Nombre
eMail crearEncGuiaDespVenta()
Comuna ingresarCodEmpleado()
Dentro de los requerimientos, ingresarRutCliente()
podría sustituirse por la consulta Ciudad ingresarNumNVFechaNVCond()
a los Encabezados de Guía anteriores. País ingresarCodProducto()
ingresarPrecioCantidad()
( Condición de NO existencia previa ) Contacto restarExistencia()
Fono sumarDespachado()
calcularTotales() Agregado para clarificar
Fax cerrarTransacción() contexto, en principio es una
anularTransacción() lista de valores posibles
Notas de
copiarTransacción()
Venta siguiente()
1 1
• NumNV 1..*
RUTCliente
Productos DetGuíaDespVenta
FechaNV
etc... •CodigoProducto •NumLinea
Descripción 1 CodigoProducto
UMedida * Precio
Precio Cantidad
/ValorLínea
CostoUnitario notAct
ExistenciaInicial LíneaCerrada
Nota: Según Craig Larman Existencia LíneaAnulada
(21.8.4 a 21.8.8 - pgs.262 - 264) Recibido crearDetGuiaDespVenta()
Salvo casos especificos, es conve- Despachado crearLínea() Al crear la línea
niente omitir los métodos : crear(), aceptarCodigo() de detalle, notAct se
modificar(), eliminar() y consultar() sumarExistencia() aceptarDatos() incializa a: true
en los diagramas de clases dado que restarExistencia() calcularValor()
no agregan valor y aumentan el restarExistencia()
sumarRecibido()
“ruido” - se consideran implícitos - sumarDespachado()
sumarDespachado() cerrarLínea()
existenciaNegativa() anularLínea()
calcularCPP() copiarLínea()
25/09/2002 siguiente() 33
notAct()