drs_u1_ea_joec

12

Click here to load reader

Upload: ricardo-escobar

Post on 19-Jan-2016

34 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: DRS_U1_EA_JOEC

Encabezado: LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE

SOFTWARE.

1

Unidad 1. Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de software.

Por:

Jorge Ricardo Escobar Carrasco.

[email protected]

Diseño y arquitectura de software.

Universidad abierta y a distancia de México.

martes 24 de junio de 2014

Facilitador:

Cuitlahuac Vargas Millan.

[email protected]

Page 2: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 2

Tabla de contenido

Sumario............................................................................................................................................3Unidad 1. Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de software...........................................................................................................................................................4Lenguajes descriptores de arquitectura............................................................................................5

Lenguajes descriptores de arquitectura y sus explicaciones..............................................5Identificando los patrónes de arquitectura.......................................................................................6Listado de patrones de arquitectura.................................................................................................7

Tabla de patrones de arquitectura......................................................................................7Ejemplos de uso de la combinación de lenguajes y patrones..........................................................9

Primer ejemplo. UML con modelo vista controlador. (MVC)....................................................9Segundo ejemplo. UML con modelo punto a punto.................................................................10

Conclusión.....................................................................................................................................12Bibliografía....................................................................................................................................12

Page 3: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 3

Sumario.

Como parte de la evaluación de esta unidad, es necesario realizar un reporte donde se explique y

distinga los diferentes patrones de arquitectura de software, así como los lenguajes descriptores

de arquitectura y su aplicación a cada modelo, de manera que investigues patrones y lenguajes

que no se hayan incluido en el desarrollo de esta primer unidad.

Page 4: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 4

Unidad 1. Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de

software.

Instrucciones:

1. Identifica y describe los diferentes lenguajes descriptores de arquitectura y agrega la

utilidad que tiene.

2. Identifica y describe los patrones de arquitectura y agrega la utilidad que tienen.

3. Elabora ejemplos de uso de la combinación de lenguajes y patrones y describe cada

ejemplo (mínimo 2).

4. Investiga la aplicación de lenguajes y patrones que no se hayan presentado en el

desarrollo de la unidad.

Page 5: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 5

Lenguajes descriptores de arquitectura.

Los lenguajes descriptores de arquitecturas , nos facilitan el modelado de los procesos del

negocio y también nos permiten abstraer las diferentes partes del mismo. El más popular es

UML,el cual fue creado por los tres principales autores de lenguajes descriptores de arquitectura

de la época, por lo que son muy usados actualmente.

A demás de ser una forma de representar un modelo de negocio y sistemas, los lenguajes

descriptores de arquitectura, son herramientas que nos permiten compartir ideas complejas con

relativa facilidad.

A continuación, listo los principales lenguajes descriptores de arquitectura .(Ver tabla 1)

Tabla 1.

Lenguajes descriptores de arquitectura y sus explicaciones.Lenguaje descriptor de arquitectura. DESCRIPCIÓN.

UML (unified modelling language) Este es el lenguaje descriptor de arquitectura más usado en la actualidad. Mediante UML es posible establecer la serie de requerimientos y estructuras necesarias para plasmar un sistema de software previo al proceso intensivo de escribir código.

UML es una forma muy flexible de representarlos procesos de negocios y sistemas, pero por esta misma razón puede ser muy imprecisa.[1](Uwe Zdun, 2005)

CHAM La arquitectura de un compilador. Se argumenta en efecto que CHAM proporciona una base útil para la descripción de una arquitectura debido a su capacidad de componer especificaciones para las partes y describir explícitamente las reglas de composición.

CHAM es un modelo de máquina abstracta independiente de plataforma y del lenguaje o

Page 6: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 6

paradigma de programación que se vaya a utilizar en el sistema que se modela.

LILEANNA Es oficialmente un lenguaje de interconexión de módulos (MIL), basado en expresiones de módulo propias de la programación parametrizada.

Utilizar descriptivamente. Para especificar y analizar un diseño determinado. (Que describen módulos y relaciones entre ellos, y que pueden incluir código u otros objetos de software).

Utiliza el lenguaje Ada para la implementacióny Anna para la especificación.

LILEANNA soporta diferentes estilos de comunicación.

LILEANNA (que habla de teorías, axiomas, grafos, vistas, stacks, aserciones, estructuras verticales y horizontales, packages y máquinas virtuales en un sentido idiosincrático a ese paradigma).

LILEANNA son poderosos, pero no están en línea con el estilo de arquitectura orientada a servicios o con modelos igualmente robustos, como los de C2 y Wright.

MetaH/AADL Así como LILEANNA es un ADL ligado a desarrollos que guardan relación específica conhelicópteros.

Está basado en la estructura textual de MetaH.Disponibilidad de Plataforma – MetaH está exclusivamente ligado a desarrollos hechos en Ada en el dominio de referencia.

Identificando los patrónes de arquitectura.

Según el material didáctico de la [2]UNADM, (2014, pag. 14) un patrón de arquitectura

Page 7: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 7

deberá entenderse como una guía que ofrece solución a determinados problemas ya conocidos,

respecto a problemáticas fundadas en la ingeniería de software.

A continuación listo los patrones de arquitectura de software y su descripción.

Listado de patrones de arquitectura.

En la siguiente tabla (Ver tabla 2) listo los patrones de arquitectura más usados y su

descripción.

Tabla 2.

Tabla de patrones de arquitectura.Patrón de arquitectura. Características principales.

Programación por capas. Según Trygve Reenskaug y James O. Coplien, (2009) [3]La programación por capas es una arquitectura cliente-servidor en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario.

Arquitectura en pizarra. [4]La arquitectura en pizarra consta de múltiples elementos funcionales, denominados agentes, y un instrumento de control denominado pizarra.Los agentes suelen estar especializados en una tarea concreta o elemental. Todos ellos cooperan para alcanzar una meta común, si bien, sus objetivos individuales no están aparentemente coordinados.El comportamiento básico de cualquier agente consiste en examinar la pizarra, realizar su tarea y escribir sus conclusiones en la misma pizarra. De esta manera, otro agente puede trabajar sobre los resultados generados por otro.La computación termina cuando se alcanza alguna condición deseada entre los resultados escritos en la pizarra.

Arquitectura dirigida por eventos. La Arquitectura dirigida por eventos, Event-

Page 8: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 8

driven architecture o EDA, es un patrón de arquitectura software que promueve la producción, detección, consumo de, y reacción a eventos.Un evento puede ser definido como "un cambio significativo en un estado". Por ejemplo, cuando un consumidor compra un coche, el estado del coche pasa de "se vende" a"vendido". La arquitectura del sistema del vendedor de coches debe tratar este cambio de estado como un evento, cuyo suceso puede ser conocido en otras aplicaciones en la arquitectura. Desde una perspectiva formal, lo que es producido, publicado, propagado, detectado o consumido es un mensaje (típicamente asíncrono) llamado notificación del evento, y no el evento en sí mismo, el cuál es el cambio de estado que disparó la emisión del evento. Los eventos no viajan, solamente ocurren. Por otro lado, el término evento es frecuentemente usado para denotar el mensaje de notificación en sí mismo, lo cual puede llevar a algún tipo de confusión.

Punto a punto. Una red peer-to-peer (punto a punto), red de pares, red entre iguales, red entre pares o red punto a punto (P2P, por sus siglas en inglés) es una red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red. Las redes P2P permiten el intercambio directo de información, en cualquier formato, entre los ordenadores interconectados.

Arquitectura orientada a servicios. La 'Arquitectura Orientada a Servicios de cliente' (en inglés Service Oriented Architecture), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.Permite la creación de sistemas de informaciónaltamente escalables que reflejan el negocio de

Page 9: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 9

la organización, a su vez brinda una forma biendefinida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros.

Modelo vista-controlador. (MVC) El Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el móduloencargado de gestionar los eventos y las comunicaciones.

Para ello MVC propone la construcción de trescomponentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario.

Este patrón de diseño se basa en las ideas de re utilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento.

Ejemplos de uso de la combinación de lenguajes y patrones.

A continuación anexo un par de ejemplos de la combinación de un lenguaje descriptor y

dos patrones de arquitectura de software.

Primer ejemplo. UML con modelo vista controlador. (MVC)

Esta es una de las combinaciones más comunes actualmente, el modelo vista controlador

nos permite separar lo que el usuario de los controles que manipulan los datos.

Por ejemplo en una app de teléfono inteligente, que permita acceder a redes sociales y

compartir fotografías. Esta app usa el modelo vista controlador para diferenciar la parte del

proyecto entre lo que el usuario ve y los mecanismos de control los cuales son los que realizan la

Page 10: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 10

manipulación de datos.

En la figura 1, podemos ver el esquema de dicha app. Este

modelo, tiene la particularidad de ser representado por medio de

UML, esta representación es muy básica y sirve como un

mecanismo de abstracción de la misma.

Es aquí donde podemos apreciar este modelo como una

vista, ya que representa de forma general el modelo de datos usado

en la app.

Segundo ejemplo. UML con modelo punto a punto.

En el segundo ejemplo, tenemos un programa de para compartir archivos punto a punto,

este tipo de modelo, como ya se mencionó en el trabajo, esta dedicado a usar cada nodo o

computadora, como un cliente de descarga y como servidor de archivos al mismo tiempo. Esto

significa que entre más personas estén descargando el mismo archivo, más rápidamente se

descarga el mismo.

En la práctica esto depende mucho del ancho de banda de subida como de descarga. En la

figura 2, usando UML, se describe este modelo en un diagrama de eventos, muy popular en

UML.

Figura 1. Ejemplo del modelo vista controlador con UML.

Page 11: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 11

En el segundo ejemplo, tenemos que el cliente y el servidor de archivos se comunican

entre sí de forma directa, y se cuenta con agentes externos que autentifican las transacciones y

establecen las prioridades de cada cliente y servidor. En sí, la política es recompensar con más

ancho de banda de descarga a los clientes que compartan más datos. Esto es un incentivo para

que las personas compartan más y el modelo funcione.

Figura 2. Diagrama secuencial de programa para compartir archivos en una arquitectura puntoa punto.

Page 12: DRS_U1_EA_JOEC

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA DE SOFTWARE. 12

Conclusión.

En esta primera unidad, he leído de forma general sobre estos lenguajes descriptores pero

su comprensión y estudió pertenecen a otras asignaturas. Supongo que el enfoque de esta

asignatura es sobre la fase de diseño, en la cual se aplicarán los diferentes patrones de

arquitectura de software que se han visto a lo largo de la primera unidad.

Solo me queda reflexionar hasta el momento lo que he trabajado desde el inicio. Veremos

si las siguientes unidades presentan estos patrones a detalle y su implementación en la fase de

diseño de software.

Bibliografía

[1] Uwe Zdun. Architectural patterns revisited:a pattern language. 10th European Conference

on Pattern Languages of Programs, (julio 2005) . Avgeriou, Paris: EuroPlop.

[2] UNADM. Programa de la asignatura: Diseño y arquitectura de software., (2014) . México:

Universidad abierta y a distancia de México.

[3] Reenskaug, Trygve y O. Coplien, James, The DCI Architecture: A New Vision of Object-

Oriented Programming, (2009, marzo 20), obtenido de:

http://www.artima.com/articles/dci_vision.html

[4] S. Kleine Stegemann, , (), obtenido de: http://openbbs.sourceforge.net/