El análisis de requisitos software es una de las fases clave en la construcción de un sistema software, por lo que es muy importante realizar una buena educción para obtener y gestionar los requisitos con el objetivo de que el proyecto logre su éxito. La criticidad de las actividades relacionadas con el análisis de requisitos conllevan a hacer hincapié en el análisis de las características que deben aclararse a la hora de realizar esta actividad.
Entre las características que debemos de tener en cuenta encontramos:
- Complejidad del problema a resolver: La complejidad es un factor asociado al software y los sistemas cada vez son más complejos debido a la propia dificultad de los problemas que debemos resolver. Por ello, es importante tener en cuenta esta complejidad, y aclarar exactamente el problema que se debe resolver, tener claros cuales son los objetivos y detectar los límites del sistema a construir.
- Dificultades de comunicación entre distintas partes. Es común que existan dificultades de comunicación, al tratarse de una actividad totalmente social. Por ejemplo, es común que puedan existir problemas de comunicación entre los desarrolladores del software y los usuarios del software. Ejemplo de ello es el anti-patrón de gestión software “Mushroom Management” del que hemos hablado anteriormente.
- Descubrimiento de requisitos ocultos. En la captura de requisitos software, suele darse la metáfora del iceberg. Esto implica la importancia de indagar, encontrar requisitos profundos que no son fácilmente visibles. Estos son importantes para calcular la futura previsión de cantidad de esfuerzo necesario para llevarlo a cabo de manera satisfactoria.
Los requisitos software tienen muchas fuentes y es esencial extraer todo el potencial de ellas identificándolas, gestionándolas y evaluándolas, por ello es importante tener en cuenta estos aspectos :
- Metas. Esta punto a tener en cuenta se refiere a los objetivos del software a un alto nivel. Las metas proveen los motivos de la necesidad de la construcción de software, por lo que los ingenieros del software deben centrarse en optimizar el valor que se aporta. Hay que analizar y entender el motivo fundamentales por lo que el desarrollo se lleva a cabo, por ello, debemos de insistir en conocer el origen de la necesidad de construcción del software.
- Conocimiento del dominio. Los ingenieros del software y analistas deben de ir adquiriendo el conocimiento sobre el dominio de la aplicación, ya que estos pueden tener un conocimiento limitado. Interactuando con otros actores pueden descubrir información muy valiosa. El conocimiento del dominio aporta entender correctamente la jerga y los conceptos relevantes que se deben identificar, ordenándolos y entendiéndolos. Es importante entender los distintos elementos involucrados e incluso en ocasiones crear un glosario de términos.
- Stakeholders. Es importante detectar los propios actores del procesos y sus diferentes puntos de vista, tanto a nivel de organización como de desarrollo del software. Esto es debido a que los requisitos deben satisfacer a todos los actores involucrados. Esto puede ser complicado en ciertas organizaciones con estructuras difíciles. Entre estos actores involucrados se encuentran los usuarios, los clientes, los reguladores y los ingenieros del software.
- Reglas de Negocio: Hay ciertos aspectos del negocio que definen aspectos estructurales o de comportamiento . Es importante conocer estas reglas de negocio para modelar correctamente las necesidades y reflejarlas en la especificación de requisitos. Las particularidades del negocio serán esenciales para construir el software adecuado.
- Entorno de Operación. Este entorno es donde se ejecuta el software y permite establecer las restricciones del proyecto. Estas restricciones derivan en requisitos como pueden ser restricciones de tiempo o rendimiento. Es importante detectar este tipo de requisitos para medir la viabilidad y coste del desarrollo.
- Entorno Organizativo. Al cual debe de adaptarse el software donde se va a implantar, ya que existen ciertos condicionales en la estructura, cultura y política de las organizaciones. Los analistas deben de tener estos aspectos en cuenta para que el software se integre satisfactoriamente en el proceso de negocio.
Como conclusión, es importante centrase en entender los objetivos del negocio, los actores involucrados y el conocimiento del dominio del problema para extraer los requisitos adecuados que aporten valor al desarrollo software y definir una “Especificación de Requisitos Software” que represente las necesidades de la organización.