70
Confidencial Arquitectura de Software Modulo 2: Estilos Arquitectónicos

Mod 2_ Estilos Arquitectonicos

Embed Size (px)

Citation preview

Page 1: Mod 2_ Estilos Arquitectonicos

Confidencial

Arquitectura de SoftwareModulo 2: Estilos Arquitectónicos

Page 2: Mod 2_ Estilos Arquitectonicos

Confidencial

Agenda

Page 3: Mod 2_ Estilos Arquitectonicos

Confidencial

» Objetivos» ¿Qué es un estilo arquitectónico?» Clasificación de estilos arquitectónicos

» Flujos de datos» Llamada – Retorno» Maquinas virtuales» Componentes independientes» Datos centralizados

» Tabla comparativa» Workshop

» Ejercicio 1» Ejercicio 2

Agenda

Page 4: Mod 2_ Estilos Arquitectonicos

Confidencial

Objetivos

Page 5: Mod 2_ Estilos Arquitectonicos

Confidencial

Objetivos

» Objetivo general: Conocer los diferentes estilos arquitectónicos así como sus fortalezas y debilidades.

» Objetivo específico: Proporcionar el conocimiento base para seleccionar el mejor estilo arquitectónico en base a los requerimientos proporcionados.

Page 6: Mod 2_ Estilos Arquitectonicos

Confidencial

Estilos arquitectónicos

Page 7: Mod 2_ Estilos Arquitectonicos

Confidencial

¿Qué es un estilo arquitectónico?

» Los ingenieros civiles, cuando tienen que construir un puente generalmente seleccionan un tipo de puente determinado que se adapte a las necesidades del contexto y del problema a resolver

Page 8: Mod 2_ Estilos Arquitectonicos

Confidencial

¿Qué es un estilo arquitectónico?

» Una familia de sistemas de software en términos de un patrón de organización estructural, que define un vocabulario de componentes, tipos de conectores y un conjunto de restricciones de cómo pueden ser combinadas.

Page 9: Mod 2_ Estilos Arquitectonicos

Confidencial

» Componente: un componente de software es una unidad de composición con interfaces especificadas y dependencias explicitas.

(Ej. Web Server, Filtros, Bases de datos, Objetos etc.)

» Conectores: Especifica los mecanismos por el cual los componentes transfieren el control o los datos.

(Ej. llamadas a procedimientos, tuberías, difusión de eventos)

¿Qué es un estilo arquitectónico?

Page 10: Mod 2_ Estilos Arquitectonicos

Confidencial

Flujo de Datos

» El estilo arquitectónico de flujo de datos trata a un sistema de software como una serie de transformaciones en conjuntos sucesivos de datos, donde los datos y las operaciones en él son independientes entre sí.

» El sistema de software es descompuesto en elementos de procesamiento de datos en donde los datos dirigen y controlan el orden del procesamiento. Cada componente en esta arquitectura transforma sus datos de entrada en sus correspondientes datos de salida. » Secuencial en Lotes » Red de Flujo de Datos (Pipe and Filter)

Page 11: Mod 2_ Estilos Arquitectonicos

Confidencial

Secuencial en Lotes

» En la arquitectura secuencial en lotes, cada subsistema o módulo de transformación de datos empieza su proceso hasta que su subsistema previo completa sus cálculos. El flujo de datos lleva una serie de datos en conjunto de un subsistema a otro .

» En la arquitectura secuencial en lotes, cada subsistema o módulo de transformación de datos empieza su proceso hasta que su subsistema previo completa sus cálculos. El flujo de datos lleva una serie de datos en conjunto de un subsistema a otro.

Page 12: Mod 2_ Estilos Arquitectonicos

Confidencial

Secuencial en Lotes

Page 13: Mod 2_ Estilos Arquitectonicos

Confidencial

» Beneficios

» Divisiones simples en subsistemas. » Cada subsistema puede ser un programa autónomo que trabaje con

datos de entrada para producir datos de salida.

» Limitaciones

» No provee de una interfaz interactiva. » No soporta concurrencia, por lo tanto este tipo de arquitectura tiene un

rendimiento bajo. » Debido a la forma en que trabaja tiene una alta inactividad.

Secuencial en Lotes

Page 14: Mod 2_ Estilos Arquitectonicos

Confidencial

Secuencial en Lotes

» Dominios aplicables:

» Clásico de procesamiento de datos (operaciones bancarias básicas, realización de facturas, etc.)

» Cada subsistema lee sus archivos relacionados de entrada y escribe archivos de salida.

Page 15: Mod 2_ Estilos Arquitectonicos

Confidencial

Pipes and Filters

» En un estilo Pipe and Filter cada componente tiene un conjunto de entradas y un conjunto de salidas. Un componente lee un flujo de datos en sus entradas y produce flujos de datos sobre sus salidas, entregando una completa instancia de los resultados en un orden estándar.

» Esto se logra generalmente mediante la aplicación de una transformación local de los flujos de entrada y procesamiento incremental. Por lo tanto los componentes se denominan filtros. Los conectores de este estilo sirve como conductos para los flujos, transmitiendo salidas de un filtro a entradas de otro. De aquí que los conectores se denominen tuberías.

Page 16: Mod 2_ Estilos Arquitectonicos

Confidencial

Pipes and Filters

Page 17: Mod 2_ Estilos Arquitectonicos

Confidencial

» Existen 3 formas para hacer el flujo de datos:» Push only (Write only)

» La fuente de datos empuja los datos al flujo inferior» El filtro debe empujar los datos al flujo inferior

» Pull only (Read only)» Un consumidor de datos jala los datos de un flujo superior» Un filtro debe jalar los datos del flujo superior

» Pull/Push (Read/Write)» Un filtro puede jalar datos del flujo superior y empujar los datos

transformados al flujo inferior

» Existen dos tipos de filtros» Los filtros activos jalan los datos y los datos transformados los empujan

fuera (pull/push). Trabajan con los tuberías pasivas que proveen mecanismos de lectura/escritura para jalar y empujar. El mecanismo de tuberías y filtros de Unix adopta este modo.

Pipes and Filters

Page 18: Mod 2_ Estilos Arquitectonicos

Confidencial

» Existen dos tipos de filtros

» Los filtros activos jalan los datos y los datos transformados los empujan fuera (pull/push). Trabajan con los tuberías pasivas que proveen mecanismos de lectura/escritura para jalar y empujar. El mecanismo de tuberías y filtros de Unix adopta este modo.

» Los filtros pasivos permite conectar tuberías de envío y extracción de datos. Trabaja con tuberías activas que extraen los datos de los filtros y meten los datos al siguiente filtro. El filtro debe proveer en este caso mecanismos de lectura/escritura. Es parecido a la arquitectura de flujo de datos.

Pipes and Filters

Page 19: Mod 2_ Estilos Arquitectonicos

Confidencial

Pipes and Filters

Page 20: Mod 2_ Estilos Arquitectonicos

Confidencial

Pipes and Filters

» Restricciones» Los filtros deben ser independientes. No deben compartir estado con

otros filtros.» Los filtros realizan la labor independientemente del flujo de entrada.

» Ventajas» Soporta de buena manera la reutilización. Los filtros son independientes

de sus vecinos.» Facilidad de Mantenimiento y mejora.» Facilidad de diagnóstico.» Soportan la ejecución concurrente.

Page 21: Mod 2_ Estilos Arquitectonicos

Confidencial

Pipes and Filters

» Desventajas» No aconsejado para cuando se necesita interactividad.» Problemas de performance ya que los datos se transmiten en forma

completa entre filtros.» El diseñador debe proveer de una transformación completa de entradas

y salidas para cada filtro.» Puede ser difícil configurar dinámicamente las tuberías y los filtros en un

sistema.

» Dominios aplicables» Donde el sistema puede ser dividido en una serie de pasos a través de

los flujos de datos.» El formato de los datos en el flujo es simple, estable y adaptable.» Cantidad significativa de procesos que pueden ser segmentados para

obtener un mejor rendimiento.

Page 22: Mod 2_ Estilos Arquitectonicos

Confidencial

Llamada retorno

» Reflejan la estructura del lenguaje de programación. Permite al diseñador del software construir una estructura de programa relativamente fácil de modificar y ajustar a escala. Se basan en la bien conocida abstracción de procedimientos/funciones/métodos.

» Esta arquitectura de software es caracterizada por ver el sistema entero como una estructura jerárquica, el sistema de software es descompuesto en módulos lógicos (sub-sistemas) en diferentes niveles en la jerarquía.

» Subestilos» Principal - Subrutina (Main-Subroutine) » Capas (Layers) » Sistemas OO (Data Abstaction and Object-Oriented Organization)

Page 23: Mod 2_ Estilos Arquitectonicos

Confidencial

» El diseño de la arquitectura de principal-subrutina ha dominado las metodologías de diseño de software por mucho tiempo. El propósito de este estilo arquitectónico es reutilizar subrutinas y tener subrutinas individuales desarrolladas independientemente.

» Usando este estilo, los sistemas de software son descompuestos en subrutinas jerárquicas refinadas de acuerdo a la funcionalidad deseada del sistema. Los refinamientos se llevan a cabo verticalmente hasta que la subrutina descompuesta es lo suficientemente simple para tener una sola responsabilidad independiente y esta funcionalidad puede ser reusada y compartida por múltiples llamados de las capas superiores.

Main-subroutine

Page 24: Mod 2_ Estilos Arquitectonicos

Confidencial

» Parametrización» Valor » Referencia

Main-subroutine

Page 25: Mod 2_ Estilos Arquitectonicos

Confidencial

» Data Flow Diagram – Main-subroutine

» Transform flow: El flujo entrante alimenta los datos en un formato externo, que posteriormente es transformado en otro formato. Finalmente el flujo saliente lleva los datos hacia el siguiente proceso.

» Transaction flow: Evalua los datos entrantes, y decide cual camino seguir entre muchos caminos de acción.

» Un transform flow es mapeado por un modulo de control, transforma y procesa la información saliente.

» El transaction flow se convierte en un modulo despachador de control el cual administra todas las acciones subordinadas.

Main-subroutine

Page 26: Mod 2_ Estilos Arquitectonicos

Confidencial

» Data Flow Diagram – Video Centro

Main-subroutine

Page 27: Mod 2_ Estilos Arquitectonicos

Confidencial

» Estructura jerárquica – Video Centro

Main-subroutine

Page 28: Mod 2_ Estilos Arquitectonicos

Confidencial

» Beneficios» Es fácil de descomponer el sistema basado en la definición de tareas en

un refinamiento top-down.» Esta arquitectura puede ser usada en un subsistema de diseño

orientado a objetos.

» Limitaciones» Acoplamientos estrechos ocasionará mayor número de efectos dominó

al realizar cambios comparado con un diseño orientado a objetos. » En el estilo clásico principal-subrutina al compartir datos globalmente se

tienen mayor cantidad de vulnerabilidades.

Main-subroutine

Page 29: Mod 2_ Estilos Arquitectonicos

Confidencial

Layers

» Como su nombre sugiere, un sistema arquitectónico de capas se descompone en un número de capas altas y bajas en una jerarquía, cada capa consiste de un grupo de clases relacionadas que son encapsuladas en un paquete, en un componente de despliegue, o como un grupo de subrutinas en el formato de bibliotecas de métodos o de archivos de cabecera. También, cada capa tiene una sola responsabilidad en el sistema.

» Una petición de la capa i+1 invoca los servicios que provee la capa i vía la interfaz de la capa i, la respuesta podría regresar a la capa i +1 si la tarea es completada; de otra forma la capa i continuamente invoca los servicios de la capa i-1.

Page 30: Mod 2_ Estilos Arquitectonicos

Confidencial

» Las líneas sólidas indican la dirección del camino de la solicitud de servicio. Mientras más alta sea la capa, los servicios son más abstractos (en términos de la distancia de la capa física del sistema operativo). En el nivel más alto, los usuarios sólo ven las interfaces de usuario como las GUI, pero no los detalles de implementación.

Layers

Page 31: Mod 2_ Estilos Arquitectonicos

Confidencial

» Diagrama de

paquetes

Layers

Page 32: Mod 2_ Estilos Arquitectonicos

Confidencial

» Se muestra un diagrama de clases de UML para una arquitectura en capas. Todas las capas implementan una interfaz de una capa común, esto hace mas fácil remplazar las capas. La capa mas alta es vinculada a su capa inmediata inferior por una relación de agregación.

Layers

Page 33: Mod 2_ Estilos Arquitectonicos

Confidencial

» Dominios aplicables» Cualquier sistema que pueda ser dividido en porciones específicas de la

aplicación y en porciones específicas de la plataforma que son las que proveen servicios genéricos a la aplicación del sistema.

» Aplicaciones que tienen divisiones limpias entre servicios básicos, críticos, de interfaces de usuario, etc.

» Aplicaciones que tienen un número de clases que están relacionadas entre ellas de tal manera que puedan ser agrupadas en un paquete para proveer los servicios a otras.

Layers

Page 34: Mod 2_ Estilos Arquitectonicos

Confidencial

» Beneficios» Desarrollo de software incremental basado en niveles incrementales de

abstracción. » Tiene una elevada flexibilidad: la intercambiabilidad y la reusabilidad son

elevadas debido a la separación de la interfaz estándar y su implementación.

» Promociona la portabilidad, cada capa puede ser una máquina abstracta desplegada independientemente.

» Tiene una elevada independencia entre las capas superior e inferior, debido a que no hay impacto al haber cambios en los servicios de la capa inferior siempre que sus interfaces correspondientes se mantengan sin cambios.

Layers

Page 35: Mod 2_ Estilos Arquitectonicos

Confidencial

» Limitaciones» Bajo desempeño en tiempo de ejecución dado que las solicitudes del

cliente o una respuesta al cliente puede pasar potencialmente a través de varias capas. Surgen temas a considerar en este tipo de diseño como la sobrecarga en la distribución y acumulamiento de datos por cada capa.

» Muchas aplicaciones no se ajustan a este diseño arquitectónico.» El incumplimiento de las comunicaciones entre capas puede causar

puntos muertos, y el "puenteo" puede causar un estrecho acoplamiento. » Otras cuestiones a considerar cuando se elige este estilo son el manejo

de excepciones y errores, ya que las fallas en una capa se propagan hacia todas las capas de arriba.

Layers

Page 36: Mod 2_ Estilos Arquitectonicos

Confidencial

Data Abstaction and Object-Oriented Organization

”If you get the data structures right, the rest of the program much simpler “

Page 37: Mod 2_ Estilos Arquitectonicos

Confidencial

» En este estilo las representaciones y sus operaciones primitivas asociadas son encapsuladas en un tipo de datos abstracto u objeto. Los componentes para este estilo son los objetos o en su caso instancias de los tipos de datos abstractos.

» A los objetos también se les denomina “administradores” porque son responsables de preservar la integridad de los recursos a través de una representación (que la esconde de otros objetos). Los objetos interactúan a través de funciones o por la invocación de procedimientos.

» El uso de tipos de datos abstractos, y el incremento en el uso de sistemas orientados a objetos es ampliamente extendido. Por ejemplo, algunos sistemas permiten "objetos" en tareas concurrentes; otros permiten a los objetos tener múltiples interfaces.

Data Abstaction and Object-Oriented Organization

Page 38: Mod 2_ Estilos Arquitectonicos

Confidencial

Data Abstaction and Object-Oriented Organization

Page 39: Mod 2_ Estilos Arquitectonicos

Confidencial

» Los sistemas orientados a objetos tienen muchas propiedades buenas, la mayoría de las cuales son bien conocidas.

» Beneficios» Debido a que el objeto esconde su representación de los clientes, es

posible cambiar su implementación sin afectarlos. » La agrupación de un conjunto de rutinas de acceso a los datos permite a

los diseñadores descomponer los problemas en una colección de agentes interactivos.

» Limitaciones» Los objetos deben conocer la identidad de los objetos con los que van a

interactuar, es decir que si se cambia un objeto en algún punto, se debe modificar a todos aquellos objetos que lo invocan.

Data Abstaction and Object-Oriented Organization

Page 40: Mod 2_ Estilos Arquitectonicos

Confidencial

Virtual machines

» Una máquina virtual es construida sobre un sistema existente y provee una abstracción virtual, un conjunto de atributos y operaciones. En la mayoría de los casos una máquina virtual separa el lenguaje de programación o el ambiente de aplicación de la plataforma de ejecución. Una máquina virtual puede parecer similar a un software de emulación. Interpretes y la maquina virtual de Java son ejemplos de virtual machines.

» Ejemplos» Interpreters» Rule-based systems

Page 41: Mod 2_ Estilos Arquitectonicos

Confidencial

Interpreters

» Ejecución del motor simulada en software, un interprete incluye el pseudo-programa siendo interpretado y el motor de interpretación mismo. El pseudo-programa incluye los programas mismos y la analogía del interprete de su estado de ejecución (registros de activación). El motor de interpretación incluye tanto la definición del interprete y el estado actual de su ejecución.

» Un interprete tiene generalmente 4 componentes:» Un motor de interpretación para hacer el trabajo.» Una memoria que contiene el pseudo-código a ser interpretado. » Representación del estado de control del motor de interpretación.» Representación del actual estado del programa siendo simulado.

Page 42: Mod 2_ Estilos Arquitectonicos

Confidencial

Interpreters

Page 43: Mod 2_ Estilos Arquitectonicos

Confidencial

» Interpretes son comúnmente usados para construir maquinas virtuales que cierran la brecha entre el motor de computo previsto por la semántica del programa y el motor de computo disponible en el hardware.

Interpreters

Page 44: Mod 2_ Estilos Arquitectonicos

Confidencial

Ruled-based Systems

» Los sistemas basados en reglas es la forma mas simple de inteligencia artificial en la industria (también conocidos como sistemas expertos). Es una forma de codificar conocimiento de experto humano en un sistema automatizado.

» Un sistema experto es un programa informático que esta diseñado para mantener el conocimiento acumulado de uno o mas dominios expertos.

» Debido a que las acciones de los sistemas basados en reglas tienden a ser ocultos, las personas no se dan cuenta de cómo son ampliamente utilizados.

Page 45: Mod 2_ Estilos Arquitectonicos

Confidencial

» Facts: Son afirmaciones que sirven para representar conceptos, datos, objetos, etc.

» Patterns: Son tuplas conteniendo variables.» Rules: Lista de patrones del lado izquierdo, representando las

premisas, y del lado derecho una lista de patrones representando las consecuencias

Ruled-based Systems

Page 46: Mod 2_ Estilos Arquitectonicos

Confidencial

» Conocimiento base: Guarda el conocimiento experto como condiciones/acciones/reglas.

» Memoria de trabajo: guarda facts iniciales y genera facts derivados por el motor de inferencia.

» Motor de inferencia: empareja partes de condición de reglas contra facts guardados en la memoria de trabajo.

» Explicación de fondo: provee justificación a las soluciones del usuario (cadena de rasonamiento)

» Fondo de adquisición de conocimiento: ayuda a integrar nuevo conocimiento, también automatiza la adquisición del conocimiento.

» Interfaz de usuario: inserta facts, pregunta al sistema y presenta soluciones.

Components Ruled-based Systems

Page 47: Mod 2_ Estilos Arquitectonicos

Confidencial

Components Ruled-based Systems

Page 48: Mod 2_ Estilos Arquitectonicos

Confidencial

Ruled-based Systems

Page 49: Mod 2_ Estilos Arquitectonicos

Confidencial

Independent Components

» Consiste de procesos independientes u objetos que se comunican atreves de mensajes. No hay control entre los componentes.

» El principal objetivo de este estilo arquitectónico es la modificabilidad.

» Ejemplos :» Event Systems

Page 50: Mod 2_ Estilos Arquitectonicos

Confidencial

Event Systems

» En lugar de invocaciones de procedimientos explicitas o directas, un componente anuncia uno o más eventos y otros componentes registran el interés en un evento asociando un procedimiento a dicho evento.

» La ocurrencia de un evento causa la invocación “implícita” de procedimientos en otros módulos.

» Los componentes son los módulos cuyas interfaces ofrecen un conjunto de procedimientos y de eventos.

» Los conectores incluyen llamadas a procedimientos tradicionales así como el ligado de eventos con llamadas a procedimientos.

Page 51: Mod 2_ Estilos Arquitectonicos

Confidencial

Event Systems

Page 52: Mod 2_ Estilos Arquitectonicos

Confidencial

» Ventajas» Provee un robusto soporte de reusabilidad.

» Cualquier componente puede ser introducido en el sistema simplemente registrando el evento.

» Facilita la evolución del sistema.

» Desventajas» Perdida de control en el comportamiento del sistema.

» Los componentes no saben que otros componentes responderán.» Componentes podrían saber quien responderá pero no sabrían el orden.

» Problemas en el intercambio de datos.» Puede provocar problemas de rendimiento.

Event Systems

Page 53: Mod 2_ Estilos Arquitectonicos

Confidencial

Data-centered systems

» Las arquitecturas de software centradas en datos se caracterizan por un almacén centralizado de datos que es compartido por todos los componentes de software que lo rodean. El sistema de software es descompuesto en dos particiones principales: el almacén de datos y los componentes de software independientes (agentes).

» Las conexiones entre el módulo de datos y los componentes de software son implementados tanto por el método de invocación explícita como por el método de invocación implícita. En arquitecturas de software puramente centradas en datos, los componentes de software no se comunican entre ellos directamente, todas las comunicaciones son conducidas a través del almacén de datos.

Page 54: Mod 2_ Estilos Arquitectonicos

Confidencial

Data-centered systems

» El módulo de datos compartido provee de todos los mecanismos para que los componentes de software puedan acceder a él; Los mecanismos son del tipo: inserción, borrado, actualización y recuperación.

» Existen dos categorías de arquitecturas centradas en datos: repositorio y pizarrón. Se diferencian por la estrategia de control de flujo.

Page 55: Mod 2_ Estilos Arquitectonicos

Confidencial

Repository

» El estilo arquitectónico de repositorio es una arquitectura centrada en datos que soporta interacción de los usuarios para el procesamiento de datos.

» Los agentes del componente de software del almacén de datos controlan el cálculo y el flujo lógico del sistema.

» En el siguiente diagrama se muestra una imagen general de la arquitectura de repositorio las líneas punteadas que apuntan hacia el repositorio indican que los clientes del repositorio tienen control total sobre el flujo lógico. Los clientes pueden obtener y colocar datos en el almacén de datos. Clientes diferentes pueden tener interfaces diferentes y diferentes privilegios de acceso a los datos.

Page 56: Mod 2_ Estilos Arquitectonicos

Confidencial

Repository

Page 57: Mod 2_ Estilos Arquitectonicos

Confidencial

Repository

» Ejemplo (Diagrama de clases)

Page 58: Mod 2_ Estilos Arquitectonicos

Confidencial

Repository

» Una instancia puede ser accesada y compartida por multiples clientes para leer, escribir o buscar.

Page 59: Mod 2_ Estilos Arquitectonicos

Confidencial

Repository

» Dominios aplicables:» Es adecuada para sistemas de información largos y complejos donde

muchos clientes componentes del software necesitan acceder al repositorio en maneras diferentes.

» Cuando se requiera transacciones de datos para conducir el flujo de control o los cálculos.

» Beneficios» Integridad de los datos, facilidad para respaldar y restaurar datos.» Escalabilidad de los sistemas y reusabilidad de los agentes, facilidad

para agregar nuevos componentes de software porque no tienen comunicación directa entre ellos.

» Reduce la sobrecarga de datos transitorios entre componentes de software.

Page 60: Mod 2_ Estilos Arquitectonicos

Confidencial

Repository

» Limitaciones» La confiabilidad del almacén de datos y la disponibilidad son temas a

considerar más profundamente al elegir este tipo de arquitectura. Los repositorios centralizados son más vulnerables comparados con los repositorios distribuidos con replicación de datos.

» Tiene una alta dependencia entre la estructura de los datos, el almacén de datos y sus agentes. Cambios en la estructura de los datos tienen un impacto significativo en sus agentes. La evolución de los datos es más difícil y cara.

» Hay un alto costo al mover los datos por la red si los datos son distribuidos.

Page 61: Mod 2_ Estilos Arquitectonicos

Confidencial

Blackboards

» La arquitectura de pizarrón fue desarrollada para aplicaciones de reconocimiento de diálogos en los 70´s. Otras aplicaciones para este tipo de arquitectura son los sistemas de reconocimiento de patrones en imágenes y sistemas de emisión del clima.

» La palabra pizarrón surge dada la similitud que tiene este tipo de arquitectura con un salón de clases donde se enseña y se aprende, donde los maestros y los estudiantes pueden compartir datos para resolver problemas en clase a través del pizarrón. Los estudiantes y los maestros juegan el rol de agentes que contribuyen para resolver un problema. Pueden trabajar en paralelo o independientemente para encontrar la mejor solución.

Page 62: Mod 2_ Estilos Arquitectonicos

Confidencial

Blackboards

» La idea de la arquitectura del pizarrón es similar a la del pizarrón usado para resolver problemas.

» Todo el sistema es descompuesto en principalmente en dos particiones, una de estas particiones es llamada el "pizarrón", que es usado para almacenar datos (hipótesis y hechos), y la otra partición es denominada las "fuentes de conocimiento" que almacenan el conocimiento específico del dominio. El ”controlador” que es usado para iniciar el pizarrón y las fuentes de conocimiento, es decir toma el rol de un iniciador (bootstrap) y de control de supervisión global

» Las conexiones entre el subsistema de pizarrón y las fuentes del conocimiento son básicamente invocaciones implícitas desde el pizarrón hacia una fuente de conocimiento específica, que están registradas en el pizarrón de antemano. Al cambiar los datos en el pizarrón se activan una o más fuentes de conocimiento para un procesamiento continuo. Los cambios en los datos pueden ser causados por nueva información deducida o por resultados de hipótesis de las fuentes de conocimiento.

Page 63: Mod 2_ Estilos Arquitectonicos

Confidencial

» Diagrama de bloques para la arquitectura de pizarrón. Las líneas sólidas indican enlaces de datos, mientras que las líneas punteadas representan el control del flujo lógico, el cual es controlado por cualquier cambio en los datos en el almacén de datos, esto es, los datos en el almacén del pizarrón dirigen el flujo de los cálculos.

Blackboards

Page 64: Mod 2_ Estilos Arquitectonicos

Confidencial

Blackboards

» Diagrama de clases

Page 65: Mod 2_ Estilos Arquitectonicos

Confidencial

» Dominios» Es adecuada para resolver problemas sin límites fijos (abiertos) y

complejos como en los problemas de inteligencia artificial donde no hay soluciones preestablecidas.

» Donde los problemas abarcan múltiples disciplinas, y cada problema envuelve completamente diferentes tipos de experticia en el conocimiento.

» Donde una solución parcial o aproximada es aceptable. » Donde una búsqueda exhaustiva es imposible e impráctica debido a que

el conocimiento disponible o las hipótesis no estén completas o no son exactamente veraces.

Blackboards

Page 66: Mod 2_ Estilos Arquitectonicos

Confidencial

» Beneficios» Escalabilidad, ofrece facilidad para añadir o actualizar las fuentes de

conocimiento. » Concurrencia, todas las fuentes de conocimiento pueden trabajar en

paralelo gracias a que son independientes entre ellas. » Soporta experimentación para hipótesis. » Reusabilidad de los agentes de fuentes de conocimiento.

» Limitaciones» Debido a la dependencia cerrada entre el pizarrón y las fuentes de

conocimientos, el cambio en la estructura del pizarrón puede tener un impacto significante en todos sus agentes.

» Dado que se esperan únicamente soluciones parciales o aproximaciones, puede ser difícil decidir en qué momento debe terminar el razonamiento.

» Es un desafío la depuración y la realización de pruebas.

Blackboards

Page 67: Mod 2_ Estilos Arquitectonicos

Confidencial

Tabla comparativa

Page 68: Mod 2_ Estilos Arquitectonicos

Confidencial

» Cada renglón denota si un estilo arquitectónico responde al atributo de calidad en cada columna, de la siguiente manera: "+" significa bueno, "++" significa muy bueno, "-" significa malo, "--" significa muy malo. Una celda vacía denota que no hay un juicio explícito para ese par estilo-atributo. Al examinar cada estilo arquitectónico contra los atributos de calidad y considerando el dominio de la aplicación para cada estilo arquitectónico, se puede obtener una idea de la aplicabilidad de un estilo arquitectónico en ese proyecto o de las arquitecturas de software que se pueden usar en conjunto para al final tener una Arquitectura.

Tabla comparativa

Page 69: Mod 2_ Estilos Arquitectonicos

Confidencial

¿Preguntas?

Page 70: Mod 2_ Estilos Arquitectonicos

Confidencial

Gracias!