La arquitectura evolutiva es algo en lo que todo arquitecto de software piensa. Apoya el cambio guiado e incremental como el primer principio a través de múltiples dimensiones. Para apoyar esta evolución, las funciones Fitness pueden ayudar a encontrar el grado en que un sistema cumple con los objetivos y restricciones de arquitectura especificados de forma automatizada. Y el post de hoy trata sobre las funciones Fitness.

 

Qué es la función arquitectónica Fitness?

La función Fitness o de adecuación es un tipo de función objetiva que se utiliza para resumir lo cerca que está una determinada solución de arquitectura de software de alcanzar los objetivos establecidos. 

Al definir una arquitectura evolutiva, el arquitecto de software busca un algoritmo “mejor”; la función de adecuación define lo que “mejor” significa en este contexto. Los arquitectos de software pueden comunicar, validar y preservar las características arquitectónicas de forma automatizada y continua, lo cual es la clave para construir arquitecturas evolutivas.

La función de adecuación se construye sobre la base del software que se está probando. Con el desarrollo impulsado por la función de fitness, puede escribir pruebas que midan la alineación de un sistema con los objetivos arquitectónicos.

Cuando se empiece a utilizar las funciones de acondicionamiento físico se debe comenzar por reunir las aportaciones de todos los interesados para comprender lo que consideran los atributos arquitectónicos más importantes. Estos deben ser agrupados en temas comunes como la resistencia, la estabilidad, etc.

Todas las funciones de aptitud física recopiladas deben describir su intención utilizando una métrica objetiva significativa para los equipos y las partes interesadas. Esto ayudará a los equipos en la medición de la deuda técnica, pero también para evitar la deriva arquitectónica. Todas las funciones deben ser redactadas en un marco de pruebas e incluidas en las tuberías de entrega apropiadas. Un ejemplo de una función de adecuación es la calidad del código, en el que se puede medir la modificabilidad, la manejabilidad y la adaptabilidad a fin de evitar que un código de calidad demasiado baja se despliegue en la producción. Además, la implementación de pruebas de rendimiento automatizadas como funciones de aptitud física y añadidas a las tuberías construidas significa que las pruebas se ejecutan con antelación y los resultados son accesibles inmediatamente.

La prueba real de las funciones de aptitud arquitectónica viene con medidas derivadas que describen cómo se está utilizando el sistema y si está cumpliendo las expectativas. Por ejemplo, esto puede incluir pruebas más comerciales que reflejen tanto a los profesionales de los negocios como a la ejecución técnica:

 

  • ¿Cuánto tiempo se tarda en entregar un informe, desde la concepción hasta el lanzamiento?
  • ¿Con qué frecuencia se hacen despliegues y cuántos de ellos fallan?
  • ¿Cuánto tiempo de inactividad no programado está pasando?

 

Formas de la función Fitness de adecuación arquitectónica

1. Atomica vs Holística 

  1. Las funciones Fitness se ejecutan en un contexto singular y ejercen un aspecto particular de la arquitectura. Un ejemplo excelente es una prueba unitaria que verifica alguna característica arquitectónica, como el acoplamiento modular o la complejidad ciclomática.

  2. Las funciones Fitness de aptitud holística se ejecutan en un contexto compartido y ejercen una combinación de aspectos arquitectónicos como la seguridad y la escalabilidad.

     

2. Desencadenada vs. Continua

  1. Las funciones Fitness de aptitud desencadenada se ejecutan en base a un evento particular, como un desarrollador que ejecuta una prueba de unidad, una unidad de pruebas de funcionamiento de una tubería de despliegue, o una persona de control de calidad que realiza pruebas exploratorias.
  2. Las pruebas continuas no se ejecutan según un calendario, sino que ejecutan una verificación constante del aspecto arquitectónico, como la velocidad de la transacción. El desarrollo impulsado por la supervisión (MDD) es una técnica de prueba que está ganando popularidad. En lugar de basarse únicamente en pruebas para verificar los resultados del sistema, MDD utiliza monitores en la producción para evaluar tanto la salud técnica como la empresarial.

 

3. Estática vs. Dinámica

  1. Las funciones Fitness estáticas tienen un resultado fijo, como el aprobado o desaprobado binario de una prueba de unidad.
  2. Las funciones dinámicas Fitness se basan en una definición cambiante basada en el contexto extra. Por ejemplo, una empresa podría crear un valor móvil para el rendimiento basado en la escalabilidad.

 

4. Automatizada vs. Manual

  1. A los arquitectos de software les gustan las cosas automatizadas. Las funciones de aptitud automatizadas se ejecutan en un contexto automatizado, mientras que las funciones de aptitud manuales, como los requisitos legales, desafían la automatización.
  2. Las funciones de aptitud manual son casos que requieren la verificación del proceso basado en la persona.

 

Beneficios clave de las funciones arquitectónicas Fitness

  • Las funciones Fitness pueden medir objetivamente la deuda técnica y la calidad del código.
  • También proporcionan información en tiempo real cuando se realizan cambios en las funciones Fitness debido, por ejemplo, a nuevas normas de seguridad u operacionales.
  • Pueden informar sobre las opciones de codificación de las interfaces, los eventos y las API relacionadas con los procesos posteriores.
  • Al aplicar el patrón strangler pueden ser útiles para verificar que se cumplen los requisitos cuando se desacoplan las lógicas comerciales.
  • Pueden comunicar estándares arquitectónicos en forma de código, ayudando así a los desarrolladores a entregar características mejor alineadas con la arquitectura.
  • Un arquitecto puede solicitar cambios en algún aspecto de la arquitectura que serán verificados durante el proceso de construcción.
  • Comunicar, validar y preservar las características arquitectónicas de forma automatizada y continua.
  • A veces los arquitectos de software no conocen todas las partes importantes de una arquitectura al principio y así pueden identificar las funciones de adecuación a medida que el sistema evoluciona. Éstas surgen durante el desarrollo real del sistema.
  • Mantiene las normas de codificación.

 

Mientras que la mayoría de las funciones Fitness se activan con el cambio, los arquitectos de software pueden querer construir un componente de tiempo en la evaluación de la adecuación. Por ejemplo, si un proyecto utiliza una biblioteca de cifrado, el arquitecto puede querer crear una función de Fitness temporal como recordatorio para comprobar si se han realizado actualizaciones importantes.

Si quieres saber más sobre las funciones Fitness, te recomendamos encarecidamente:

 

 

Vivimos en un mundo en el que las tecnologías y sistemas de software están en constante cambio. Y queremos construir una arquitectura que sea capaz de evolucionar con ellos. Queremos que nuestras arquitecturas evolucionen de forma guiada. Las funciones Fitness son una buena manera de poner restricciones a diferentes aspectos de la arquitectura para guiarlos en ciertas direcciones evolutivas.

 

Espero que te haya sido útil, si tienes alguna pregunta, contáctanos! ¡Somos especialistas en arquitectura de software!