Sie sind auf Seite 1von 33

Son modelos de Anlisis y Diseo, principalmente

con base en UML


Comienza desde mapa de procesos y flujograma de
informacin
Clase 2: Despacho por Ventas
Evolucin Informtica S.A.
Clases de Software del
Mtodo Genrico de Desarrollo de
Sistemas de Informacin
Devoluciones
RECEPCIN
POR COMPRAS
Ventas Servicio postventa
Proyeccin ventas Adquisiciones
DESPACHO
POR VENTAS
Devoluciones
Macro-
procesos
MAPA DE PROCESOS
(como parte del Modelo de Negocios)
Procesos
operativos
Segundo Flujo-
grama de
Informacin
25/09/2002 3
Flujograma : Proceso de Despacho de Productos a Clientes - (Gua Interna de Despacho por Venta )
Cliente
Nota de
Venta

1
2
3
Encargado
de Despacho
Nota de
Venta.

1
2
3
Depto. de
Ventas
Depto. de
Contabilidad
Despachador
(Bodega)
Emitir Gua de
Despacho
Recibir
Pago


G/D
Interna
1

2
3
Nota de
Venta

1
Nota de
Venta.

1
2
3
Cajero
Despachar
Productos
de Bodega
2 G/D
Interna
G/D
Interna
1
2
3
2
G/D
Interna
1
1 G/D
Interna
Nota :
1) Este Flujograma no sigue
todas las reglas ortodoxas
del diseo, sin embargo,
cumple con la funcin de
mostrar la emisin de la
Gua de Despacho en su
contexto.
2
G/D
Interna
1
2
G/D
Interna
1
1 G/D
Interna
Normalmente la firma de
la Gua de Despacho se-
ra en conjunto entre el
Despachador y el Cliente.
(Copias 1 y 2 ).
25/09/2002 4
Crear Gua Interna de
Recepcin por Compra
Crear Gua Interna de
Despacho por Venta
Administrar Sistema de
Bodega de Despacho
Iniciar Sistema de
Bodegas

Administrar Sistema de
Bodega de Recepcin

Diseo de Clases:
Diagrama de Casos de Uso
(Casos de Uso Bsicos)
Administrar Sistema ...
Son Casos de Uso Genricos que
en el transcurso del anlisis se des-
agregaran en otros Casos de Uso
Encargado
de Recepcin
(Empleado)
Encargado
de Despacho
(Empleado)
Cliente
Proveedor
Administrador
(Empleado)
Administrador,
Encargado de Recepcin,
Encargado de Despacho...
son roles que juegan las personas
de la Organizacin. ( No necesariamente
son tres personas distintas ).

25/09/2002 5
Diseo de Clases: Gua de Despacho
Caso de Uso: Crear Gua Interna de
Despacho por Venta ( Productos con registro
persistente )
Comentarios relevantes :

1) Se trata de una transaccin
entre dos entidades, (con Cliente
y Encargado de Despacho).
2) Se trata de una transaccin
que implica una entrega /
recepcin de Productos.
3) Existe un Registro de Clientes .
4) Existe un Registro de Encar-
gados de Despacho (Empleado).
5) Existe un Registro de Productos.
6) Se lleva un registro persistente
de la transaccin


Encargado
de Despacho
(Empleado)
Crear Gua Interna de
Despacho por Venta
Terminal Despacho

Caso de Uso: Crear Gua Interna de
Despacho por Venta
Actores: Cliente, Encargado de
Despacho
Tipo: Primario
Un Cliente llega para solicitar la
entrega de Mercadera, presentando
como documentacin una Nota de
Venta. El Encargado de Despacho
registra los datos de la mercadera
emitiendo una Gua Interna de
Despacho por Venta y firma la docu-
mentacin en todos sus ejemplares
para indicar la conformidad. El
Cliente se retira para pasar a la Caja
llevado su copia de la Nota de Venta
firmada por el Encargado de Despa-
cho, quien, a su vez, enva las partes
de la Gua de Despacho firmadas a
sus respectivos destinos. (Segn
Flujograma de Informacin )
Cliente

Caso de Uso de Alto Nivel
Nota : (Craig Larman, 2.7.2, pg. 26):
Los Casos de Uso de Alto Nivel son
breves descripciones de un proceso
- usualmente dos o tres frases -
Ver tambin: (Craig Larman, 6.3.1,
pg. 49)
Bibliografa: Esta presentacin se
basa principalmente en el libro
Applying UML and Patterns de
Craig Larman - 1998 -
( Prentice Hall) ISBN 0-13-748880-7
25/09/2002 6
Funciones Bsicas
Diseo de Clases :Caso de Uso: Crear Gua Interna de
Despacho por Venta ( Productos con registro persistente)
R1.1
R1.2

R1.3
R1.4

R1.5

R1.6

R1.7

R1.8

R1.9

R1.10

R1.11

R1.12

R1.13

R1.14

R1.15
Capturar y activar opciones desde un Men de Opciones, aceptar Opcin (Seleccin Manual).
Desplegar la Interfaz de Creacin de Gua de Despacho, N de Gua de Despacho (correlativo) y
Fecha de la Transaccin, - aceptar eventual modificacin de Fecha (Ingreso Manual).
Capturar el Cdigo del Encargado de Despacho (Ingreso Manual).
Desplegar datos del Encargado de Despacho registrados en almacenamiento persistente

Capturar la informacin del Cliente usando el RUT (Ingreso Manual) y desplegar datos
pertinentes del Cliente registrados en almacenamiento persistente.
Capturar N de Nota de Venta del Cliente (Ingreso Manual), verificar validez ( No Existencia
previa) y desplegarlo.
Capturar Fecha (Propia) de Nota de Venta del Cliente (Ingreso Manual) y desplegarla.

Capturar/Verificar. Condicin de Pago de la Venta (Ingreso Manual) y desplegarla.

Registrar la transaccin en proceso: los Productos a despachar. Capturar la informacin del
Producto a despachar usando el Cdigo (interno) (Ingreso Manual).
Desplegar la descripcin del Producto registrado en almacenamiento persistente

Capturar el Precio al Cliente del Producto (Ingreso manual) y desplegarlo.

Capturar la Cantidad de unidades del Producto respectivo (Ingreso manual). y calcular valor de
la lnea actualizando los totales de la Gua de Despacho en la Interfaz al dar OK a la lnea.
Grabar en el Detalle de la Gua de Despacho (lnea a lnea) los datos de cada lnea a medida que
se completa y calcula cada una de ellas.
Actualizar los valores de existencia y despachado de Productos (evitando doble actualizacin)
al dar OK a la Gua de Despacho en su totalidad.
Ofrecer un mecanismo de almacenamiento persistente.

evidente
evidente

evidente
evidente

evidente

evidente

evidente

evidente

evidente

evidente

evidente

evidente

oculta

oculta

oculta
Ref. # Funcin Categora
25/09/2002 7
Diseo de Clases :
Caso de Uso: Crear Gua Interna de
Despacho por Venta ( Productos
con registro persistente).
Crear Gua Interna de
Despacho por Ventas
Caso de Uso : Crear Gua Interna de Despacho por Venta
Actores : Cliente (Iniciador) , Encargado de Despacho (Actor Primario)
Propsito: Capturar Datos de Despacho de Productos Vendidos.
Resumen: Un Cliente contacta a un Encargado de Despacho para solicitar la Entrega de Pro-
ductos que ha pedido, la Transaccin requerida la documenta con una Nota de
Venta. El Encargado de Despacho verifica los datos indicados por el Documento
y los ingresa en el Terminal de Despacho, al terminar confirma la Transaccin. El
Cliente recibe la 1 copia de la Nota de Venta firmada por el Encargado de Despa-
cho, quien enva a sus respectivos destinos las copias firmadas de la Gua deDespa-
cho y las restantes de la Nota de Venta ( segn Flujograma del Proceso ).
El Cliente se retira en direccin a la Caja.
Tipo: Primario y real.
Referencias cruzadas: Funciones: R1.1, R1.2, R1.3, R1.4, R1.5, R1.6, R1.7, R1.8
R1.9, R1.10, R1.11, R1.12, R1.13, R1.14, R1.15
Encargado de Despacho
Terminal Despacho
Cliente
Caso de Uso Expandido
Nota : (Craig Larman, 2.7.2, pg. 26):
Los Casos de Uso Expandidos son
extensas narrativas de descripcin
de un proceso - pueden contener
cientos de frases -
Ver tambin: (Craig Larman, 6.3.2,
pg. 50)

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

25/09/2002 8
Curso Normal de los Eventos
Accin de los actores Respuestas del Sistema
1. Este caso comienza cuando un Cliente se contacta con un
Encargado de Despacho, presentando una Nota de Venta,
para solicitar que se efecte una Despacho de Productos.
(Peticin)

2. El Encargado de Despacho acuerda realizar la Transaccin.
(Aceptacin del compromiso) y para ello ingresa a la opcin de
Crear Gua de Despacho del Men de Opciones haciendo (Click)
y despus oprimiendo la tecla (Tab).

3. El sistema despliega la interfaz de Creacin de Gua de Despacho,
asigna y despliega automticamente en A el N de Gua de Despacho
correlativo correspondiente y en B la fecha del sistema.
4. El Encargado de Despacho verifica visualmente el N de Gua de
Despacho y Fecha ofrecidos por el sistema y a continuacin
ingresa su identificacin (Cdigo) en C.

6. El Encargado de Despacho ingresa en E el RUT del Cliente y
verifica los datos del mismo desplegados por el sistema.
5. El sistema obtiene y despliega el nombre del Encargado de Despacho
en D.

7. El sistema despliega los datos bsicos del Cliente (Razn Social,
Direccin, e-Mail, Comuna, Ciudad, Telfono, Fax) en F, G, H, I, J, K
y L respectivamente,
10. El Encargado de Despacho pasa a la seccin de detalle, en el cual
ingresa el Cdigo del Producto en P.
11. El sistema despliega el N de Lnea en LL, obtiene y despliega la
descripcin del Producto en Q.
12. El Encargado de Despacho verifica los datos del Producto e
ingresa el Precio unitario y la cantidad a despachar en R y
S. Luego oprime (Tab) para grabar la lnea actual y crear una
nueva lnea o terminar el ingreso de datos.
13. El sistema calcula el valor de la lnea ingresada y lo acumula, desplegan-
do los valores en T y U, a la vez que graba la lnea recin completada.
14. Al terminar de ingresar los Productos, el Encargado de Despacho
oprime el botn V para indicar al sistema el fin de la captura de
datos. 15. El sistema calcula los valores subtotales / total y los despliega / re-
despliega en los campos T y U, adems actualiza los datos de la
transaccin en el sistema de almacenamiento persistente.
Genera tres copias de la transaccin realizada utilizando la inter-
faz de salida indicada. Limpia la interfaz de entrada y posiciona el
cursor en A
16. El Encargado de Despacho cierra la interfaz de Transaccin opri-
miendo el botn XX para volver al Men de Opciones y entrega la
1 copia de la Nota de Venta (firmada) al Cliente (Notificacin de
cumplimiento del compromiso). El Cliente se retira en direccin a
la Caja.
Las restantes copias de la Nota de Venta y Gua Interna de Despacho (fir-
madas), el Encargado de Despacho las enva por la va de comunicacin
preestablecida.
Diseo de Clases : Caso de Uso:
Crear Gua Interna de Despacho por Venta
(Expandido ) ( Base Craig Larman )
(Productos con registro persistente)
8. El Encargado de Despacho ingresa en M, N y O respectivamente
el N de Nota de Venta, la Fecha de la Nota de Venta y las Condi-
ciones de Pago de la Venta.
9. El sistema verifica la validez / no existencia del N de la Nota de
Venta
25/09/2002 9
N Gua Despacho
Fecha Despacho
RUT Cliente -
Razn Social Cliente
Cdigo Enc. Despacho
A
C
B
D
E F
G
Diseo de Clases :
Caso de Uso ( Expandido ): Crear Gua
Interna de Despacho por Venta
( Productos con registro persistente)
Interfaz de Entrada
Direccin Cliente
Comuna Ciudad
Fono Fax
H
I
J K L
M N O
Grabar
L. Cdigo Descripcin Precio Cantidad Valor Neto
Total acumulado
P Q R
Encargado Despacho
Cerrada
Anulada
S T
U
Cerrar
V
Anular
W
Salir
X
Gua Interna de Despacho por Venta
Nota de Venta N Fecha Nota de Venta Cond. Pago
e-Mail
Y Z
LL
XX
25/09/2002 10
Notas adicionales a la Interfaz de Entrada:
( para desarrollar en una prxima vuelta de la espiral )
Curso Normal
1) Considerar operacion(es) de Cerrado en Encabezado
2) Considerar operacion(es) y flag de Cerrada en Lneas
Excepciones
3) Considerar operacin(es) y flag de Reversado en Encabezado
4) Considerar operacion(es) de Anulado de Encabezado
5) Considerar operacion(es) y flag de Anulada en Lneas
6) Considerar operacion(es) y flag de Reversada en Lneas
7) Considerar operacin(es) de Modificar en Encabezado
8) Considerar operacin(es de Modificar en Encabezado
9) Considerar operacin(es) de Cancelar en Encabezado
10) Considerar operacin(es) de Cancelar en Lneas
Excepciones al Curso Normal de los Eventos:
(para desarrollar los Casos de Uso correspondientes en una prxima
vuelta de la espiral )
1) Producto no registrado (Cdigo no existe)
2) N de Nota de Venta ya existe.
3) RUT de Cliente no registrado ( RUT no existe)
4) Encargado de Despacho no registrado (Cdigo no existe)
5) Existencia negativa (Inventario insuficiente)
6) Nota de Venta de ms de 6 productos
Diseo de Clases :
Caso de Uso ( Expandido ): Crear Gua Interna de
Despacho por Venta
( Productos con registro persistente)
25/09/2002 11
Gua de Despacho N Fecha
RUT Cliente
X
-
Comuna Ciudad Telfono Fax
L. Cdigo Descripcin Precio Cantidad Valor Neto
Total Neto
999.999 99/99/9999
999.999.999 XXXXXXX
Razn Social Cliente XXXXXXX
Direccin Cliente XXXXXXX
XXXXXXX XXXXXXX XXXXXXX XXXXXXX
XXXXXXX XXXXXXXXXXXX 9999 9999,99 999999,99
99999999,99
99
Encargado Despacho
Diseo de Clases :
Caso de Uso ( Expandido ): Crear Gua
Interna de Despacho por Venta
( Productos con registro persistente)
Interfaz de Salida
N de Nota de Venta 999.999 Fecha Nota de Venta
99/99/9999
Cond. Pago
e-Mail
XXXXXXX
XXXXXXX
Encargado
Despacho
Caja
Despachador
Cliente
Conforme :
25/09/2002 12
Productos
Clientes
Encabezado de
Gua Interna de
Despacho por
Venta
1
*
*
*
Diseo de Clases:
Modelo Conceptual (simplificado)
Crear Gua Interna de
Despacho por Venta
(Productos con registro persistente)
Detalle de Gua
Interna de Despa-
cho por Venta
1
1
1
1..*
Notas de
Venta
1
1
Emplea-
dos
Nombre
Cdigo
Descripcin
Precio
N de Gua
Fecha
Cliente
Nombre
Descripcin
Precio
Cantidad
RUT
Nombre
Direccin
N Nota de Venta
Fecha

Dentro de los requerimientos,
podra sustituirse por la consulta
a los Encabezados de Gua anteriores.
( Condicin de NO existencia previa )
Nota : En este modelo se consideran
los conceptos mnimos. En un anlisis
y desarrollo posteriores se podran in-
cluir conceptos tales como Bodega,
Terminal, Empresa, etc.
25/09/2002 13
Productos
Clientes
Encabezado de
Gua Interna de
Despacho por
Venta
1
*
*
*
Diseo de Clases:
Diagrama de Diseo
de Clases ( Borrador inicial )
Crear Gua Interna de
Despacho por Venta
(Productos con registro persistente)
Detalle de Gua
Interna de Despa-
cho por Venta
1
1 1
1..*
Notas de
Venta
1
1
Nombre
Cdigo
Descripcion
Precio
N de Gua
Fecha
Cliente
Nombre
Descripcin
Precio
Cantidad
RUT
Nombre
Direccin
N Nota de Venta
Fecha
Dentro de los requerimientos,
podra sustituirse por la consulta
a los Encabezados de Gua anteriores.
( Condicin de NO existencia previa )
Nota: Segn Craig Larman
( pg.257 ) : Si bien la presen-
tacin de los diagramas de clases
es posterior a la creacin de los
diagramas de interaccin, en la prc-
tica usualmente se crean en paralelo.
Muchas clases, mtodos y relaciones
pueden bosquejarse tempranamente
en la etapa de Diseo

Emplea-
dos
Nota: Segn Craig Larman
(21.8.4 a 21.8.8 - pgs.262 - 264)
Salvo casos especificos, es conve-
niente omitir los mtodos : crear(),
modificar(), eliminar() y consultar()
en los diagramas de clases dado que
no agregan valor y aumentan el
ruido - se consideran implcitos -

25/09/2002 14
Diseo de Clases: Crear Gua
Interna de Despacho por Venta
Diagrama de Secuencia del Sistema
(Productos con registro persistente)
(Base Craig Larman)
Encargado de Despacho

:Sistema
Ingresar a la Opcin Crear Gua de Despacho
Ingresar RUT del Cliente en Encabezado
Ingresar Cdigo del Empleado en Encabezado
Ingresar Cdigo del Producto en Lnea Detalle
Ingresar Precio y Cantidad del Producto
Dar OK a la Lnea de Detalle
Dar OK al Final para Terminar la Creacin
Caso de Uso:
Crear Gua de Despacho
( Curso Normal de los Eventos)

Obtener / Ingresar(Tab) N de
Gua Despacho y Fecha sistema,
verificar correlativo y fecha.
Ingresar Cdigo del Empleado y
obtener / verificar el nombre del
mismo.
Ingresar RUT del Cliente y
obtener / verificar los datos del
mismo.
Ingresar datos de Nota de Venta
( N Nota, Fecha, Condiciones )
Para cada lnea:
Ingresar el Cdigo del
Producto
Obtener / Verificar datos del
Producto
Ingresar precio y cantidad del
Producto
Dar OK a la lnea (Grabar)
Al terminar:
Dar OK a la Transaccin
(Grabar)
Salir al Men
Versin en Lenguaje Natural
Reiterar hasta
que no haya
ms Productos
que ingresar
Salir al Men
Ingresar N Nota de Venta, Fecha y C. Pago en Encabezado
Ingresar RUT del Cliente en Encabezado
25/09/2002 15
Diseo de Clases: Crear Gua Interna
de Despacho por Venta
Diagrama de Secuencia del Sistema
(Productos con registro persistente)
(Base Craig Larman)
Encargado de Despacho

:Sistema
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
ingresarRutCliente(RutCliente)
ingresarCodEmpleado(CodigoEmpleado)
ingresarCodProducto(CodigoProducto)
ingresarPrecioCantidad(Precio,Cantidad)
grabarLnea()
terminarTransaccin()
Versin llamando los Eventos
por su Nombre
( equivalente a Operaciones del sistema)
salirAMen()
Caso de Uso:
Crear Gua de Despacho
( Curso Normal de los Eventos)

Obtener / Ingresar(Tab) N de
Gua Despacho y Fecha sistema,
verificar correlativo y fecha.
Ingresar Cdigo del Empleado y
obtener / verificar el nombre del
mismo.
Ingresar RUT del Cliente y
obtener / verificar los datos del
mismo.
Ingresar datos de Nota de Venta
( N Nota, Fecha, Condiciones )
Para cada lnea:
Ingresar el Cdigo del
Producto
Obtener / Verificar datos del
Producto
Ingresar precio y cantidad del
Producto
Dar OK a la lnea (Grabar)
Al terminar:
Dar OK a la Transaccin
(Grabar)
Salir al Men
Reiterar hasta
que no haya
ms Productos
que ingresar
ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
25/09/2002 16
Diseo de Clases:
Crear Gua Interna de Despacho
por Venta
Operaciones del Sistema
(Productos con registro persistente)
(Base Craig Larman)
grabarLnea()
terminarTransaccin()
Sistema
Visin Dinmica del Sistema
salirAMenu()
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
ingresarCodEmpleado(CodigoEmpleado)
ingresarRutCliente(RutCliente)
ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
ingresarCodProducto(CodigoProducto)
ingresarPrecioCantidad(Precio,Cantidad)
25/09/2002 17
Diseo de Clases: Contratos
Crear Gua Interna
de Despacho
por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Postcondiciones:
Contrato
Nombre: crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
Responsabilidades:
Tipo:
Referencias cruzadas:
Notas:
Excepciones:
Salida:
Precondiciones:
Aceptar (Click) en la opcin del Men.Desplegar la Interfaz de Creacin
de Gua de Despacho. Aceptar (Tab) para iniciar el ingreso de la transac-
cin. Crear instancias de EncGuiaDespVenta y DetGuiaDespVenta, obtener
y desplegar NumGuiaDespVen, obtener y desplegar FechaV desde la fecha
del sistema, opcionalmente aceptar modificacin manual de la fecha.
Sistema
R1.1, R1.2, R1.15
Usar Sistema de Men, Ahora() de MS Access,
- el Empleado oprime (Tab) para iniciar el ingreso -
N / A
N / A
El sistema tiene el Men y la opcin Crear Gua de Despacho por Venta
requerida instalados y activos
Se acept (Click) en el Men de Opciones para pasar a CrearGuaDespacho
Se despleg la interfaz de Crear Gua de Despacho por Venta (limpia)
Se cre una nueva instancia de EncGuiaDespVenta (creacin de instancia)
Se asoci EncGuiaDespVenta a Terminal (asociacin formada)
Se cre una nueva instancia DetGuiaDespVenta (creacin de instancia)
Se asoci DetGuiaDespVenta a EncGuiaDespVenta (asociacin formada)
Se posicion el cursor en A y se acept (Tab) para proseguir
Se despleg el Nmero correlativo de Gua de Despacho: NumGuiaDespVen
en A y la Fecha: FechaV en B
Se asign el Nmero correlativo de Gua de Despacho al campo:
EncGuiaDespVenta .NumGuiaDespVen (modificacin de atributos)
Se asign la Fecha del sistema al campo:
EncGuaDespVenta .FechaV ( modificacin de atributos)
Se posicion el cursor en el campo C : Cdigo Enc. Despacho
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 18
Postcondiciones:

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 continuacin posicionar el cursor en el campo E.
Sistema
R1.3, R1.4, R1.15
Error en ingreso manual del Cdigo o Cdigo no registrado
N / A
El sistema conoce a Empleados.CodigoEmpleado (Registrado opor-
tunamente con anterioridad)
Usar Base de Datos MS Access y (Tab) para sucesivos campos
Se despleg CodigoEmpleado en C y Nombre en D..
Se asoci EncGuiaDespVenta a una instancia de Empleados basado en
una igualdad de CodigoEmpleado (asociacin formada)
Se asign CodigoEmpleado a EncGuiaDespVenta.CodigoEmpleado (modi-
ficacin de atributo)
Nota : Alternativamente( desde Lista de Valores Posibles ) - Sustituyendo
CodigoEmpleado por Nombre -
- Se asign Nombre a EncGuiaDespVenta.Nombre (modificacin de
atributo).
Se posicion el cursor en el campo E: RUT Cliente
Diseo de Clases: Contratos
Crear Gua Interna de
Despacho por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 19


Postcondiciones:

Contrato
Nombre: ingresarRutCliente(RutCliente)
Responsabilidades:
Tipo:
Referencias cruzadas:
Notas:
Excepciones:
Salida:
Precondiciones:
Aceptar el ingreso de RutCliente, por su intermedio, obtener y des-
plegar los Datos del Cliente registrados en el sistema de almacena-
miento persistente. A continuacin posicionar el cursor en el campo M.
Sistema
R1.5, R1.15
Error en ingreso manual del RUT o RUT no registrado
N / A
El sistema conoce a Clientes.RutCliente (Registrado oportuna-
mente con anterioridad)
Se despleg RutCliente en el campo E
Se asoci EncGuiaDespVenta a una instancia de Clientes basado en una
igualdad de RutCliente (asociacin formada)
Se asign RutCliente a EncGuiaDespVenta.RutCliente (modificacin de
atributo)
Se desplegaron los datos bsicos del Cliente segn los campos de la interfaz
( RazonSocial, Direccion, eMail, Comuna, Ciudad, Fono, Fax) (Campos F,
G, H, I, J, K, L )
Se posicion el cursor en el campo M: Nota de Venta N

Usar Base de Datos MS Access - el Encargado de Despacho oprime
(Tab) para pasar a los sucesivos campos -
Diseo de Clases: Contratos
Crear Gua Interna de
Despacho por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 20
Postcondiciones:

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 continuacin posicionar el cursor en el campo P.
Sistema
R1.6, R1.7 y R1.8, R1.15
El N de Nota de Venta ya existe.
N / A
El sistema conoce a EncGuiaDespVenta.NumNV (Registrado oportuna-
mente con anterioridad). Estn disponibles los Encabezados de Guas de
Despacho previas.

Se despleg NumNV, FecNV, CPag en los campos M, N y O
Se asign NumNV a EncGuiaDespVenta.NumNV (modificacin de atributo)
Se asign FecNV a EncGuiaDespVenta.FecNV (modificacin de atributo)
Se asign CPag a EncGuiaDespVenta.CPag (modificacin de atributo)
Se posicion el cursor en el campo P:Cdigo.




Usar Base de Datos MS Access - el Encargado de Despacho oprime
(Tab) para pasar a los sucesivos campos -
Diseo de Clases: Contratos
Crear Gua Interna de
Despacho por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 21
Usar Base de Datos MS Access y tecla (Tab)
Postcondiciones:
Contrato
Nombre:


ingresarCodProducto(CodigoProducto)


Responsabilidades:



Tipo:
Referencias cruzadas:
Notas:
Excepciones:
Salida:
Precondiciones:
Aceptar el ingreso de CodigoProducto. Basado en CodigoProducto, ob-
tener y desplegar los Datos del Producto registrados en el sistema de
almacenamiento persistente. Al oprimir (Tab) - fin de ingreso de Codi-
goProducto - asignar Nmero correlativo a la Instancia de DetGua-
DespVenta.NumLinea y pasar al campo Q. Si la Descripcin es la cor-
recta pasar (Tab) al campo R: Precio.
Sistema
R1.9, R1.10, R1.15
Error en ingreso manual del Cdigo o Cdigo no registrado
N / A
El sistema conoce a Productos.CodigoProducto (Registrado oportuna-
mente con anterioridad)
Se redespleg CodigoProducto en P
Se despleg el Nmero de Lnea NumLnea en LL
Se asoci DetGuaDespVenta a una instancia de Productos basado en una
igualdad de CodigoProducto (asociacin formada)
Se asign NumLnea a DetGuiaDespVenta.NumLnea ( modificacin de
atributo )
Se asoci la nueva lnea de DetGuaDespVenta a EncGuaDespVenta
(asociacin formada)
Se asign CodigoProducto a DetGuiaDespVenta.CodigoProducto (modi-
ficacin de atributo)
Se despleg la Descripcin del Producto, Descripcion en Q.
Se posicion el cursor en R: Precio



Diseo de Clases: Contratos
Crear Gua Interna de
Despacho por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 22
Usar Base de Datos MS Access
Postcondiciones:

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

Diseo de Clases: Contratos
Crear Gua Interna de
Despacho por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Existencia negativa ( falta producto para despachar).
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 23
Contrato
Nombre: grabarLnea()
Responsabilidades:

Aceptar avance con (Tab) hasta la siguiente lnea de la interfaz, creando
una nueva Lnea de DetGuiaDespVenta. Calcular /ValorLnea y desple-
garlo en T de la lnea previa. Grabar en almacenamiento persistente un
registro de DetGuiaDespVenta con los datos ingresados/calculados en la
lnea previa (anterior). Calcular /ValorTotal y desplegarlo en U. Posicio-
nar el cursor en P de la nueva lnea.
Postcondiciones:


Tipo:
Referencias cruzadas:
Notas:
Excepciones:
Salida:
Precondiciones: N / A

Sistema
R1.13, R1.15
N / A
Se calcul /ValorLnea y se despleg en T
Se calcul/recalcul /ValorTotal y se despleg/redespleg en U.
Se asign /ValorLnea a DetGuiaDespVenta./ValorLnea
( modificacin de atributo )
Se grab en almacenamiento persistente el registro de DetGuiaDespVenta
recin completado
Se cre una nueva Lnea de DetGuiaDespVenta (creacin de instancia)
Se asoci la nueva Lnea de DetGuiaDespVenta a EncGuiaDespVenta
(asociacin formada)
Se posicion el cursor en P de la nueva Lnea de DetGuiaDespVenta.

Usar Base de Datos MS Access. En este punto el sistema queda listo para
reiterar el ingreso de un nuevo cdigo CodigoProducto o caso contrario,
pasar a terminarTransaccin()
N / A
Diseo de Clases: Contratos
Crear Gua Interna de
Despacho por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 24

Postcondiciones:
Contrato
Nombre: terminarTransaccin()
Responsabilidades:
Tipo:
Referencias cruzadas:
Notas:
Excepciones:
Salida:
Precondiciones:
Aceptar (click) del Botn V (Grabar). Recalcular /ValorTotal y redesple-
garlo en U. Grabar en almacenamiento persistente la instancia actual de
EncGuiaDespVenta.Limpiar los datos desplegados en la interfaz. Actua-
lizar Productos.Existencia, Productos.Despachado y DetGuiaDesp-
Venta.notAct. Posicionar en A el cursor.

Sistema
R1.2, R1.14, R1.15
N / A
Se activ onClick_CBGrabar de commandGrabar
Se recalcul /ValorTotal y se grab/regrab en almacenamiento persistente la
instancia EncGuiaDespVenta y las lneas completadas DetGuiaDespVenta.
Se verific notAct() de DetGuiaDespVenta y se actualiz Productos.Existencia,
Productos.Despachado, regrabando los registros de Productos afectados por la
transaccin (modificacin de atributo), despus de ello, se le asign el valor
false al atributo DetGuiaDespVenta.notAct (modificacin de atributo), regra-
bando los registros correspondientes de DetGuiaDespVenta.
Se cre una nueva EncGuiaDespVenta (creacin de instancia) (en blanco)
La nueva EncGuiaDespVenta fue asociada a Terminal (asociacin formada)
Se cre una nueva DetGuiaDespVenta ( creacin de instancia) (en blanco)
Se asoci la nueva instancia de DetGuiaDespVenta a EncGuiaDespVenta
(asociacin formada)
Se posicion el cursor en A, esperando la prxima accin del usuario.
Usar Base de Datos MS Access. Al terminar, el sistema queda listo pa-
ra ingresar una nueva transaccin o volver al Men de opciones.
N / A
Productos.Existencia y Productos.Despachado ya fueron actualizados.
Diseo de Clases: Contratos
Crear Gua Interna de
Despacho por Venta
(Productos con registro
persistente)
(Base Craig Larman)
Nota:
Los nombres de elementos usados
en los contratos hacen referencia
al Diagrama de Secuencia de pg. 15,
al Modelo Funcional de pg. N 32
y al Modelo de Clases de pg. N 33.
25/09/2002 25
Diseo de Clases:
Creacin de EncGuiaDespVenta
Diagramas de Colaboracin
ingresarOpcion(CrearGuiaDespacho)
(Productos con registro persistente)
(Base Craig Larman)
Fecha
:EncGuiaDespVenta
t1:Terminal
1:NumGuiaDespVen := siguiente():NumGuia
2:FechaV := ahora():Fecha


d1:EncGuiaDespVenta
3 :[NuevaGuiaDespacho] crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
t1:Terminal
l1:DetGuiaDespVenta

3.1 :[NuevaGuiaDespacho] crearDetGuiaDespVenta(NumGuiaDespVen)
siguiente():NumGuia
ahora():Fecha
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
Omisin del Contenedor de Lneas
Nota: Segn Craig Larman
( 21.8.6 - pg.262 ) : Un mensaje
a un multiobjeto se interpreta como
un mensaje al objeto contenedor / colec-
cin en s mismo... estas clases ( tales como
java.util.Vector... ) son clases predefinidas
de la biblioteca de clases... no es til mos-
trarlas explcitamente... agregan ruido
pero poca informacin nueva.

El mensaje invoca un mtodo de
clase ( no de instancia ), especficamente
el mtodo ahora() de la clase Fecha
25/09/2002 26
Diseo de Clases:
Creacin de EncGuiaDespVenta
Diagramas de Colaboracin
ingresarCodEmpleado(CodigoEmpleado)
ingresarRutCliente(RutCliente)
(Productos con registro persistente)
(Base Craig Larman)
c1:Clientes
d1:EncGuiaDespVenta t1:Terminal
2:ingresarRutCliente (RutCliente)
2.1.a:RazonSocial := consultar (RutCliente)
2.1.b:Direccion := consultar (RutCliente)
2.1.c: eMail := consultar (RutCliente)
2.1.d:Comuna := consultar (RutCliente)
2.1.e:Ciudad := consultar (RutCliente)
2.1.f: Fono := consultar (RutCliente)
2.1.g:Fax := consultar (RutCliente)
t1:Terminal d1:EncGuiaDespVenta
1:ingresarCodEmpleado(CodigoEmpleado)
e1:Empleados
1.1:Nombre := consultar(CodigoEmpleado)
ingresarCodEmpleado(CodigoEmpleado)
ingresarRutCliente (RutCliente)
25/09/2002 27
Diseo de Clases:
Creacin de EncGuiaDespVenta
Diagramas de Colaboracin
ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
(Productos con registro persistente)
(Base Craig Larman)
1: ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
ll:DetGuiaDespVenta
t1:Terminal
d1:EncGuiaDespVenta
ingresarNumNVFechaNVCond(NumNV, FecNV, CPag)
:EncGuiaDespVenta
1.1: consultar (NumNV)
La instancia especfica :
d1:EncGuaDespVenta hace la con-
sulta a los Encabezados de Gua anterio-
res. ( Condicin de NO existencia previa )
25/09/2002 28
Diseo de Clases:
Creacin de EncGuiaDespVenta
Diagramas de Colaboracin
ingresarCodProducto(CodigoProducto)
(Productos con registro persistente)
(Base Craig Larman)
1.2:Descripcion := consultar(CodigoProducto)
1:ingresarCodProducto(CodigoProducto)
2
*
:[i:=1...6] NumLnea:= siguiente () : NumLinea
ll:DetGuiaDespVenta
t1:Terminal
b1:Productos
1.1:aceptarCodigo(CodigoProducto)
d1:EncGuiaDespVenta
2.1
*
:[i:=1...6] NumLnea:= siguiente () : NumLinea
2.2:crearLinea(NumLinea)
ingresarCodProducto(CodigoProducto)
siguiente () : NumLinea
Omisin del Contenedor de Lneas
Nota: Segn Craig Larman
( 21.8.6 - pg.262 ) : Un mensaje
a un multiobjeto se interpreta como
un mensaje al objeto contenedor / colec-
cin en s mismo... estas clases ( tales como
java.util.Vector... ) son clases predefinidas
de la biblioteca de clases... no es til mos-
trarlas explcitamente... agregan ruido
pero poca informacin nueva.

25/09/2002 29
Diseo de Clases:
Creacin de EncGuiaDespVenta
Diagramas de Colaboracin
ingresarPrecioCantidad(Precio, Cantidad)
grabarLnea()
(Productos con registro persistente)
(Base Craig Larman)
ll:DetGuiaDespVentaa
t1:Terminal
1:ingresarPrecioCantidad(Precio, Cantidad)
1.1:aceptarDatos(Precio, Cantidad)
d1:EncGuiaDespVenta
2: /ValorTotal := calcularTotales()
t1:Terminal d1:EncGuiaDespVenta
2.1
*
:[i:=1...6]: /ValorLnea := calcularValor()
ll:DetGuiaDespVenta
Despus de grabarLinea() el usua-
rio vuelve a la accin anterior de
ingresarCodProducto() hasta que
no queden ms productos que
ingresar, en cuyo caso pasa a la
siguiente accin :
teminarTransaccion()
ingresarPrecioCantidad(Precio, Cantidad)
calcularTotales()
25/09/2002 30
Diseo de Clases:
Creacin de EncGuiaDespVenta
Diagramas de Colaboracin
terminarTransaccion()
(Primera Parte)
(Productos con registro persistente)
(Base Craig Larman)
t1:Terminal
1: /ValorTotal := calcularTotales()
d1:EncGuiaDespVenta
1.1
*
:[i:=1...6] /ValorLnea := calcularValor()
ll:DetGuiaDespVenta
t1:Terminal
d1:EncGuiaDespVenta
2.1.a
*
:[i:=1...6 ][notAct] restarExistencia(CodigoProducto, Cantidad)
2.1.b
*
:[i:=1...6 ][notAct] sumarDespachado(CodigoProducto, Cantidad)

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 indicado
en grabarLnea() al recalcular los
totales ( se expone por completitud )
25/09/2002 31
Diseo de Clases:
Creacin de EncGuiaDespVenta
Diagramas de Colaboracin
terminarTransaccion()
(Segunda Parte)
(Productos con registro persistente)
(Base Craig Larman)
d1:EncGuiaDespVenta
5 :[NuevaGuiaDespacho] crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
t1:Terminal
l1:DetGuiaDespVenta
5.1 :[NuevaGuiaDespacho] crearDetGuiaDespVenta (NumGuiaDespVen)
Fecha
t1:Terminal
:EncGuiaDespVenta
3:NumGuiaDespVen := siguiente():NumGuia
4:FechaV := ahora():Fecha
siguiente():NumGuia
ahora():Fecha
crearEncGuiaDespVenta(NumGuiaDespVen, FechaV)
Esta Segunda Parte del Diagrama
de terminarTransaccin() reitera
lo indicado en pg 25 ingresarOpcin()
( se expone por completitud )
25/09/2002 32
Encabezado de Gua
de Despacho
N Guia de Despacho
RUT Cliente
N Nota de Venta
Fecha Despacho
Cdigo Empleado
Fecha Nota de Venta
Condicin de Pago
/ Valor Total
Transaccin Cerrada
Transaccin Anulada
1. Crear Encabezado()
2. Aceptar datos()
6. Calcular Totales()
7. Cerrar Transaccin()
8. Anular Transaccin()
9. Copiar Transaccin()
10. Siguiente()
N Lnea
Cdigo Producto
Precio
Cantidad
/ Valor lnea
notAct
Lnea Cerrada
Lnea Anulada
Detalle de Gua de
Despacho
1. Crear Lnea()
2. Aceptar Codigo()
3. Aceptar datos()
6. Calcular Valor()
7. Cerrar Lnea()
8. Anular Lnea()
9. Copiar Lnea()
10. Siguiente()
11. notAct()
Clientes

RUT Cliente
Razn Social
Direccin
e_Mail
Comuna
Ciudad
Pas
Contacto
Fono
Fax


Diseo de Clases :
Modelo Funcional
(Detallado y Generalizado)
Crear Gua Interna de
Despacho por Venta
(Productos con Registro
persistente)
Productos
Cdigo Producto
Descripcin
U.Medida
Precio
Costo Unitario
Existencia Inicial
Existencia
Recibido
Despachado
4. Consultar datos()
6. Sumar Existencia()
7. Restar Existencia()
8. Sumar Recibido()
9. Sumar Despachado()
10. Existencia Negativa()
11. Calcular CPP()
Empleados

Cdigo
Empleado
Nombre
...
Terminal
1.Cargar correlativo y fecha de sistema
2. Aceptar datos.
3. Enviar mensajes de C/E a registros.
4. Enviar mensajes de consulta de datos
5. Calcular totales cumulativos
6. Enviar mensajes de actualizacin de
existencias y actualizar lnea a lnea
el registro de la transaccin
Encabezado, detalle y totales segn
formato de pantalla adjunto.
C/E, msg1, msg2,
msg6 y msg10
C/E, msg1, msg2, msg3,
msg6, msg10 y msg11
4. Consultar datos()
4. Consultar datos()
C/E y msg4
C/E y msg4
C/E, msg4,
msg7, msg9
y msg10
C/E y msg4
Notas de
Venta
N Nota
de Venta
Datos
4. Consultar datos()
Al crear la lnea
de detalle, notAct se
incializa a: true
25/09/2002 33
EncGuaDespVenta
NumGuaDespVen
RUTCliente
NumNV
FechaV
CdigoEmpleado
FecNV
CPag
/ValorTotal
TransaccinCerrada
TransaccinAnulada
crearEncGuiaDespVenta()
ingresarCodEmpleado()
ingresarRutCliente()
ingresarNumNVFechaNVCond()
ingresarCodProducto()
ingresarPrecioCantidad()
restarExistencia()
sumarDespachado()
calcularTotales()
cerrarTransaccin()
anularTransaccin()
copiarTransaccin()
siguiente()
NumLinea
CodigoProducto
Precio
Cantidad
/ValorLnea
notAct
LneaCerrada
LneaAnulada
DetGuaDespVenta
crearDetGuiaDespVenta()
crearLnea()
aceptarCodigo()
aceptarDatos()
calcularValor()
restarExistencia()
sumarDespachado()
cerrarLnea()
anularLnea()
copiarLnea()
siguiente()
notAct()
Clientes

RUTCliente
RaznSocial
Direccin
eMail
Comuna
Ciudad
Pas
Contacto
Fono
Fax

Diseo de Clases : Modelo de Datos
Diagrama de Diseo de Clases
Crear Gua Interna de
Despacho por Venta
(Productos con Registro
persistente)
1
1
*
*
1
1..*
Productos
CodigoProducto
Descripcin
UMedida
Precio
CostoUnitario
ExistenciaInicial
Existencia
Recibido
Despachado
sumarExistencia()
restarExistencia()
sumarRecibido()
sumarDespachado()
existenciaNegativa()
calcularCPP()
Empleados
CdigoEmpleado
Nombre

1
*
Notas de
Venta

NumNV
RUTCliente
FechaNV
etc...
1
1
Agregado para clarificar
contexto, en principio es una
lista de valores posibles
Al crear la lnea
de detalle, notAct se
incializa a: true
Nota: Segn Craig Larman
(21.8.4 a 21.8.8 - pgs.262 - 264)
Salvo casos especificos, es conve-
niente omitir los mtodos : crear(),
modificar(), eliminar() y consultar()
en los diagramas de clases dado que
no agregan valor y aumentan el
ruido - se consideran implcitos -

Dentro de los requerimientos,
podra sustituirse por la consulta
a los Encabezados de Gua anteriores.
( Condicin de NO existencia previa )

Das könnte Ihnen auch gefallen