Técnicas de recopilación de requerimientos
Existen diferentes formas de obtener los requerimientos. Cada una de las técnicas nos permite obtener los requerimientos desde un punto de vista en particular. Es posible que las personas involucradas les sea más fácil expresar de manera más clara sus requerimientos con alguna técnica más que con otra.
Es responsabilidad del analista de requerimientos establecer la técnica que utilizará. No hay nada que pueda restringir el uso de más de una técnica, todo eso quedará a juicio del analista de requerimientos.
Entrevistas. Es la técnica que comúnmente se emplea para obtener los requerimientos. El ingeniero de requerimientos o el analista discuten el sistema con los clientes y construyen los requerimientos. Existen básicamente dos tipos de entrevistas:
– Las entrevistas cerradas en donde el ingeniero de requerimientos busca las respuestas de conjunto de preguntas predefinidas.
– Las entrevistas abiertas en estas no existe una agenda predefinida y el ingeniero de requerimientos discute de manera abierta con los involucrados acerca del sistema.
No existe realmente una limitante para emplear alguna de las dos entrevistas e incuso se pueden llegar a combinar en un momento determinado. Esta técnica puede facilitar a los involucrados a que expresen sus problemas y dificultades en su trabajo. Pero también puede generar en el usuario una expectativa poco realista sobre el sistema. Por otra parte puede quedar inconclusa la identificación del dominio del sistema y las cuestiones organizacionales que afectan los requerimientos.
Hay dos puntos esenciales para una entrevista efectiva:
– El entrevistador debe de ser de mente abierta y de buena disposición para escuchar a los involucrados.
– Los involucrados deben de proporcionar algún punto de partida para la discusión.
El conocimiento de las aplicaciones es difícil de obtener durante las entrevistas porque:
– Muchas aplicaciones cuentan con su propia terminología y a muchos de los involucrados les resulta difícil discutir sobre ella si no utilizan esa terminología.
– Existen conocimientos sobre la aplicación en los cuales al involucrado le resulta difícil explicar o le resulta familiar que nunca se llegó a pensar en explicarlo.
Métodos ligeros de sistemas. Son modelos flexibles enfocados a producir modelos menos formales del conjunto técnico-social de un sistema. Consideran la automatización del sistema, la gente y la organización. Varios de esos métodos han sido incluidos en SSM (Soft Systems Methodology), ETHICS y Eason’s User-Centred Design.
SSM y otros métodos no son técnicas como tal para obtener requerimientos de manera detallada. Su aporte radica principalmente en hacer mucho más entendible el problema, la situación organizacional en donde existe el problema y las restricciones para la solución del problema.
Observación y análisis social. El trabajo es una actividad social que involucra grupos de gente que cooperan realizando diferentes tareas. La naturaleza de la cooperación es compleja y variada dependiendo de la gente involucrada, el ambiente y la organización en la que se realiza el trabajo. A los individuos y equipos les resulta difícil explicar la forma en la que trabajan y cooperan. El trabajo y sus mejoras muchas veces se realizan de manera intuitiva.
En ocasiones la observación es la mejor forma de entender una tarea que el cuestionamiento directo. Científicos sociales y antropólogos han utilizado la técnica de observación pasiva por largos periodos de tiempo para desarrollar un completo y detallado entendimiento de varias culturas.
Aplicando esta técnica a la obtención de requerimientos se presentan las siguientes guías:
– Asumir que la gente que se está estudiando es buena realizando su trabajo.
– Invertir tiempo conociendo a la gente involucrada y estableciendo una relación.
– Realizar notas detalladas del trabajo durante las observaciones.
– Entrevistas abiertas en donde la gente pueda hablar de su trabajo.
– Mantener la utilización de registro de video y audio al mínimo.
– Sesiones cortas para hablar del trabajo con la gente fuera del proceso puede identificar elementos críticos en el trabajo.
Esta técnica deberá ser utilizada como apoyo a la obtención de requerimientos.
Escenarios. A los usuarios finales les resulta más fácil realizar ejemplos en la vida real que realizar descripciones abstractas de un sistema. Por eso, que resulta conveniente utilizar escenarios de interacción entre el usuario y el sistema. De esta manera al momento de que el usuario simula la interacción es posible describir las tareas o funciones que desea.
Incluso el desarrollo de escenarios sin la interacción del usuario proporciona información para los requerimientos. Descubrir los escenarios expone las posibles interacciones que puede tener el sistema. En algunos métodos de análisis orientado a objetos los escenarios son una parte básica. Los escenarios pueden ser pensados como un relato de la manera en que un sistema es utilizado. Proporcionan información adicional a los requerimientos.
Se pueden elaborar escenarios de diferente forma pero como mínimo deberán contener la siguiente información:
– Una descripción del estado del sistema antes de iniciar el escenario
– Un flujo normal de eventos en el escenario
– Excepciones al flujo normal de eventos
– Información de otras actividades que pueden realizarse en paralelo
– Una descripción del estado del sistema al finalizar el escenario
La aplicación de escenarios involucra el trabajo en conjunto del ingeniero de requerimientos y el usuario final. De esta interacción surgen comentarios, problemas, sugerencias, maneras de realizar las actividades, involucrados, alternativas ante acciones inesperadas, etc.
Reutilización de requerimientos. Es una buena práctica para sistemas e ingeniería de software la reutilización del conocimiento para un nuevo sistema. A pesar de que existen diferentes requerimientos para cada sistema, existen situaciones en las cuales es posible realizar la reutilización de los requerimientos.
– Requerimientos relacionados que proporcionan información acerca de la aplicación: son requerimientos que más que ver con la funcionalidad, tiene que ver con las restricciones u operaciones que se derivan de la aplicación.
– Requerimientos relacionados con la presentación de la información: es posible tener una interfaz consistente para todos los sistemas para las organizaciones.
– Requerimientos relacionados con las políticas de una organización.
Fuente: Apuntes de Ingeniería del Software de la FCA de la UNAM