16. Arquitectura de software

Modelo vista controlador

En este capítulo abordaremos de manera teórica lo que es importante a tratar para poder integrar todos los conocimientos a lo largo de estos capítulos.

Modelo vista controlador

Funcionamiento

Tenemos un usuario el cual está haciendo peticiones al servidor, ese servidor se encarga de recibir peticiones y responderlas, e internamente funciona bajo el esquema arriba indicado. Tiene una parte que controla esas peticiones y las respuestas que el servidor vaya mandando. El modelo es la parte que se va a comunicar con los datos, dicho modelo devolverá una vista que es la que se devuelve a la petición del usuario.

Arquitectura de software

La arquitectura de software es la forma en la que se organizan los componentes de un sistema, la manera en como los mismos van a interactuar y se relacionan entre sí y también con su contexto, que son todos los agentes externos con los cuales nuestro sistema vaya a funcionar.

Dentro de la arquitectura de software se aplican ciertas normas y principios de diseño y calidad con el objetivo de fortalecer y fomentar la usabilidad. Todas estas normas deben estar pensadas para que, si más adelante el sistema tiene que evolucionar, esté preparado para dichos cambios o dicha evolución.

Cuando estemos creando tenemos que pensar que nuestro software tenga la capacidad de crecer, tanto vertical como horizontalmente.

Etapas de la arquitectura de software

Las etapas que encontramos en la arquitectura de software son 4, que son las siguientes:

  • Requerimientos
  • Diseño
  • Documentación
  • Evaluación

En la etapa de requerimientos nos enfocamos a capturar las necesidades, y en base a dichas necesidades, priorizar las etapas del diseño que vayamos a formular en la arquitectura de software. Posteriormente, el diseño es la etapa central en la que se toman las decisiones más importantes, es donde empezamos a elegir tecnologías, herramientas, tiempo que vamos a necesitar, y también vamos a elegir el patrón de diseño que mas nos convenga para desarrollar la aplicación. En la etapa de documentación, una vez creado el diseño de la arquitectura, es necesario estar documentando todos los detalles de la fase de desarrollo de software, para que de esta manera, si hacemos entrega formal de nuestro sistema, y no vamos a tener que ver nada con dicho sistema, los futuros administradores tengan ese respaldo para que puedan intervenirlo de la manera adecuada, o aumentar las capacidades del sistema basándose en los principios de la arquitectura de la cual fue creado. Inclusive si seguimos administrando dicho sistema, si ha pasado tiempo ya no recordamos bien que hicimos en su momento, con la documentación tenemos todo a mano. La documentación es muy importante en las etapas finales del software.

Mientras se va documentando también se va evaluando, la evaluación es un papel crítico en el desarrollo de la arquitectura de software. Muchas veces la etapa de evaluación hace que tengamos que regresar a la etapa de diseño, tenemos un rediseño en el planteamiento de como hemos desarrollado el sistema.

No confundir la arquitectura de software con el ciclo de vida de un sistema. De hecho, el ciclo de vida de un sistema estaría intrínseco en la etapa de diseño del mismo.

Tipos de arquitectura de software

Existen diversos tipos de arquitectura de software:

  • Descomposición modular
  • Cliente – servidor
  • Arquitectura de tres niveles: la interfaz se comunica con el controlador, y el controlador con el modelo. No hay interrelación entre los 3 elementos.
  • Modelo Vista Controlador (MVC): hay interdependencia entre interfaz, controlador y modelo.
  • En filtros (pipeline)
  • Entre pares
  • En pizarra
  • Dirigida por eventos: Angular, Backbone… trabajan con esta arquitectura.
  • Máquinas virtuales
  • Orientada a servicios

El Modelo Vista Controlador deriva de la arquitectura de tres niveles. Existe desde la década de los 70. Cuando empiezan a existir las aplicaciones web, es el modelo por excelencia de dichas aplicaciones.

Scroll al inicio