You are on page 1of 48

Universidad Veracruzana

Facultad de Estadística e Informática

Sistema de control de
una ferretería
Ingeniería de Software I
Profesor: Fredy Castañeda Sánchez
Elizabeth Hernández López

30 de Mayo del 2014


Contenido
INTRODUCCIÓN ............................................................................................................. 3
MODELO AMBIENTAL .................................................................................................... 4
Declaración de propósitos ............................................................................................ 4
DFD de contexto .......................................................................................................... 4
Lista de acontecimientos .............................................................................................. 5
MODELO DE COMPORTAMIENTO................................................................................ 6
Diagrama de flujo de datos nivel 0 ............................................................................... 6
Diagrama de flujo de datos nivel 1 ............................................................................... 8
Diagrama de entidad-relación .................................................................................... 11
CASOS DE PRUEBA DEL SISTEMA ............................................................................ 12
Acceso al sistema ...................................................................................................... 12
Registro de clientes .................................................................................................... 13
Registro de productos ................................................................................................ 15
Registro de empleados .............................................................................................. 16
Realizar venta ............................................................................................................ 19
MÉTRICA DE ANÁLISIS ............................................................................................... 25
Puntos de función....................................................................................................... 25
Métrica Bang .............................................................................................................. 27
MODELOS DE DISEÑO ................................................................................................ 28
Modelo de procesador ................................................................................................ 28
MODELO DE IMPLANTACIÓN DE PROGRAMAS ....................................................... 29
Diagramas de estructura ............................................................................................ 29
Módulo empleado.................................................................................................... 29
Módulo administrador.............................................................................................. 30
Pseudocódigo............................................................................................................. 31
Consultar inventario ................................................................................................ 31
Plan de prueba de integración.................................................................................... 32
MÉTRICAS DE DISEÑO ............................................................................................... 33
Arquitectónicas ........................................................................................................... 33
Complejidad total .................................................................................................... 34
Complejidad relativa (CRS) ..................................................................................... 34
Página 1 de 47
CONCLUSIÓN ............................................................................................................... 35
APÉNDICES .................................................................................................................. 36
Diccionario de datos ................................................................................................... 36
Manual preliminar (modelo de implantación del usuario) ........................................... 39
Funcionalidades: ..................................................................................................... 39
Descripción de las ventanas: .................................................................................. 39
Posibles fallas: ........................................................................................................ 47

Página 2 de 47
INTRODUCCIÓN

Para elaborar el siguiente proyecto se parte de la necesidad de realizar un sistema para


una ferretería, con la finalidad de dar una solución a los problemas que surgen al
realizar los procesos de venta de forma manual.

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.

El presente documento se estructura de la siguiente manera: un modelo ambiental,


modelo de comportamiento, casos de prueba del sistema, métricas de análisis, modelo
de diseño, modelo de implantación de programas, métricas de diseño y un apéndice el
cual se compone de un diccionario de datos así como de una manual preliminar de
usuario.

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

 El empleado registra un producto


 El empleado modifica los datos del producto
 El empleado consulta inventario

Actualizar cliente

 El empleado registra un cliente


 El empleado modifica los datos del cliente
 El empleado consulta datos del cliente
 El empleado da de baja un cliente

Realizar venta

 El empleado registra la venta


 El empleado actualiza inventario
 El empleado genera la nota de venta

Administrador

Actualizar empleados

 El administrador registra un empleado


 El administrador modifica los datos del empleado
 El administrador consulta datos del empleado
 El administrador da de baja un empleado

Consultar reporte

 El administrador consulta el reporte de clientes


 El administrador consulta el reporte de empleados
 El administrador consulta el reporte de ventas
 El administrador consulta el reporte de inventario

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

Variable Dominio Subdominio


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} {“”} {“ ”}

No Entradas Condiciones de Salida esperada Condiciones de


entrada salida
1 Tipo=”Administrador” Se valida tipo de Aceptado Continúa la
usuario autenticación
2 Tipo=”Empleado” Se valida tipo de Aceptado Continúa la
usuario autenticación
3 Usuario=”RMM023” Existe usuario y “Bienvenido” Se accede al
Contraseña=”Azvrt123 contraseña en la sistema
” base de datos
4 Usuario=”Rmm789” Existe usuario y “Bienvenido” Se accede al
Contraseña=”AIVRT12 contraseña en la sistema
3” base de datos
5 Usuario=”R9M1m2” Existe usuario y “Bienvenido” Se accede al
Contraseña=”bnvdp12 contraseña en la sistema
3” base de datos
6 Usuario=”rmm456” No existe usuario “Error: usuario o Vuelve a introducir
Contraseña=”Azvrt123 o contraseña en la contraseña no usuario y
” base de datos válido” contraseña
7 Usuario=”RMMrmm” No existe usuario “Error: usuario o Vuelve a introducir
Contraseña=”AIVRT12 o contraseña en la contraseña no usuario y
3” base de datos válido” contraseña
8 Usuario=”012345” No existe usuario “Error: usuario o Vuelve a introducir
Contraseña=”bnvdp12 o contraseña en la contraseña no usuario y
3” base de datos válido” contraseña
9 Usuario=”NPH1223” No existe usuario “Error: usuario o Vuelve a introducir
Contraseña=” zvrt123” o contraseña en la contraseña no usuario y
base de datos válido” contraseña
10 Usuario=”Ehl45” No existe usuario “Error: usuario o Vuelve a introducir
Contraseña=”tnvdp012 o contraseña en la contraseña no usuario y
3” base de datos válido” contraseña

Página 12 de 47
Registro de clientes

Variable Dominio Subdominio


ID [1…∞) [1…∞)
Nombre {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Ape_paterno {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Ape_materno {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Calle {Caracteres} {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Numero {Digito} {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Colonia {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Código_postal [01000...99990] (-∞, 00999) [01000, 99990]
(99990, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
Teléfono {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Correo {Caracteres} {Dígitos} {A-Z}{a-z}{0-9}{“_”}{“”}{“ ”}

No Entradas Condiciones de Salida esperada Condiciones de


entrada salida
11 Nombre=” ” Empleado ingresa “Error: no se Vuelve a introducir
nombre admiten campos nombre
vacíos”
12 Nombre=”Alejandro Empleado ingresa ““Error: solo se Vuelve a introducir
10” nombre admiten letras” nombre
13 Nombre=”Ana Luz” Empleado ingresa “Cliente registrado” Ingresan datos a la
nombre base de datos
14 Apellido_paterno=” ” Empleado ingresa “Error: no se Vuelve a introducir
apellido paterno admiten campos apellido paterno
vacíos”
15 Apellido_paterno=”123 Empleado ingresa ““Error: solo se Vuelve a introducir
4” apellido paterno admiten letras” apellido paterno
16 Apellido_paterno= Empleado ingresa “Cliente registrado” Ingresan datos a la
”Martínez” apellido paterno base de datos
17 Apellido_materno=” ” Empleado ingresa “Error: no se Vuelve a introducir
apellido materno admiten campos apellido materno
vacíos”
18 Apellido_materno= Empleado ingresa “Error: solo se Vuelve a introducir
”Torres249” apellido materno admiten letras” apellido materno
19 Apellido_materno= Empleado ingresa “Cliente registrado” Ingresan datos a la
”Martínez” apellido materno base de datos
20 Calle=” ” Empleado ingresa “Error: no se Vuelve a introducir
la calle admiten campos la dirección
vacíos”
21 Calle=”Av. Xalapa ” Empleado ingresa “Cliente registrado” Ingresan datos a la
la calle base de datos

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

Variable Dominio Subdominio


Código [1…∞) [1…∞)
Nombre {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Marca {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Descripción {Caracteres} {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Precio_almacén [1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
Precio_venta [1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
Existencia [1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}

No Entradas Condiciones de Salida esperada Condiciones de


entrada salida
39 Nombre=” ” Empleado ingresa “Error: no se Vuelve a introducir
el nombre del admiten campos el nombre
producto vacíos”
40 Nombre=12345 Empleado ingresa “Error: solo se Vuelve a introducir
el nombre del admiten letras” el nombre
producto
41 Nombre=” Llave Empleado ingresa “Error: solo se Vuelve a introducir
española 9/16” el nombre del admiten letras” el nombre
producto
42 Nombre=” Llave Empleado ingresa “Producto Ingresan datos a la
española” el nombre del registrado” base de datos
producto
43 Marca=” ” Empleado ingresa “Error: no se Vuelve a introducir
la marca admiten campos la marca
vacíos”
44 Marca=”Truper”1234 Empleado ingresa “Error: solo se Vuelve a introducir
la marca admiten letras” la marca
45 Marca=”SURTEK” Empleado ingresa “Producto Ingresan datos a la
la marca registrado” base de datos
46 Descripción=” ” Empleado ingresa “Error: no se Vuelve a introducir
la descripción admiten campos la descripción
vacíos”
47 Descripción=” 1.10m x Empleado ingresa “Producto Ingresan datos a la
1.02m” la descripción registrado” base de datos
48 Precio_almacén=” ” Empleado ingresa “Error: no se Vuelve a introducir
el precio de admiten campos el precio de
almacén vacíos” almacén
49 Precio_almacén=”cinc Empleado ingresa “Error: solo se Vuelve a introducir
o pesos” el precio de admiten dígitos” el precio de
Página 15 de 47
almacén almacén
50 Precio_almacén=” 90 Empleado ingresa “Error: solo se Vuelve a introducir
pesos” el precio de admiten dígitos” el precio de
almacén almacén
51 Precio_almacén=0 Empleado ingresa “Error: debe Vuelve a introducir
el precio de introducir un el precio de
almacén número válido” almacén
52 Precio_almacén=690 Empleado ingresa “Producto Ingresan datos a la
el precio de registrado” base de datos
almacén
53 Precio_venta=” ” El sistema calcula “Error: no se Vuelve a introducir
el precio de venta admiten campos el precio de venta
vacíos”
54 Precio_venta=”treinta El sistema calcula “Error: solo se Vuelve a introducir
pesos” el precio de venta admiten dígitos” el precio de venta
55 Precio_venta=0 El sistema calcula “Error: debe Vuelve a introducir
el precio de venta introducir un el precio de venta
número válido”
56 Precio_venta=560 El sistema calcula “Producto Ingresan datos a la
el precio de venta registrado” base de datos
57 Existencia=” ” Empleado ingresa “Error: no se Vuelve a introducir
la existencia admiten campos la existencia
vacíos”
58 Existencia=”diez” Empleado ingresa “Error: solo se Vuelve a introducir
la existencia admiten dígitos” la existencia
59 Existencia=0 Empleado ingresa “Error: debe Vuelve a introducir
la existencia introducir un la existencia
número válido”
60 Existencia=90 Empleado ingresa “Producto Ingresan datos a la
la existencia registrado” base de datos

Registro de empleados

Variable Dominio Subdominio


ID [1…∞) [1…∞)
Nombre {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Ape_paterno {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Ape_materno {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Calle {Caracteres} {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Numero {Digito} {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Colonia {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Código_postal {01000... 99990} {A-Z}{a-z}{0-9}{“”}{“ ”}
Teléfono {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Correo {Caracteres} {Dígitos} {A-Z}{a-z}{0-9}{“_”}{“”}{“ ”}

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} {“”} {“ ”}

No Entradas Condiciones de Salida esperada Condiciones de


entrada salida
61 Nombre=” ” Administrador “Error: no se Vuelve a introducir
ingresa el nombre admiten campos nombre
vacíos”
62 Nombre=”234567” Administrador ““Error: solo se Vuelve a introducir
ingresa el nombre admiten letras” nombre
63 Nombre=”José Luis” Administrador “Empleado Ingresan datos a la
ingresa el nombre registrado” base de datos
64 Apellido_paterno=” ” Administrador “Error: no se Vuelve a introducir
ingresa el apellido admiten campos apellido paterno
paterno vacíos”
65 Apellido_paterno=”Pér Administrador ““Error: solo se Vuelve a introducir
ez456” ingresa el apellido admiten letras” apellido paterno
paterno
66 Apellido_paterno= Administrador “Empleado Ingresan datos a la
”Paz y Puente” ingresa el apellido registrado” base de datos
paterno
67 Apellido_materno=” ” Administrador “Error: no se Vuelve a introducir
ingresa el apellido admiten campos apellido materno
materno vacíos”
68 Apellido_materno= Administrador “Error: solo se Vuelve a introducir
”34249” ingresa el apellido admiten letras” apellido materno
materno
69 Apellido_materno= Administrador “Empleado Ingresan datos a la
”Carrillo” ingresa el apellido registrado” base de datos
materno
70 Calle=” ” Administrador “Error: no se Vuelve a introducir
ingresa la calle admiten campos la dirección
vacíos”
71 Calle=” 5 de Febrero” Administrador “Empleado Ingresan datos a la
ingresa la calle registrado” base de datos
72 Número=” ” Administrador “Error: no se Vuelve a introducir
ingresa el número admiten campos la dirección
vacíos”
73 Número=”S/N” Administrador “Empleado Ingresan datos a la
ingresa el número registrado” base de datos
74 Número=”9” Administrador “Empleado Ingresan datos a la
ingresa el número registrado” base de datos
75 Colonia=” ” Administrador “Error: no se Vuelve a introducir
ingresa la colonia admiten campos la dirección
vacíos”
Página 17 de 47
76 Colonia=”Lomas del Administrador “Empleado Ingresan datos a la
estadio” ingresa la colonia registrado” base de datos
77 Código_postal=” ” Administrador “Error: no se Vuelve a introducir
ingresa el código admiten campos código postal
postal vacíos”
78 Código_postal= Administrador “Error: debe Vuelve a introducir
”noventa y un mil cien” ingresa el código introducir dígitos” código postal
postal
79 Código_postal=”10000 Administrador “Error: código Vuelve a introducir
0” ingresa el código postal no válido” código postal
postal
80 Código_postal=”91000 Administrador “Empleado Ingresan datos a la
” ingresa el código registrado” base de datos
postal
81 Teléfono=” ” Administrador “Error: no se Vuelve a introducir
ingresa el teléfono admiten campos el teléfono
vacíos”
82 Teléfono=”dos-dos- Administrador “Error: debe Vuelve a introducir
ocho-uno-cero-cero- ingresa el teléfono introducir un el teléfono
uno-uno-tres-tres” número de
teléfono”
83 Teléfono= Administrador “Error: el teléfono Vuelve a introducir
”228200113389” ingresa el teléfono debe contener 10 el teléfono
dígitos”
84 Teléfono=”224001122 Administrador “Empleado Ingresan datos a la
3” ingresa el teléfono registrado” base de datos
85 Correo= Administrador “Error: el correo Vuelve a introducir
”2014@correo.com” ingresa el correo debe contener el correo
letras y dígitos”
86 Correo=” ” Administrador “Error: no se Vuelve a introducir
ingresa el correo admiten campos el correo
vacíos”
87 Correo= Administrador “Error: correo no Vuelve a introducir
”eliza34@hotmail” ingresa el correo válido” el correo
88 Correo= Administrador “Empleado Ingresan datos a la
”eliza2014@gmail.com ingresa el correo registrado” base de datos

Página 18 de 47
Realizar venta

Variable Dominio Subdominio


Nom_cli {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
ApeP_cli {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
ApeM_cli {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Calle {Caracteres} {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Numero {Digito} {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Colonia {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Código_postal [01000... 99990] (-∞, 00999) [01000, 99990]
(99990, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
Tel_cli {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Cant_prod (1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
Nom_prod {Caracteres} {A-Z}{a-z}{0-9}{“”}{“ ”}
Descripción {Caracteres} {Dígitos} {A-Z}{a-z}{0-9}{“”}{“ ”}
Precio_venta (1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
Precio_total (1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
Subtotal (1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}
IVA [16] [16]
Total (1… ∞) (-∞,1] [1, ∞) {A-Z}{a-z}{0-
9}{“”}{“ ”}

No Entradas Condiciones de Salida esperada Condiciones de


entrada salida
89 Nom_cli=”” El nombre se “Error: no se Vuelve a introducir
encuentre en la admiten campos nombre
base de datos o el vacíos”
empleado lo
ingresa.
90 Nom_cli=” ” El nombre se “Error: no se Vuelve a introducir
encuentre en la admiten campos nombre
base de datos o el vacíos”
empleado lo
ingresa.
91 Nombre=”Alberto1” El nombre se ““Error: solo se Vuelve a introducir
encuentre en la admiten letras” nombre
base de datos o el
empleado lo
ingresa.

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

Indicador de Datos="ALI". Entidades y relaciones n:m del


modelo E-R que se crean y mantienen dentro del nuevo sistema
Datos TRE TDE Complejidad
Empleado 4 12 Simple
Cliente 1 9 Simple
Producto 1 6 Simple
Nota 1 16 Simple
Venta 1 4 Simple

Indicador de Transacción="EE". Cada quinteta que se refiera


a captura o actualización
Función RA TDE Complejidad
Acceso restringido al
1 2 Simple
sistema
Actualización de clientes 1 6 Simple
Actualización de productos 1 6 Simple
Actualización de empleados 1 6 Simple
Realizar venta 3 6 Complejo

Indicador de Transacción="SE". Cada quinteta que se refiera


a cálculos aritméticos o mátemáticos
Nota de venta 1 1 Simple
Reporte de Ingresos 1 0 Simple

Indicador de Transacción="CE". Cada quinteta que se refiera


a consulta tipo SQL
Reporte de lista de
1 0 Simple
empleados
Reporte de lista clientes 1 0 Simple
Reporte de inventario 1 0 Simple
Reporte de venta 1 0 Simple
Reporte de ingresos 1 0 Simple
Consulta de clientes 1 4 Simple
Consulta de empleados 1 4 Simple
Consulta de inventario 1 3 Simple
Modificar datos del cliente 1 4 Simple
Modificar datos del
1 4 Simple
empleado
Modificar inventario 1 3 Simple
Página 25 de 47
Puntos de Función sin Ajustar
Indicador Simple Mediano Complejo Suma
Archivo Lógico Interno 5 0 0 35
Archivo de Interfaz Externo 0 0 0 0
Entradas Externas 4 0 1 18
Salidas Externas 2 0 0 8
Consultas Externas 11 0 0 33
T= 94

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

Ayudas, menús, selección del cursor desde la pantalla de datos,


7 2
ventanas pop-up, tan pocas ventanas como sea posible.

8 No hay actualización en línea. 0


9 Procesamiento complejo 0
El 10% o más porcentaje de la aplicación consideran más de una
10 3
necesidad del usuario.
No hay consideraciones especiales puestas por el usuario,
11 1
pero se requirió un setup para la instalación.
No se establecieron requerimientos especiales de operación
12 0
además de procedimientos normales de salvado de datos.
Las especificaciones del usuario sólo consideran un sitio de
13 0
instalación.
Consulta flexible y facilidad de reportes, mediante el manejo
14 1
de requerimientos simples.
M= 7

Página 26 de 47
Aplicación de la fórmula PF

T = 94

M=7

PF= T * (0.65 + 0.01 * M)= 94 * (0.65 + 0.01 * 7)= 67.68

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

La aplicación es de dominio funcional

Página 27 de 47
MODELOS DE DISEÑO
Modelo de procesador

Procesador Proceso Almacén

Actualizar cliente Cliente

PC Vendedor Actualizar inventario Producto

Realizar venta Venta

Actualizar empleado
Empleado
Consultar reporte de
empleados
Consultar reporte de
Producto
inventario
PC Administrador
Consultar reporte de
Cliente
clientes

Consultar reporte de ventas


Venta
Consultar reporte de
ingresos

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

Escribe (Ingresa nombre y marca:)

Lee (palabra)

Si (palabra=””) entonces

Escribe (Introduce datos de búsqueda)

si no Si (palabra=” “) entonces

Escribe (“No es una palabra válida, vuelve a introducir datos de


búsqueda”)

si no Si (palabra=numero) entonces

Escribe (“Error: solo se pueden introducir palabras, vuelve a


introducir datos de búsqueda”)

si no Si (palabra=”nombre”) y (palabra=”marca”) entonces

Consulta inventario

Escribe (código, nombre, marca, descripción, precioVenta,


precioAlmacen, existencia)

Fin_si

Fin

Página 31 de 47
Plan de prueba de integración

Sistema de control de Ferretería


Identificación
Plan de prueba: Realizar venta
Elementos a probar Genera nota de venta, registra venta.

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

Complejidad total del sistema= 364.8

Complejidad relativa (CRS)

Complejidad relativa= 18.24

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.

Se espera que el software resultante sea de calidad debido al tiempo que se ha


dedicado a su análisis y sobre todo que cumpla con los requerimientos de nuestro
usuario para obtener una mejor satisfacción de sus clientes y con ello que pueda
cumplir con sus objetivos a corto, mediano y largo plazo.

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}

Numero= {digito} | {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}

Carácter= {A-Z} | [A-Z]+{[a-z]}

Ape_paterno= {caracter}

Página 36 de 47
Ape_materno= {caracter}

Dirección= calle+numero+colonia+código_postal

Calle= {caracter} | {digito}

Numero= {digito} | {caracter}

Colonia= {caracter}

Código_postal= digito+digito+digito+digito+digito

Teléfono= digito+digito+digito+digito+digito+digito+digito+digito+digito+digito

Correo= {carácter} | {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.

Descripción de las ventanas:

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

En el menú Clientes el vendedor podrá ingresar los datos de un nuevo cliente


completando el formulario, una vez llenado oprimirá el botón Registrar e
inmediatamente se deshabilitarán los campos, si desea ingresar otro oprimirá el botón
Nuevo.

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.

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 productos registrados. El
botón Salir cierra la ventana.

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.

Para obtener la información de los productos se oprimirá el botón Productos y


aparecerán en una tabla, hará la búsqueda del producto, lo seleccionará, dará clic
derecho sobre el elemento y aparecerá un menú emergente con la opción Seleccionar y
en ese momento se irán llenando los campos con los datos de los productos. Después
el vendedor ingresará la cantidad de producto y posteriormente con el botón Calcular se
hará el cálculo del Precio total, Subtotal y Total.

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

En el menú Empleados el administrador podrá registrar un empleado, una vez llenado


el formulario oprimirá el botón Registrar para guardar los datos, si desea ingresar otro
oprimirá el botón Nuevo.

Para consultar deberá poner en el campo Búsqueda el nombre, apellido paterno o


apellido materno y los resultados aparecerán en la tabla.

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:

1. El sistema no guarda la información.


Verificar que se realiza correctamente el proceso.
Reiniciar el sistema.
Reiniciar el equipo.

2. No da acceso a la base de datos.


Reiniciar el sistema.
Reiniciar el equipo.

3. El equipo se descomponga.
Verificar conexiones de cables y periféricos.
Llamar un técnico.

Página 47 de 47

You might also like