Plantea el diseño y determina el modelo de ciclo de vida más idóneo para esta aplicación.
Enviado por aikrum • 10 de Noviembre de 2015 • Trabajo • 1.723 Palabras (7 Páginas) • 826 Visitas
- 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.
La empresa en cuestión nos presenta un pliego de requisitos rígido y bien definido, pero no tenemos información sobre posibles plazos de entrega de versiones parciales o totalmente funcionales, sumado a que los requisitos pueden variar en función de la experiencia de manejo de las versiones presentadas, por aparición de nuevas tecnologías aplicables al proyecto, por adaptación a nuevas necesidades en la empresa o simplemente porque no se tuvieron en cuenta en un primer momento, considero que lo más lógico es aplicar un ciclo de vida basado en el modelo evolutivo iterativo incremental. De este modo iremos presentando a la empresa sucesivas versiones parciales que irán siendo probadas y mejoradas a través de un feedback continuo con los usuarios finales.
- Análisis:
Lo principal es comenzar haciendo la distinción entre los requisitos funcionales y los no funcionales sintetizando en cada caso.
- Funcionales:
Aquí podemos distinguir 3 apartados fundamentales para la gestión de soluciones a los requisitos planteados, convenientemente diferenciados pero con una estrecha relación funcional entre ellos. Se trata de la gestión de personal, almacén y ventas a los que llamaremos respectivamente STAFF, STOCK y SALES.
STAFF: Aquí tratamos de enmarcar los módulos que serán necesarios para el manejo de todos los datos y acciones relacionadas con la gestión del personal de la empresa. Pretende por tanto dar solución a los requisitos de “llevar la cuenta de lo que vende cada trabajador” y “almacenar información de sus trabajadores”.
El primero de ellos estará estrechamente ligado a la gestión de ventas. El segundo se sustentará en una base de datos que almacene la información requerida por la empresa solicitante.
STOCK: Aquí enmarcamos los módulos relacionados con la gestión de productos almacenados y sus atributos correspondientes y por lo tanto responderá a las necesidades iniciales de “controlar el stock de productos en almacén” y “guardar información de los productos almacenados”.
En el primer caso estará ligado al apartado de gestión de ventas que realizara las modificaciones necesarias por la venta o devolución de cada producto y en el segundo caso volvemos a generar una base de datos que almacene la información requerida.
SALES: En este apartado vamos a generar los módulos encargados de gestionar las ventas de los productos. Responderá a los requisitos de “operar con lector de código de barras y tarjetas de crédito” y “proporcionar facturas de las ventas”
- No funcionales:
En este apartado vamos a tener en cuenta los aspectos no funcionales del análisis en el que claramente podemos identificar un primer requisito aportado por la empresa en el que se nos pide expresamente la utilización de software libre.
Además de forma implícita por el tipo de datos que vamos a manejar debemos tener en cuenta el cumplimiento de la ley de datos para el manejo de datos de carácter personal así como facturación.
También debemos añadir un acceso concurrente a los datos para por ejemplo evitar transacciones duplicadas sobre un mismo producto.
Por último se nos solicita que el tiempo de respuesta de la aplicación sea lo menor posible.
2.2 Diseño:
Para la realización del diseño vamos a implementar una serie de módulos que nos facilitaran la gestión de las operaciones requeridas, así pues y aprovechando las entidades definidas en la fase de análisis, crearemos 3 módulos principales llamados STAFF, STOCK y SALES cuyas funciones irán definidas posteriormente.
- Inicialmente vamos a crear un primer módulo de CONTROL que se encargará de supervisar la comunicación de datos y operaciones entre módulos, que asegure el acceso concurrente en las transacciones y que, aunque no venga definido en el pliego de requisitos, podría ser conveniente para la gestión del acceso a la aplicación mediante roles de usuario diferenciados (vendedor, supervisor, administrador) que tendrán acceso a datos y operaciones de forma adaptada en cada caso.
- El módulo STAFF contendrá la información necesaria requerida por la empresa: DNI, nombre, apellidos, número de la Seguridad Social, fecha de nacimiento, teléfono y localidad. Así como un contador que registre el número de ventas de cada uno de los empleados que será actualizado desde el módulo SALES.
- El módulo STOCK alberga una base de datos con los campos requeridos: código, marca, nombre comercial, precio y cantidad. Este último será actualizable desde el módulo SALES cada vez que haya una venta o devolución de producto. Además añadiremos un campo a la base de datos donde se almacenará el código de barras del producto que será también utilizado desde el módulo de ventas.
- El módulo SALES será el encargado de gestionar las operaciones de venta y devolución de productos, generando en su caso la factura de venta correspondiente. Solicitará el código de vendedor para el acceso exclusivo a las bases de datos bloqueando dicho acceso al resto de vendedores hasta finalizar la transacción. Gestionará el lector de códigos de barras haciendo las consultas y actualizaciones necesarias en las bases de datos de STAFF y STOCK para completar sus operaciones. También contará con un terminal TPV para el cobro mediante tarjeta bancaria.
- 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.
El lenguaje de programación que utilizaremos será Java atendiendo a las necesidades de uso de software libre, comenzando por la descomposición de los problemas en partes simples aplicando la filosofía del divide y vencerás, generamos algoritmos asociados a los módulos definidos en apartados anteriores cumpliendo con las premisas de portabilidad, eficiencia, legibilidad y modularidad.
Para la generación del código objeto nos beneficiaremos de la ayuda proporcionada por el entorno de desarrollo IDE Netbeans que nos facilitará la creación de la interfaz de usuario, la gestión de almacenamiento, etc… además podemos usar frameworks de Java como Swing para la interfaz gráfica de usuario o Spring que nos puede venir bien para tareas relacionadas con la autenticación o la gestión de las transacciones.
...