Entradas

Mostrando entradas de 2013
Imagen
      Tipos de arquitecturas               Para utilizar la arquitectura de software se sigue un conjunto de patrones        arquitectónicos,entre los cuales podemos encontrar:             •              Cliente-Servidor             •              Blackboard.             •              Modelo entre capas.             •              Intérprete.             •              Orientado a servicios.             •              recursos empleados.             •              recursos desarrollados. Niveles de un diseños de software El diseño de software tiene varios niveles los cuales están relacionados entre sí,cada nivel tiene sus propios problemas,técnicas de análisis y componentes los que pueden ser simples o complejos,reglas de composición las cuales permiten construir componentes complejos. Modelos de la arquitectura de software La arquitectura de software cuenta con varios modelos,ellos son: Modelos estructurales Son similares a la vista estructural, pero
Imagen
Máquina virtual o intérprete Descripción Formado por cuatro componentes Un motor de simulación o interpretación Una memoria que contiene el código a interpretar Una representación del estado de la interpretación Una representación del estado del programa que se está simulando Ventajas   Solución software a problemas hardware. Desventajas   No siempre es aplicable Reducido a lenguajes de programación Otros Estilos Procesos distribuidos Sistemas cliente/servidor Sistemas en 3 capas Programa Principal/Subrutinas Típica de lenguajes procedurales Un programa principal gestiona el control de ejecución de las subrutinas Transición de Estados Arquitecturas Heterogéneas
Imagen
Sistemas basados en depósitos Descripción Existen dos tipos de componentes Una estructura central de datos (representa el estado del proceso) Componentes independientes (operan en función del depósitode datos) Las interacciones entre el repositorio y los demás componentes es variable: La entrada de los datos es seleccionada por los componentes El estado de los datos del repositorio selecciona el proceso a ejecutar (pizarra) Ventajas Posibilita la integración de agentes.   Adecuado para la resolución de problemas no deterministas. Se puede resumir el estado de conocimiento en cada momento del proceso Desventajas Estructura de datos común a todos los agentes   Problemas de  carga a la hora de chequear y vigilar el estado de la pizarra.
Imagen
Sistemas en Capas Descripción Organizado jerárquicamente en capas, donde cada capa provee servicios a la capa superior y es servido por la capa inferior Los componentes son cada una de las capas Los conectores son los protocolos de interacción entre las capas Restricciones: La interacción está limitada a las capas adyacentes Ventajas Facilita la descomposición del problema en varios niveles de abstracción. Soporta la mejora, los cambios solo afectan a las capas vecinas Se pueden cambiar las implementaciones respetando las interfaces con las capas adyacentes. Desventajas No todos los sistemas pueden estructurarse en capas. Es difícil encontrar la separación en capas adecuadas
Imagen
Invocación Implícita Basada en Eventos Descripción ·          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 “implicita” 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 Restricciones: ·          Quien anuncia el evento no conoce a que componentes afecta el evento ·          No se pueden hacer asunciones acerca del orden de procesamiento Ventajas ·          Provee un robusto soporte de reusabilidad ·          Facilita la evolución del sistema Desventajas ·          Pérdida de control en el comportam
Imagen
Tipos Abstractos de Datos y OO Descripción  Las representaciones de los datos y las operaciones están encapsulados en un tipo abstracto de datos u objeto  Los componentes son objetos  Las invocaciones de métodos son los conectores  Restricciones:       Los objetos son responsables de la integridad de sus representaciones       Dicha representación es ocultada al resto de los objetos  Ventajas  Gracias al invariante de ocultación es posible reemplazar la Implementación  sin que afecte a los clientes Desventajas  Para invocar métodos de un objeto se debe conocer su identidad  Efectos colaterales
Imagen
Pipes and Filters (tuberías y filtros) Descripción Cada componente tiene un conjunto de entradas y un conjunto de salidas. Cada componente lee las entradas y las transforma en salidas. Restricciones: Los filtros deben ser independientes. No deben compartir estado con otros filtros. Los filtros realizan la labor independientemente del flujo de entrada. Especializaciones ·          Pipelines ·          Bounded pipes ·          Typed pipes Ventajas ·          Permite entender el sistema global en términos de la combinación de componentes ·          Soporta de buena manera la reutilización. Los filtros son independientes de sus vecinos ·          Facilidad de Mantenimiento y mejora ·          Facilidad de diagnóstico (rendimiento, deadlocks) ·          Soportan la ejecución concurrente ·          Desventajas ·          No aconsejado para cuando se necesita interactividad ·          Problemas de performance ya que los datos se transmiten en forma comp
Clasificación General de los Estilos Sistemas Basados en Flujos de Datos _ Pipes and filters (tuberías y filtros) _ Batch Sequential Sistemas Call/Return _ Sistemas Principal/subrutinas _ Sistemas OO _ Capas jerárquicas Componentes Independientes _ Procesos de comunicación _ Sistemas de Acontecimientos Máquinas Virtuales _ Interpretes _ Sistemas basados en el conocimiento Sistemas Centrados en Datos (repositorios) _ Bases de Datos _ Sistemas de HiperTexto _ Sistemas de pizarra
Imagen
    La arquitectura del software:      En los inicios de la informática, la programación se consideraba un arte y se desarrollaba como tal, debido a la dificultad que entrañaba para la mayoría de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guías generales, con base a las cuales se puedan resolver los problemas. A estas, se les ha denominado Arquitectura de Software, porque, a semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software.         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 y restricciones. Los objetivos son aquellos prefijado