You are on page 1of 6

Desarrollo de software

Enunciado
La empresa BK ha recibido un nuevo encargo de software.
Se trata de disear una aplicacin para una tienda especializada en vender productos
estticos.
La tienda desea trabajar con software libre. Adems, desea explcitamente que la aplicacin
sea capaz de cumplir las siguientes tareas:
Proporcionar facturas de las ventas.
o Llevar la cuenta de lo que vende cada trabajador.
o Controlar el stock de productos en almacn.
o Operar con lector de cdigo de barras y tarjetas de crdito.
o Controlar los precios de los productos y ofrecer la posibilidad de operar con ellos.
o El tiempo de respuesta de la aplicacin ha de ser lo menor posible.
o No se podrn procesar dos peticiones a la vez, aunque haya varios equipos
funcionando simultneamente.
o La empresa tambin quiere almacenar informacin de sus trabajadores: DNI, nombre,
apellidos, nmero de la Seguridad Social, fecha de nacimiento, telfono y localidad.
Asimismo, de los productos interesa almacenar: cdigo, marca, nombre comercial,
precio, cantidad.
Tendrs que disear una planificacin 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 anlisis de requerimientos del sistema para nuestro cliente. Plantea el diseo y
determina el modelo de ciclo de vida ms idneo para esta aplicacin.
2. Planifica la codificacin, indicando el lenguaje de programacin y las herramientas que
usaras para la obtencin del cdigo fuente, objeto y ejecutable, explicando por qu eliges esas
herramientas.
3. Planifica las restantes fases del ciclo de vida, indicando en cada una el objetivo que
persigues y cmo lo haras.

El modelo de ciclo de vida elegido ser en cascada con retroalimentacin puesto que los
requisitos de la aplicacin estn claros y el proyecto es rgido (pocos cambios, poco evolutivo).
Con este mtodo, si es necesario se puede volver atrs en cualquier momento y corregir,
modificar o depurar aspectos necesarios.
Otra opcin, un poco ms compleja, sera aplicar como ciclo de vida, el modelo iterativo
incremental. ste est basado en el modelo en cascada con realimentacin, donde las fases se
repiten y refinan, y van propagando su mejora a las fases siguientes.
Una de las especificaciones del cliente es que desea utilizar software libre. Teniendo en cuenta
que cualquier cdigo fuente, debe de presentar caractersticas como modularidad, correccin,
fcil de leer, eficiencia y portabilidad, una buena eleccin es usar como lenguaje de
programacin Java, que adems de facilitar la consecucin de las caractersticas anteriormente
expuestas se trata de un software libre y permite programacin orientada a objetos, que nos

dar la suficiente libertad para poder crear una aplicacin lo bastante amplia para abarcar
cualquier requerimiento solicitado por el cliente.
Al tratarse un lenguaje ampliamente difundido, tambin dispone de una amplia gama de
libreras que puede facilitar mucho nuestro trabajo.
Como entorno de desarrollo se puede usar NetBeans ya que es una herramienta consolidada
en el mercado.

Anlisis de Requisitos del Sistema:


Como requisitos funcionales (funciones que tendr que realizar la aplicacin) tenemos los
siguientes:
Proporcionar facturas de las ventas.
Llevar la cuenta de lo que vende cada trabajador.
Controlar el stock de productos en almacn.
Operar con lector de cdigo de barras y tarjetas de crdito.
Controlar los precios de los productos y ofrecer la posibilidad de operar con ellos.
Almacenar los datos de los empleados (trabajadores):
o
DNI
o
Nombre
o
Apellidos
o
N Seguridad Social
o
Fecha de nacimiento
o
Telfono
o
Localidad
Almacenar informacin de los productos:
o
Cdigo
o
Marca
o
Nombre comercial
o
Precio
o
Cantidad
Como requisitos no funcionales:
El tiempo de respuesta de la aplicacin ha de ser lo menor posible.
No se podrn procesar dos peticiones a la vez, aunque haya varios equipos
funcionando simultneamente.

Se planificar una serie de reuniones con el cliente para evitar requisitos mal planteados o que
se produzcan contradicciones.
Se le puede sugerir una serie de mejoras, que incluyan por ejemplo, incluir los datos de los
clientes para facilitar el sistema de facturacin.
Puesto que el cliente especifica que se quiere controlar el stock, se aadir un campo para
controlar el stock mnimo de un producto y que de una alerta para un mejor control por parte
del usuario final.

Diseo:
En esta etapa vamos a dividir el sistema en partes y a determinar la funcin de cada una
de ellas. Debemos determinar que har exactamente cada parte, para ello debemos
crear un modelo funcional-estructural de los requerimiento del sistema global y poder as
dividirlo y afrontar las distintas pares por separado.
Nos creamos un pequeo esquema indicativo de los distintos requerimientos solicitados
ampliado segn nuestras sugerencias:

Ventas
empleado
Cliente

Factura

Stock

Java

Descripci
n
Producto

Lector
cdigo de
barras
Tarjeta de
Crdito

Precio
Empleado

Basndonos en el esquema, se divide el sistema en partes, determinando la funcin que


llevar a cabo cada una de ellas.
Crearemos una base de datos con SQL para poderla utilizar con Java.
Tenemos dos entidades ya definidas con claridad como son Empleados y Productos.
Tendramos que crear otras como son Ventas con la que podramos obtener los productos
vendidos, las facturas a emitir, los empleados que han realizado la venta, etc.
Factura en la que se grabar toda la informacin individual de cada producto vendido, y
Cliente para poder identificar a quin se le realiza la venta e ir controlando los pedidos
realizados.
Gestin de Empleados.
Debe de realizar todas las acciones relacionadas con la gestin de los productos (alta, baja,
modificacin, consulta). La informacin de los productos se guardar en una tabla de la base
de datos con los siguientes campos:
idEmpleado, nif, nombre, apellidos, numSeguridadSocial, fechaNacimiento, telefono, localidad,
idVenta.

Gestin de Productos.
Debe de realizar todas las acciones relacionadas con la gestin de los productos (alta, baja,
modificacin, consulta). La informacin de los productos se guardar en una tabla de la base
de datos con los siguientes campos:
idProducto, nombre, descripcion, marca, precioCompra, precioVenta, stockMinimo, cantidad.
Gestin de Clientes.
Debe de realizar todas las acciones relacionadas con la gestin de los clientes (alta, baja,
modificacin, consulta). La informacin de los clientes se guardar en una tabla de la base de
datos con los siguientes campos:
idCliente, nif, nombre, apellidos, direccion, telefono.
Gestin de Ventas.
Debe de realizar todas las acciones relacionadas con la gestin de los pedidos (alta, baja,
modificacin, consulta). La informacin de los pedidos se guardar en una tabla de la base de
datos con los siguientes campos:
idVenta, idCliente, fecha, idEmpleado, importeTotal, cobrada.
Gestin de Facturas.
Debe de realizar todas las acciones relacionadas con la gestin de los pedidos (alta, baja,
modificacin, consulta). La informacin de los pedidos se guardar en una tabla de la base de
datos con los siguientes campos:
idFactura, idVenta, cantidad, idProducto, precio, descuento, formaPago.

Empleado

Cliente

Venta

Producto

Factura

Codificacin:
Para facilitar la futura expansin de la empresa se optar por usar un lenguaje de
programacin multiplataforma como ya se mencion al principio del documento. Como
sistema gestor de base de datos, se puede usar Microsoft SQL Server 2014 Express, puesto
que se puede descargar de forma gratuita. Es un software potente, robusto y estable, que
cubre las necesidades del cliente, sin aumentar los costos.
Se procede a la creacin de la aplicacin utilizando el lenguaje Java y con el entorno de
desarrollo JDeveloper, que se usar para el diseo de la base de datos, sus tablas, relaciones, y
toda la aplicacin en general, obteniendo los ficheros objeto en esta fase de codificacin.

Pruebas:
La realizacin de pruebas es imprescindible para asegurar la validacin y verificacin del
software construido. En esta etapa se prueban los programas para detectar errores y se
depuran.
El fichero objeto se usa para realizar las pruebas unitarias mediate JUnit que es el entorno de
pruebas para Java.
Una vez realizada con xito las pruebas unitarias, realizaremos las pruebas de integracin.
Comprobaremos el funcionamiento de todo el sistema con todas sus partes interrelacionadas,
para lo cual contactaremos con el cliente con el fin de poder implementar en sus equipos una
versin Beta que nos permita probar su desarrollo en el entorno donde se implantar
definitivamente.
El perodo de prueba ser pactado con el cliente.

Documentacin:
Todas las etapas en el desarrollo de software deben quedar perfectamente documentadas.
Es necesario dar toda la informacin a los usuarios del software que hemos desarrollado y
poder acometer futuras revisiones del proyecto.
Se debe de ir documentando el proyecto en todas las fases del mismo, para pasar de
una a otra de una forma clara y definida. De esta forma crearemos los siguientes documentos:
Gua tcnica.
El objetivo es facilitar un correcto desarrollo, realizar correcciones en los programas y permitir
un mantenimiento futuro. Se especificar el diseo de la aplicacin, la codificacin de los
programas y las pruebas realizadas. Ir dirigido al personal tcnico en informtica (analistas y
programadores).
Gua de uso.
Con este documento buscamos dar a los usuarios finales toda la informacin necesaria para
utilizar la aplicacin. Contendr la descripcin de la funcionalidad de la aplicacin, la forma de
comenzar a ejecutarla, ejemplos de uso del programa, los requerimientos software de la
aplicacin y la solucin de los posibles problemas que se pueden presentar.
Este documento ir dirigido a los usuarios que van a usar la aplicacin (clientes).
Gua de instalacin.
A travs de este documento se pretende dar toda la informacin necesaria para garantizar que
la implantacin de la aplicacin se realice de forma segura, confiable y precisa. Contendr toda
la informacin necesaria para poner en marcha la aplicacin, para su explotacin y para
mantener la seguridad del sistema.
Este documento estar dirigido al personal informtico responsable de la instalacin, en
colaboracin con los usuarios que van a usar la aplicacin (clientes).

Explotacin:
La fase de explotacin es la fase en la que los usuarios finales conocen la aplicacin y
comienzan a utilizarla.
Durante esta fase, se instalar la aplicacin, se realizar la puesta a punto y se comprobar el
funcionamiento de la aplicacin en el equipo final del cliente. Los programas sern transferidos
al computador del usuario cliente y se configurarn y verificarn. Haremos que los futuros
clientes estn presentes en el proceso de instalacin y le iremos comentando el proceso.
En este momento, llevaremos a cabo las Beta Test, que son las ltimas pruebas que se realizan
en los propios equipos del cliente y bajo cargas normales de trabajo.
Una vez instalada la aplicacin, pasaremos a la fase de configuracin. En ella, asignaremos los
parmetros de funcionamiento normal y probaremos que la aplicacin es operativa.

Mantenimiento:
La etapa de mantenimiento es la ms larga de todo el ciclo de vida del software. ste es
cambiante y deber actualizarse y evolucionar con el tiempo. Deber ir adaptndose de forma
paralela a las mejoras del hardware en el mercado y afrontar situaciones nuevas que no
existan cuando el software se construy.
Por otro lado, siempre surgen errores que habr que ir corrigiendo y nuevas versiones
mejoradas del producto.
Por ello, se pactar con el cliente un servicio de mantenimiento de la aplicacin. Este servicio,
tendr un coste temporal y econmico.
Durante este proceso se realizar el control, mejora y optimizacin del software.
Tambin tendremos en cuenta aspectos como nuevas necesidades del cliente, adaptaciones a
nuevas tendencias del mercado o nuevos componentes software y la correccin de posible
errores futuros.
Le ofreceremos al cliente un precio por un mantenimiento perfectivo (que mejorar su
funcionalidad), evolutivo (modificaciones o expansiones para futuras nuevas necesidades),
adaptativo (modificaciones o actualizaciones que se adapten a las nuevas tendencias del
mercado o nuevos componentes hardware) y correctivos (para errores que pueda tener la
aplicacin en el futuro).

You might also like