Está en la página 1de 6

Práctica Calificada 3 – MT104A – 2019-2

Contenido
1. Presentación del sistema actual .......................................................................................................1
a. Base de datos de usuarios ............................................................................................................2
b. Programa Administrador (Línea de comandos) ............................................................................2
c. Base de datos de ventas ..............................................................................................................2
d. Programa Ventas (Línea de comandos) ........................................................................................3
2. Problemática planteada ...................................................................................................................3
3. Planteamiento de soluciones ...........................................................................................................4
a. Interfaz de usuario para programa administrador [6 puntos] .......................................................4
b. Cliente/Servidor para programa ventas [8 puntos] ......................................................................4
c. Interfaz de usuario para programa cliente ventas [6 puntos con ítem b resuelto] ........................5
d. Interfaz de usuario para programa venta [6 puntos sin ítem b resuelto] ......................................5
4. Forma de envío ................................................................................................................................6

1. Presentación del sistema actual


Una empresa utiliza un programa para almacenar información de sus ventas y consultar el total de
ventas realizadas. Sin embargo, como la información que guardan en su sistema no debe ser vista sin
autorización, utilizan un sistema de autentificación mediante usuario y contraseña.

La arquitectura de la solución actual utilizada es la siguiente:

El diseñador de este sistema indicó que todos los programas y bases de datos se encuentran en la
computadora del administrador ya que sino los programas no podrían acceder a esas bases de datos.

1
a. Base de datos de usuarios

Contiene una tabla llamada USUARIOS cuyo modelo relacional es:

Donde:

• nombre_usuario es una columna de valor único que contiene el nombre del usuario.
• clave_SHA256 es la contraseña del usuario luego de aplicarle la función hash SHA256, no nulo.

Como aclaración, una función hash permite transformar un conjunto de datos en un único valor de
longitud fija, de forma que no es posible saber cuál fue el conjunto de datos original; esto las convierte
en funciones no reversibles. Debido a esto, son bastante útiles para almacenar contraseñas ya que si se
quiere comprobar si la contraseña del usuario es correcta, solo hace falta aplicarle la función hash a la
contraseña que está intentando validarse y compararla con el valor hash almacenado en la base de
datos.

El administrador no puede modificar esta base de datos mientras el usuario está modificándola, y
viceversa.

Se adjunta a este documento una base de datos en el archivo usuarios.db ya creada con el usuario
ricardo, contraseña m3c4tr0n1c4 y el usuario paul, contraseña v3nt4s.

b. Programa Administrador (Línea de comandos)

Es un programa realizado en línea de comandos que permite al administrador ver los usuarios
registrados, agregar / modificar usuarios y contraseña, y eliminar usuarios; los usuarios siendo
almacenados en la Base de datos de usuarios, tabla USUARIOS, con archivo en la máquina donde corre
el programa.

El uso de este programa no requiere usuario o contraseña ya que solamente el administrador del
sistema tiene acceso a este programa.

Se adjunta a este documento el código del programa en el archivo programa_administrador.py.

c. Base de datos de ventas

Contiene una tabla llamada VENTAS cuyo modelo relacional es:

Donde:

• nombre_producto es el nombre del producto de la transacción actual, no nulo.


• cantidad es la cantidad vendida en la transacción actual, no nula.

2
• precio_unitario es el precio al que fue vendido el producto por unidad en la transacción actual, no
nulo.

Se adjunta a este documento una base de datos en el archivo ventas.db ya creada con algunos
ejemplos.

d. Programa Ventas (Línea de comandos)

Es un programa realizado en línea de comandos que permite a los usuarios agregar datos de venta como
nombre de producto, cantidad y precio unitario de la venta realizada; además de permitirles ver el
detalle de las ventas realizadas, el total vendido por producto y el total final; estos datos estando
almacenados en la Base de datos de ventas, tabla VENTAS, con archivo en la máquina donde corre el
programa.

El uso de este programa requiere contraseña ya que este programa se encuentra a la vista de todos los
usuarios y no cualquier persona debería tener acceso a modificar ni visualizar esta información; la
validación del usuario y contraseña la realiza en la Base de datos de usuarios, tabla USUARIOS, con
archivo en la máquina donde corre el programa.

Adicionalmente, se tiene que, como se indicó al inicio, el programa de ventas solamente puede ser
usado desde la computadora del administrador ya que todas las bases de datos deben encontrarse en la
misma máquina.

Se adjunta a este documento el código del programa en el archivo programa_ventas.py.

2. Problemática planteada
Como parte del proyecto de mejora continua de la empresa, se encontró que las principales
complicaciones que tiene el sistema son:

- Todos los usuarios del sistema necesitan estar físicamente en la máquina del administrador, por lo
que no podrían llenar información desde sus máquinas ni desde otro local de la empresa, lo cual
hace más lento su trabajo.
- El uso de línea de comandos es bastante complicado tanto para un administrador nuevo que pueda
ser contratado como para los usuarios del sistema.

3
3. Planteamiento de soluciones
Se encontró las siguientes oportunidades de mejora en base a las observaciones de la empresa.

a. Interfaz de usuario para programa administrador [6 puntos]

Se desea que el programa administrador cuente con una interfaz gráfica que facilite su uso; hay total
libertad en el planteamiento de la interfaz siempre y cuando permita realizar todas las funciones que
permitía realizar el programa original. El archivo del programa deberá llamarse
programa_administrador_gui.py

De realizarse con funcionalidades completas, la pregunta será calificada con 6 puntos.

b. Cliente/Servidor para programa ventas [8 puntos]

Se desea que el programa ventas sea separado en una arquitectura cliente y servidor, de forma que
junto a las bases de datos se encuentre un programa servidor y que los usuarios puedan utilizar el
programa cliente desde sus propias computadoras. Los archivos del programa deberán llamarse
programa_servidor_ventas.py y programa_cliente_ventas.py.

De realizarse con funcionalidades completas, la pregunta será calificada con 8 puntos.

RECOMENDACIÓN: Probar que la solución funciona utilizando al menos dos computadoras, una para el
programa servidor y otra para el programa cliente.

4
c. Interfaz de usuario para programa cliente ventas [6 puntos con ítem b resuelto]

Se desea que el programa cliente ventas cuente con una interfaz gráfica que facilite su uso; hay total
libertad en el planteamiento de la interfaz siempre y cuando permita realizar todas las funciones que
permitía realizar el programa original. El archivo del programa deberá llamarse
programa_cliente_ventas_gui.py.

Para que esta pregunta otorgue puntaje, se debe haber realizado el ítem b. De realizarse con
funcionalidades completas la pregunta será calificada con 6 puntos.

d. Interfaz de usuario para programa venta [6 puntos sin ítem b resuelto]

Si no es posible plantear un esquema cliente/servidor en el programa venta, se desea que el programa


ventas cuente con una interfaz gráfica que facilite su uso; hay total libertad en el planteamiento de la
interfaz siempre y cuando permita realizar todas las funciones que permitía realizar el programa
original. El archivo del programa deberá llamarse programa _ventas_gui.py.

Para esta pregunta otorgue puntaje, no se debe haber realizado el ítem b. De realizarse con
funcionalidades completas la pregunta será calificada con 6 puntos.

5
4. Forma de envío
Todos los códigos que sean utilizados en el programa final, incluyendo los códigos que no se hayan
modificado y las bases de datos, deben ser enviados adjuntos en un mensaje al correo
LBARDALEZG@GMAIL.COM hasta el día viernes 15 de noviembre del 2019 13:00. El número de
integrantes en el grupo es de mínimo 1 y máximo 5.

El mensaje debe tener como asunto “Practica Calificada 3” y debe incluir en el mensaje el correo de los
compañeros del grupo, el código y nombre de cada uno. También se debe indicar que ítems se
resolvieron en el problema.

Cualquier consulta será resuelta mediante el correo y debe ser realizada antes de la fecha y hora de
entrega. Tener en cuenta que los puntajes de los ítems c y d dependen de si se resolvió o no el ítem b,
no se pide c y d solucionados en la misma práctica y solo se puntuará una de las dos respuestas.

También podría gustarte