Menú Cerrar

¿Qué es arquitectura de software?

que es arquitectura de software

Una vez escuché decir a un arquitecto famoso, de esos que escriben libros, lo siguiente:

“Si sentamos en una mesa a 10 arquitectos, y les preguntamos ¿qué es arquitectura de software?, tendríamos al menos 11 definiciones diferentes.”

Por eso, en este artículo voy a mostrarte las definiciones más importantes, y analizaremos los aspectos más relevantes de cada una.

Si te da pereza leer, en el siguiente video te explico con más detalle las definiciones. Si prefieres leer, continúa más abajo.

Link al video | Suscríbete a mi canal

Definición # 1

La primera definición viene del libro Software Architecture in Practice, en el cual dice:

“La arquitectura de software es el conjunto de estructuras para razonar acerca del sistema.” 

Aquí hay dos conceptos claves.

El primero es Estructura. Esto es: cómo vamos a organizar cada una de las partes del sistema y cómo se van a conectar.

Para esto, los patrones de arquitectura son tu mejor aliado. Cualquier patrón de este tipo te va a decir qué componentes necesitas y cómo se van a interconectar.

Si quieres aprender más sobre patrones de arquitectura, tengo muchos videos en mi canal de YouTube. Además, tengo un curso práctico sobre el tema

El segundo término de la definición es Razonar.

La idea es que la arquitectura de software sirva para que el equipo de desarrollo o equipo técnico, pueda tener discusiones acerca del sistema a un alto nivel.

Definición # 2

La segunda definición viene del libro de Design it! From programmer to architect, donde el autor habla que:

“La arquitectura de software es el conjunto de decisiones de diseño importantes para organizar el software, y promover los atributos de calidad deseados.”

Aquí tenemos que analizar dos partes muy importantes. La primera es Decisiones de diseño y la segunda es Atributos de calidad

En cuanto a las decisiones de diseño, tenemos que definir para nuestra arquitectura cuáles son las consideraciones más importantes que van a guiar el trabajo del equipo.

Por otro lado tenemos los atributos de calidad. Estos son importantes para el arquitecto, porque le permiten definir qué es lo que va más allá de lo funcional, y que es necesario para que el sistema funcione bien.

Atributos de calidad tenemos muchos. La idea es escoger los más importantes para la aplicación.

Algunos de estos son:

  • Facilidad de mantenimiento.
  • Desplegabilidad. 
  • Escalabilidad.
  • Elasticidad.

Definición # 3

La tercera definición viene de Ralph Johnson. Él es uno de los autores del libro sobre patrones de diseño. En esta definición, Ralph Johnson dice:

“La arquitectura es acerca de las cosas importantes. Sean las que sean.”

Esta es una definición un tanto extraña. Lo que dice Ralph Johnson es que dependiendo de la persona o de la empresa, la arquitectura puede tener distintos elementos.

De esto se trata esta definición. De entender que dependiendo del equipo, hay distintos elementos fundamentales para la arquitectura.

Cierre

No existe una definición universal de arquitectura de software. Todas dicen algo relevante. Cada experto tiene expectativas diferentes de lo que debería ser la arquitectura de software. Sin embargo, en cada definición vemos unos elementos en común que debemos considerar.


Suscríbete a mi lista de correo.

Te avisaré de nuevo material que te ayude a ser un mejor desarrollador o arquitecto.
Publicado en Arquitectura de software