Sei sulla pagina 1di 61

ARQUITECTURA DE INGENIERA DE SOFTWARE

EQUIPO: JUAREZ ANZA WALTER ALBERTO PADILLA LPEZ RICARDO ARMANDO PREZ SARMIENTO MARA DEL PILAR SOLS JIMENEZ GERARDO

Definicin de Arquitectura de Software


Qu es la Arquitectura de Software? La arquitectura de software de un programa o sistema informtico es una representacin del sistema que ayuda en la comprensin de cmo se comportar el sistema. La arquitectura es la principal portadora de cualidades del sistema, tales como el rendimiento, la modificabilidad, y la seguridad, ninguno de los cuales se puede lograr sin una visin arquitectnica unificador. La arquitectura es un artefacto para el anlisis temprano para asegurarse de que un enfoque de diseo proporcionar un sistema aceptable.

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.

POR QU ES IMPORTANTE LA ARQUITECTURA DE SOFTWARE?


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.

Actividades del proceso de arquitectura


Anlisis de requerimientos

DEFINICIN DE SCOPE

Identificacin y anlisis de los participantes

Requerimientos y Driver de Arquitectura

Definicin de arquitectura

Software arquitectura descripcin


Etiqueta del Sistema Crear un esqueleto del sistema

Requerimientos y driver de arquitectura


Atributos de calidad

Requerimientos funcionales

Restricciones

Driver de arquitectura
Decisiones Arquitecturales

VISTAS

Descomposicin modular
Es necesario descomponer los subsistemas en mdulos. Para definir los mdulos en un arquitectura de software, se utiliza la abstraccin y el ocultamiento de informacin. Cada mdulo debe tener operaciones.

Hay dos estrategias principales que se pueden usar cuando se descompone un subsistema en mdulos:
Descomposicin orientada a objetos. En la que se descompone un sistema en un conjunto de objetos que se comunican. Descomposicin orientada a flujos de funciones. En la que se descompone un sistema en mdulos funcionales que acepta datos y los transforma en datos de salida.

Descomposicin orientada a objetos

OPERACIONES

Descomposicin orientada a flujos de funciones

Arquitectura de dominio especifico


Modelos genricos Arq. De dominio Especifico Modelos de referencia

DISEO DE SOFTWARE DE ARQUITECTURA MULTIPROCESADOR

Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente

Caractersticas
Es comn en sistemas grandes de tiempo real Mejora el desempeo del sistema operacin llamada cambio de contexto Es econmica

Reducir el tiempo de computo

Reducir la complejidad del algoritmo

Aprovechar al mximo la capacidad de las computadoras multiproceso

DISEO DE SOFTWARE DE ARQUITECTURA CLIENTESERVIDOR

Consiste en entidades lgicas independientes que operan en conjunto a travs de una red para realizar una tarea donde hay clientes y servidores.

Los componentes de este modelo son:


red

Internet

Cliente

Servidor

caractersticas
El cliente y el servidor son independientes Transparencia de localizacin fsica de los servidores y clientes

Pueden estar en plataformas separadas

El servidor da servicios a mltiples clientes al mismo tiempo Cada plataforma puede ser escalable independientemente.

Integridad

Servidores de archivos

Servidores de base de datos

Servidores de transacciones

Tipos de servidores

Servidores web

Servidores groupware

Servidores de objetos

TODA APLICACIN DE UN SISTEMA DE INFORMACIN EST CARACTERIZADA POR TRES COMPONENTES BSICOS:
Capa de presentacin (interfaz de usuario)

Capa de procesamiento de la aplicacin (lgica de aplicacin)

Capa de administracin de datos (almacenamiento y acceso a datos)

Clasificacin de la arquitectura clienteservidor

De acuerdo a las responsabilidades asignadas al cliente

En funcin de la ubicacin fsica de las funciones

Clasificacin de acuerdo a las funciones del cliente:

Modelo de cliente delgado


todo el procesamiento de la aplicacin y administracin son manejados por el servidor.

Una gran de desventaja es que coloca una gran carga de


procesamiento en el servidor Genera bastante trafico en la red No utiliza todo el procesamiento disponible en las PCs modernas

Modelo del cliente grueso


El servidor solo es responsable de la administracin de datos El software en el cliente implementa la lgica de la aplicacin

Distribuye el procesamiento lgico de la aplicacin


como la presentacin del cliente. El servidor es un servidor de transacciones

Clasificacin De Acuerdo A su ubicacin fsica


Two Tier (C-S) Three Tier (C-S)

Presentacin Presentacin Lgica de Negocio Servicios de Datos Lgica de Negocio

Servicios de Datos
26

Ventajas de la arquitectura cliente/servidor

Centralizacin del control

Fcil mantenimiento

escalabilidad

Desventajas cliente/servidor

La congestin trfico

del

El software y el hardware de un servidor son generalmente muy determinantes

Sistemas Distribuidos

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 independientes que se muestran al usuario como un sistema nico coherente. [Tanenbaum 2001]

Introduccin
Sistema en el cual componentes de hardware 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 los objetivos que la organizacin asigna al sistema.

Introduccin

Caractersticas
Concurrencia
Esta caracterstica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultneamente por los usuarios y/o agentes que interactan en la red.

Carencia de reloj global


Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realizacin de una tarea, no tienen una temporizacin general, esta ms bien distribuida a los componentes.

Introduccin

Caractersticas
Fallos independientes de los componentes
Cada componente del sistema puede fallar independientemente, con lo cual los dems pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.

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

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

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

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

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 usuario

Base de datos

Protocolo Es un conjunto bien conocido de reglas y formatos 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.

Protocolo
Pueden ms importantes que la propia arquitectura distribuida o centralizada. Un buen protocolo permite que se pueda pasar, sin un costo adicional de rediseo o codificacin, de una arquitectura centralizada a una distribuida, y viceversa:
Pipes RPC SQL Remoto HTTP X11 Otros

Middleware
Capa de software intermedio entre el cliente y el servidor. Es la capa de software que nos permiten gestionar los mecanismos de comunicaciones. Ejemplo si se hace la peticin de una pgina web 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 al software intermedio, quien la dirige al navegador de la mquina cliente que la solicit.

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, software parte del sistema operativo que, por ejemplo, almacena los archivos distribuidos, software de autenticacin, el software intermedio de mensajes de clientes a servidores y viceversa.

Middleware
Software intermedio de servicios. Software asociado a un servicio en particular, por ejemplo: software que permite a dos BD conectarse a una red cliente/servidor (ODBC: Conectividad abierta de BD), software de objetos distribuidos, por ejemplo la tecnologa CORBA permite que objetos distribuidos creados en distintos lenguajes coexistan en una misma red (intercambien mensajes), software intermedio para software de grupo, software intermedio asociado a productos de seguridad especficas (Conexiones Seguras: Sockets), etc.

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 o CICS, Tuxedo, Encina. Modelo OO: CORBA.

Objetos Distribuidos En los sistemas Cliente/Servidor, un objeto 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 el resultado se devuelve al cliente en otro mensaje.

Objetos Distribuidos
Tecnologas distribuidos: orientadas a los objetos

Las tres tecnologas importantes y ms usadas en este mbito son:


RMI: Remote Invocation Method.- Fue el primer framework para crear sistemas distribuidos de Java. El sistema de Invocacin 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.

Objetos Distribuidos
DCOM.- Distributed Component Object Model.- El Modelo 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 de programa servidores en otros ordenadores dentro de una red. Esta tecnologa esta asociada a la plataforma de productos Microsoft.

Objetos Distribuidos
CORBA.- Common Object Request Broker Architecture.- 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.

Un sistema en tiempo real es una combinacin de computadoras, dispositivos de E/S, hardware y software de propsito especfico.
Otras Computadoras

Comunicaciones E/S Digital

Software de Tiempo-Real
tarea tarea

S.OP
tarea Computadora

Reloj

E/S Analgico Medio Ambiente

Otras E/S

Tiempo.
Administracin y control del tiempo. Tareas deben ser asignadas y terminadas antes de su plazo. La ejecucin correcta no solo considera la lgica sino tambin el tiempo en que se producen los resultados.

Confiabilidad.
Predecibilidad Tolerancia a Fallos. Seguridad.

Ambiente.
Caractersticas dinmicas del ambiente.

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

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 de datos.


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.

PREDECIBILIDAD: Implica que debe ser posible demostrar o comprobar a priori que los requerimientos de tiempos 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.

Tipos de Tareas.
De Tiempo Crtico Las tareas deben completarse antes de un cierto plazo.
Acrticas Las tareas deben completarse tan pronto como sea posible Tareas 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.

No es cmputo rpido. Comprobar/verificar que siempre se cumplen los plazos en un sistema de tiempo real crtico. Implementar mecanismos para monitorizar el estricto cumplimiento de tiempos.

* Implica descomponer actividades grandes en varias ejecuciones. Se monitorea el tiempo y se realiza lo mas antes posible.

Diseo de la aplicacin en tiempo real.

Seleccin de la arquitectura de hardware que mejor

responda a la aplicacin. Obtencin de tiempos:


Especificar los tiempos a los que las acciones deben llevarse a cabo. Especificar en cuanto tiempo debe completarse cada accin. Responder a situaciones en las cuales no todos los tiempos se cumplen Responder a situaciones en las que los requisitos de tiempos cambian dinmicamente.

Los lenguajes, compiladores.

Sistema operativo.
La arquitectura de hardware. La metodologa de diseo.

A la arquitectura del sistema (HW/SW).

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

Potrebbero piacerti anche