Analisis de Grupo
REQUERIMIENTOS DE SOFTWARE
Desarrollar un software significa construirlo simplemente mediante su descripción. Está es una muy buena razón para considerar la actividad de desarrollo de software como una ingeniería. En un nivel más general, la relación existente entre un software y su entorno es clara ya que el software es introducido en el mundo de modo de provocar ciertos efectos en el mismo
La Ingeniería de Requerimientos cumple un papel primordial en el proceso de producción de software, ya que se enfoca un área fundamental, la definición de lo que se desea producir. Su principal tarea consiste en la generación de especificaciones correctas que describan con claridad, sin ambigüedades, en forma consistente y compacta, las necesidades de los usuarios o clientes, de esta manera, se pretende minimizar los problemas relacionados por la mala gestión de los requerimientos en el desarrollo de sistemas.
REQUERIMIENTOS Ó REQUISITOS DE SOFTWARE
En la informática hay ciertos términos que mesclamos sin saber su significado preciso, un ejemplo claro de eso son estas dos palabras Requerimientos y Requisitos, es necesario saber a ciencia cierta el significado de cada termino y en qué contexto lo podríamos usar.
¿Qué es un requerimiento?
La definición según los diccionarios en general de requerimiento es “Acción y efecto de requerir, intimar o avisar.” Y requerir significa solicitar algo “Intimar a uno o hacerle saber una cosa con autoridad pública” de allí podemos concluir que un requerimiento son las peticiones y descripciones que hace un usuario sobre lo que espera de un software ya sea para crearlo o para mejorarlo. ¿Qué es un requisito?
Según los diccionarios en general definen requisitos como “Circunstancia o condición necesaria para una cosa.” Por lo tanto un requisito son las especificaciones que se deben efectuar para cumplir con un requerimiento.
Para logra a salir de dudas es necesario que lo ejemplifiquemos. Pensemos en un usuario que necesita un programa que gestione el control de entrada y salida de dinero de su empresa. Esta petición como tal (el programa que pide el usuario) es el requerimiento, y este origina la necesidad de que se cumplan con una serie de requisitos para cumplir con lo requerido lo cual sería contar con un lenguaje de programación, una base de datos con ciertas características especificas, un sistema operativo, una computadora, etc.
Se pueden usar ambas palabras siempre tomando en cuenta a que nos referimos si nos referimos a las peticiones, es decir a lo que quiere el cliente hablaríamos de requerimientos y si hablamos de lo que se necesita para cumplir las peticiones del usuario nos referiríamos a los requisitos
IMPORTANCIA DE LA INGENIERIA DE REQUISITOS EN LA PRÁCTICA
En el proceso de producción de software, su principal tarea consiste en la generación de especificaciones correctas que describan con claridad, sin ambigüedades, en forma consistente y compacta, las necesidades de los usuarios o clientes; de esta manera, se pretende minimizar los problemas relacionados por la mala gestión de los requerimientos en el desarrollo de sistemas., ya que se enfoca un área fundamental. La RI, permite gestionar las necesidades del proyecto en forma estructurada con una serie de pasos organizados y bien definidos., a través de la Ingeniería de requisitos se puede visualizar mediante un cronograma de proyectos los resultado a obtener, este nos proporciona un punto de partida con controladores de subsecuentes y actividades de mantenimiento como estimación de costos, tiempo y recursos necesarios. Nos ayuda a disminuir los costos, de manera que, corregir un error, que no se detecta a tiempo por no haber aplicado las técnicas correspondientes e indagaciones necesarias, así como también la negatividad al cambio por parte de los usuarios o clientes, conllevan a errores que a la larga son sumamente costosos la reparación de ellos una vez desarrollado el sistema.
Mejora la calidad del software, ya que cumple con los requerimientos básicos de un sistema como la funcionabilidad, facilidad de uso, confiabilidad y desempeño, así como también mejora la comunicación entre desarrolladores y cliente, basado en un consenso entre sí, el cual deberá realizarse por escrito, con todas las especificaciones que requiera; porque si no existe, el proyecto será un fracaso. Evita el rechazo de usuarios finales, ya que obliga al cliente a que considere sus requerimientos cuidadosamente y revisarlo dentro del marco del problema, para sí involucrarlo durante el desarrollo del proyecto.
LEVANTAMIENTO Y RECOLECCION DE REQUERIMIENTOS
Existen varias técnicas para la ingeniería de requisitos, estas técnicas pueden ser aplicables a las distintas fases del proceso de la IR, haciendo la salvedad de que hay que tomar en cuenta las características propias del proyecto en particular que se esté desarrollándose para aprovechar al máximo su utilidad. Estas técnicas son:
- Entrevistas y Cuestionarios
Las entrevistas y cuestionarios se emplean para reunir información proveniente de personas o de grupos.
Durante ella se conversa con el encuestado; donde se le hace una serie de preguntas relacionadas con varios aspectos de un sistema.
Por lo general, los encuestados son usuarios de los sistemas existentes o usuarios en potencia del sistema propuesto. En algunos casos, son gerentes o empleados que proporcionan datos para el sistema propuesto.
Esta técnica consiste en analizar distintos sistemas ya desarrollados que estén relacionados con el sistema a ser construido. Por un lado, podemos analizar las interfases de usuario, observando el tipo de información que se maneja y cómo es manejada, por otro lado también es útil analizar las distintas salidas que los sistemas producen (listados, consultas, etc.), porque siempre pueden surgir nuevas ideas
Este es un modelo que se usa para generar ideas. La intención en su aplicación es la de generar la máxima cantidad posible de requerimientos para el sistema. No hay que detenerse en pensar si la idea es o no del todo utilizable. La intención de este ejercicio es generar, en una primera instancia, muchas ideas.
Durante la actividad de extracción de requerimientos, puede ocurrir que algunos requerimientos no estén demasiado claros o que no se esté muy seguro de haber entendido correctamente los requerimientos obtenidos hasta el momento, todo lo cual puede llevar a un desarrollo no eficaz del sistema final.
Entonces, para validar los requerimientos hallados, se construyen prototipos. Estos son simulaciones del posible producto, que luego son utilizados por el usuario final, permitiéndonos conseguir una importante retroalimentación en cuanto a, si el sistema diseñado con base a los requerimientos recolectados le permite al usuario realizar su trabajo de manera eficiente y efectiva. Desarrolladores y clientes se reúnen y definen los objetivos globales del software, identifican todos los requerimientos que son conocidos, y señalan áreas en las que será necesaria la profundización en las definiciones. Luego de esto, tiene lugar un “diseño rápido”. El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles al usuario (por ejemplo, entradas y formatos de las salidas). El diseño rápido lleva a la construcción de un prototipo.
Son técnicas para especificar el comportamiento de un sistema, estos permiten describir la posible secuencia de interacciones entre el sistema y uno o más actores, en respuesta a un estímulo inicial proveniente de un actor, es una descripción de un conjunto de escenarios, cada uno de ellos comenzado con un evento inicial desde un actor hacia el sistema. La mayoría de los requerimientos funcionales, se pueden expresar con casos de uso. Actualmente, se ha convertido en una característica fundamental de la notación UML (Lenguaje de modelado unificado), que se utiliza para describir modelos de sistemas orientados a objetos.
TECNICAS MAS USADAS: METODO JAD
Entre las técnicas más usadas son la del Método JAD, que en español significa (Desarrollo Conjunto de Aplicaciones), es una técnica exploratoria popular que incluye a los usuarios como participantes activos en el proceso de desarrollo.
El proceso de JAD se basa en cuatro ideas simples:
1. La gente que hace un trabajo, tiene la mejor comprensión de ese trabajo.
2. La gente entrenada en Tecnologías de la Información tiene la mejor comprensión de las posibilidades de esas tecnologías.
3. Los sistemas de información y los procesos del negocio raramente existen en forma aislada, trascienden los límites de cualquier sistema u oficina y afectan el trabajo en departamentos relacionados. La gente que trabaja en estas áreas relacionadas tiene una percepción valiosa del papel del sistema dentro de una comunidad más amplia.
Los mejores sistemas de información se diseñan cuando todos estos grupos trabajan juntos en un proyecto como socios iguales.