drs_u1_ea_jeco

Upload: jeronimo-colin

Post on 10-Feb-2018

215 views

Category:

Documents


0 download

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