Arquitectura evolutiva — RexDac Academy

RexDac AcademyNotas técnicas · Ayuda tener algunos conocimientos previos
0%Notas publicadas leídas · en este dispositivo

Arquitectura evolutiva

Arquitectura evolutiva

Notas originales de SunDiaL · Ver fuente en inglés

Hace unos 20 o 30 años, al diseñar un proyecto se concebía su arquitectura para que durara. Se planificaba para cinco años o más. Pero las cosas cambian, y hoy todavía más.

La arquitectura evolutiva acepta que el cambio es inevitable e intenta orientarlo para evitar la degradación del software. Para ello utiliza un concepto de la programación evolutiva: la función de aptitud. Los ámbitos donde puede producirse esa degradación se llaman aspectos arquitectónicos.

Aspectos arquitectónicos

A partir de cierto punto, una solución no se ocupa únicamente de los requisitos del cliente. Estas cuestiones se llaman aspectos arquitectónicos, aspectos transversales, etc. Tienen muchos nombres, pero se reducen a:

  • Auditabilidad.
  • Rendimiento.
  • Seguridad.
  • Requisitos.
  • Datos.
  • Legalidad.
  • Escalabilidad.

Función de aptitud

En arquitectura evolutiva, una función de aptitud es cualquier función o métrica utilizada para medir lo buena que es una solución. Las funciones de aptitud se clasifican según:

Alcance

  • Atómicas -> evalúan un solo aspecto.
  • Holísticas -> evalúan varios aspectos.

Frecuencia

  • Activadas por eventos -> pruebas unitarias, de pipeline o de control de calidad.
  • Continuas -> más bien periódicas: comprueban constantemente el sistema a intervalos determinados.
  • Temporales -> comprueban que el código se mantiene actualizado, haciendo fallar las comprobaciones cuando se usan versiones antiguas de bibliotecas.