El
proceso de Ingeniería de Requerimientos describe de manera detallada y precisa cada uno de los aspectos del ciclo de vida de
un conjunto de requerimientos. Este proceso presenta dos grandes ramas:
Desarrollo de requerimientos. Administración de requerimientos.
Que tiene como propósito producir y analizarlos requerimientos
de cliente, de producto y de componente de producto, incluye las siguientes
actividades: Recolección, Análisis, Especificación y Verificación. Recolección:
Es el Proceso a través del cual los clientes (compradores y/o usuarios) y el
desarrollador (contratista) de un sistema de software; descubren, revisan,
articulan, y entienden las necesidades de los usuarios del sistema y las restricciones
que se dan sobre el software y el desarrollo del mismo. Algunas de las técnicas
y herramientas más importantes para llevar a cabo la recolección de
requerimientos son: Entrevistas: método para descubrir hechos y opiniones que
tienen los posibles usuarios y otros participantes dentro del sistema que se
está desarrollando. A su vez se clasifican en:
Entrevistas cerradas: las preguntas ya están previstas, tienen un orden y una
forma de ser planteadas que no pueden ser modificadas por el entrevistador. Es
en realidad un cuestionario.
Entrevistas abiertas: en las cuales no se
preparan preguntas concretas, y, por el contrario, se discute con el
entrevistado las expectativas que este tiene del sistema.
Casos de Uso y/o
Escenarios: Los casos de uso describen interacciones entre los usuarios y el
sistema, enfatizando en lo que el usuario necesita del sistema. Los escenarios
son ejemplos de sesiones de interacción entre el sistema y el usuario, donde un
solo tipo de interacción entre los dos participantes es simulada y descrita.
Observación
y análisis social: La observación permite a los investigadores observar lo que
los usuarios hacen actualmente en un determinado contexto. Esto permite superar
problemas con los participantes del proyecto que realizan descripciones
idealizadas o demasiado simplificadas de los procesos que se llevan a cabo en
sus trabajos.
Lluvia de Ideas: Son sesiones donde todos los participantes
brindan sus ideas para obtener una solución a una problemática. Una lluvia de
ideas está compuesta de dos fases: la fase de generación y la fase de
evaluación. Durante la generación las ideas son recolectadas y es importante
que no sean criticadas. Durante la evaluación de las ideas, las propuestas de
solución deben ser evaluadas desde diferentes perspectivas.
Prototipos: Es
programa de computador que implementa algunos de los requerimientos de un
sistema. Este prototipo puede ser usado para colaborar con la definición de los
requerimientos, o para facilitar la evaluación de alternativas de implementación
de un sistema.
Existen dos grandes tipos de prototipos. Los prototipos no
funcionales o desechables (Throw away), que sirven para entender la dificultad
y aclarar los requerimientos; y los prototipos funcionales o evolutivos
(Evolutionary) que permiten construir una aproximación del sistema de manera
que se pueda proveer cierta funcionalidad del sistema final y usualmente se
convierten en parte del mismo. Análisis: Es el proceso de analizar las
necesidades de los clientes y los usuarios
para llegar a una definición de los requerimientos de software.
Dentro
de las prácticas principales se encuentra: JAD (Joint Application Development):
Esta práctica se basa en la creación de espacios que permitan celebrar sesiones
o reuniones en donde los participantes y directos interesados dentro del desarrollo
del proyecto buscan obtener o generar conocimiento alrededor del desarrollo que
se va a llevar a cabo. En estas sesiones se trabaja bajo un enfoque común que
permite el fácil entendimiento de los temas expuestos por parte de los
invitados a la sesión
Modelos: Esquema teórico, generalmente en forma
matemática, de un sistema o de una realidad compleja, como la evolución
económica de un país, que se elabora para facilitar su comprensión y el estudio
de su comportamiento. Existen dos tipos de modelos. - Modelo conceptual: Es el
utilizado en la especificación del sistema, representa los conceptos más
significativos en el dominio del problema…. Nos describe la parte estática del
problema, es una fotografía del mundo real. - Modelo de Comportamiento:
Utilizado en la parte de diseño del sistema, define la parte dinámica, es
decir, cual debe ser el comportamiento en cada situación y la forma de
proceder.
Los diagramas de secuencia y de estados son parte de este modelo. Especificación:
Consiste en el desarrollo de un documento que de manera clara y precisa
contenga y especifique cada uno de los requerimientos del sistema de software. Verificación:
Es el proceso de asegurar que la especificación de requerimientos de software
sea acorde con los requerimientos del sistema, conforme a los estándares de
documentación de la fase de requerimientos, y que a su vez este documento sea
una base sólida para la arquitectura y el diseño.
Esta actividad representa un
punto de control interno y externo; interno, porque se debe verificar
internamente lo que se está haciendo, y externo, porque se debe validar con el
cliente.
Administración de requerimientos: Es un
proceso que tiene por objetivo comprender y controlar los requerimientos. Como
todo proceso de administración, inicia con la planeación a la par de la identificación
inicial de requerimientos. Este proceso tiene diferentes formas que dependen
del proceso de desarrollo de software que se esté empleando, independientemente
de esto se deben considerar las siguientes etapas:
1. Requerimientos duraderos
y volátiles.
2. Planeación de la administración de requerimientos.
3.
Administración del cambio de los requerimientos.