La arquitectura de software juega un papel clave en el desarrollo de software porque permite producir diversos modelos que caracterizan la solución, pueden ser analizados para determinar si cumplen los requisitos, facilitan la evaluación de alternativas y sirven para planificar las siguientes actividades. La arquitectura se define por la estructura y relaciones entre los elementos de software. Existen varios estilos arquitecturales como capas, cliente-servidor y MVC.
4. Juega un papel clave en el desarrollo de software porque
permite a los ingenieros de software producir diversos
modelos que:
• Caracterizan la solución a implementar.
• Pueden ser analizados y evaluados con el fin de
determinar si se satisfacen los requisitos.
• Facilitan el examen y evaluación de alternativas.
• Sirven para planificar las siguientes actividades del
desarrollo.
5. La arquitectura de software de un programa o de un
sistema computacional está definida por la estructura,
comprendida por los elementos de software, las
propiedades visibles de esos elementos y las relaciones
entre ellos.
6. Incremento en el tamaño y complejidad del software.
• Necesidad de aprender de la experiencia: reutilización
de estructuras asociadas a problemas similares
• Una adecuada estructura general es tan importante
como las implementaciones concretas de las partes.
7. ¿De qué se ocupa?
• Diseño preliminar o de alto nivel.
• Organización a alto nivel del sistema, incluyendo
aspectos como la descripción y análisis de propiedades
relativas a su estructura y control global, los protocolos
de comunicación y sincronización utilizados, la
distribución física del sistema y sus componentes, etc.
• Otros aspectos relacionados con el desarrollo del
sistema y su evolución y adaptación al cambio:
composición, reconfiguración, reutilización, escalabilidad,
etc.
8. Se diseña con base en requerimientos no funcionales o
atributos de calidad:
Performance
Disponibilidad
Modificabilidad
Seguridad
Verificabilidad (Testability )
Gestion
Habilidad
Usabilidad
11. Estilos arquitecturales
• Principales estilos arquitecturales :
• Estructura General
• Capas, tuberías y filtros, repositorio compartido
• Sistemas Distribuidos
• Cliente-servidor, tres capas, broker
• Sistemas Interactivos
• MVC (Modelo-Vista-Controlador), PAC (Presentación-
Abstracción Control).
12. Estilo cliente servidor:
• Estructura un sistema distribuido en:
• Servidores autosuficientes que provee en servicios
(impresión, gestión de datos, ..).
• Clientes que invocan dichos servicios
14. Su principal objetivo es separar la lógica del negocio de la
logia del diseño.
• Se generar múltiples niveles en proceso de desarrollo, si
se genera un cambio en algún nivel solo afecta el nivel
requerido, no hay que revisar todo el código.
• Permite distribuir el trabajo de creación de una
aplicación por niveles, cada grupo de trabajo está
totalmente abstraído del resto de niveles, de forma que
basta con conocer la API (Interfaz de programación de
aplicaciones)que existe entre niveles.
Arquitectura Multicapas
16. Es una arquitectura de diseño software para
separar los componentes de aplicación en tres
niveles, interfaz de usuario, lógica de control y lógica de
negocio.
• Es una especialización de un modelo de capas, con la
diferencia que se usa para entornos web como patrón
por excelencia.
PATRON MVC (MODELO VISTA Y CONTROL)
18. Modelo:
Es la capa encargada de encapsular toda la lógica de
negocio de nuestra aplicación. Esta capa se puede
subdividir en varias:
Lógica de negocio:
Contiene clases o varias para constituir lo referente a la
capa de aplicación, se encarga de atender a las peticiones
de los controladores y así dar una respuesta acorde con
lo recibido.
RESPONSABILIDADES MVC
19. Capa de datos:
Se encarga de gestionar toda la interconexión con el
SGBD, así mismo, puede contener un gestor ORM para su
aprovechamiento máximo y mejor mantenimiento. Solo se
comunica con la lógica de negocio.
Controlador:
Es el eje central de nuestra arquitectura, encargada de
gestionar todas las peticiones, validar los inputs recibidos
y dirigir cualquier petición de cualquier tipo. Solo se
comunica con el modelo y responde a través de vistas.
RESPONSABILIDADES MVC