1. Inicio
  2. Tecnología
  3. Arquitectura de software

Significado de Arquitectura de software

Sustantivo femenino compuesto. «Arquitectura», del latín architectura; «software», voz inglesa formada sobre soft («blando») y ware («mercancía»), sin traducción fija asentada, aunque se recomienda «programas» o «soporte lógico».

La arquitectura de software es el diseño de alto nivel de un sistema informático: cómo se dividen sus componentes, qué función cumple cada uno y cómo se comunican entre sí para resolver el problema conjunto.

Se decide en las primeras etapas de un proyecto y condiciona todo lo que viene después, porque cambiarla una vez construido el sistema resulta mucho más costoso que cambiar un detalle interno de una sola parte.

Qué es la arquitectura de software

Antes de escribir la primera línea de código, quien diseña un sistema grande debe decidir cómo se van a repartir sus responsabilidades: qué parte atenderá las peticiones de los usuarios, cuál guardará los datos, cuál aplicará las reglas del negocio y cómo se comunicarán esas partes entre sí. Ese conjunto de decisiones es la arquitectura de software.

No es lo mismo que el diseño detallado de cada componente: la arquitectura se ocupa de la estructura general —los bloques principales y sus conexiones—, mientras que el diseño de bajo nivel decide cómo se construye cada bloque por dentro, clase a clase o función a función.

La estudia la ingeniería de software, en particular la disciplina llamada diseño arquitectónico, que evalúa cada decisión según criterios como la facilidad de mantener el sistema, su capacidad para crecer y su tolerancia a fallos parciales.

Origen de la expresión arquitectura de software

«Arquitectura» procede del latín architectura, y este del griego arkhitéktōn, «maestro constructor», compuesto de arkhi- («principal») y téktōn («constructor, artesano»). «Software» es voz inglesa acuñada a mediados del siglo XX por contraste con hardware, el componente físico de un ordenador.

La comparación entre construir edificios y construir sistemas informáticos se popularizó a medida que los programas crecieron en tamaño y en número de personas implicadas en su desarrollo: igual que un edificio necesita planos antes de levantar los muros, un sistema grande necesita decisiones estructurales previas para no volverse inmanejable con el tiempo.

Estilos de arquitectura de software

EstiloEn qué consisteEjemplo
En capasOrganiza el sistema en niveles apilados, donde cada capa solo se comunica con la contigua.Presentación, lógica de negocio y acceso a datos como capas separadas.
Cliente-servidorSepara quien solicita un servicio de quien lo proporciona a través de una red.Una aplicación que consulta datos a un servidor remoto.
De microserviciosDivide el sistema en servicios pequeños e independientes que se comunican entre sí.Un servicio de pagos y otro de inventario que funcionan por separado.
MonolíticaReúne todas las funciones del sistema en un único bloque desplegado como una unidad.Una aplicación de gestión que incluye en un solo programa la facturación y el inventario.

Ningún estilo es mejor en abstracto: una arquitectura monolítica es más sencilla de desarrollar y desplegar al principio, mientras que una de microservicios facilita escalar partes concretas del sistema por separado, a costa de una comunicación entre componentes más compleja.

Ejemplos de uso de arquitectura de software

El equipo dedicó las primeras semanas del proyecto a definir la arquitectura de software antes de repartir las tareas de programación.

La empresa migró su arquitectura de software de un único bloque monolítico a varios servicios independientes.

En la entrevista técnica le preguntaron qué arquitectura de software usaría para un sistema con millones de usuarios simultáneos.

El documento de arquitectura de software incluía un diagrama con cada componente del sistema y las conexiones entre ellos.

Sinónimos y palabras relacionadas

Sinónimos: diseño arquitectónico, arquitectura de sistemas (con un alcance algo más amplio).

Antónimos: no tiene antónimos propiamente dichos; por contraste, «código sin planificar» describe la ausencia de una arquitectura deliberada.

No es lo mismo que:

Preguntas frecuentes sobre arquitectura de software

¿Quién define la arquitectura de software de un proyecto?

Suele ser responsabilidad de un perfil experimentado, a veces llamado arquitecto o arquitecta de software, aunque en equipos pequeños puede decidirse de forma colegiada entre quienes van a desarrollar el sistema.

¿Se puede cambiar la arquitectura de software una vez empezado el proyecto?

Es posible, pero suele ser costoso, porque muchas decisiones posteriores dependen de la estructura inicial. Por eso conviene dedicar tiempo a evaluarla antes de escribir gran parte del código.

¿Qué diferencia hay entre arquitectura monolítica y de microservicios?

La monolítica reúne todas las funciones en un único bloque que se despliega junto; la de microservicios las divide en piezas independientes que se comunican entre sí y pueden desplegarse y escalar por separado.

Ver también