drs_u1_ea_jeco
TRANSCRIPT
-
7/22/2019 DRS_U1_EA_JECO
1/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
1. Identifica y describe los diferentes lenguajes descriptores de arquitectura y agrega la utilidad que tiene.
Lenguajes descriptores de arquitectura ADLLenguaje Descripcin Caractersticas Fecha deaparicin
Desarrolladores Utilidad
ACME -ARMANI
ACME es una herramienta quesoporta el mapeo deespecificaciones arquitectnicasentre diferentes ADLs.
1. Soporta la definicin de cuatro tipos dearquitectura:
2. Estructura (organizacin de un sistema ensus partes constituyentes)
3. Propiedades de inters (informacin quepermite razonar sobre el comportamientolocal o global, tanto funcional como nofuncional)
4. Restricciones (lineamientos sobre la
posibilidad del cambio en el tiempo)5. Tipos y estilos.
1995 Monroe & Garlan(CMU), Wile (USC)
Sirve como lenguajede intercambio dearquitectura.
AESOP Su objetivo es explorar las basesformales de la arquitectura desoftware, el desarrollo delconcepto de estilo arquitectnico yla produccin de herramientastiles a la arquitectura.
1. Se describe mediante la definicin de sub-tipos de los tipos arquitectnicos bsicos:Componente, Conector, Puerto, Rol,Configuracin y Binding
2. Los puntos de interfaz se llaman puertos(ports).
3. Slo soporta nativamente desarrollosrealizados en C++.
4. Genera cdigo C++.
1994 Garlan (CMU) Es una herramientapara construirambientes dediseo de softwarebasada en principiosde arquitectura.
ARTEK Se lo conoce tambin como
ARDEC/Teknowledge ArchitectureDescription Language.
1. Tiene la capacidad de modelar ciertos
aspectos de una arquitectura.2. Puede generarse un modelo a partir de
una instancia particular de uso.
1994 Terry, Hayes-Roth,
Erman(Teknowledge,DSSA)
Lenguaje especfico de
dominio -No es ADL
ADML El propsito de ADML(Architecture Description MarkupLanguage) es estandarizar ladescripcin de arquitecturas enbase a XML, de modo que puedaser leda por cualquier parser deXML.
Permite definir vnculos conobjetos externos a la arquitectura(fundamentacin racional, diseos,componentes, etc.), as como interactuar condiversos repositorios de industria, tales comolas especificaciones de OASIS relativas aesquemas para SWIFT, IFX, OFX/OFE, BIPS,OTP, OMF, HL7, RosettaNet o similares.
2000 The Open GroupArchitecturalFramework
Vincular descripcionesarquitectnicas ymodelos directamentecon cualquier binario,scripting o entidad encualquier plataformay en cualquierlenguaje.
-
7/22/2019 DRS_U1_EA_JECO
2/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
Lenguaje Descripcin Caractersticas Fecha deaparicin
Desarrolladores Utilidad
CHAM Proporciona la base para laDescripcin de una arquitecturadebido a su capacidad decomponer especificaciones paralas partes y describirexplcitamente las reglas decomposicin.
1. CHAM es un modelo de mquina abstractaindependiente de plataforma y del lenguajeo paradigma de programacin que sevaya a utilizar en el sistema que semodela.
1990 Berry / Boudol Lenguaje deespecificacin
DARWIN Describe un tipo de componentemediante una interfaz consistenteen una coleccin de servicios queson ya sea provistos (declarados
por ese componente) o requeridos(o sea, que se espera ocurran enel entorno). Las configuracionesse desarrollan instanciando lasdeclaraciones de componentes yestableciendo vnculos entreambas clases de servicios.
1. Soporta la descripcin de arquitecturasque se reconfiguran dinmicamente atravs de dos construcciones.
2. Cada servicio de Darwin se modeliza
como un nombre de canal, y cadadeclaracin de binding es un proceso quetrasmite el nombre del canal alcomponente que requiere el servicio.
1991 Magee, Dulay,Eisenbach, Kramer
ADL con nfasis endinmica
C2 SADL C2 o Chiron-2 no es estrictamenteun ADL sino un estilo dearquitectura de software quese ha impuesto como estndar enel modelado de sistemas que
requieren intensivamentepasaje de mensajes y que suelenposeer una interfaz grficadominante.
1. Los mensajes de requerimiento slo sepueden enviar hacia arriba en laarquitectura, y los de notificacin slohacia abajo.
3. La comunicacin es a travs de
MENSAJES.
1996 Taylor/Medvidovic(UCI)
ADL especfico deestilo
-
7/22/2019 DRS_U1_EA_JECO
3/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
Lenguaje Descripcin Caractersticas Fecha deaparicin
Desarrolladores Utilidad
Jacal El objetivo principal de Jacal esanimacin de arquitecturas. Estoes, poder visualizar unasimulacin de cmo secomportara en la prctica unsistema basado en la arquitecturaque se ha representado. Cuentacon una representacin grficaque permite a simple vistatransmitir la arquitectura delsistema, sin necesidad de recurrira informacin adicional.
1. Puede ser utilizado para expresararquitecturas de distintos estilos.
2. Cada componente cuenta con puertos(ports) que constituyen su interfaz y a losque pueden adosarse conectores.
1997 Kicillof , Yankelevich(Universidad deBuenos Aires)
ADL - Notacin de altonivel paradescripcin yprototipado
LILEANNA LILEANNA es un ADL (o msestrictamente un MIL) que utilizael lenguaje Ada para laimplementacin y Anna para laespecificacin. Fue desarrolladocomo parte del proyectoDSSA ADAGE, patrocinado por
ARPA.
1. Soporta diferentes estilos decomunicacin, tales como variablescompartidas, tuberas, paso de mensajes yblackboarding.
2. Mediante un sistema auxiliar llamadoTOOR, se hace el rastreo (tracing) dedependencias entre objetospotencialmente evolutivos y relacionesentre objetos en funcin del tiempo.
1993 Tracz (Loral Federal) Lenguaje de conexinde mdulos
MetaH MetaH modela arquitecturas enlos dominios de gua, navegaciny control (GN&C) y en el diseoaeronutico.
1. MetaH est exclusivamente ligado adesarrollos hechos en Ada en el dominiode referencia.
1993 Binns, Englehart(Honeywell)
ADL especfico dedominio
Rapide Es un lenguaje de descripcin desistemas de propsito general quepermite modelar interfaces decomponentes y su conductaobservable.
1. En Rapide los puntos de interfaz de loscomponentes se llaman constituyentes.
2. En Rapide (al igual que en Darwin) no esposible poner nombre, sub-tipear oreutilizar un conector.
1990 Luckham (Stanford) ADL & simulacin
-
7/22/2019 DRS_U1_EA_JECO
4/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
Lenguaje Descripcin Caractersticas Fecha deaparicin
Desarrolladores Utilidad
UniCon Proporciona una herramienta dediseo para construirconfiguraciones ejecutablesbasadas en tipos decomponentes, implementacionesy conexiones expertas quesoportan tipos particulares deconectores.
1. El propsito de UniCon es generar cdigoejecutable a partir de una descripcin, apartir de componentes primitivosadecuados.
2. Capacidad de manejo de mtodos deanlisis de tiempo real a travs de RMA(Rate Monotonic Analysis).
3. Proporciona medios para describir odelinear familias de sistemas o estilos.
4. Soporta notacin grfica.
1995 Shaw (CMU) ADL de propsitogeneral, nfasisen conectores y estilos
Wright Es una herramienta deformalizacin de conexionesarquitectnicas.
1. En Wright (igual que en Acme y Aesop) lospuntos de interfaz se llaman puertos(ports).
2. Permite modelar la conducta de suscomponentes.
3. Permite analizar los conectores paraverificar que no haya deadlocks.
1994 Garlan (CMU) ADL de propsitogeneral, nfasisen comunicacin
-
7/22/2019 DRS_U1_EA_JECO
5/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
2. Identifica y describe los patrones de arquitectura y agrega la utilidad que tienen.
BlackBoard
Es una aplicacin de inteligencia artificial basada en una basecomn de conocimientos llamada el pizarrn.
A partir de la especificacin de un problema se plantea lasolucin.
Cada sistema experto enva a la pizarra una posible solucin.
Si la solucin es aplicable queda como un borrador.
Cada sistema experto interacta con el borrador hasta hallar
una solucin final.
Cliente-Servidor
Se tiene una mquina cliente, que requiere un servicio de unamquina servidor, y ste realiza la funcin para la que estprogramado.
El sistema queda distribuido entre mltiples procesadores dondehay clientes que solicitan servicios y servidores que losproporcionan.
Los servicios se separan situndolos en su plataforma msadecuada.
Esto permite a los usuarios finales obtener acceso a lainformacin en forma transparente an en entornosmultiplataforma.
En el modelo cliente servidor, el cliente enva un mensajesolicitando un determinado servicio a un servidor (hace unapeticin), y este enva uno o varios mensajes con la respuesta
(provee el servicio).
-
7/22/2019 DRS_U1_EA_JECO
6/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
Computo Distribuido Las computadoras interactan entre s, para lograr un objetivo
en comn.
Utiliza un gran nmero de computadoras organizado en racimospor medio de una estructura de telecomunicaciones.
Cada usuario comparte tiempo de procesamiento de su mquinapara manejar grandes volmenes de informacin.
Front-End, Back-End
Front-End.- Es la parte del software que interacta con losusuarios
Back-End.- Es la parte que procesa la entrada de datosproveniente del Front-End
El Front-End es responsable de recolectar los datos de entraday los procesa conforme a las especificaciones del Back-Endpara que este las pueda utilizar.
La conexin del Frot-End y el Back-End es de tipo interface yasea de manera fsica o virtual.
-
7/22/2019 DRS_U1_EA_JECO
7/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
Monoltico
Toda la estructura y grupo funcional est en un mismo lugar.
Existen interfaces grficas de usuario (GUI).
Servicios de presentacin, negocio y persistencia en la mismamquina.
No hay concurrencia de usuarios.
Alto acoplamiento entre niveles.
Tres capas
Cada capa est separada, nicamente puede comunicarse conla siguiente capa.
Es la ms utilizada debido a su escalabilidad y flexibilidad
La interfaz del usuario, la lgica funcional del proceso,almacenamiento de datos y acceso a los datos sondesarrollados y mantenidos como mdulos independientescomnmente en plataformas separadas.
Permite que cualquiera de sus capas sea reemplazada sin
afectar a las dems.
-
7/22/2019 DRS_U1_EA_JECO
8/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
4. Elabora ejemplos de uso de la combinacin de lenguajes y patrones y describe cada ejemplo (mnimo 2).
Caso 1Problema:Varios usuarios manipulan la misma informacin almacenada en un Server, conectndose intermitentemente a dicho Server.
Principio de usabilidad:Cada computadora es provista de un Sync Engine.
Contexto:Se debe desarrollar un sistema que permita tener informacin idntica almacenada en diferentes equipos los cuales se encuentran conectados
intermitentemente a la red. Muchos usuarios aplican cambios a la informacin de manera simultnea.
Fuerza:La informacin almacenada en los equipos de cada usuario pierde el sincronismo cuando el usuario aplica cambios a su copia local y los equiposse conectan intermitentemente a la red.
Solucion:El Sync Engine mantiene un seguimiento de las modificaciones que seaplican a la informacin local, intercambia modificaciones con otrosdispositivos cada vez que se reconectan y detecta conflicto eimplementa una estrategia de resolucin
Consecuencias: Este patrn puede ser utilizado cuando la informacin almacenada en diferentes equipos no tiene que estar actualizada en tiempo real.
La informacin poco estructurada debe ser comparada registro por registro lo que incrementa la probabilidad de conflictos no deseados.
Este patrn no es aplicable a informacin de video o audio.
UsuarioUsuario
-
7/22/2019 DRS_U1_EA_JECO
9/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
Caso 2
Problema:Dada la gran cantidad de tareas que debe de realizar un usuario, tiene la necesidad de tener abiertos al mismo tiempo varios ventanas.
Principio de usabilidad:Guiar al usuario y dar el control de la interaccin al usuario.
Contexto:El usuario tiene dificultades para acceder directamente a las ventanas del sistema informtico y desconoce cul de entre ellas es la ventana actualde trabajo.
Fuerza:
El sistema debe siempre mostrar la lista de ventanas navegables
Solucion:1. Retroalimentacin visual de navegacin directa:
2. Permite al usuario seleccionar directamente la ventana de lainterfaz y mostrar de forma continua la ventana activa ydesactiva.
Consecuencias: El acceso directo a las ventanas del sistema no solo beneficia la manipulacin
directa de ellas sino tambin la manipulacin de los objetos que retienen ya que cada ventana es
definida en trminos de sus objetos de interaccin (e.g. iconos, tems de men, radio botones) los
cuales permiten la adquisicin y la restitucin de informacin que requiere el usuario
-
7/22/2019 DRS_U1_EA_JECO
10/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
4. Investiga la aplicacin de lenguajes y patrones que no se hayan presentado en el desarrollo de la unidad.
5. En un archivo de texto, redacta un reporte con los elementos solicitados en los puntos 1, 2, 3 y 4.
-
7/22/2019 DRS_U1_EA_JECO
11/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
-
7/22/2019 DRS_U1_EA_JECO
12/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
1.- Identifica y describe qu es un patrn de arquitectura.
Los patrones de arquitectura, son patrones de diseo de software que ofrecen soluciones a problemas en un contexto. Un patrn codifica conocimiento especfico
acumulado por la experiencia en un dominio.
Cada patrn describe un problema y una solucin de manera que se puede usar esa solucin un nmero infinito de veces sin tene r que hacer la misma cosa dos
veces.
Los elementos que componen a un patrn son los siguientes:
1. Nombre: Define un vocabulario de diseo y facilita su abstraccin
2. Problema: Describe cuando aplicar el patrn, el objetivo y los requisitos
3. Solucin: Incluye los elementos que constituyen el diseo (template), la forma cannica para resolver fuerzas
4. Consecuencias: Resultados, extensiones y tradeoffs
2. Redacta una lista de manera tabular para cada patrn de arquitectura, incluyendo sus principales caractersticas.
Comentario Problema Solucin Etapa de desarr
Patrones de
Arquitectura
Relacionados a la interaccin de objetos
dentro o entre niveles arquitectnicos
Problemas arquitectnicos, adaptabilidad a
requerimientos cambiantes, performance,
modularidad, acoplamiento
Patrones de llamadas entre objetos (similar a los
patrones de diseo), decisiones y criterios
arquitectnicos, empaquetado de funcionalidad
Diseo i
Patrones de Diseo
Conceptos de ciencia de computacin en
general, independiente de aplicacin
Claridad de diseo, multiplicacin de clases,
adaptabilidad a requerimientos cambiantes, etc
Comportamiento de factora, Clase-Responsabilidad-
Contrato (CRC) Diseo de
Patrones de Anlisis
Usualmente especficos de aplicacin o
industria
Modelado del dominio, completitud,
integracin y equilibrio de objetivos mltiples,
planeamiento para capacidades adicionales
comunes
Modelos de dominio, conocimiento sobre lo que
habr de incluirse (p. ej. logging & reinicioAnli
Patrones de Proceso o
de Organizacin
Desarrollo o procesos de administracin
de proyectos, o tcnicas, o estructuras de
organizacin
Productividad, comunicacin efectiva y
eficiente
Armado de equipo, ciclo de vida del software,
asignacin de roles, prescripciones de comunicacin Planea
-
7/22/2019 DRS_U1_EA_JECO
13/13
Diseo y Arquitectura de SoftwareUnidad 1. ArquitecturaEvidencia de aprendizaje. Lenguaje descriptor y patrones dearquitectura de softwareAlumno: Jernimo Coln Ortiz, Matrcula: AL10506040
Idiomas
Estndares de codificacin y proyecto Operaciones comunes bien conocidas en un
nuevo ambiente, o a travs de un grupo.
Legibilidad, predictibilidad.
Sumamente especficos de un lenguaje, plataforma
o ambienteImpleme
Mantenimient