Análisis
Diseñar una aplicación para una tienda especializada en vender productos estéticos.
La tienda desea trabajar con software libre. Además, desea explícitamente que la aplicación
sea capaz de cumplir las siguientes tareas:
El sistema registrará cualquier operación, tanto de clientes, productos como de empleados. Las
operaciones son de alta, baja o modificación así como impresión de facturas, uso del lector de
código de barras y datáfono.
Requisitos no funcionales
Cliente: Es el actor que efectúa las compras. No es un actor que entre en el sistema
pero que debe de estar definido ya que interactúa con el sistema y puede ser que se
apliquen descuentos por cliente y se requiera identificación.
Dependiente: Es el usuario básico que manipula el sistema. Realizará las operaciones
de venta, reserva de productos, actualización de stock, cambios y devoluciones. Todas
estas operaciones deben de utilizar la lectura del código de barras del producto
mediante el lector. La operación de venta está asociada a la generación de una factura,
que puede ser impresa o no además de poner imprimir un duplicado si es necesario.
Cualquier operación relacionada con el cliente y venta o devolución está asociada a la
forma de pago y con las opciones de pago con tarjeta o contado.
Superusuario: Este usuario tiene los permisos y funciones heredadas del depediente
además de algunas más. Este usuario podrá dar de baja, alta o modificación de
productos o precios según corresponda. También será el encargado de generar las
estadísticas de venta y de mantener la información relacionada con los empleados.
Administrador: El administrador del sistema es una persona ajena a la tienda ya que se
ha acordado un mantenimiento. Los términos del mantenimiento serán acordados con
el cliente en la fase de análisis. El administrador heredará todos los permisos de los
demás actores de la aplicación para poder realizar las pruebas y resolución de
incidencias que fuesen necesarias además del mantenimiento del sistema.
ETS. ENTORNOS DE DESARROLLO TEMA1 Tarea 1
ETS. ENTORNOS DE DESARROLLO TEMA1 Tarea 1
Diseño
En esta fase se especifican las entidades y las relaciones entre ellas además de la selección del
lenguaje de programación y del sistema gestor de base de datos.
Teniendo en cuenta los requisitos del cliente y que desea que se utilice software libre se ha
decidido usar utilizar plataforma Linux y Java como lenguaje de programación. Como gestor
de base de datos se elije MySQL.
Se utiliza Linux ya que es el único sistema operativo libre con gran soporte y difusión.
MySQL ya que es de gran aceptación, tiene soporte y está apoyada por grandes compañías.
Soporta gran cantidad de registros, rápida y disponible para gran cantidad de plataformas.
Seguridad. Al no necesitar concurrencia según especificaciones y no se prevee grandes tasas
de modificación se podrá utilizar el motor no transaccional MyISAM que permite gran rapidez
siendo una de los requisitos del sistema.
Producto
Cliente
Venta
Dependiente
Factura
Cambio
Devolucion
Lector
Superusuario
Administrador
Codificación
Al usar Java se utilizará la orientación a objetos ya que agiliza las tareas de mantenimiento y es
ideal para aplicaciones grandes donde se prevee crecimiento. Por otra parte se utilizará el IDE
NetBeans ya que en el puedes escribir el código fuente y automáticamente el código objeto
además del ejecutable.
En esta fase se diseñarán las clases necesarias así como los métodos y es una tarea que
realizará el programador. Se deben de cumplir los datos impuestos y el diseño que se ha
descrito en la fase de análisis.
ETS. ENTORNOS DE DESARROLLO TEMA1 Tarea 1
Pruebas
Pruebas de módulos
Este tipo de prueba permitirá ver como es el funcionamiento de cada formulario que compone
el software. Se prueba cada formulario y se evalúan las funciones que se pretende que debe
de cumplir.
Pruebas de integración.
Para ejecutar este tipo de pruebas es necesario integrar todos los módulos, una vez
integrados, se prueban en conjunto comprobando que todos los formularios del software se
integran correctamente unos con otros.
Pruebas de aceptación.
Las pruebas de aceptación tienen como objetivo validar el sistema, es decir, permite visualizar
que el sistema cumple con el funcionamiento esperado y que permita al usuario definir la
aceptación del sistema. Estas pruebas permiten verificar y validar el sistema.
La verificación se lleva a cabo durante el proceso de desarrollo del software, ya que dentro de
NetBeans IDE contiene esta herramienta, se prueba el sistema sin ser finalizado, de esta
manera brinda la posibilidad de corregir los errores en el momento.
Las pruebas de integración se deben de realizar con el sistema completo, probando que cada
uno de los módulos cumple con su cometido.
Documentación
Planificación de reuniones.
Objetivos del cliente y del sistema.
Requisitos funcionales y no funcionales.
Objetivos prioritarios y estimación de tiempos.
Requisitos mal planteados, fallos en análisis, etc.
En la fase de codificación es necesario documentar las partes del código que sean difíciles de
entender o aquellas partes que necesiten aclaración por algún motivo.
ETS. ENTORNOS DE DESARROLLO TEMA1 Tarea 1
Explotación
Instalamos, configuramos y probamos la aplicación en los equipos del cliente para realizar la
última prueba de aceptación.
Mantenimiento
La aplicación de ventas podrá recibir actualizaciones debido que es un sistema que cuenta con
una base de datos y se corre el riesgo de aumentar paulatinamente su tamaño, por lo tanto es
importante disponer de espacio necesario o ir aumentando la capacidad de almacenamiento
del servidor. También puede ser necesario la modificación y mejoras para dar mayor
rendimiento de la aplicación. También es importante hacer revisiones para evitar el robo,
pérdida o daño de la información.
Nuevos diseños a la interfaz, de modo que sea más amigable con el usuario, ofrezca
una mejora en sus interacciones y un diseño más atractivo.
Mejoras en el código como por ejemplo reducción del código y mejora de la eficiencia,
de modo que el programa sea menos pesado para la máquina.
Realizar cambios en el sistema o versiones nuevas, de modo que sea compatible con
nuevos sistemas operativos.
Cambios de hardware para contar con un sistema más rápido y eficiente.