Se elabora a travs de encuestas a los usuarios del sistema evaluando criterios de priorizacin
Criterios de n
Priorizacion CP1 CP2 CP3 CP4 CP5 Pj
Casosde j =1
Uso
Criterios de Priorizacin
Muy Bajo 1
Bajo 2
Medio 3
Alto 4
Muy alto 5
FASE II : ELABORACION
PRODUCTO
1..n
pertenece
LINEA
1 1
PEDIDO NOTASALIDA
1
contiene
1..n
relaciona
1 1..n
PRODUCTO NSDETALLE
realiza atiende
1 1..n 0..n 1
contiene ocupa
1..n
relaciona 1
1 1..n
PRODUCTO PEDIDODETALLE
PUESTO
1 1
PEDIDO VENTA
VENTA
VENTACONTADO
VENTA
VENTACREDITO
Diagrama Parcial de Clase para CU Registrar Garante
relaciona
1..n 1
VENTACREDITO GARANTE
1
CLIENTE PEDIDO PERSONAL PUESTO
(from Sistema de Ventas) 1 (from Sistema de Ventas) (from Sistema de Ventas) (from Sistema de Ventas)
1
Direccion : String 1 Apellidos : String
Telefono : String nombres : String
Email : String Direccion : String
fechaIngr : Date Telefono : String
email : String
contiene
relaciona FeNac : Date
asocia Sexo : String
sueldo : Currency
1..n
1
1
PEDIDODETALLE
NOTASALIDA
(from Sistema de Ventas)
1..n (from Sistema de Ventas)
VENTA
1
(from Sistema de Ventas)
relaciona contiene
1 1..n
1 pertenece 1..n relaciona relaciona
1 1..n 1..n 1
LINEA PRODUCTO NSDETALLE VENTACONTADO VENTACREDITO GARANTE
(from Sistema de Ventas) (from Sistema de Ventas) (from Sistema de Ventas) (from Sistema de Ventas) (from Sistema de Ventas) (from Sistema de Ventas)
2 Diagramas de Colaboracin
Diseo de Pantalla
3: 4: leerProducto(ProdId)
7: 6:
: CTRLAceptar
5: leer()
2:
: PRODUCTO
1:
: Vendedor : frmVerificarExistencia
8: cancelar()
: CTRLCancelar
3 Diagramas de Paquetes
M
M
Emitir reporte de clientes Emitir reporte de ventas por
morosos corte de fecha
Emitir reporte de catalogo Emitir reportes de gestin
de clientes
M
M
Emitir reportes de ventas
diarias
Emitir gua de remisin
M
M
M M
Paquete de casos de
M
M
Pagar en efectivo
M
M
Despachar pedido
Emitir boletade venta
M
M M M
M M
Cajero Cliente
Paquete de Actores
M Despachador
Almacen
Vendedor
M Jefe de Ventas
M
Natural
Juridico
C. Paquete de Fichas
frmVerificarExistencia
Paquete de fichasM
D. Paquete de Controles
M
CTRLAceptar
Paquete de M
Controles
M
CTRLCancelar
5 Diagrama de Subsistemas
<<subsystem>>
Sistema de Ventas
contiene
relaciona
asocia
1..n
PEDIDODETALLE 1
1
NOTASALIDA
1..n VENTA
1
relaciona
contiene
1
PRODUCTO
1..n
1 pertenece1..n relaciona relaciona
LINEA leerProducto() NSDETALLE VENTACONTADO VENTACREDITO GARANTE
crearProducto() 1 1..n 1..n 1
actualizarProducto()
eliminarProducto()
Creado el diagrama de casos de uso de realizacin se arrastran al editor todos los casos de uso
y se eliminan con DEL todo tipo de relacin, quedando individualizados y luego se agregan los
casos de realizacin con el mismo nombre de cada caso de uso que dando emparejados.
Despachar pedido Despachar pedido a Emitir boleta de venta Emitir documento de venta Emitir factura
domicilio (from Paquete de casos de Uso)
(from Paquete de casos de Uso) (from Paquete de casos de Uso) (from Paquete de casos de Uso)
(from Paquete de casos de Uso)
Despachar pedido Despachar pedido a Emitir boleta de venta Emitir documento de venta Emitir factura
domicilio
Sirven para comprobar que todas las clases de diseo tienen todos los
mtodos que se obtuvieron de los diagramas de colaboracin. Los
mtodos de los controles a las clases solo se SELECCIONAN, no se
escriben.
1:
2:
3:
4: CrearPedido(String, Date, String, String)
5:
6:
7:
8: LeerPedido(String)
9:
10:
11:
12: ModificarPedido(String)
NewState3
NewStat NewStat
e4 e5
NewStat NewStat
e7 e6
4 Diagrama de Navegabilidad
frmSistemaDeVentas
frmSistemaDeCompras frmSistemaDeAlmacen
(from Sistema de Ventas)
frmSistemaDeVentas
frmFicheros frmConsultas
frmProcesos frmReportes
NewCo
mp...
NewCo NewCom
mponent ponent2
NewCo
mp...
___________________________________________________________________________...
NewCom NewCom
ponent5 ponent6
___________________________________________________________________________...
NewComponent7
2 Diagrama de despliegue
<<Dispositivo>>
NewDevice2 <<Procesador>>
NewProcessor3
<<Procesador>>
NewProcessor
<<Dispositivo>>
NewDevice
<<Procesador>>
NewProcessor2 <<Procesador>>
NewProcessor4
PASOS:
i. Seleccionar un gestor de Bases de Datos (SQL Server) y crear una base de datos
vaca (BDVentas).
ii. Seleccionar en el Rational Rose el Gestor de base de datos a donde se ha de
migrar el modelo de datos.
iii. Convertir todas las clases en PERSISTENTES en el diagrama de clases del Rational
Rose. Si se omite alguna clase y no se convierte como persistente, NO SE GENERA
en el Modelo de Datos.
PUESTO
(from S_Ventas)
PUESTO_ID : INT
1
<<PK>> PK_PUESTO10() <<Non-Identifying>>
PERSONAL
(from S_Ventas)
1..* Apellidos : VARCHAR(255)
nombres : VARCHAR(255)
Direccion : VARCHAR(255)
Telefono : VARCHAR(255)
email : VARCHAR(255)
FeNac : DATETIME
Sexo : VARCHAR(255)
1 sueldo : MONEY
PEDIDO PERSONAL_ID : INT
(from S_Ventas) <<Non-Identifying>> PUESTO_ID : INT
NroPedido : VARCHAR(255)
Fecha : DATETIME <<PK>> PK_PERSONAL8()
Monto : MONEY <<FK>> FK_PERSONAL10()
Estado : VARCHAR(255) <<Index>> TC_PERSONAL22()
0..*
NSDETALLE NOTASALIDA PEDIDO_ID : INT
(from S_Ventas) <<Identifying>> (from S_Ventas) <<Non-Identifying>> CLIENTE_ID : INT
NOTASALIDA_ID : INT CLIENTE_CLIENTE_ID : INT
NOTASALIDA_ID : INT
PRODUCTO_ID : INT PERSONAL_ID : INT
PEDIDO_ID : INT
VENTA_ID : INT
1..* 1 1 1
<<PK>> PK_NSDETALLE5() 1..*
<<PK>> PK_NOTASALIDA4()
<<FK>> FK_NSDETALLE8() <<PK>> PK_PEDIDO6()
<<Unique>> TC_NOTASALIDA12()
<<FK>> FK_NSDETALLE4() <<Unique>> TC_PEDIDO25() <<Non-Identifying>>
<<FK>> FK_NOTASALIDA5()
<<Index>> TC_NSDETALLE18() <<FK>> FK_PEDIDO1()
<<Index>> TC_NOTASALIDA11()
<<Index>> TC_NSDETALLE9() <<FK>> FK_PEDIDO11()
<<FK>> FK_PEDIDO7()
1..* <<FK>> FK_PEDIDO0()
<<Index>> TC_PEDIDO3() 1 CLIENTE
1 <<Index>> TC_PEDIDO1()
(from S_Ventas)
<<Index>> TC_PEDIDO24()
Direccion : VARCHAR(255)
<<Non-Identifying>> <<Identifying>> <<Index>> TC_PEDIDO16()
Telefono : VARCHAR(255)
1 Email : VARCHAR(255)
fechaIngr : DATETIME
CLIENTE_ID : INT
<<Non-Identifying>>
<<PK>> PK_CLIENTE0()
1 1..*
PEDIDODETALLE
PRODUCTO <<Non-Identifying>> (from S_Ventas) 1 0..1
(from S_Ventas) PEDIDO_ID : INT
PRODUCTO_ID : INT PRODUCTO_ID : INT
LINEA_ID : INT
1 1..* <<PK>> PK_PEDIDODETALLE7()
VENTA
<<FK>> FK_PEDIDODETALLE9() (from S_Ventas)
<<PK>> PK_PRODUCTO9()
<<FK>> FK_PRODUCTO3() <<FK>> FK_PEDIDODETALLE6() VENTA_ID : INT
<<Index>> TC_PRODUCTO7() <<Index>> TC_PEDIDODETALLE20()
<<Index>> TC_PEDIDODETALLE14() <<PK>> PK_VENTA11()
1..* 1
1
<<Identifying>>
<<Non-Identifying>> <<Identifying>>
0..1
VENTACREDITO
(from S_Ventas)
1 GARANTE_ID : INT
VENTA_ID : INT
VENTACONTADO
<<PK>> PK_VENTACREDITO13() (from S_Ventas)
LINEA
(from S_Ventas) <<FK>> FK_VENTACREDITO12() VENTA_ID : INT
<<FK>> FK_VENTACREDITO2()
LINEA_ID : INT
<<Index>> TC_VENTACREDITO5() <<PK>> PK_VENTACONTADO14()
<<FK>> FK_VENTACONTADO13()
<<PK>> PK_LINEA3() 1..*
<<Non-Identifying>>
GARANTE
(from S_Ventas)
GARANTE_ID : INT
<<PK>> PK_GARANTE1()
GO
GO
GO
GO
GO
GO
GO
CREATE TABLE PUESTO (
GO
GO
GO
GO
GO
GO
CREATE INDEX TC_PRODUCTO7 ON PRODUCTO (LINEA_ID)
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
ALTER TABLE PEDIDO ADD CONSTRAINT FK_PEDIDO1 FOREIGN KEY
(CLIENTE_CLIENTE_ID) REFERENCES CLIENTE (CLIENTE_ID)
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
La prueba de la caja blanca es un mtodo de diseo de casos de prueba que usa la estructura de control del diseo
procedimental para deribar los casos de prueba. Mediante los mtodos de prueba de la caja blanca el ingeniero del
software puede derivar casos de prueba que:
Garanticen que se ejercitan al menos una vez todos los caminos independientes de cada mdulo
Se ejecutan todos los bucles en sus lmites y con sus lmites operacionales
En estas encrucijadas se puede exponer una pregunta razonable: Por qu gastar tiempo y energa probando y
preocupndose de las minuciosidades lgicas cuando podramos gastar mejor el esfuerzo asegurando que se han
alcanzado los requerimientos del programa?. La respuesta se encuentra en la naturaleza misma de los defectos del
software
Los errores lgicos y las suposiciones incorrectas son inversamente proporcionales a la probabilidad de que
se ejecute un camino del programa. Los errores tienden a producirse en nuestro trabajo cuando diseamos o
implementamos funciones, condiciones o controles que se encuentran fuera de los normal. El procedimiento
habitual tiende a hacer ms comprensible, mientras que el procesamiento de casos especiales tiende a
caer en el caos.
A menudo creemos que un camino lgico tiene pocas posibilidades de ejecutarse cuando, de hecho, se
puede ejecutar de forma regular. El flujo lgico de un programa a veces no es nada intuitivo, lo que significa
que nuestras suposiciones intuitivas sobre el flujo de control y los datos nos pueden llevar a tener errores de
diseo que solo se descubren cuando comienza la prueba del camino.
Los errores tipogrficos son aleatorios. Cuando se traduce un programa a cdigo fuente de un lenguaje de
programacin, es muy probable que se den algunos errores de escritura. Muchos sern descubiertos por los
mecanismos de comprobacin de sintaxis, pero otros permanecern indetectados hasta que comience la
prueba. Es igual de probable que haya un error tipogrfico en un oscuro camino lgico que en un camino
principal.
Cada una de estas razones nos da un argumento para llevar a cabo las pruebas de caja blanca. La prueba de caja
negra, sin tener en cuenta como sea de completa, puede pasarse los tipos de errores que acabamos de sealar. Como
estableci Beizer: Los errores se esconden en los rincones y se aglomeran en los lmites. Es mucho ms fcil de
descubrirlos con la prueba de caja blanca.
La prueba del camino bsico es una tcnica de prueba de la caja blanca propuesta inicialmente por Tom McCabe. El
mtodo del camino bsico permite al diseador de casos de prueba derivar una medida de complejidad lgica de un
diseo procedural y usar esa medida como gua para la definicin de un conjunto bsico de caminos de ejecucin. Los
casos de prueba derivados del conjunto bsico garantizan que durante la prueba se ejecuta por lo menos una vez cada
sentencia del programa.
Antes de considerar el mtodo del camino bsico se debe introducir una sencilla notacin para la representacin del
flujo de control, denominada grafo de flujo. El grafo de flujo representa el flujo de control lgico mediante la notacin
ilustrada en la figura 2.1. Cada construccin estructurada tiene un correspondiente smbolo en el grafo de flujo.
Para ilustrar el uso de un grafo de flujo, consideremos la representacin del diseo procedural de la figura 2.2.
Cuando en un diseo procedural se encuentran condiciones compuestas, la generacin del grafo de flujo se hace un
poco mas complicada. Una condicin compuesta se da cuando aparecen uno o mas operadores booleanos (OR, AND,
NAND, NOR lgicos) en una sentencia condicional.
Prueba de Bucles
Los bucles son la piedra angular de la mayora de los algoritmos implementados en software. Y por ello debemos
prestarle normalmente un poco de atencin cuando llevamos a cabo la prueba del software.
La prueba de bucles es una tcnica de prueba de caja blanca que se centra exclusivamente en la validez de las
construcciones de bucles. Se pueden definir cuatro clases diferentes de bucles: Bucles simples, Bucles concatenados,
Bucles Anidados, y bucles no estructurado.
Adems de un anlisis del camino bsico que asle todos los caminos de un bucle, se recomienda un conjunto especial
de pruebas adicionales para cada tipo de bucles. Estas pruebas buscan errores de inicializacin, errores de indexacin
o de incremento y errores en los lmites de los bucles.
Bucles Simples: A los bucles simples se les debe aplicar el siguiente conjunto de pruebas, donde n es el numero
mximo de pasos permitidos por bucle.
Bucles Anidados: Si extendiramos el enfoque de prueba de los bucles simples a los bucles anidados, el numero de
posibles pruebas crecera geomtricamente a medida que aumenta el nivel de anidamiento. Esto nos llevara a un
numero impracticable de pruebas. Beizer sugiere un enfoque que ayuda a reducir el nmero de pruebas:
Comenzar en el bucle ms interior. Disponer todos los dems bucles en sus valores mnimos.
Llevar a cabo las pruebas de bucles simples con el bucle mas interno mientras se mantiene los bucles exteriores
con los valores mnimos para sus parmetros de iteracin. Aadir otras pruebas para los valores fuera de rango o para
valores excluidos.
Progresar hacia afuera, llevando a cabo las pruebas para el siguiente bicle, pero manteniendo todos los dems
bucles exteriores en sus valores mnimos y los dems bucles anidados con valores tpicos.
Bucles Concatenados: los bucle concatenados se pueden probar mediante el enfoque anteriormente definido para los
bucles simple, mientras que cada uno de los bucles sea independiente del resto. Por ejemplo, si hay dos bucles
concatenados y se usa el contador del bucle 1 como valor inicial del bucle 2, entonces los bucles no son
independientes. Cuando los bucles no son independientes, se recomienda usar el enfoque aplicado para los bucles
anidados.
Bucles No Estructurados: Siempre que sea posible, esta clase de bucles se deben redisear para que se ajuste a las
construcciones de la programacin estructurada.
Los mtodos de prueba de la caja negra se centran en los requerimientos funcionales del software. O sea, le prueba de
la caja negra permite al ingeniero del software derivar conjuntos de condiciones de entrada que ejerciten
completamente todos los requerimientos funcionales de un programa. La prueba de la caja negra no es una alternativa
a las tcnicas de prueba de la caja blanca. Mas bien se trata de un enfoque complementario que intenta descubrir
diferentes tipos de errores que los mtodos de la caja blanca.
Errores de interfaz
Errores de rendimiento
A diferencia de la prueba de la caja blanca, que se lleva a cabo previamente en el proceso de prueba, la prueba de la
caja negra tiende a ser aplicadas en posteriores fases de prueba. Ya que la prueba de la caja negra intencionadamente
ignora la estructura de control, concentra su atencin en el dominio de la informacin. Las pruebas se disean para
responder a las siguientes preguntas:
Mediante las tcnicas de prueba de la caja negra se derivan un conjunto de casos de prueba que satisfacen los
siguientes criterios:
Casos de prueba que reducen, en un coeficiente que es mayor que uno, el numero de casos de prueba adicionales
que se deben disear para alcanzar una prueba razonable,
Casos de prueba que nos dicen algo sobre la presencia o ausencia de clases de errores asociados solamente con la
prueba en particular que se encuentra disponible.
4 Elaboracin de Manuales
Se elaboran los siguientes manuales del sistema:
i) De Instalacin
iii) De errores
iv) De ayuda