Presentación Arquitectura de Software

download Presentación Arquitectura de Software

of 61

Transcript of Presentación Arquitectura de Software

  • 7/30/2019 Presentacin Arquitectura de Software

    1/61

    ARQUITECTURA DEINGENIERA DE

    SOFTWAREEQUIPO:JUAREZ ANZA WALTER ALBERTO

    PADILLA LPEZ RICARDO ARMANDO

    PREZ SARMIENTO MARA DEL PILAR

    SOLS JIMENEZ GERARDO

  • 7/30/2019 Presentacin Arquitectura de Software

    2/61

  • 7/30/2019 Presentacin Arquitectura de Software

    3/61

    Una arquitectura es el conjunto de decisionessignificativas sobre la organizacin de un sistema desoftware que define los principios que guan el

    desarrollo, los componentes principales del sistema, susresponsabilidades y la forma en que se interrelacionan.

  • 7/30/2019 Presentacin Arquitectura de Software

    4/61

    Comunicacin entre las personas involucradas La arquitectura representa una abstraccin que puede ser base para el

    entendimiento, consenso, negociacin y comunicacin.

    Decisiones tempranas de diseo Define limitaciones en la Implementacin.

    Dicta la Estructura Organizacional.

    Oculta o muestra los Atributos del Sistema.

    Hace ms fcil controlar los cambios. Ayuda en el prototipo evolutivo.

    Proporciona Estimaciones de Costos y Calendarizacin ms exactos.

    POR QU ES IMPORTANTE LA

    ARQUITECTURA DE SOFTWARE?

  • 7/30/2019 Presentacin Arquitectura de Software

    5/61

    Actividades del proceso dearquitectura DEFINICIN DESCOPE

    Identificacin yanlisis de losparticipantes

    Requerimientos yDriver de

    Arquitectura

    Crear un esqueletodel sistema

    Anlisis derequerimientos

    Softwarearquitecturadescripcin

    Etiqueta delSistema

    Definicin de

    arquitectura

  • 7/30/2019 Presentacin Arquitectura de Software

    6/61

    Requerimientos y driver dearquitectura

    Requerimientosfuncionales

    Restricciones

    Atributos de calidad

    DecisionesArquitecturales

    VISTAS

    Driver de

    arquitectura

  • 7/30/2019 Presentacin Arquitectura de Software

    7/61

    Descomposicin modular

    Es necesario descomponer los subsistemas enmdulos.

    Para definir los mdulos en un arquitectura de

    software, se utiliza la abstraccin y elocultamiento de informacin.

    Cada mdulo debe tener operaciones.

  • 7/30/2019 Presentacin Arquitectura de Software

    8/61

    Hay dos estrategias principales que se pueden usar cuandose descompone un subsistema en mdulos:

    Descomposicin orientada a objetos. En la que sedescompone un sistema en un conjunto de objetos que secomunican.

    Descomposicin orientada a flujos de funciones. En la que se

    descompone un sistema en mdulos funcionales que aceptadatos y los transforma en datos de salida.

  • 7/30/2019 Presentacin Arquitectura de Software

    9/61

    Descomposicin orientada aobjetos

    OPERACIONES

  • 7/30/2019 Presentacin Arquitectura de Software

    10/61

    Descomposicin orientada aflujos de funciones

  • 7/30/2019 Presentacin Arquitectura de Software

    11/61

    Arquitectura de dominioespecifico

    Modelos genricos

    Modelos de referencia

    Arq. De dominio Especifico

  • 7/30/2019 Presentacin Arquitectura de Software

    12/61

    DISEO DE SOFTWARE DEARQUITECTURAMULTIPROCESADOR

  • 7/30/2019 Presentacin Arquitectura de Software

    13/61

  • 7/30/2019 Presentacin Arquitectura de Software

    14/61

    Caractersticas

  • 7/30/2019 Presentacin Arquitectura de Software

    15/61

  • 7/30/2019 Presentacin Arquitectura de Software

    16/61

    DISEO DE SOFTWARE DE

    ARQUITECTURA CLIENTE-SERVIDOR

  • 7/30/2019 Presentacin Arquitectura de Software

    17/61

  • 7/30/2019 Presentacin Arquitectura de Software

    18/61

  • 7/30/2019 Presentacin Arquitectura de Software

    19/61

  • 7/30/2019 Presentacin Arquitectura de Software

    20/61

  • 7/30/2019 Presentacin Arquitectura de Software

    21/61

  • 7/30/2019 Presentacin Arquitectura de Software

    22/61

  • 7/30/2019 Presentacin Arquitectura de Software

    23/61

  • 7/30/2019 Presentacin Arquitectura de Software

    24/61

  • 7/30/2019 Presentacin Arquitectura de Software

    25/61

  • 7/30/2019 Presentacin Arquitectura de Software

    26/61

    26

    Three Tier (C-S)

    Servicios de Datos

    Presentacin

    Lgica de Negocio

    Two Tier (C-S)

    Presentacin

    Lgica de Negocio

    Servicios de Datos

  • 7/30/2019 Presentacin Arquitectura de Software

    27/61

  • 7/30/2019 Presentacin Arquitectura de Software

    28/61

    Ventajas de la arquitectura

    cliente/servidor

  • 7/30/2019 Presentacin Arquitectura de Software

    29/61

    Desventajas cliente/servidor

  • 7/30/2019 Presentacin Arquitectura de Software

    30/61

    Sistemas Distribuidos

  • 7/30/2019 Presentacin Arquitectura de Software

    31/61

    Introduccin

    Definiciones Sistema Distribuido Sistema en el cual mltiples procesadores

    autnomos, posiblemente de diferente tipo,

    estn interconectados por una subred de

    comunicacin para interactuar de una manera

    cooperativa en el logro de un objetivo global.

    [Lelann 1981]

    Conjunto de computadores independientesque se muestran al usuario como un sistema

    nico coherente. [Tanenbaum 2001]

  • 7/30/2019 Presentacin Arquitectura de Software

    32/61

    Introduccin

    Sistema en el cual componentes dehardware y software, localizadas en

    computadores en red, se comunican y

    coordinan sus acciones slo por paso de

    mensajes. [Coulouris 2002] Un sistema distribuido es un sistema de

    informacin en el cual las funciones se

    reparten por reas de trabajo diferentes que

    trabajan de forma coordinada para asumir losobjetivos que la organizacin asigna al

    sistema.

  • 7/30/2019 Presentacin Arquitectura de Software

    33/61

    Introduccin

    Caractersticas Concurrencia

    Esta caracterstica de los sistemas distribuidospermite que los recursos disponibles en la red

    puedan ser utilizados simultneamente por losusuarios y/o agentes que interactan en la red.

    Carencia de reloj global Las coordinaciones para la transferencia de

    mensajes entre los diferentes componentes parala realizacin de una tarea, no tienen unatemporizacin general, esta ms bien distribuida alos componentes.

  • 7/30/2019 Presentacin Arquitectura de Software

    34/61

    Introduccin

    Caractersticas Fallos independientes de los componentes

    Cada componente del sistema puede fallar

    independientemente, con lo cual los dems

    pueden continuar ejecutando sus acciones. Estopermite el logro de las tareas con mayor

    efectividad, pues el sistema en su conjunto

    continua trabajando.

  • 7/30/2019 Presentacin Arquitectura de Software

    35/61

    Clasificacin Cliente - Servidor

    Representacin distribuida La interaccin con el usuario se realiza en el

    servidor, el cliente hace de pasarela entre el

    usuario y el servidor.

    Base de datos

    Lgica de aplicacin

    Interface de usuario

    Terminal fsico

  • 7/30/2019 Presentacin Arquitectura de Software

    36/61

    Clasificacin Cliente - Servidor

    Representacin Remota La lgica de la aplicacin y la base de datos

    se encuentran en el servidor. El cliente recibe

    y formatea los datos para interactuar con el

    usuario.

    Base de datos

    Lgica de aplicacin

    Interfase avanzado de usuario

    Terminal inteligente

    Interfase bsico de usuario

  • 7/30/2019 Presentacin Arquitectura de Software

    37/61

    Clasificacin Cliente - Servidor

    Lgica Distribuida El cliente se encarga de la interaccin con el usuario

    y de algunas funciones triviales de la aplicacin. Por

    ejemplo controles de rango de campos, campos

    obligatorios, etc. Mientras que el resto de la

    aplicacin, junto con la base de datos, estn en el

    servidor.

    Base de datos

    Lgica de aplicacin

    Ordenador de sobremesa

    Lgica bsica de aplicacin

    Interfase de usuario

  • 7/30/2019 Presentacin Arquitectura de Software

    38/61

    Clasificacin Cliente - Servidor

    Gestin Remota de Datos El cliente realiza la interaccin con el usuario

    y ejecuta la aplicacin y el servidor es quien

    maneja los datos.

    Base de datos Ordenador de sobremesa

    Lgica de aplicacin

    Interfase de usuario

  • 7/30/2019 Presentacin Arquitectura de Software

    39/61

    Clasificacin Cliente - Servidor

    Base de Datos Distribuidas El cliente realiza la interaccin con el usuario, ejecuta

    la aplicacin, debe conocer la topologa de la red, as

    como la disposicin y ubicacin de los datos. Se

    delega parte de la gestin de la base de datos al

    cliente.

    Base de datos

    Ordenador de sobremesa

    Distribucin de datos

    Lgica de aplicacin

    Interface de usuarioBase de datos

  • 7/30/2019 Presentacin Arquitectura de Software

    40/61

    Protocolo

    Es un conjunto bien conocido de reglas yformatos que se utilizan para la

    comunicacin entre procesos que realizan

    una determinada tarea.

    Se requieren dos partes:

    Especificacin de la secuencia de mensajes

    que se han de intercambiar.

    Especificacin del formato de los datos en los

    mensajes.

  • 7/30/2019 Presentacin Arquitectura de Software

    41/61

    Protocolo

    Pueden ms importantes que la propiaarquitectura distribuida o centralizada. Unbuen protocolo permite que se pueda pasar,sin un costo adicional de rediseo ocodificacin, de una arquitectura centralizada

    a una distribuida, y viceversa: Pipes

    RPC

    SQL Remoto

    HTTP

    X11

    Otros

  • 7/30/2019 Presentacin Arquitectura de Software

    42/61

    Middleware

    Capa de software intermedio entre el cliente y elservidor. Es la capa de software que nos

    permiten gestionar los mecanismos de

    comunicaciones.

    Ejemplo si se hace la peticin de una pginaweb desde un browser en el cliente, el

    middleware determina la ubicacin y enva una

    peticin para dicha pgina. El servidor Web,

    interpreta la peticin y enva la pgina alsoftware intermedio, quien la dirige al navegador

    de la mquina cliente que la solicit.

  • 7/30/2019 Presentacin Arquitectura de Software

    43/61

    Middleware

    Existen dos tipos: Software intermedio general. Servicios

    generales que requieren todos los clientes y

    servidores, por ejemplo: software para las

    comunicaciones usando el TCP/IP, softwareparte del sistema operativo que, por ejemplo,

    almacena los archivos distribuidos, software

    de autenticacin, el software intermedio de

    mensajes de clientes a servidores y

    viceversa.

  • 7/30/2019 Presentacin Arquitectura de Software

    44/61

    Middleware

    Software intermedio de servicios. Softwareasociado a un servicio en particular, porejemplo: software que permite a dos BDconectarse a una red cliente/servidor (ODBC:Conectividad abierta de BD), software de

    objetos distribuidos, por ejemplo la tecnologaCORBA permite que objetos distribuidoscreados en distintos lenguajes coexistan enuna misma red (intercambien mensajes),

    software intermedio para software de grupo,software intermedio asociado a productos deseguridad especficas (Conexiones Seguras:Sockets), etc.

  • 7/30/2019 Presentacin Arquitectura de Software

    45/61

    Middleware

    Caractersticas: Independiza el servicio de su implantacin,

    del sistema operativo y de los protocolos de

    comunicaciones.

    Permite la convivencia de distintos servicios

    en un mismo sistema.

    Permite la transparencia en el sistema.

    Modelo tradicional: Monitor de teleproceso oCICS, Tuxedo, Encina.

    Modelo OO: CORBA.

  • 7/30/2019 Presentacin Arquitectura de Software

    46/61

    Objetos Distribuidos

    En los sistemas Cliente/Servidor, unobjeto distribuido es aquel que esta

    gestionado por un servidor y sus clientes

    invocan sus mtodos utilizando un

    "mtodo de invocacin remota". El cliente

    invoca el mtodo mediante un mensaje al

    servidor que gestiona el objeto, se ejecuta

    el mtodo del objeto en el servidor y elresultado se devuelve al cliente en otro

    mensaje.

  • 7/30/2019 Presentacin Arquitectura de Software

    47/61

    Objetos Distribuidos

    Tecnologas orientadas a los objetosdistribuidos:

    Las tres tecnologas importantes y ms usadas en

    este mbito son:

    RMI: Remote Invocation Method.- Fue el primer frameworkpara crear sistemas distribuidos de Java. El sistema deInvocacin Remota de Mtodos (RMI) de Java permite, a un

    objeto que se est ejecutando en una Mquina Virtual Java

    (VM), llamar a mtodos de otro objeto que est en otra VM

    diferente. Esta tecnologa est asociada al lenguaje de

    programacin Java, es decir, que permite la comunicacin

    entre objetos creados en este lenguaje.

  • 7/30/2019 Presentacin Arquitectura de Software

    48/61

    Objetos Distribuidos

    DCOM.- Distributed Component Object Model.- ElModelo de Objeto Componente Distribuido, esta

    incluido en los sistemas operativos de Microsoft.

    Es un juego de conceptos e interfaces de

    programa, en el cual los objetos de programa del

    cliente, pueden solicitar servicios de objetos deprograma servidores en otros ordenadores dentro

    de una red. Esta tecnologa esta asociada a la

    plataforma de productos Microsoft.

  • 7/30/2019 Presentacin Arquitectura de Software

    49/61

    Objetos Distribuidos

    CORBA.- Common Object Request BrokerArchitecture.- Tecnologa introducida por el Grupo

    de Administracin de Objetos OMG, creada para

    establecer una plataforma para la gestin de

    objetos remotos independiente del lenguaje de

    programacin.

  • 7/30/2019 Presentacin Arquitectura de Software

    50/61

  • 7/30/2019 Presentacin Arquitectura de Software

    51/61

    tareatarea

    tarea

    S.OP

    Comunicaciones

    Software de Tiempo-Real

    Medio

    Ambiente

    E/SDigital

    E/SAnalgico

    Otras

    E/S

    Reloj

    OtrasComputadoras

    Computadora

    Un sistema en tiempo real es una combinacin de

    computadoras, dispositivos de E/S, hardware y softwarede propsito especfico.

  • 7/30/2019 Presentacin Arquitectura de Software

    52/61

    Tiempo. Administracin y control del tiempo.

    Tareas deben ser asignadas y terminadas antes de suplazo.

    La ejecucin correcta no solo considera la lgica sinotambin el tiempo en que se producen los resultados.

    Confiabilidad. Predecibilidad

    Tolerancia a Fallos.

    Seguridad.

    Ambiente. Caractersticas dinmicas del ambiente.

  • 7/30/2019 Presentacin Arquitectura de Software

    53/61

    Existe una fuerte interaccin con el ambiente. el ambiente cambia con el tiempo el sistema debe controlar y/o reaccionar a diferentes

    aspectos del ambiente.

    Como resultado:

    Se imponen restricciones de tiempos al software.

    El software es naturalmente concurrente.Se exige una alta confiabilidad

  • 7/30/2019 Presentacin Arquitectura de Software

    54/61

    Restricciones de tiempos: (Computo, Periodo, Plazos).

    Restricciones de Predecibilidad.

    Restricciones de recursos: Como dispositivos de E/S, redes

    de comunicacin, estructuras de datos, archivos y bases dedatos.

    Restricciones de procedencia: una tarea puede requerir

    resultados de una u otra tarea antes de comenzar su ejecucin.

    Restricciones de confiabilidad y desempeo: una tarea

    podra tener que cumplir con ciertas restricciones de

    confiabilidad, disponibilidad o desempeo.

  • 7/30/2019 Presentacin Arquitectura de Software

    55/61

    PREDECIBILIDAD:

    Implica que debe ser posible demostrar ocomprobar a priori que los requerimientos detiempos se cumplen en cualquier circunstancia.

    una cuidadosa planificacin de tareas y recursos.Anticipacin a fallos, y sus requerimientos

    temporales. consideraciones de sobrecargas: degradacin

    controlada. consideraciones de elementos de

    inpredecibilidad.

  • 7/30/2019 Presentacin Arquitectura de Software

    56/61

    Tipos de Tareas.

    De Tiempo Crtico Las tareas deben completarse antes de un cierto plazo.

    Acrticas

    Las tareas deben completarse tan pronto como sea posibleTareas Peridicas

    Reiniciacin peridica de tareas, cada instancia debe

    completar antes de su plazo. Ejemplo: Seal de 60 Hz

    Tareas Aperidicas Se activan una sola vez Ejemplo: dispara un misil y verifica el

    blanco.

  • 7/30/2019 Presentacin Arquitectura de Software

    57/61

    No es cmputo rpido.

    Comprobar/verificar que siempre se cumplen losplazos en un sistema de tiempo real crtico.

    Implementar mecanismos para monitorizar el estricto

    cumplimiento de tiempos.

    * Implica descomponer actividadesgrandes en varias ejecuciones.

    Se monitorea el tiempo y se realiza lo masantes posible.

  • 7/30/2019 Presentacin Arquitectura de Software

    58/61

    Diseo de la aplicacin en tiempo real.

    Seleccin de la arquitectura de hardware que mejorresponda a la aplicacin.

    Obtencin de tiempos:Especificar los tiempos a los que las acciones debenllevarse a cabo.

    Especificar en cuanto tiempo debe completarse cadaaccin.

    Responder a situaciones en las cuales no todos lostiempos se cumplen

    Responder a situaciones en las que los requisitos detiempos cambian dinmicamente.

  • 7/30/2019 Presentacin Arquitectura de Software

    59/61

    Los lenguajes, compiladores.

    Sistema operativo.

    La arquitectura de hardware.

    La metodologa de diseo.A la arquitectura del sistema (HW/SW).

  • 7/30/2019 Presentacin Arquitectura de Software

    60/61

    HW.

    Reloj.

    Procesador de Interrupciones.

    Timers.

    Watchdog.Procesador de comunicaciones.

    SW.Retrasos de procesos: absolutos y relativos.

    Calendarios.Timeouts.

    Especificacin de tiempos: Caracterizacin.

    Chequeo de tiempos para tolerancia a fallos

  • 7/30/2019 Presentacin Arquitectura de Software

    61/61