La estructura de un sistema tal cual y la forma en cómo podemos interactuar con él son una serie de códigos y datos complejos que en conjunto se unen para formar la arquitectura de software, proceso del cual hablaremos en este post. Así que si eres de las personas interesadas en el mundo de la informática, esto es uno de los conceptos básicos que debes manejar.

Arquitectura de Software: Definición, Tipos y Ejemplos

Al principio, cuando recién se empezaba a expandir el concepto de informática, se consideraba a la programación como un arte y se desarrollaba como tal, pues tenía cierto grado de complejidad lo cual hacía reducido el número de personas que dominasen este arte. Sin embargo a través del tiempo se han desarrollado diversas formas y guías generales que nos permiten resolver los problemas. A éstas formas se les denominó Arquitectura de Software, ya que se asemeja a los planos que se emplean para la construcción de un edificio u otra estructura.

La Arquitectura de Software indica la estructura, funcionamiento e interacción entre las partes del software, que van más allá de los algoritmos y estructuras de datos de la computación, el diseño y la especificación de la estructura global del sistema. Esta Arquitectura es el diseño del más alto nivel de la estructura de un sistema.

Arquitectura de Software: Definición, Tipos y Ejemplos

Al mismo tiempo una Arquitectura de Software también se conoce como Arquitectura Lógica y consiste en una serie de patrones y abstracciones coherentes. Ésta se selecciona y diseña en base a los objetivos y restricciones. Los objetivos son prefijados para el sistema de información y no solo de tipo funcional, ya que existen otros objetivos como mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información.

Mientras tanto las restricciones son limitaciones que derivan de las tecnologías disponibles para poder implementar sistemas de información. Esta Arquitectura de Software define abstractamente los componentes que permiten llevar cabo una tarea en computación, las interfaces y la comunicación entre ellos.