
Asesoria en arquitectura de software
Arquitecturas más comunes
La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema.
Una Arquitectura de Software, también denominada Arquitectura lógica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco.
Una arquitectura de software se selecciona y diseña con base
en objetivos (requerimientos) y restricciones. Los objetivos son
aquellos prefijados para el sistema de información, pero no
solamente los de tipo funcional, también otros objetivos como
la mantenibilidad, auditabilidad, flexibilidad e interacción con
otros sistemas de información. Las restricciones son aquellas
limitaciones derivadas de las tecnologías disponibles para
implementar sistemas de información. Unas arquitecturas
son más recomendables de implementar con ciertas
tecnologías mientras que otras tecnologías no son aptas para
determinadas arquitecturas. Por ejemplo, no es viable emplear
una arquitectura de software de tres capas para implementar
sistemas en tiempo real.
La arquitectura de software define, de manera abstracta, los
componentes que llevan a cabo alguna tarea de computación,
sus interfaces y la comunicación entre ellos. Toda arquitectura
debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.
La arquitectura de software, tiene que ver con el diseño y la implementación de estructuras de software de alto nivel. Es el resultado de ensamblar un cierto número de elementos arquitectónicos de forma adecuada para satisfacer la mayor funcionalidad y requerimientos de desempeño de un sistema, así como requerimientos no funcionales, como la confiabilidad.

Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas más universales son:
Descomposición Modular. Donde el software se estructura en grupos funcionales muy acoplados.
Ejemplo: Patron usado para la creacion de los primeros sitemas operativos(lenguaje de programacion c).
Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.
Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente:
Ejemplo: El patron MVC

El modelo–vista–controlador (MVC) es un patrón de arquitectura de software que separa los datos y la lógica de negociode una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario. Este patrón de arquitectura de software se basa en las ideas de reutilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento.