Ingeniería De Requisitos
aniboware11 de Marzo de 2014
2.431 Palabras (10 Páginas)406 Visitas
Introducción
La Ingeniería de Software, conjunto de metodologías y procesos de ingeniería para la planeación, construcción y mantenimiento de productos software. Uno de esos procesos es la Ingeniería de Requisitos: hace alusión al proceso de recopilar, analizar y verificar las necesidades del cliente para un sistema de software.
En el presente documento de investigación, se presentan: conceptos, actividades, herramientas, importancia y factores claves que definen la Ingeniería de Requisitos. Como proceso inicial y que representa la base para la creación y mantenimiento de todo producto software, representa una actividad que necesita de altos niveles de conocimiento, esfuerzo, dedicación y sobre todo comunicación y todo con el fin de prevenir el mejor alcance del producto a construir.
La Ingeniería de Requisitos
¿Qué es?
“Un requerimiento es un servicio que el sistema de software debe satisfacer o una restricción bajo la cual el sistema debe operar” [Sommerville 2002]
La meta de la ingeniería de Requisitos es entregar una especificación de Requisitos de software correcta y completa. La ingeniería de Requisitos apunta amejorar la forma en que comprendemos y definimos sistemas de softwarecomplejos.
A diferencia dellenguaje formal quepermite a los desarrolladoresy diseñadores decierta libertad, la lengua natural delos requisitos de softwaredebeser exacta, sin ambigüedades, y precisaporque laespecificación de diseño, declaración de trabajo, yotros documentos del proyectoson las que impulsanel desarrollodel producto final. Eseproducto finaldebe ser probado yvalidado conel diseñoy los requisitosoriginales.Especificación del lenguajeque permite lainterpretación de losrequisitos claveno va a cederun producto finalsatisfactorio yprobablemente conducirá acostos excesivos, horarios extendidosyplazos incumplidosentregables.
Actualmente se centra una discusión entre el uso de los términos “Requisitos” y “Requerimientos” (ver Referencia 1) que aunque se pueden entender por lo mismo, existe una diferenciación muy presente en la literatura de la materia que es necesario analizar. La misma define los conceptos de la siguiente manera:
Requerimiento: son todas las necesidades y deseos pedidos por el cliente y las personas involucradas en el software
Requisito: todas las funcionalidades, características y restricciones que debería tener el software
Si bien esta diferenciación es muy interesante por su riqueza, de todas formas sería un error hablar de Requisitos dentro de las tareas contempladas en el estándar IEEE 830-1998, que apunta de forma precisa a la especificación de requisitos de software.
Características de los requisitos
Las características de un requerimiento son sus propiedades principales. Un conjunto de requisitos en estado de madurez, deben presentar una serie de características tanto individualmente como en grupo. A continuación se presentan las más importantes:
Necesario: Un requerimiento es necesario si su omisión provoca una deficiencia en el sistema a construir, y además su capacidad, características físicas o factor de calidad no pueden ser reemplazados por otras capacidades del producto o del proceso.
Conciso: Un requerimiento es conciso si es fácil de leer y entender. Su redacción debe ser simple y clara para aquellos que vayan a consultarlo en un futuro.
Completo: Un requerimiento está completo si no necesita ampliar detalles en su redacción, es decir, si se proporciona la información suficiente para su comprensión.
Consistente: Un requerimiento es consistente si no es contradictorio con otro requerimiento.
No ambiguo: Un requerimiento no es ambiguo cuando tiene una sola interpretación. El lenguaje usado en su definición, no debe causar confusiones al lector.
Verificable: Un requerimiento es verificable cuando puede ser cuantificado de manera que permita hacer uso de los siguientes métodos de verificación: inspección, análisis, demostración o pruebas.
Relación con la Ingeniería de Software
El análisis de requisitos es una tarea de ingeniería del software que cubre el hueco entre la definición del software a nivel sistema y el diseño de software. Los requisitos expresan lo que el sistema debe hacer para satisfacer las necesidades de sus clientes o usuarios.
El análisis de requisitos permite al ingeniero de sistemas especificar las características operacionales del software (función, datos y rendimientos), indica la interfaz del software con otros elementos del sistema y establece las restricciones que debe cumplir el software.
Para la ingeniería de software, la Ingeniería de requisitos comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requisitos de los inversores, que pueden entrar en conflicto entre ellos.
Herramientas más Usadas
• Entrevistas y cuestionarios: Las entrevistas y cuestionarios se emplean para reunir información proveniente de personas o grupos, información que se obtiene conversando con el encuestado. Las preguntas suelen distinguirse en dos categorías: abiertas y cerradas. Las preguntas abiertas permiten que los encuestados respondan con su propia terminología, mientras que las preguntas cerradas predeterminan todas las posibles respuestas y el interrogado elige entre las opciones presentadas.
• Grabaciones de video y de audio: Básicamente existen dos formas de utilizar las grabaciones: como registro y apoyo de las entrevistas, y para analizar algún proceso en particular. En cuanto a su función de apoyo, es importante porque permite centrar la atención en la entrevista en sí, en vez de distraerse tomando notas de todo lo que se dice. Cuando se trata de analizar algún proceso en particular, su ayuda es inestimable (sobre todo las filmaciones de video) porque permite ver y analizar en detalle ese proceso la cantidad de veces que sea necesario.
• Brainstorming (tormenta de 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 requisitos para el sistema. No hay que detenerse en pensar si la idea es o no del todo utilizable.
Objetivo e Importancia
Tal vez suene ilógico pero, a pesar de los avances que ha dado la tecnología, aún existen procesos de producción informales, parciales y en algunos casos no confiables.
La Ingeniería de Requisitos cumple un papel primordial en el proceso de producción de software, ya que enfoca un área fundamental: la definición de lo que se desea producir, es decir que, estará basado en función de las necesidades planteadas por los clientes en un nivel muy general, donde se descubre, documenta, analiza y se define los servicios o componentes de lo que se desea producir, además de las restricciones que tendrá el producto o software. Su principal tarea consiste en la generación de especificaciones correctas que describan con claridad, sin ambigüedades, en forma consistente y compacta, el comportamiento del sistema; de esta manera, se pretende minimizar los problemas relacionados al desarrollo de sistemas.
La obtención correcta de los requisitos puede llegar a describir con claridad, sin ambigüedades, en forma consistente y compacta, el comportamiento de un sistema.
• Hace posible la gestión de los puntos clave del proyecto de forma organizada: Cada actividad de la IR consiste de una serie de pasos organizados y bien definidos.
• Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados: La IR proporciona un punto de partida para controles subsecuentes y actividades de mantenimiento, tales como estimación de costos, tiempo y recursos necesarios.
• Disminuye los costos y retrasos del proyecto: Muchos estudios han demostrado que reparar errores por un mal desarrollo no descubierto a tiempo, es sumamente caro; especialmente aquellas decisiones tomadas durante la RE.
• Mejora la calidad del software: La calidad en el software tiene que ver con cumplir un conjunto de requisitos (funcionalidad, facilidad de uso, confiabilidad, desempeño, etc.).
• Mejora la comunicación entre equipos: La especificación de requisitos representa una forma de consenso entre clientes y desarrolladores. Si este consenso no ocurre, el proyecto no será exitoso.
• Evita rechazos de usuarios finales: La ingeniería de requisitos obliga al cliente a considerar sus requisitos cuidadosamente y revisarlos dentro del marco del problema, por lo que se le involucra durante todo el desarrollo del proyecto.
La ingeniería de requisitos puede ser un proceso largo y arduo para el que se requiere de habilidades psicológicas. Los nuevos sistemas cambian el entorno y las relaciones entre la
...