La especificación de requerimientos, es una actividad que cada vez toma mayor preponderancia en la gerencia de proyectos, dado que se ha demostrado que una causa recurrente en su fracaso se origina de una inadecuada especificación de requisitos.
Con este artículo, continuamos nuestra serie de Ingeniería de requisitos, continuando con los conceptos desarrollados en el artículo anterior de 7 Técnicas para el levantamiento de requerimientos de software.
El análisis de requerimientos consiste en aplicar una serie de técnicas para desglosar y analizar los requisitos y sus partes, algunas de estas técnicas son: Modelado de procesos, Modelado de dominio, casos de uso, inspecciones, listas de chequeo y prototipos.
8 Técnicas para analizar requerimientos de software
Las técnicas de análisis de requerimientos expuestas a continuación parten de la especificación de requisitos o matriz de trazabilidad de requerimientos del proyecto.
1.- Descomposición funcional
- La descomposición funcional se refiere al proceso de identificar y resolver las relaciones funcionales en sus partes constituyentes, de tal forma que la función global pueda ser reconstruida a partir de sus partes.
- Por lo general, la descomposición funcional se realiza para identificar y entender los componentes o partes que constituyen un todo (o función global).
- En este proceso, es vital identificar las interacciones entre componentes.
- Aplicado a la Ingeniería de requisitos, consiste en tomar los requerimientos de software, dividirlos en partes y analizarlos individualmente. De ser necesario, se pueden descomponer en más partes hasta lograr un nivel adecuado de detalle.
- En cierto sentido, el proceso es similar al de la elaboración de una estructura de desglose de trabajo de un proyecto.
- En Ingeniería de sistemas, la descomposición funcional consiste en definir un sistema en términos funcionales, para luego definir funciones de más bajo nivel y establecer las relaciones con estas funciones de alto nivel.
- La intención es dividir un sistema de tal forma que cada componente se pueda describir sin necesidad de referir a otro componente.
- De esta forma, cada parte del sistema tendrá funciones independientes, que pueden reusarse y reemplazarse.
- Es la forma tradicional de la especificación de requerimientos de software.
- Se usan especificaciones textuales en lenguaje natural, que se documentan en matrices de trazabilidad de requerimientos o definiciones del alcance.
- El procedimiento consiste en tomar el requerimiento producto del levantamiento de información, para desarrollar una narrativa más detallada.
- No usa herramientas visuales como los flujogramas o estructura como los casos de uso, es simplemente una descripción más detallada del requerimiento en lenguaje natural.

- Comprende la elaboración de diagramas de flujo de procesos (Flujogramas) a partir de los requerimientos del software.
- Existen diversas herramientas de modelado de procesos, cada una de las cuales posee sus propios símbolos y reglas.
- Es muy útil para entender el trabajo realizado en múltiples pasos, tareas, roles y departamentos intervinientes.
- Los procesos son iniciados por eventos y pueden abarcar actividades automatizadas, manuales o combinación entre ambas.
- Su naturaleza visual ayuda a la comprensión y comunicación a terceros.
- Cuando los procesos son complejos, deben desglosarse en componentes (subprocesos).
- La relación entre los diagramas de flujo y la gerencia de proyectos es fundamental para el éxito.
- En Ingeniería de software, en análisis de dominio consiste en analizar sistemas o software relacionados en un dominio, con la finalidad de encontrar sus partes comunes y partes que los diferencian.
- Produce un modelo de contexto de negocio para todo el sistema.
- Un modelo de dominio comprende diagramas conceptuales que incluyen tanto el comportamiento de un sistema como sus datos.
- Un tipo de modelo de dominio son los diagramas de funcionalidades (Features Diagrams), que es una representación “compacta” del sistema o aplicación en términos de sus características.
- El análisis de dominio produce modelos orientados a objetos o modelos relacionales de datos, que pueden ser usados por los desarrolladores de software como base de arquitecturas de software y aplicaciones.
5.- Casos de Uso
- En el Lenguaje de Modelado Unificado (UML), un caso de uso es una secuencia de interacciones entre un sistema y alguien o algo que usa alguno de sus servicios.
- En el ámbito académico y profesional, es una de las técnicas de mayor difusión para especificar el comportamiento del Sistema.
- Formato simple y estructurado que puede ser compartido entre usuarios y desarrolladores.
- Además de usarse para analizar los requerimientos de software, también pueden usarse en el diseño del sistema e inclusive para definir pruebas de caja negra (Testing).
- Son útiles en sistemas informáticos orientados a la funcionalidad (transacciones con el usuario), que se van a implementar orientados a objetos y con UML.
- No son la mejor opción en sistemas sin usuarios, o dominados fundamentalmente por requerimientos no funcionales.


Comentarios