¿Qué es la Arquitectura de Software?
(Fuente: camaradecomercioempresarial.org)
Cuando se habla de arquitectura, el primer pensamiento que se nos puede venir a la mente es aquella disciplina utilizada para la construcción de casas o edificios, en la cual se diseña y planifica todo lo relacionado a dicha construcción.
Cuando nos referimos a la arquitectura dentro del ámbito del software, la definición no cambia demasiado, simplemente que, ahora en lugar de enfocarse en lo que es la construcción de cosas físicas, está ahora enfocada a la construcción o desarrollo de un producto de software.
El concepto de Arquitectura de Software es un término que se viene utilizando desde los años 60, y este mismo se refiere a realizar una planificación basada en modelos, patrones y abstracciones teóricas al momento de estar desarrollando un producto de software de cierta complejidad, todo esto previo a cualquier implementación.
También es posible interpretar el concepto de arquitectura de software de una forma más sencilla para poder entenderlo mejor. Imaginemos que se quiere realizar una construcción, ya sea una casa, un gran edificio, o cualquier otra cosa, la arquitectura de software sería todo el proceso de planificación y diseño previo a dicha construcción, en base a estándares y normativas ya establecidas, ya que esta es la que pone las bases sobre las cuáles se desarrollará posteriormente el software.
Importancia de la Arquitectura de Software
La Arquitectura de Software es de suma importancia dentro de cualquier desarrollo, siendo que esta nos permite planificar a priori nuestro desarrollo, y con esto poder elegir el mejor conjunto de herramientas para poder llevar a cabo dicho proyecto.
De igual forma, se importante pensar en una serie de cuestiones a la hora de elegir un patrón de arquitectura, ya que estas son las que determinan el uso final que se le va a dar al proyecto.
Huet (2022), nos comparte 4 de estas cuestiones:
- Coste - ¿Cuánto estamos dispuestos a invertir en el desarrollo y mantenimiento de nuestro sistema? Como hemos visto hay ciertos patrones más complejos, que requieren más infraestructura y cuyo desarrollo puede ser más irregular, por tanto, hemos de saber cuánto estamos dispuestos a invertir primero en el desarrollo de nuestra aplicación.
- Tiempo de desarrollo - Igualmente, y muy relacionado con lo anterior, debemos de preguntarnos cuanto tiempo disponemos para desarrollar el producto, y cómo de cerca se encontraría la fecha de entrega o de salida al mercado.
- Número de usuarios - Sin duda uno de los ítems críticos a la hora de desarrollar el producto es preguntarnos qué tipo de producto es y cuantos usuarios soporta ¿Funciona a través de web? ¿Es stand-alone? ¿Debe de soportar cargas elevadas por diseño?, estas preguntas pueden declinarnos a elegir patrones más o menos distribuidos, pasando, por ejemplo, de uno menos distribuido como el de capas al más distribuido o broker.
- Nivel de aislamiento - Otro factor importante a tener en cuenta es si nuestro producto funciona de forma aislada al resto de productos del usuario o si debe de integrarse o permitir integraciones de terceros. Algunas arquitecturas, como la de capas, son más cerradas y podrían dificultar estas integraciones si lo escogemos sobre otras.
Para finalizar con este tema, a continuación está un video con el cual puede ser un poco más fácil entender lo que es la Arquitectura de Software, del canal de Manuel Zapata en la plataforma de Youtube.
Referencias:
Huet
- Huet, P. (2023, 13 abril). Arquitectura de software: qué es y qué tipos existen. OpenWebinars.net. https://openwebinars.net/blog/arquitectura-de-software-que-es-y-que-tipos-existen/
- KeepCoding, R. (2023, 3 abril). ¿Qué es una arquitectura de software? KeepCoding Bootcamps. https://keepcoding.io/blog/arquitectura-de-software/
Comentarios
Publicar un comentario