El objetivo de definir Agrupaciones Funcionales es descomponer y organizar la funcionalidad de una aplicación. Se deben tener en cuenta las siguientes consideraciones:
- Partición. La división de un problema en pequeños subproblemas de forma que cada subproblema corresponda a una agrupación funcional debe realizarse basándose en dos principios:
- Las funcionalidades altamente interrelacionadas deben estar en la misma agrupación funcional.
- Las funcionalidades no relacionadas deben residir en una agrupación funcional general. También puede utilizarse para agrupar funcionalidades comunes al resto de agrupaciones.
- Organización. La aplicación debe organizarse de forma que ninguna agrupación sea mayor que lo necesario para solucionar los aspectos del problema que resuelve.
Las características básicas de la división funcional que contribuyen a conseguir un sistema fácil de mantener y probar son:
- Módulos de pequeño tamaño. El impacto de un cambio a realizar puede ser perfectamente aislado.
- Independencia modular. Cuanto mayor sea la independencia de un módulo más sencillo será trabajar con él.
- Características de “caja negra”. El uso de cajas negras permite una visión más fácil del conjunto, posponiendo los detalles para una etapa posterior.
- Modelización conceptual. Una aplicación será más fácil de mantener si las agrupaciones funcionales definidas se han basado en los conceptos lógicos del negocio, los cuales serán más familiares y comprensibles para el personal de mantenimiento.
¿Cómo definir las Agrupaciones funcionales?
A partir de la Identificación de los requisitos del sistema, siguiendo estos posibles pasos:
Enumeración y descripción de las Agrupaciones o subsistemas del nuevo sistema, aplicación o servicio, asignándoles una funcionalidad concreta, así como las interacciones e interfaces entre ellos. Ejemplo: “Se identifican dentro del nuevo sistema las Agrupaciones funcionales siguientes: Módulo de consultas, Módulo de generación de informes, Módulo de impresión de informes, … (con sus respectivas descripciones)”
- Enumeración de agrupaciones con el servicio que aportan. Identificación de funciones del sistema y su agrupación en agrupaciones funcionales, descripción del tipo de servicio que aportan y de la información que requieren y que demandan.
- Relaciones entre las diferentes agrupaciones. Trazado de relaciones entre las diferentes agrupaciones funcionales y funciones. Estas relaciones se van a basar sobre todo en las peticiones de servicio y de información entre agrupaciones.
- Esquemas y diagramas que ayuden a la comprensión del comportamiento del sistema. Partiendo del esquema funcional de “nivel cero” se representan las relaciones entre agrupaciones funcionales y funciones del sistema a desarrollar, con el objetivo de comunicar los usos que unos hacen de otros y sus demandas de servicio internas. Se recomienda el uso de esquemas y diagramas estándar de modelización funcional como DFD o Casos de Uso.
A partir de la Identificación del conjunto de casos de uso, siguiendo estos posibles pasos:
- Identificar el sistema, sus límites y las funciones a ser usadas
- Identificar los actores y los objetivos de los actores principales
- Identificar el dominio del negocio y las entidades conceptuales asociadas con los objetivos
- Identificar y especificar Casos de Uso principales.
- Desarrollar los casos de uso para los objetivos
- Identificar las operaciones comunes o casos de uso similares y desarrollar nuevos casos de uso parametrizables.
- Organizar los casos de uso identificados en las Agrupaciones Funcionales. Se puede utilizar la realización de Diagramas de Casos de Uso que muestran gráficamente cada Agrupación.