Tarea 1
Adrián Pérez Chillarón
Enunciado.
La empresa BK ha recibido un nuevo encargo de software.
Se trata de 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:
Proporcionar facturas de las ventas.
Llevar la cuenta de lo que vende cada trabajador.
Controlar el stock de productos en almacén.
Operar con lector de código de barras y tarjetas de crédito.
Controlar los precios de los productos y ofrecer la posibilidad de
operar con ellos.
El tiempo de respuesta de la aplicación ha de ser lo menor posible.
No se podrán procesar dos peticiones a la vez, aunque haya varios
equipos funcionando simultáneamente.
La empresa también quiere almacenar información de sus
trabajadores: DNI, nombre, apellidos, número de la Seguridad Social,
fecha de nacimiento, teléfono y localidad. Asimismo, de los productos
interesa almacenar: código, marca, nombre comercial, precio, cantidad.
Tendrás que diseñar una planificación del proyecto de desarrollo de
ese software que cumpla con las premisas estudiadas en la presente unidad
de trabajo.
Esencialmente, el proyecto se divide en los siguientes apartados:
1. Sintetiza el análisis de requerimientos del sistema para nuestro
cliente. Plantea el diseño y determina el modelo de ciclo de vida
más idóneo para esta aplicación.
2. Planifica la codificación, indicando el lenguaje de programación y
las herramientas que usarías para la obtención del código fuente,
objeto y ejecutable, explicando por qué eliges esas herramientas.
Planifica las restantes fases del ciclo de vida, indicando en cada una el objetivo que
persigues y cómo lo harías.
[Link]álisis:
Detallamos nuestro análisis con los requisitos funcionales y no funcionales.
Empezamos con los Requisitos Funcionales, estos requisitos son las funciones
que deberá realizar la aplicación en la que estamos trabajando.
Requisitos Funcionales:
Proporcionar facturas de las ventas
o Operar con lector de códigos de barras y tarjetas
de crédito (datafono)
Llevar la cuenta de lo que vende cada uno de nuestros trabajadores
Control del stock de las ventas por empleado
Controlar los precios de los productos y ofrecer la posibilidad de
operar con ellos.
Almacenar la información de los trabajadores:
o DNI
o Nombre y apellidos
o NSS
o Fecha nacimiento
o Teléfono
o Localidad
Almacenar la información de nuestros productos:
o Código
o Marca
o Nombre comercial
o Precio
o Cantidad
Finalmente, los Requisitos No funcionales, son las características que
deberá tener la aplicación.
Requisitos No Funcionales:
El tiempo de respuesta de la aplicación ha de ser lo menor posible.
o Reducción del tiempo de espera.
No se podrá procesar dos peticiones a la vez, aunque haya varios
equipos informáticos funcionando a la vez.
Por último, hay que realizar unas series de reuniones con nuestro cliente
para enseñar la aplicación y comprobar el funcionamiento de ella, además
de que el cliente debería tener conocimiento de cómo va la aplicación y si
cumple sus expectativas.
2. Diseño:
Una vez que tengo perfectamente claro lo que mi aplicación debe hacer tras
haber mantenido las comunicaciones con el cliente puedo proceder con el diseño
de esta.
Para este proyecto he decidido usar un modelo de ciclo de vida del programa
Evolutivo, concretamente el Modelo Iterativo Incremental, ya que debemos tener
en cuenta la naturaleza cambiante y evolutiva del software.
La idea es comenzar con una implementación simple de los requerimientos del
sistema, e iterativamente mejorar la secuencia evolutiva de versiones hasta que el
sistema completo esté implementado. En cada iteración realizaremos cambios en
el diseño y agregaremos nueva funcionalidades y capacidades al sistema
dependiendo de las necesidades del cliente/usuario.
El lenguaje de programación que vamos a utilizar es JAVA, ya que se adapta a las
necesidades del cliente al ser un software libre y también a nuestras necesidades al ser
un lenguaje de programación orientado a objetos, mediante el cual desarrollaremos un
código reutilizable, más fácil de mantener y modular.
En cuanto al sistema gestor de Bases de Datos he decidido usar MySql ya que es
un sistema relacional y además se puede utilizar como software libre.
Las entidades y relaciones de la base de datos serán las siguientes:
Trabajadores: Clientes: Facturas: Productos:
DNI DNI Código Código
Nombre Nombre CódDelCliente Nombre
Apellidos Apellidos DNI_Empleado Descripción
NumSegurSocial Teléfono Productos Cantidad
Nacimiento Dirección Precio Precio
Teléfono X Descuento X
Dirección X X X
3. Codificación:
En este apartado codificaremos toda la información que hemos visto anteriormente y
la llevaremos a código fuente. Esta tarea la realizará el programador que, además,
deberá cumplir con todos los datos impuestos en las etapas de análisis y diseño.
Con el entorno de desarrollo NetBeans, al ser un entorno completo, cubriremos las
tres partes de la codificación:
1. Código Fuente: Será tarea de los programadores desarrollar este código en el
entorno de desarrollo NetBeans utilizando el editor de código.
2. Código Objeto: Utilizando el compilador de NetBeans obtendremos el código
binario resultante de compilar el código fuente.
3. Código ejecutable: Este código es el resultado de enlazar los archivos objeto, consta
de un único archivo que puede ser ejecutado por el sistema operativo directamente.
Este paso también lo realizaremos con la aplicación NetBeans.
4. Pruebas:
Esta fase consistirá en realizar una serie de pruebas para asegurar la validación y
verificación del software desarrollado. Se dividirá en dos partes:
Pruebas unitarias: En esta parte se probarán los diferentes módulos
del software para comprobar su funcionamiento de manera
independiente. Con el entorno JUnit se realizará esta parte de las
pruebas.
Pruebas de integración: En esta parte se probará el sistema
completo con todas sus partes interrelacionadas.
Finalmente, se realiza la prueba final BETA TEST, aquí el cliente interactúa
con la propia aplicación ya terminada.
Estas herramientas las elijo porque me permiten dar conocimiento del
correcto o mal funcionamiento de la propia aplicación.
5. Explotación:
Una vez que ya tengo todas las fases documentadas, he realizado pruebas con
el software para comprobar su fiabilidad y que carece de errores con la fase de
explotación.
En esta fase realizaré la instalación, configuración y puesta en funcionamiento de
la aplicación en los equipos del cliente.
En esta fase se hará la última prueba denominada Beta Test, la realizaremos en los
equipos del cliente y siempre que sea posible con la presencia de este.
Para la instalación de nuestra aplicación se acudirá al cliente con el software
preparado para transferirlo a sus equipos, después será necesario configurar
los parámetros de funcionamiento normal de la empresa. Por último, los
usuarios finales comenzaran a usar la aplicación.
6. Mantenimiento:
Por último, en esta fase de mantenimiento se realiza un control de mejora y
optimizamos el SW, necesitamos que el cliente pacte con nosotros los costes
y además la duración del servicio de mantenimiento.
Este tipo de mantenimiento hacia el cliente debe cubrir:
La mejora de la funcionalidad del SW
Cubre las nuevas necesidades del cliente
Adaptamos las nuevas tecnologías que salen, igual con HW
Corrige fallos si tiene en un futuro.
8. Documentación:
Esta fase se desarrolla la documentación de que se ha hecho en la propia
aplicación Donde tenemos que explicar, tres aspectos:
GUÍA TECNICA GUÍA DE USO GUÍA DE
INSTALACIÓN
Quedan -El diseño de la -Descripción de la Toda la información
reflejados: aplicación. funcionalidad de la necesaria para:
aplicación.
-La codificación de los
programas. -Puesta en
-Forma de marcha.
-Las pruebas realizadas. comenzar a ejecutar la
aplicación. -Explotación.
-Seguridad del
-Ejemplos de
uso del programa. sistema.
-Requerimient
os software de la
aplicación.
-Solución de
los posibles problemas
que se pueden
presentar.
¿A quién va Al personal técnico A los usuarios que van a Al personal
dirigido? en informática usar la aplicación (clientes). informático
(analistas y responsable de la
programadores). instalación, en
colaboración con los
usuarios que van a usar la
aplicación (clientes).
¿Cuál es su -Facilitar un correcto -Dar a los usuarios finales -Dar toda la
objetivo? desarrollo toda la información información
-Realizar necesaria para usar la necesaria para
correcciones en los aplicación. garantizar que la
programas y permitir implantación de
un mantenimiento la aplicación se
futuro. realize de forma
segura y precisa.