Académique Documents
Professionnel Documents
Culture Documents
Introduccin
No hay una metodologia de Arquitectura Arquitectura es un Diagrama (Es el diseo) No se puede medir ni evaluar El diseador mas antiguo es el Arquitecto Es la Infraestructura Yo estudie en un libro Es la tecnologia de moda
Contenido
Que es Arquitectura de Software?
Proceso de la Arquitectura Rol y Responsabilidades del Arquitecto Arquitectura Vs. Diseo
Arquitectura de Software
Que es una arquitectura?
Es el conjunto de decisiones significativas sobre la organizacin de un sistema de software que define los principios que guan el desarrollo, los componentes, principales del sistema, sus responsabilidades y la forma en que se interrelacionan.
Discusin
+ Definir la arquitectura en los proyectos actuales es
crtico...
Evolucin de Arquitecturas
Dos factores primarios en la ingeniera de software que han incrementado la importancia de la arquitectura:
Evolucin de Arquitecturas
Aplicaciones Monolticas
Interfaces grficas de usuario (GUI). Servicios de presentacin, negocios y persistencia en la misma mquina. No hay concurrencia de usuarios. Alto acoplamiento entre tiers.
Arquitectura Cliente-Servidor
+ Clientes pesados, no estndar + Conexiones dedicadas a BD + Protocolos pesados + Ejecucin remota de SQLs + Alta administracin + Bajo rendimiento + Alto trfico de red + Baja accesibilidad
Evolucin de Arquitecturas
Arquitectura Cliente-Servidor Mejorada Lgica de negocios en BD Clientes pesados, no estndar. Conexiones dedicadas a la BD. Mejora en rendimiento Alta administracin Baja escalabilidad Baja flexibilidad Baja portabilidad Arquitectura de 3 niveles
+ Reutilizacin de lgica de negocio para
diferentes clientes o sistemas. + Mejora la escalabilidad. + Mejora la flexibilidad. + Independencia de la base de datos.
Evolucin de Arquitecturas
Arquitectura de N-niveles
+ Bajo costo de administracin de clientes. + Alta accesibilidad. + Alta flexibilidad. + Alta disponibilidad y tolerancia a fallos. + Alta escalabilidad. + Independencia de DB
Evolucin de Arquitecturas
Visin de Arquitectura Orientada a Servicios (SOA)
+ Requerimientos
Arquitectnicos
+ Heterogeneidad
+ Escalabilidad + Disponibilidad + Distribucin
+ Manejabilidad de Procesos
+ Administracin y monitoreo de procesos,
servicios e infraestructura
Discusin
+ Existe alguna diferencia entre arquitectura y diseo
de software?
reas de Enfoque
Arquitectura
Beneficios
1. Proporciona comunicacin entre los participantes del proyecto. 2. Manifiesta las decisiones de diseo tempranamente. 3. Las arquitecturas son un modelo reusable y transferible.
Qu es un Patrn?
Un patrn de arquitectura de software es un esquema genrico probado para solucionar un problema particular, el cual es recurrente dentro de un cierto contexto. Este esquema se especifica describiendo los componentes, con sus responsabilidades y relaciones.
Modelo-View-Controlador, Presentacin-Abstraccin-Control
Patrones Adaptables
MicroKernel, Reflexion
Patrones Simples
Capas: Ayuda a estructurar aplicaciones que pueden ser descompuestas en grupos de subtareas con distintos niveles de abstraccin (granularidad). Tubos-y-Filtros: Provee una estructura para sistemas que procesan datos de entrada. El procesamiento puede estar encapsulado en uno o ms procesos (filtros). Pizarrn: til en problemas para los cuales no hay una solucin conocida. Generalmente provee aproximaciones a la solucin final. Repositorio: Ayuda a estructurar sistemas centrados en los datos, hacindolos ms flexibles y adaptables. .... Estos son modelos generales, que requieren instanciaciones especficas.
Capas
La arquitectura de layers o capas ayuda a estructurar aplicaciones que pueden descomponerse en grupos de subtareas con diferentes niveles de abstraccin.
Capas
Es una arquitectura cliente-servidor en el que el objetivo primordial es la separacin de la lgica de negocios de la lgica de diseo; un ejemplo bsico de esto consiste en separar la capa de datos de la capa de presentacin al usuario. La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algn cambio, slo se ataca al nivel requerido sin tener que revisar entre cdigo mezclado.
Pipes y Filtros
El patrn de arquitectura de pipes y filtros provee una estructura para procesar flujos de datos. Cada paso de procesamiento se encapsula en un filtro. Los datos se pasan usando los pipes entre filtros adyacentes. Recombinando los filtros pueden construirse distintas familias de sistemas relacionados.
Pipes y Filtros
Consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la anterior. Es muy comn en el desarrollo de programas para el intrprete de comandos, ya que se pueden concatenar comandos fcilmente con tuberas (pipe).
Pizarrn
El patrn de arquitectura de pizarrn es til para problemas en que no se conoce una estrategia determinstica para calcular la solucin. Varios subsistemas especializados reunen su conocimiento para construir una solucin parcial aproximada.
Pizarrn
Modelo arquitectnico de software habitualmente utilizado en sistemas expertos, sistemas multiagente y, en general, sistemas basados en el conocimiento Un dominio en el que no hay ningn enfoque cerrado (algortmico) conocido o viable para resolver un problema. Por ejemplo, sistemas de vigilancia, reconocimiento de voz y sistemas AI.
Modelo-View-Controlador
El patrn de arquitectura de modelo-view-controlador (MVC) divide una aplicacin interactiva en tres partes. El modelo contiene los datos y la funcionalidad esencial. Las views despliegan la informacin al usuario. Los controladores manejan el input. Las views y los controladores juntos componen la interfaz con el usuario. El mecanismo de cambio-propagacin asegura la consistencia de la interfaz con el modelo.
Modelo-Vista-Control (MVC)
Utilizado para construir interfaces de usuario en Smalltalk-80.
Basado en tres tipos de objetos:
Modelo: objeto aplicacin. Encapsula el ncleo funcional y los datos involucrados. Vistas: presentacin de informacin por pantalla (al usuario). Controlador: define la forma en la que debe reaccionar la interfaz del usuario, frente a la entrada de datos (del usuario).
La informacin se
muestra con distintos formatos.
43 39 6 10 2
Debe poderse integrar otras formas de presentacin de los resultados tales como la distribucin de candidatos en el parlamento. Las presentaciones deben ser portables.
Modelo-Vista-Control (MVC)
Contexto: Aplicaciones interactivas con interfaces humanocomputador cambiantes y flexibles. Problema:
Las interfaces de usuario son muy frecuentemente cambiadas. Cambios en la funcionalidad deben reflejarse en las interfaces. Puede haber interfaces a medida para ciertos usuarios. Diferentes paradigmas de interfaz:
digitar informacin, seleccionar conos.
Modelo-Vista-Control (MVC)
Fuerzas:
la misma informacin se presenta de distintas formas, cambios en los datos deben reflejarse en la interfaz inmediatamente, las interfaces deben modificarse fcilmente, ojal durante la ejecucin, distintas interfaces portables no deben afectar la operacin esencial.
Modelo-Vista-Control (MVC)
Solucin:
MVC divide la aplicacin en
procesamiento, input y output.
El modelo representa la
funcionalidad y los datos esenciales, y es independiente de la representacin en las interfaces.
Modelo-Vista-Control (MVC)
Estructura:
Modelo
encapsula la informacin esencial
y exporta procedimientos que realizan procesamiento especfico de la aplicacin;
View
despliega los datos para el
usuario;
tienen procedimientos de
actualizacin para recibir nuevos datos.
Controlador
existe un controlador para
cada view;
Controlador_Ba
Base de votos
Barras
Controlador_Tb
Tabla
Presentacin-Abstraccin-Control (PAC)
El patrn de arquitectura PAC define una estructura jerrquica de agentes cooperativos. Cada agente es responsable de un aspecto especfico de la funcionalidad de la aplicacin y est compuesto por tres componentes: presentacin-abstraccincontrol.
Presentacin-Abstraccin-Control (PAC)
Ejemplo: Consideremos un Sist. de Informacin Electoral.
-
Ofrece una hoja de clculo para el ingreso de datos Ofrece varios tipos de tablas y de grficos para representar los distintos resmenes de la informacin almacenada. Los usuarios interactan con el software a travs de la interfaz grfica.
90 80 70 60 50 40 30 20 10 0
1er trim.
2do trim.
3er trim.
4to trim.
4tr
1tr
3tr
Presentacin-Abstraccin-Control (PAC)
Ejemplo (cont.):
-
Diferentes versiones, adaptan la interfaz de usuario a necesidades especficas, por ej., para ver las bancas del parlamento en funcin de los partidos polticos.
Presentacin-Abstraccin-Control
Solucin:
Hoja de Clculo
Grfico Torta
Grfico Lneas
Grfico Barras
Recomendaciones Generales
Desempeo. Si el desempeo es un requisito crtico, la arquitectura debe estar diseada para albergar las operaciones crticas, dentro de un nmero reducido de subsistemas (menos cambios de contexto). Ojal con poca comunicacin entre ellos. Esto significa utilizar componentes de grano grueso, de esa manera habr menos componentes en el sistema. Seguridad. Si la seguridad es un requisito crtico, se debe utilizar una arquitectura estratificada (por capas). Los recursos ms crticos deben alojarse en las capas ms inferiores (internas). Cada capa debe proveer un mecanismo de validacin, de acuerdo a la informacin que sta maneja.
Recomendaciones Generales
Proteccin (de operaciones).
Si la proteccin es un requisito crtico, la arquitectura debe estar diseada de tal forma que las operaciones relacionadas con la proteccin, se localicen en nico subsistema o en un conjunto muy reducido de estos. Esto reduce los costos y los problemas de validacin, y hace posible crear sistemas de proteccin relacionados.
Disponibilidad.
Si la disponibilidad es un requisito crtico, como parte de la arquitectura se deben incluir componentes redundantes. Estos podrn reemplazar a los componentes con problemas, en caso de fallas.
Recomendaciones Generales
Mantenibilidad.
Si la mantenibilidad es un requisito crtico, la arquitectura debe estar diseada utilizando componentes autocontenidos de grano fino. Estos componentes pueden ser mdulos o componentes de software bien definidos. Estos podrn cambiarse o reemplazarse con facilidad, y con un mnimo efecto sobre el resto del sistema. Los productores de datos deben estar separados de los consumidores. Las estructuras de datos compartidas deben evitarse. La circulacin de rdenes de control entre mdulos o subsistemas, tambin debe evitarse.
Conclusiones
Hay arquitecturas de son mejores que otras, dependiendo del escenario de trabajo (dominio + infraestructura previa), del tipo de software a desarrollar, y de lo que se pretende obtener. Los patrones arquitectnicos brindan una sugerencia (genrica) acerca de cmo resolver algunos de los problemas arquitectnicos mas comunes. Los patrones arquitectnicos no son la salvacin de nadie, pero generalmente ayudan. Se pueden utilizar mezclas de patrones, y adaptaciones de ellos.