Tal como mencioné en el post anterior hoy comenzaré con un acercamiento al tema Arquitectura de software. Como introducción voy a compartir una definición de arquitectura, siguiendo por cual es su propósito, quienes la influencian y finalmente el rol del arquitecto.
Tiempo de lectura estimado: 5-6 minutos.
Una de las definiciones modernas de arquitectura de software y que a mi entender es simple y clara es la del Software Engineering Institute (SEI) de la Universidad de Carnegie-Mellon “...es la
estructura o estructuras del sistema, que comprende elementos de
software, las propiedades visibles externamente de dichos elementos y la
relación entre ellos”, basada en el libro Software Architecture in Practice.
Desde
una visión no tan conceptual, se puede decir que la arquitectura es
estructura y comportamiento, se enfoca en elementos significativos o relevantes, se
presenta a un alto nivel de abstracción, está presente en cualquier
sistema y balancea necesidades de los involucrados.
Su propósito
es comprender el sistema y
organizar el desarrollo, fomentar la reutilización de componentes y facilitar la
evolución del sistema
Generalmente, la arquitectura se ve influenciada por distintos factores que afectan significativamente tanto su definición como su mantenimiento, algunos de ellos se pueden clasificar en:
- los stakeholders (involucrados)
- la organización que desarrolla el sistema
- el ambiente tecnológico
- la experiencia del arquitecto