Nuestra experiencia en proyectos de desarrollo de sistemas complejos lo demuestra: Cada proyecto requiere su propio enfoque. No hay un único método que conduzca a la realización del objetivo, sino que se necesita una combinación hecha a medida de enfoques y herramientas adecuados. Dicho conjunto de medidas no solo se toma en función del producto que se vaya a desarrollar, sino que debe incluir el contexto y la constelación del equipo que lo va a realizar.
Adoptamos una visión holística del producto en su totalidad. El punto de partida es siempre nuestra comprensión del cliente y sus necesidades. La tarea central de nuestro enfoque de ingeniería de sistemas colaborativa es crear un entendimiento común entre todos los participantes, desde el análisis del problema hasta la identificación de opciones para la solución y durante las pruebas. La perspectiva del usuario respecto al sistema sirve de hilo conductor para identificar las posibles soluciones Es la base del análisis y el diseño, así como el punto de partida de la integración incremental. La especificación asociada constituye la base para la definición de los casos de prueba del sistema y la documentación del usuario.
Una cuestión central en el desarrollo de sistemas es: ¿Cómo puede encontrarse e implementarse una solución que se ajuste de forma óptima al problema real?
Para ello, es necesario que todas las partes implicadas en el desarrollo del sistema tengan una comprensión uniforme y consensuada del problema a resolver.
Core Modeling se basa en el enfoque Usage-Centered Design, que se ha desarrollado en Siemens AG como un método para la ingeniería de sistemas basada en modelos con un enfoque en el análisis de negocio y la ingeniería de requisitos y se ha aplicado con éxito en varios proyectos de ingeniería de sistemas.
Con la aplicación del Core Modeling, las partes interesadas en el desarrollo del sistema crean un modelo común del problema. El modelo sirve como punto de partida y orientación para los siguientes pasos del desarrollo de soluciones (“modelo central”).
A menudo es difícil determinar una “Big Picture” del problema que hay que resolver. Esto hace que los usuarios (arquitectos, desarrolladores, ingenieros de prueba, etc.) tiendan a ver los requisitos de forma demasiado atómica. Además, los requisitos suelen proceder de distintas fuentes, con granularidad variable y una separación poco clara entre la descripción del problema y los detalles de la solución.
El método de “Core Modeling” inicia el proceso de ingeniería de sistemas mediante un análisis sistemático del dominio del problema en términos de sus propiedades básicas funcionales y no funcionales. Son incluidas, por un lado, las tareas de las partes interesadas (jobs-to-be-done), y por otro, intereses propios de estos interesados.
Estos aspectos son descritos en el modelo de forma independiente de la solución y, por tanto, son estables en el tiempo, comprensibles para todas las partes interesadas y utilizables, ya sea como elemento de modelo trazable, como diagrama o como documento derivado.
Mediante Core Modeling se crea un modelo del problema que
El modelo central resultante está estructurado de forma que puedan trabajar con él diferentes partes interesadas: Propietarios de producto, arquitectos de sistemas, ingenieros de requisitos, ingenieros de usabilidad, desarrolladores, ingenieros de pruebas, personal comercial y redactores de manuales.
Nuestra fundadora y directora general, Herna Muñoz-Galeano, aprendió la aplicación de la anatomía funcional de Jack Järkvik, quien desarrolló el método y con quien trabajó en Ericsson. Además de participar en el desarrollo de las redes globales de telecomunicaciones, ha aplicado con éxito el método en diversos proyectos en los campos de la tecnología médica y la automatización ferroviaria.
La anatomía funcional describe y estructura un producto desde el punto de vista del usuario: ¿Qué funciones debe cumplir el sistema? ¿Cómo debe utilizarse? El método se basa en un enfoque descendente desde la perspectiva de los niveles funcionales. Permite definir las funciones, mostrar la dependencia entre las distintas funciones y proporciona información sobre qué funciones no tienen interrelaciones.
La anatomía funcional permite así proporcionar a todos los participantes en el proyecto en poco tiempo una imagen uniforme de los requisitos del proyecto y una comprensión común de las tareas.
En los métodos tradicionales, las tareas complejas se dividen en unidades más pequeñas y se desarrollan de forma independiente. Esto conlleva grandes riesgos para la integración y comprobación del sistema y rápidamente provoca retrasos importantes y un aumento de los costes. En cambio, la Anatomía Funcional adopta un enfoque de desarrollo incremental e integración paso a paso para completar un proyecto de desarrollo de forma predecible y rentable.
La filosofía central es planificar y verificar el sistema en la misma secuencia en que se realiza.
El proceso consta de 7 pasos:
Los mejores resultados se obtienen si el método de la Anatomía Funcional se utiliza ya durante la especificación del sistema y como herramienta global de planificación y control del proyecto.
A menudo nos consultan para que ayudemos a nuestros clientes a aplicar nuestro método cuando la finalización a tiempo del proyecto está en peligro debido a su complejidad.
Nuestros clientes valoran nuestro trabajo con el método de la Anatomía Funcional por las siguientes razones:
Los resultados del desarrollo deben probarse para verificar que cumplen su propósito, es decir, si los requisitos han sido implementados correctamente. Para decidir qué, dónde, cuándo y cómo probar, todos los implicados necesitan una idea del comportamiento del sistema que sea independiente del punto de vista del arquitecto y del desarrollador: el modelo de pruebas.
Si el comportamiento del sistema se modela de forma coherente desde el dominio del problema hasta el dominio de la solución en forma de casos de uso, se pueden aprovechar muchas sinergias y reducir así considerablemente el esfuerzo de modelado de las pruebas.Una especificación de pruebas basada en modelos proporciona una aproximación visual de fácil acceso y discusión. Permite además identificar pasos que pueden ser redundantes, y/o rutinas que pueden ser no solo utilizadas en varios planes de pruebas o diferentes proyectos, sino que ayuda a identificar pasos de prueba que pueden ser automatizados.