estudiante
• Motivación:
– Complejidad creciente de aplicaciones.
– Sistemas distribuidos (segunda coordenada de
complejidad).
– Sistemas abiertos y basados en componentes
(tercera coordenada de complejidad).
• Idea principal:
Estructura de alto nivel de un sistema software y
sus propiedades globales.
Arquitecturas Software
• Características:
– Parte del diseño desoftware.
– Nivel del diseño de software donde se definen
la estructura y propiedades globales del
sistema.
– Incluye sus componentes, las propiedades
observables de dichos componentes y las
relaciones que se establecen entre ellos.
– Un aspecto crítico: Una arquitectura errónea
puede llevar a problemas incontables.
1
Arquitecturas Software
• Características:
– Representación dealto nivel de la estructura del
sistema describiendo las partes que lo integran.
– Puede incluir los patrones que supervisan la
composición de sus componentes y las
restricciones al aplicar los patrones.
– Trata aspectos del diseño y desarrollo que no
pueden tratarse adecuadamente dentro de los
módulos que forman el sistema.
Arquitecturas Software
• Nueva disciplina:
– Toda aplicacióntiene una arquitectura, aunque
no sea explícita.
– Tradicionalmente ha habido un repertorio de
técnicas, patrones y expresiones para
estructuras sistemas software complejos.
• Arquitectura de Software:
– Hace explícito con rigor lo anterior.
– Incluye modelos, lenguajes y herramientas para
la descripción y desarrollo práctico de
arquitecturas software.
Arquitecturas Software
•Objetivos:
– Comprender y mejorar la estructura de las
aplicaciones complejas.
– Reutilizar dicha estructura (o partes de ella) para
resolver problemas similares.
– Planificar la evolución de la aplicación, identificando
las partes mutables e inmutables de la misma, así
como los costes de los posibles cambios.
– Analizar la corrección de la aplicación y su grado de
cumplimiento respecto a losrequisitos iniciales.
– Permitir el estudio de algunas propiedad específica
del dominio.
2
Arquitecturas Software
• ¿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, ladistribució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, mantenibilidad, etc.
Arquitecturas Software
• ¿De qué no se ocupa?
– Diseño detallado.
– Diseño de algoritmos.
– Diseño de estructuras de datos.
Arquitecturas Software
•¿Qué elementos intervienen?
– Componentes.
– Realizan cómputos y almacenamiento de datos.
– Interaccionan unos con otros durante la
ejecución.
• ¿Qué elementos no intervienen?
– Módulos (fuente) del sistema.
– Interacción: relaciones de definición/uso.
– Importación o exportación de elementos
definidos en el código fuente.
3
Arquitecturas Software
• ¿Cómo interviene en laconsecución de una
solución?
– Métodos arquitectónicos.
– Espacio de los diseños arquitectónicos:
propiedades de los diferentes diseños
arquitectónicos y su capacidad para resolver
diferentes problemas.
• ¿Cómo no interviene?
– Métodos de desarrollo de software:
Proporcionan un camino entre el espacio del
problema y la solución.
Arquitecturas Software
• Puntos en común:
– Los métodosde desarrollo suelen basarse en un
estilo arquitectónico preferido.
– Nuevos estilos arquitectónicos proponen
nuevos métodos de desarrollo.
Un mismo diseño arquitectónico puede servir
para dos aplicaciones distintas (ej. los
patrones de diseño)
Estilos arquitectónicos
• Clasificación de los sistemas software en grandes familias
cuyos integrantes comparten un patrón estructural común....
Regístrate para leer el documento completo.