ENTREGABLE 1 Alumno: Eduardo Alfonso Castro Nava Cuenta: 18046565 Asignatura: Ingeniería de Requerimientos Cuatrimestre: 8º Fecha: 08 de marzo 2020 INTRODUCCIÓN Un área importante en la Ingeniería de Software es la Ingeniería de Requerimientos, esta permite determinar las características y funcionalidades del sistema a la ingeniería de software y proporciona información de las consecuencias del descuido de los requerimientos donde encontramos: retrasos en el cronograma y costo extra, defectos en el software y que la entrega de un software, no satisface las necesidades del cliente. El siguiente ejemplo nos permitirá detectar y utilizar, diferentes técnicas para la recolección de información de los requerimientos del usuario, producto, sistema, para resolver algunos de los problemas que presenta, los cuales serán explicados para comprender sus características y utilidad para el análisis de requerimientos. Ejercicio 1 Se necesita desarrollar un producto de software para preparar entregas a clientes. En una Base de Datos de un servidor conectado a una red están registrados los Pedidos de los Clientes y se dispone también de la información de los artículos que hay en existencia. Un proceso por lotes debe identificar diariamente de forma automática todos los Pedidos para los que hay disponibilidad como para cumplir las entregas, con el criterio de atender primero los Pedidos de mayor prioridad. La prioridad está determinada por una escala de 10 valores. A igual valor de prioridad se atienden primero los Pedidos más antiguos. El proceso emite un listado con los Pedidos en condiciones de cumplirse total o parcialmente, con los datos: nro. Pedido, Fecha Pedido, Hora Pedido, Id. Cliente, Nombre Cliente, Dirección Cliente, Fecha del Día, Hora (Id. Producto, Descripción Producto, Cantidad Pedido, Cantidad ya Entregada, Cantidad a Entregar, Ubicación) y un listado adicional con los Pedidos que tienen más de 24 horas y que no pueden cumplirse. El operario puede cambiar las prioridades de los Pedidos. El encargado de preparar los envíos va tildando las líneas ya apartadas. Excepcionalmente sucede que no hay existencia física como para cumplir un envío debido a una discrepancia entre la existencia registrada en el sistema con la real. En ese caso el encargado anota en el listado la cantidad efectivamente apartada. El operador puede revisar por pantalla los pedidos que tenía para cumplir y marcarlos como entregados. Si la cantidad apartada no coincidiera con la Cantidad a Entregar del listado, el operario puede corregir la Cantidad a Entregar. Al marcar un Pedido como entregado, el producto pasa un mensaje al sistema de control de existencia para que la actualice, y emite una factura con los datos: Nro. Factura, Fecha de Factura, Id. Cliente, Nombre Cliente, Dirección Cliente, RUC Cliente (Id. Producto, Descripción Producto, Cantidad Factura, Precio Unitario, Importe) Subtotal, Importe IVA, Importe Factura, y deja registrados esos mismos datos en la Base para poder controlar a posteriori el pago y alimentar la contabilidad. Actividades a realizar: a. Clasificar los requerimientos para este ejercicio en: Funcionales y No Funcionales. b. Piense (inventar) para este ejercicio 1, requerimientos no funcionales del tipo: 1. Del producto 2. De la organización 3. Externos Actividad. A. Análisis de Requerimientos: Se procede a determinar los requerimientos Funcionales y No Funcionales del sistema a partir de los cuales, se hace una clasificación de las necesidades. Requisitos funcionales Especifican lo que debe hacer o los servicios que debe proporcionar el sistema. Existe la opción de declarar explícitamente lo que el sistema no debe hacer. Para el particular caso, se observa que el sistema debe proporcionar automáticamente la información de clientes y los pedidos, que se estén dentro de la Base de Datos, la información se debe encontrar actualizada, y que este actualizada con la información del almacén de la bodega, y que se pueda entregar a los clientes. También que el sistema pueda dar la información en un corto periodo de tiempo, para que, al hacer la búsqueda, despliegue la información que se solicita, y poder generar él envió a los clientes. Observamos que no está funcionando correctamente, por lo que los empleados están realizando el trabajo de forma manual, coordinando los pedidos de la mercancía y haciendo los envíos a los clientes; demostrando que el sistema tenga deficiencias y tiene fallas para manejar la información de forma automatizada, por lo que está causando retrasos en las operaciones de la empresa, ya que no se pueden toda la información en la Base de Datos y que pueda mostrar la información correctamente, y que permita facilitar de una forma más Ágil, el trabajo de pedidos y envío de mercancía. Aquí se observa que el modelo relacional de la Base de Datos está fallando. Y que la respuesta del sistema no es confiable, porque arroja información errónea y que tiene fallas en la relación de los registros actuales y que no utilice claves, que permitan hacer una búsqueda de la información, y que facilite a los empleados trabajar eficientemente dentro del inventario de mercancía que existe en bodega y poder programar eficientemente las entregas. Determinaremos los siguientes requerimientos de sistema: Orden de Compra: el sistema debe recibir y guardar la cantidad de mercancía que se recibe, por orden de pedido y que se encuentre registrado en el sistema por los empleados de Bodega. Solicitud de Pedido: El sistema debe generar una solicitud de pedido, que incluya. cantidad de mercancía del pedido, datos del producto, datos del cliente, y datos de envío. Comparación con Inventario en Bodega: El sistema hace un mach de la cantidad del pedido contra la cantidad existente en bodega, posteriormente, se genera un reporte de la cantidad de mercancía faltante en bodega, con sesto se podrá tener un mejor control de la existencia de mercancía y si es necesario generar una nueva solicitud de nueva mercancía. Reporte y generación de solicitud pedido: El sistema, generara un reporte y realizara un pedido, después de comparar la solicitud del pedido con el inventario en bodega. Realizar Factura: El sistema genera la factura con la cantidad solicitada de la mercancía, precio unitario y total del valor del pedido. Pago de Factura: El sistema, compara el pago ingresado en la Base de Datos con el valor a pagar de la factura, posteriormente, si el cliente tiene nota de crédito, el sistema asignará un determinado plazo de pago para el cliente. Reporte de Envío de Pedido: El sistema genera un reporte donde se reporta que esta todo correcto y liquidado, para poder enviar el pedido. Requerimientos No Funcionales. Para este caso, obedece a la necesidad de interoperabilidad entre el sistema de software con el hardware, para que funcione correctamente, y las operaciones de la empresa puedan realizarse rápida y eficientemente, para brindar un servicio de entrega de mercancía en tiempo y forma a los clientes. Procederemos a hacer la siguiente clasificación de requerimientos para este caso. Requerimientos del Producto: Se requiere de un sistema que permita una rápida respuesta en corto tiempo, para una realización eficiente de operaciones de la empresa, alto rendimiento, alta capacidad de almacenamiento y que sea de alta fiabilidad y que no presente fallos de operación para que el sistema siempre este arriba funcionando 24/7. Bajo Mantenimiento: Sea proactivo en evitar tiempos de inactividad no programados, y que permita planificar los mantenimientos cuando sean necesarios basándose en análisis de los datos de condición del activo. Confiabilidad del Sistema: Que el sistema esté libre de prueba de fallas, que permita resolver errores, restaurar datos, y reiniciar el funcionamiento en caso de fallos. Usabilidad del Sistema: debe ser amigable con el usuario, que permita el ingrese de datos como las órdenes de compra, envíos de pedidos, inventarios, facturas, y generación de reportes. Eficiencia del Sistema: Debe poderse ejecutar en diferentes entornos, como Windows, Linux, etc. (Multiplataforma). Así como ser capaz de guardar los datos de diferentes motores de bases de datos. Ayuda y documentación en línea. El sistema tendrá un manual de ayuda disponible que permitirá aclarar dudas respecto al funcionamiento del mismo. Requerimientos de la Organización: Observamos que la organización cuenta con un sistema de información de gestión administrativa que sirve de soporte en las diferentes actividades que se realizan diariamente en los diferentes departamentos como el área de ventas, en bodega con inventarios y el área de contabilidad. Este sistema de información que se cuenta en la organización, funciona mediante una Base de Datos, donde se toman los datos de clientes, almacén y ventas, y que se va transformando en información y que va generando los reportes para que los empleados puedan realizar las operaciones de envíos de mercancía a los clientes, con lo que va funcionando un esquema de datos, procesamiento y de información. La observación de este funcionamiento dentro de las operaciones del sistema de información de la organización, nos permite determinar que el sistema tiene problemas que hacen que el proceso inicia en la generación de una orden de compra, que especifica la cantidad de mercancía solicitada por el cliente, costo y tipo de mercancía. Vemos que el procedimiento se realiza mediante la solicitud del pedido, que lo lleva el Departamento de Ventas, la Gestión de Inventarios, y el Departamento de Producción que determina la cantidad de mercancía a producir, por otro lado, tenemos al Departamento de Finanzas quien es el que genera la facturación por lo que el sistema, realiza una comparación de los tres departamentos de la organización, y que permite verificar antes de enviar el pedido, y que valida las cantidades de mercancía registradas en la Orden de Compra y que estas concuerden con las cantidades que aparecen en la Orden de Compra, así como en la Factura. Obtención y Análisis de Requerimientos Los propósitos son los siguientes: Dominio de Aplicación: el analista estudia la comprensión del dominio de la aplicación Requerimientos: en esta fase se interactúa con los stakeholders, o personas involucradas en las operaciones de la organización, “Los stakeholders desempeñan un papel clave en la Elicitación, especificación y validación de los requerimientos de software” (P. Loucopoulos & V. Karakostas 1995). Clasificación: en esta etapa los requerimientos se organizan por grupos Prioridad: Se ordenan según las prioridades los requerimientos, y a encontrar y resolver los requerimientos en conflicto a través de la negociación. Verificación: Se analiza la consistencia y totalidad de los requerimientos. Diagrama de obtención y análisis de requerimientos. Esto implica verificar que los requerimientos sean consistentes y que estén completos. (2011) Sánchez, S. Proceso de Obtención y Análisis de Requerimientos. Etnografía. Para este caso la Etnografía, nos permite solucionar el problema, implica que se utilice la Técnica de Etnografía, donde se hace una observación de las operaciones de la organización, para entender los requerimientos del personal y de la organización. La Etnografía nos permite: Recabar información de primera mano, y observar comportamientos in situ y en tiempo real. Aprehender procesos y estrategias. Detectar y diagnosticar problemas. Proponer soluciones desde la organización, con la organización y hacia la organización. Innovación, cambio y adaptabilidad. Validación de Requerimientos Para ello, debemos de hacer una comprobación de la correspondencia entre las descripciones iniciales y si el modelo es capaz de responder al planteamiento inicial. Por lo que se realiza una comprobación del modelo obtenido responde de la misma forma deseada que la que el cliente pide, por un lado, y por otro a la inversa si otras respuestas del modelo convencen al cliente. Los parámetros para validación de requerimientos son: Validez: Permite preguntar a un usuario, se debe de entender que varios de los usuarios pueden tener puntos de vista distintos y necesitar otros requisitos. Consistencia: No debe haber contradicciones entre unos requisitos y otros. Información Completa: Se deben contar con todos los requisitos. Realismo: Se pueden implementar con la tecnología que actualmente se tiene. Verificabilidad: Tiene que existir alguna forma de comprobar que cada requisito se cumple. La validación de requerimientos es parte fundamental, ya que depende que no existan elevados costos de mantenimiento para el software a desarrollar. Prototipos Para validar los requerimientos hallados, se construyen prototipos. Los prototipos son las simulaciones del posible producto, y que luego son utilizados por el usuario, lo que permiten una retroalimentación del sistema diseñado con base a los requerimientos recolectados le permite al usuario realizar su trabajo de manera eficiente y efectiva. El desarrollo del prototipo comienza con la captura de requerimientos. Aquí participan los desarrolladores y clientes para definir los objetivos generales del software, aquí se van a identifican todos los requerimientos que son conocidos, y se muestran las áreas en las que será necesaria mayor profundidad en las definiciones. Luego se pasará a un “diseño rápido”. El diseño rápido se concentra en representar los aspectos del software que visualizara los usuarios. Entrevistas y cuestionarios Durante la entrevista, el analista platica con el encuestado; el cuestionario hace referencia a una serie de preguntas relacionadas con los diferentes aspectos de un sistema. Las personas encuestadas serán los usuarios de los sistemas existentes o personal que sea factible del sistema propuesto. Por lo regular, son los gerentes o empleados que proporcionaran los datos para el sistema. Aquí el éxito de esta que esta técnica rinde frutos, depende mucho de la habilidad del entrevistador y que esté preparado para la entrevista. Lluvia de Ideas La intención para la aplicación, es de generar la máxima cantidad posible de requerimientos para el sistema. La intención de este ejercicio es generar muchas ideas. Posteriormente, se van a ir eliminando en base a los criterios que se van encontrando. Debemos considera los siguientes puntos: Obtención de una cantidad mayor de ideas creativas. Se debe permitir la evolución de cada una de las ideas, ya que esto puede crear un ambiente hostil que no permita libremente la generación de ideas. No debemos descartar ninguna idea por más absurda que suene, porque luego de razonarlas a detalle, puede que se vuelva en un requerimiento sumamente útil. Escribirlas sin censura. 1. Realizar un Mapa conceptual detallado de las Técnicas de Recolección de Requerimientos. Conclusiones El presente trabajo nos permite ver las técnicas, métodos y herramientas que pudieran ser aplicados durante el proceso de definición de requerimientos para el caso en particular y que podamos ser exitosos en la etapa de diseño y poder evitar cometer errores en la definición de los requerimientos, estos pueden muy caros al momento de corregir una vez desarrollado el sistema. El proceso de la Ingeniería de Requerimientos nos sirve para recopilar la información necesaria para establecer la funcionalidad que se quiere alcanzar con el sistema. Por lo que se requiere contar con buenos métodos y técnicas para hacerlo, y una buena comunicación constante con el cliente, ya que los requerimientos deben reflejar las necesidades reales que el cliente quiere satisfacer. La administración de requerimientos es fundamental en todo proyecto de desarrollo de software, esta debe de contar con especificaciones claras y completas, desde las fases iniciales para que no tengamos problemas posteriores ya que esto puede significar un retraso en nuestro cronograma, un presupuesto erróneo, o la posible cancelación del proyecto. Lo que me deja como aprendizaje sobre este ejercicio, es que aporta la utilización de técnicas como la especificación, la lluvia de ideas y el desarrollo de prototipos, que ayudan a definir requerimientos de una manera concisa y real. Referencias Castañeda, F. (2015). Ingeniería de Requerimientos. Ingeniería de Software Ian Sommerville. 6ª Edición. Capítulo 6. Recuperado de: https://www.uv.mx/personal/fcastaneda/files/2015/08/G_Capitulo_6_Ingenieria_de_Requerimien tos.pdf Pressman, Roger S. 2006, “Ingeniería del Software: Un enfoque práctico”, Sexta edición, México DF, Editorial McGraw Hill. [Archivo PDF] Recuperado de: http://cotana.informatica.edu.bo/downloads/ldIngenieria.de.software.enfoque.practico.7ed.Pressman.PDF Jiménez, C. (24 abril 2011). Validación de Requerimientos. [Archivo PDF]. Recuperado de: https://cjimenez13requerimientos.files.wordpress.com/2014/09/validacion-de-requerimientos.pdf Arias, C.M. (26 julio 2007). La ingeniería de requerimientos y su importancia en el desarrollo de proyectos de software. [Archivo en PDF]. Recuperado de: file:///C:/Users/eduar/Downloads/790Texto%20del%20art%C3%ADculo-1199-1-10-20120810.pdf Ortiz, K.H. (2009). PLATAFORMA PARA EL CONTROL DEL USO DE SOFTWARES EDUCATIVOS. [Archivo PDF]. Recuperado de: http://www.eumed.net/librosgratis/2009c/583/Requerimientos%20no%20Funcionales.htm Morales, I.S. (23 noviembre 2017) Etnografía Organizacional. Recuperado https://es.slideshare.net/SergioRodrigoMorales/etnografa-organizacional-82615122 de: