Analisis Y Tecnicas De Recoleccion De Datos
duvansar7 de Junio de 2014
9.710 Palabras (39 Páginas)510 Visitas
Tabla de contenido
¿Qué es un requerimiento? 2
Tipos de Requerimientos 2
Características de un Requerimiento 2
Dificultades para definir los requerimientos 3
Ingeniería de requerimientos 3
Importancia de la ingeniería de requerimientos 3
Actividades de la ingeniería de requerimientos 4
Extracción (Análisis del problema) 4
Análisis (Evaluación y negociación de los requerimientos) 4
Especificación 4
Validación 4
Evolución de los requerimientos 5
Técnicas y herramientas utilizadas en la ingeniería de requerimientos 5
Técnicas utilizadas en las actividades de IR 5
Entrevistas y Cuestionarios 6
Sistemas existentes 6
Lluvia de ideas (Brainstorm) 6
Prototipos 6
Casos de Uso 7
Herramientas automatizadas para la Administración de Requerimientos 7
RequisitePro 7
Descripción de las técnicas más utilizadas en la ingeniería de requerimientos. 8
Entrevistas y Cuestionarios. 8
Lluvia de Ideas (Brainstorm). 10
Encuestas. 12
Observación. 12
Prototipos. 13
Sesiones JAD (Desarrollo participativo de aplicaciones) 14
Proceso de Análisis Jerárquico (AHP) 18
Ventajas y desventajas de cada una de las técnicas utilizadas en las etapas de la Ingeniería de Requerimientos. 18
En esta unidad se tiene como objeto establecer los conceptos y fundamentos involucrados en la Ingeniería de Requerimientos donde el alumno entenderá: ¿Qué es un requerimiento?; Tipos de Requerimientos; ¿Qué es la Ingeniería de Requerimientos?, su importancia; sus actividades, sus técnicas y herramientas.
¿Qué es un requerimiento?
Un requerimiento puede definirse como un atributo necesario dentro de un sistema, que puede representar una capacidad, una característica o un factor de calidad del sistema de tal manera que le sea útil a los clientes o a los usuarios finales. A nivel general los requerimientos pueden clasificarse como requerimientos indicados o reales. Los requerimientos indicados son los entregados por el usuario al comienzo del proyecto, en tanto que los requerimientos reales son aquellos que reflejan la satisfacción de las necesidades del usuario en un sistema en particular. El proceso para convertir los requerimientos indicados en requerimientos reales consisten en un proceso de filtrado según el significado y otros aspectos según se considere.
A continuación se presenta la definición existente en el glosario de la IEEE de lo que es un “Requerimiento”:
1. “Una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo”. (Std 610.12-1900, IEEE: 62)
2. “Una condición o capacidad que debe estar presente en un sistema o componentes de sistema para satisfacer un contrato, estándar, especificación u otro documento formal”. (Std 610.12-1900, IEEE: 62)
También, Ian Sommerville presenta una definición acerca de lo que es un “Requerimiento”:
3. “Un requerimiento es simplemente una declaración abstracta de alto nivel de un servicio que debe proporcionar el sistema o una restricción de éste”. (Sommerville, 2005: 108)
Analizando las definiciones anteriores, un requerimiento es una descripción de una condición o capacidad que debe cumplir un sistema, ya sea derivada de una necesidad de usuario identificada, o bien, estipulada en un contrato, estándar, especificación u otro documento formalmente impuesto al inicio del proceso.
Tipos de Requerimientos
Los requerimientos de software pueden dividirse en 2 categorías: requerimientos funcionales y requerimientos no funcionales. Los requerimientos funcionales son los que definen las funciones que el sistema será capaz de realizar, describen las transformaciones que el sistema realiza sobre las entradas para producir salidas. Es importante que se describa el ¿Qué? y no el ¿Cómo? se deben hacer esas transformaciones. Estos requerimientos al tiempo que avanza el proyecto de software se convierten en los algoritmos, la lógica y gran parte del código del sistema. Por otra parte los requerimientos no funcionales tienen que ver con características que de una u otra forma puedan limitar el sistema, como por ejemplo, el rendimiento (en tiempo y espacio), interfaces de usuario, fiabilidad (robustez del sistema, disponibilidad de equipo), mantenimiento, seguridad, portabilidad, estándares, auditabilidad y otros.
Características de un Requerimiento
Es importante no perder de vista que un requerimiento debe ser:
Especificado por escrito: Como todo contrato o acuerdo entre dos partes.
Posible de probar o verificar. Si un requerimiento no se puede comprobar, entonces ¿cómo se sabe si se cumplió con él o no?
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
Dificultades para definir los requerimientos
Durante la etapa de especificación de requerimientos se pueden presentar muchos inconvenientes los cuales son importantes de identificar y prevenir, a continuación se presenta un listado con los problemas más comunes en este proceso:
• Los requerimientos no son obvios y vienen de muchas fuentes.
• Son difíciles de expresar en palabras (el lenguaje es ambiguo).
• La cantidad de requerimientos en un proyecto puede ser difícil de manejar.
• Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.
• El usuario no puede explicar lo que hace
• Tiende a recordar lo excepcional y olvidar lo rutinario
• Hablan de lo que no funciona
• Los usuarios tienen distinto vocabulario que los desarrolladores
• Usan el mismo término con distinto significado
Ingeniería de requerimientos
El proceso de recopilar, analizar y verificar las necesidades del cliente o usuario para un sistema es llamado ingeniería de requerimientos. La meta de la ingeniería de requerimientos (IR) es entregar una especificación de requisitos de software correcta y completa. Algunos otros conceptos de ingeniería de requerimientos son:
“Ingeniería de Requerimientos ayuda a los ingenieros de software a entender mejor el problema en cuya solución trabajarán. Incluye el conjunto de tareas que conducen a comprender cuál será el impacto del software sobre el negocio, qué es lo que el cliente quiere y cómo interactuarán los usuarios finales con el software”. (Pressman, 2006: 155)
“La ingeniería de requerimientos es el proceso de desarrollar una especificación de software. Las especificaciones pretender comunicar las necesidades del sistema del cliente a los desarrolladores del sistema”. (Sommerville, 2005: 82)
En síntesis, el proceso de ingeniería de requerimientos se utiliza para definir todas las actividades involucradas en el descubrimiento, documentación y mantenimiento de los requerimientos para un producto de software determinado, donde es muy importante tomar en cuenta que el aporte de la IR vendrá a ayudar a determinar la viabilidad de llevar a cabo el software (si es factible llevarlo a cabo o no), pasando posteriormente por un subproceso de obtención y análisis de requerimientos, su especificación formal, para finalizar con el subproceso de validación donde se verifica que los requerimientos realmente definen el sistema que quiere el cliente.
Importancia de la ingeniería de requerimientos
Según la autora Lizka Johany Herrera en su documento de la ingeniería de requerimientos, los
principales beneficios que se obtienen de la Ingeniería de Requerimientos son (2003: 3):
• Permite gestionar las necesidades del proyecto en forma estructurada: 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: es sabido que reparar errores por un mal desarrollo no descubierto a tiempo, es sumamente caro; especialmente aquellas decisiones tomadas durante la IR, ya que es una de las etapas de mayor importancia en el ciclo de desarrollo de software y de las primeras en llevarse a cabo.
• Mejora la calidad del software: La calidad en el software tiene que ver con cumplir un conjunto de requerimientos (funcionalidad, facilidad de uso, confiabilidad, desempeño, y otros)
• Mejora la comunicación entre equipos: La especificación de requerimientos representa una forma de consenso entre clientes y desarrolladores. Si este consenso no ocurre, el proyecto
...