martes, 5 de febrero de 2013


 
    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 su énfasis primario radica en la (usualmente una sola) estructura coherente del sistema completo, en vez de concentrarse en su composición. Los modelos de framework a menudo se refieren a dominios o clases de problemas específicos. El trabajo que ejemplifica esta variante incluye arquitecturas de software específicas de dominios, como CORBA, o modelos basados en CORBA, o repositorios de componentes específicos, como PRISM.
Modelos dinámicos
Enfatizan la cualidad conductual de los sistemas ,“Dinámico” puede referirse a los cambios en la configuración del sistema, o a la dinámica involucrada en el progreso de la computación, tales como valores cambiantes de datos.
Modelos de proceso
Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en esa construcción. En esta perspectiva, la arquitectura es el resultado de seguir un argumento (script) de proceso. Esta vista se ejemplifica con el actual trabajo sobre programación de procesos para derivar arquitecturas.

lunes, 4 de febrero de 2013

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



Sistemas basados en depósitos


Descripción

  • Existen dos tipos de componentes

  1. Una estructura central de datos (representa el estado del proceso)
  2. 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.

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
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 comportamiento del sistema
  • ·         Problemas en el intercambio de datos
  • ·         Es difícil asegurar la corrección global del sistema

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
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 completa entre filtros