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
Top Related