📖 Resumen: Arquitectura de Software según IEEE Computer Society & SWEBOK
Fuente Oficial Original: IEEE Computer Society - Software Architecture Resource y Guía SWEBOK (Software Engineering Body of Knowledge).
1. El Problema Real: La Dificultad Inherente del Software Complejo
El desarrollo de software a gran escala enfrenta desafíos inevitables: a medida que el sistema crece, el código tiende a degradarse y divergir si no existe una estructura intencional que guíe su evolución.
┌────────────────────────────────────────────────────────┐
│ El Riesgo de la Ingeniería Inversa │
│ │
│ Código Existente ──(Reconstrucción)──> ¿Arquitectura? │
│ │
│ ⚠️ IEEE advierte: El código diverge de la intención. │
│ La arquitectura debe diseñarse ANTES de programar, │
│ no deducirse después a partir del código. │
└────────────────────────────────────────────────────────┘Aviso de IEEE: Intentar deducir la arquitectura reconstruyéndola desde el código existente (ingeniería inversa) oculta las razones de diseño (Design Rationale) y carece del nivel de abstracción necesario.
2. Los 3 Mecanismos Fundamentales de Abstracción
Según el estándar de ingeniería de software, la arquitectura se sostiene en tres operaciones conceptuales:
3. Descripción del Sistema: Las 4 Vistas Arquitectónicas
Dado que ningún diagrama individual puede reflejar todas las necesidades de los distintos interesados (stakeholders), IEEE formaliza el uso de Vistas Múltiples:
| Vista | ¿A quién le interesa? | ¿Qué describe? | Ejemplo Práctico |
|---|---|---|---|
| Vista Lógica | Desarrolladores y Analistas | Clases, paquetes, módulos y modelos de dominio. | Diagramas de paquetes DDD y modelos entidad-relación conceptuales. |
| Vista de Procesos | Ingenieros de Sistemas y Rendimiento | Concurrencia, hilos, sincronización y latencia. | Flujo de eventos asíncronos en colas Kafka o RabbitMQ. |
| Vista de Desarrollo | Líderes Técnicos y DevOps | Gestión del código fuente, dependencias y empaquetado. | Estructura de monorepos, librerías compartidas y pipelines CI/CD. |
| Vista Física | Sysadmins e Infraestructura Cloud | Topología de servidores, redes y despliegue físico. | Clúster Kubernetes, balanceadores de carga y bases de datos maestras. |
4. Estilos, Patrones y Frameworks
- Estilos Arquitectónicos: Estructuras reutilizables con reglas bien definidas (ej: Layered / En Capas, Pipe-and-Filter / Tuberías y Filtros).
- Patrones de Diseño: Soluciones probadas a problemas de diseño más localizados dentro de un subsistema.
- Frameworks de Arquitectura: Conjuntos de herramientas y convenciones que aceleran la implementación de un estilo arquitectónico concreto.
5. Métricas de Calidad Arquitectónica
Para evaluar objetivamente si la arquitectura diseñada cumple con los requerimientos a lo largo del tiempo: