Professional Documents
Culture Documents
Sistema de Control de Una Ferreteria Ing
Sistema de Control de Una Ferreteria Ing
Sistema de control de
una ferretería
Ingeniería de Software I
Profesor: Fredy Castañeda Sánchez
Elizabeth Hernández López
Página 2 de 47
INTRODUCCIÓN
Los objetivos del sistema son: automatizar los procesos, llevar un registro de sus
clientes y empleados, llevar un control eficiente del inventario, generar reportes con
información que ayude a la toma de decisiones para mejorar el proceso de venta, llevar
el control de sus ingresos, y con ello potenciar el proceso de administración de la
microempresa.
Página 3 de 47
MODELO AMBIENTAL
Declaración de propósitos
Una ferretería solicita un sistema que lleve el control de los inventarios de sus
productos así como el costo de almacén y precio de venta de dichos productos, el
control de sus clientes y empleados. También llevará un registro de las ventas que se
realizan durante el día y controlará los ingresos de la ferretería.
El sistema emitirá los siguientes documentos: notas, reportes de los clientes, reportes
de los empleados, reportes del inventario, reportes de las ventas y reportes de ingresos.
DFD de contexto
Página 4 de 47
Lista de acontecimientos
Empleado
Actualizar inventario
Actualizar cliente
Realizar venta
Administrador
Actualizar empleados
Consultar reporte
Página 5 de 47
MODELO DE COMPORTAMIENTO
Diagrama de flujo de datos nivel 0
Página 6 de 47
Página 7 de 47
Diagrama de flujo de datos nivel 1
Página 8 de 47
Página 9 de 47
Página 10 de 47
Diagrama de entidad-relación
Página 11 de 47
CASOS DE PRUEBA DEL SISTEMA
Acceso al sistema
Página 12 de 47
Registro de clientes
Página 13 de 47
22 Número=” ” Empleado ingresa “Error: no se Vuelve a introducir
el número admiten campos la dirección
vacíos”
23 Número=”S/N” Empleado ingresa “Cliente registrado” Ingresan datos a la
el número base de datos
24 Número=”135” Empleado ingresa “Cliente registrado” Ingresan datos a la
el número base de datos
25 Colonia=” ” Empleado ingresa “Error: no se Vuelve a introducir
la colonia admiten campos la dirección
vacíos”
26 Colonia=”Emiliano Empleado ingresa “Cliente registrado” Ingresan datos a la
Zapata” la colonia base de datos
27 Código_postal=” ” Empleado ingresa “Error: no se Vuelve a introducir
el código postal admiten campos código postal
vacíos”
28 Código_postal=”xcvb” Empleado ingresa “Error: debe Vuelve a introducir
el código postal introducir dígitos” código postal
39 Código_postal=”00999 Empleado ingresa “Error: código Vuelve a introducir
” el código postal postal no válido” código postal
30 Código_postal=”01000 Empleado ingresa “Cliente registrado” Ingresan datos a la
” el código postal base de datos
31 Teléfono=” ” Empleado ingresa “Error: no se Vuelve a introducir
el teléfono admiten campos el teléfono
vacíos”
32 Teléfono=”22812345a Empleado ingresa “Error: debe Vuelve a introducir
z” el teléfono introducir un el teléfono
número de
teléfono”
33 Teléfono=”550056” Empleado ingresa “Error: el teléfono Vuelve a introducir
el teléfono debe contener 10 el teléfono
dígitos”
34 Teléfono=”951001122 Empleado ingresa “Cliente registrado” Ingresan datos a la
3” el teléfono base de datos
35 Correo= Empleado ingresa “Error: el correo Vuelve a introducir
”1234@correo.com” el correo debe contener el correo
letras y dígitos”
36 Correo=” ” Empleado ingresa “Error: no se Vuelve a introducir
el correo admiten campos el correo
vacíos”
37 Correo= Empleado ingresa “Error: correo no Vuelve a introducir
”1234@hotmail” el correo válido” el correo
38 Correo= Empleado ingresa “Cliente registrado” Ingresan datos a la
”luis2014@gmail.com” el correo base de datos
Página 14 de 47
Registro de productos
Registro de empleados
Página 16 de 47
Tipo {Caracteres} {A-Z} {a-z}
Usuario {Dígitos} {Caracteres} {A-Z} {a-z} {0-9} {“”} {“ ”}
Contraseña {Dígitos} {Caracteres} {A-Z} {a-z} {0-9} {“”} {“ ”}
Página 18 de 47
Realizar venta
Página 19 de 47
92 Nombre=”Stephanie El nombre se “Venta realizada” Ingresan datos a la
Yaretzi” encuentre en la base de datos
base de datos o el
empleado lo
ingresa.
93 Apellido_paterno=”” El apellido paterno “Error: no se Vuelve a introducir
se encuentre en la admiten campos apellido paterno
base de datos o el vacíos”
empleado lo
ingresa.
94 Apellido_paterno=” ” El apellido paterno “Error: no se Vuelve a introducir
se encuentre en la admiten campos apellido paterno
base de datos o el vacíos”
empleado lo
ingresa.
95 Apellido_paterno=”Lóp El apellido paterno ““Error: solo se Vuelve a introducir
ez3” se encuentre en la admiten letras” apellido paterno
base de datos o el
empleado lo
ingresa.
96 Apellido_paterno= El apellido paterno “Venta realizada” Ingresan datos a la
”Sánchez” se encuentre en la base de datos
base de datos o el
empleado lo
ingresa.
97 Apellido_materno=”” El apellido “Error: no se Vuelve a introducir
materno se admiten campos apellido materno
encuentre en la vacíos”
base de datos o el
empleado lo
ingresa.
98 Apellido_materno=” ” El apellido “Error: no se Vuelve a introducir
materno se admiten campos apellido materno
encuentre en la vacíos”
base de datos o el
empleado lo
ingresa.
99 Apellido_materno= El apellido “Error: solo se Vuelve a introducir
”Aguilar, ” materno se admiten letras” apellido materno
encuentre en la
base de datos o el
empleado lo
ingresa.
100 Apellido_materno= El apellido “Venta realizada” Ingresan datos a la
”Aguilar” materno se base de datos
encuentre en la
base de datos o el
Página 20 de 47
empleado lo
ingresa.
101 Calle=”” La calle se “Error: no se Vuelve a introducir
encuentre en la admiten campos la dirección
base de datos o el vacíos”
empleado la
ingresa.
102 Calle=” ” La calle se “Error: no se Vuelve a introducir
encuentre en la admiten campos la dirección
base de datos o el vacíos”
empleado la
ingresa.
103 Calle=”Av 1° de Mayo” La calle se “Venta realizada” Ingresan datos a la
encuentre en la base de datos
base de datos o el
empleado la
ingresa.
104 Número=”” El número se “Error: no se Vuelve a introducir
encuentre en la admiten campos la dirección
base de datos o el vacíos”
empleado lo
ingresa.
105 Número=” ” El número se “Error: no se Vuelve a introducir
encuentre en la admiten campos la dirección
base de datos o el vacíos”
empleado lo
ingresa.
106 Número=”S/N” El número se “Venta realizada” Ingresan datos a la
encuentre en la base de datos
base de datos o el
empleado lo
ingresa.
107 Número=”44” El número se “Venta realizada” Ingresan datos a la
encuentre en la base de datos
base de datos o el
empleado lo
ingresa.
108 Colonia=”” La colonia se “Error: no se Vuelve a introducir
encuentre en la admiten campos la dirección
base de datos o el vacíos”
empleado la
ingresa.
109 Colonia=” ” La colonia se “Error: no se Vuelve a introducir
encuentre en la admiten campos la dirección
base de datos o el vacíos”
empleado la
ingresa.
Página 21 de 47
110 Colonia=”Centro” La colonia se “Venta realizada” Ingresan datos a la
encuentre en la base de datos
base de datos o el
empleado la
ingresa.
111 Código_postal=”” El código postal se “Error: no se Vuelve a introducir
encuentre en la admiten campos código postal
base de datos o el vacíos”
empleado lo
ingresa.
112 Código_postal=” ” El código postal se “Error: no se Vuelve a introducir
encuentre en la admiten campos código postal
base de datos o el vacíos”
empleado lo
ingresa.
113 Código_postal=”mil” El código postal se “Error: debe Vuelve a introducir
encuentre en la introducir dígitos” código postal
base de datos o el
empleado lo
ingresa.
114 Código_postal=”00999 El código postal se “Error: código Vuelve a introducir
” encuentre en la postal no válido” código postal
base de datos o el
empleado lo
ingresa.
115 Código_postal=”99990 El código postal se “Venta realizada” Ingresan datos a la
” encuentre en la base de datos
base de datos o el
empleado lo
ingresa.
116 Teléfono=”” El teléfono se “Error: no se Vuelve a introducir
encuentre en la admiten campos el teléfono
base de datos o el vacíos”
empleado lo
ingresa.
117 Teléfono=” ” El teléfono se “Error: no se Vuelve a introducir
encuentre en la admiten campos el teléfono
base de datos o el vacíos”
empleado lo
ingresa.
118 Teléfono=”cincuenta y El teléfono se “Error: debe Vuelve a introducir
cinco, cero, cero, encuentre en la introducir un el teléfono
once, once, trece, base de datos o el número de
doce” empleado lo teléfono”
ingresa.
119 Teléfono=”228200001 El teléfono se “Error: el teléfono Vuelve a introducir
122” encuentre en la debe contener 10 el teléfono
Página 22 de 47
base de datos o el dígitos”
empleado lo
ingresa.
120 Teléfono=”951052244 El teléfono se “Venta realizada” Ingresan datos a la
3” encuentre en la base de datos
base de datos o el
empleado lo
ingresa.
121 Cant_prod=”” Empleado ingresa “Error: no se Vuelve a introducir
la cantidad de admiten campos la cantidad del
prouctos. vacíos” producto
122 Cant_prod=” ” Empleado ingresa “Error: no se Vuelve a introducir
la cantidad de admiten campos la cantidad del
prouctos. vacíos” producto
123 Cant_prod=0 Empleado ingresa “Error: debe Vuelve a introducir
la cantidad de introducir un la cantidad del
prouctos. número válido” producto
124 Cant_prod=980 Empleado ingresa “Venta realizada” Ingresan datos a la
la cantidad de base de datos
prouctos.
125 Nom_prod=”” El nombre del “Error: no se Vuelve a introducir
producto se admiten campos el nombre
encuentre en la vacíos”
base de datos.
126 Nombre=”flotador de El nombre del “Venta realizada” Ingresan datos a la
baño” producto se base de datos
encuentre en la
base de datos.
127 Marca=”” La marca se “Error: no se Vuelve a introducir
encuentre en la admiten campos la marca
base de datos. vacíos”
128 Marca=”Truper” La marca se “Venta realizada” Ingresan datos a la
encuentre en la base de datos
base de datos.
129 Descripción=”” La descripción se “Error: no se Vuelve a introducir
encuentre en la admiten campos la descripción
base de datos. vacíos”
130 Descripción=”12 La descripción se “Producto Ingresan datos a la
puntas 6mm” encuentre en la registrado” base de datos
base de datos.
131 Precio_venta=”” El precio de venta “Error: no se Vuelve a introducir
se encuentre en la admiten campos el precio de venta
base de datos vacíos”
132 Precio_venta=10 El precio de venta “Venta realizada” Ingresan datos a la
se encuentre en la base de datos
base de datos
133 Precio_total=”” El sistema calcula “Error: no se Vuelve a introducir
Página 23 de 47
el precio admiten campos el precio total
vacíos”
135 Precio_total=430 El sistema calcula “Venta realizada” Ingresan datos a la
el precio base de datos
136 Subtotal=”” El sistema calcula “Error: no se Vuelve a introducir
el subtotal admiten campos el subtotal
vacíos”
137 Subtotal=1400 El sistema calcula “Venta realizada” Ingresan datos a la
el subtotal base de datos
138 IVA=”” El sistema agrega “Error: no se Vuelve a introducir
el IVA admiten campos el IVA
vacíos”
139 IVA=16 El sistema agrega “Venta realizada” Ingresan datos a la
el IVA base de datos
140 Total=”” El sistema calcula “Error: no se Vuelve a introducir
el total. admiten campos el total
vacíos”
141 Total=345 El sistema calcula “Venta realizada” Ingresan datos a la
el total. base de datos
Página 24 de 47
MÉTRICA DE ANÁLISIS
Puntos de función
Modificadores
Grado de
Restricción
Núm. Influencia
1 La aplicación es puramente batch o para una PC aislada. 0
La aplicación no apoya en la transferencia de datos o procesado de
2 0
funciones entre las componentes.
No hay requerimientos de rendimiento especiales impuestos
3 por el 0
usuario.
No se han incluido restricciones operacionales implícita o
4 0
explícitamente.
5 No se anticipa un periodo pico de transacciones. 0
6 Todas las transacciones se procesan en modo batch 0
Página 26 de 47
Aplicación de la fórmula PF
T = 94
M=7
Posible interpretación: Nos dio un total de 67.68 puntos, los cuales son menores a 100;
por lo tanto, la complejidad del sistema es sencilla.
Métrica Bang
RE (conexiones)=4
PFu (burbujas)=18
RE/PFu=0.22
Página 27 de 47
MODELOS DE DISEÑO
Modelo de procesador
Actualizar empleado
Empleado
Consultar reporte de
empleados
Consultar reporte de
Producto
inventario
PC Administrador
Consultar reporte de
Cliente
clientes
Página 28 de 47
MODELO DE IMPLANTACIÓN DE PROGRAMAS
Diagramas de estructura
Módulo empleado
Página 29 de 47
Módulo administrador
Página 30 de 47
Pseudocódigo
Consultar inventario
Variables
palabra: cadena
Inicio
Lee (palabra)
Si (palabra=””) entonces
si no Si (palabra=” “) entonces
si no Si (palabra=numero) entonces
Consulta inventario
Fin_si
Fin
Página 31 de 47
Plan de prueba de integración
Enfoque Ascendente
Criterio de aceptación o Aceptación: La salida coincide con lo esperado, (tuvo éxito
rechazo de un caso de la prueba).
prueba
Criterio de suspensión Se realizaron todas las pruebas.
Plan de prueba.
Productos a entregar Lista de casos de prueba ejecutados con sus entradas,
resultados esperados, y su evaluación.
Preparar casos de pruebas.
Tareas a realizar para Ejecutar los casos de prueba.
satisfacer el proceso Evaluar resultados obtenidos.
Preparar un informe.
Computadora de escritorio o portátil.
Máquina virtual de Java.
Necesidades
Algún entorno de desarrollo integrado (IDE).
ambientales
Un manejador de base de datos como MySQL.
JUnit4
Probador: preparar casos de prueba, realizar las pruebas,
preparará los informes.
Responsabilidades
Programador: preparar y revisar hardware, instalará el
software (sistema, bases de datos, conexiones).
Personal necesario y si Probador: conocimientos en ingeniería de software.
requieren entrenamiento Programador.
Instalar el software: ½ día
Preparar casos de pruebas: 1 día
Ejecutar los casos de prueba y evaluar resultados
Calendario
obtenidos: 2 días
Preparar un informe y reportar: 1 día
Margen por riesgos: 3 días
R1: El software no esté terminado.
C1: Dar más tiempo al programador para que los termine
Riesgos y contingencias pero se le descontará.
R1: Fallas durante la instalación.
C1: Revisar el equipo y conexiones.
Página 32 de 47
MÉTRICAS DE DISEÑO
Arquitectónicas
Expansión Complejidad
Variables Complejidad
Nombre del módulo del módulo estructural
v(i) de datos D(i)
f(i) S(i)
Modulo ejecutivo
8 70 64 7.77
empleado
Registra cliente 0 14 0 14
Modifica datos cliente 0 6 0 6
Consulta cliente 0 20 0 20
Elimina cliente 0 6 0 6
Registra producto 0 14 0 14
Modifica datos producto 0 4 0 4
Consulta producto 0 18 0 18
Genera nota de venta 1 71 1 1
Registra venta 0 33 0
Módulo ejecutivo
9 61 81 6.1
administrador
Registra empleado 0 20 0 20
Modifica datos de
0 6 0 6
empleado
Consulta empleado 0 26 0 26
Elimina empleado 0 6 0 6
Consulta reporte de
0 20 0 20
empleado
Consulta reporte de
0 14 0 14
cliente
Consulta reporte de
0 14 0 14
inventario
Consulta reporte de
0 10 0 10
venta
Consulta reporte de
0 6 0 6
ingresos
Total 146 218.8
Página 33 de 47
Complejidad total
Página 34 de 47
CONCLUSIÓN
Al terminar este documento puedo decir que es importante continuar con el desarrollo
del sistema y así verificar que el proceso de análisis se ha efectuado con éxito. Dicho
proceso fue una tarea exhaustiva pues había que llevar a cabo una abstracción de los
procesos y llevarlos a la computadora.
Página 35 de 47
APÉNDICES
Diccionario de datos
Cliente
Cliente= ID+nombre+ape_paterno+ape_materno+dirección+teléfono+correo
ID= {digito}
Digito= {[0-9]}
Nombre= {carácter}
Carácter= @ | {_} | {[“ ”]} |{“”}| {.} | {/} | {°}+ [A-Z] | {A-Z}+{[a-z]}
Ape_paterno= {caracter}
Ape_materno= {caracter}
Dirección= calle+numero+colonia+código_postal
Calle= {caracter}
Colonia= {caracter}
Código_postal= {digito}
Teléfono= digito+digito+digito+digito+digito+digito+digito+digito+digito+digito
Correo= {carácter}+{digito}
Empleado
Empleado=ID+nombre+ape_paterno+ape_materno+dirección+teléfono+correo+tipo+us
uario+contraseña
ID= {digito}
Digito= [0-9]
Nombre= {carácter}
Ape_paterno= {caracter}
Página 36 de 47
Ape_materno= {caracter}
Dirección= calle+numero+colonia+código_postal
Colonia= {caracter}
Código_postal= digito+digito+digito+digito+digito
Teléfono= digito+digito+digito+digito+digito+digito+digito+digito+digito+digito
Tipo= {caracter}
Usuario= caracter+caracter+carácter+digito+digito+digito
Contraseña= carácter+carácter+caracter+carácter+carácter+digito+digito+digito
Producto
Producto=
código+nombre+descripción+marca+precio_almacen+precio_venta+existencia
Código= {digito}
Nombre= {carácter}
Descripción= {carácter}|{dígito}
Marca= {carácter}
Precio_almacen= {digito}
Precio_venta= {digito}
Existencia= {dígito}
Nota
Nota=
folio+fecha+nom_cli+apeP_cli+apeM_cli+dir_cli+tel_cli+cant_prod+nom_prod+descripci
ón+precio_venta+precio_total+subtotal+iva+total
Folio= digito+digito+digito+digito
Fecha= dia+mes+año
Página 37 de 47
Dia= digito+digito
Mes= {caracter}
Año= digito+digito+digito+digito
Cant_prod= {digito}
Precio_total= {digito}
Subtotal= {digito}
IVA= digito+digito
Total= {digito}
Venta
Venta= folio+fecha+cant_prod+nom_prod+descripción+precio_total
Página 38 de 47
Manual preliminar (modelo de implantación del usuario)
Funcionalidades:
Actualización y consulta de los empleados.
Actualización y consulta de los clientes.
Actualización y consulta del inventario.
Generación de notas de venta.
Generación y consulta de reportes: empleados, clientes, inventario, ventas
realizadas durante el día y reporte de ingresos.
Acceso al sistema
La primera ventana que aparece cuando el usuario inicia el sistema es la que da acceso
al mismo, para ello este debe contar con un usuario y una contraseña. Primero debe
elegir el tipo de usuario sea administrador o vendedor, después deberá introducir su
usuario y usuario en los campos correspondientes, por último deberá oprimir el botón
acceder y debe esperar a que se validen sus datos. Si desea cancelar el proceso
deberá oprimir el botón salir.
Página 39 de 47
Vendedor
Menú
Una vez que el vendedor haya ingresado al sistema, aparecerá el menú el cual se
compone de las siguientes opciones:
Cliente
Inventario
Ventas
Opciones: se encuentra la información acerca del sistema, y la opción de salir
para cerrar el sistema.
Página 40 de 47
Registro de clientes
Para consultar sus datos debe ingresar el nombre, apellido paterno y apellido materno
en el cuadro de búsqueda y conforme escriba irán apareciendo los resultados en la
tabla.
Para modificar los datos deberá efectuar una búsqueda y dará clic derecho sobre el
elemento que desee en la tabla, aparecerá un menú emergente, dará clic en la opción
seleccionar y los datos aparecerán en el formulario y allí es donde podrá hacer los
Página 41 de 47
cambios; finalmente oprimirá el botón Modificar para actualizar los datos. También en
ese momento podrá elegir la opción Eliminar si desea quitar un cliente.
El botón Ayuda mostrará un mensaje de cómo realizar las búsquedas. El botón Ver lista
desplegará la lista de todos los clientes que están registrados y que podrá imprimir. El
botón Salir cierra la ventana.
Registro de productos
En el menú inventario el vendedor podrá registrar un nuevo producto, una vez llenado el
formulario oprimirá el botón Registrar para guardar los datos, si desea ingresar otro
oprimirá el botón Nuevo.
Página 42 de 47
Para consultar deberá poner en el campo Búsqueda el nombre y la marca y los
resultados aparecerán en la tabla.
Para modificar algún dato del producto, deberá efectuar una búsqueda, después
seleccionará el elemento, clic derecho sobre él y aparecerá un menú emergente con las
opciones de modificar o eliminar. Si elige la opción modificar, los datos aparecerán en el
formulario y desde allí llevará a cabo las modificaciones. Posteriormente oprimirá el
botón Modificar para actualizarlos. También podrá elegir la opción Eliminar para quitar
un producto del inventario.
Realizar ventas
Página 43 de 47
En el menú ventas el vendedor podrá generar la nota de venta; el folio, la fecha y el IVA
ya estarán por defecto, tendrá que llenar los campos con los datos del cliente.
Después de llenar la nota debe registrar la venta oprimiendo el botón Registrar para
llevar un control de las ventas durante el día y para hacer el cálculo de los ingresos.
Con el botón Imprimir se imprimirá la nota, con el botón Nuevo se podrá llenar otra nota
de venta. El botón Salir cierra la ventana.
Tabla productos
Página 44 de 47
Administrador
Menú administrador
Una vez que el administrador haya ingresado al sistema, aparecerá un menú el cual se
compone de las siguientes opciones:
Empleados
Reportes: el administrador podrá consultar los reportes de clientes, empleados,
inventario, ventas e ingresos.
Opciones: se encuentra la información acerca del sistema, y la opción de salir
para cerrar el sistema.
Página 45 de 47
Registro de empleados
Para modificar algún dato, deberá efectuar una búsqueda, después seleccionará el
elemento, clic derecho sobre él y aparecerá un menú emergente con las opciones de
modificar o eliminar. Si elige la opción modificar los datos, aparecerán en el formulario y
desde allí lo llevará a cabo. Posteriormente oprimirá el botón Modificar para
actualizarlos.
Página 46 de 47
El botón ayuda contiene información sobre la realización de las búsquedas y el botón
Ver lista desplegará una ventana con la lista de todos los empleados registrados. El
botón salir cierra la ventana.
Posibles fallas:
3. El equipo se descomponga.
Verificar conexiones de cables y periféricos.
Llamar un técnico.
Página 47 de 47