Matricula: Al12525677
Ingeniería en Desarrollo de software 5 Cuatrimestre
Programa de la asignatura: Diseño y Arquitectura de Software
Unidad 1. Arquitectura
Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software
Facilitador: PABLO SANCHEZ LUNA
Bibliografía:
http://codeoptimizations.com/patron-de-arquitectura-layers/
http://daielrivas.blogspot.mx/
PDF unidad 1 Arquitectura
Consulta la escala de evaluación para conocer los parámetros de la actividad.
ADLS
Una definición un poco más formal, la que se habrá de aplicar desde ahora es la
de un lenguaje descriptivo de modelado, del cual su principal interés es la
estructura de alto nivel del producto de software antes que los detalles finos de
desarrollo e implementación de los módulos que lo conforman.
existe una definición generalizada los lenguajes, pero comúnmente debe pensarse
que estos lenguajes proporcionan un modelo explícito de componentes conectores
y sus respectivas configuraciones.
Los ADLs cuentan con cuatro criterios que los definen como una entidad:
componentes, conectores, configuraciones y restricciones. Para poder considerar
un lenguaje que pertenezca a la familia de ADLs debe soportar por lo menos los
siguientes elementos:
Componentes
Conexiones
Composición jerárquica
Paradigmas de computación
Paradigmas de comunicación
Modelos formales subyacentes
C H AM C h e m i c a l A b s t r a c t M a c h i n e
Técnica de especificación basada en álgebra de
p r o c e s o s
Moléculas (componentes básicos)
Soluciones de moléculas (multiconjuntos que definen
e s t a d o s )
Reglas de transformación (cambios de estado)
No determinismo si hay + de una regla para una
m o l é c u l a o s o l u c i ó n
A c m e - A r m a n i Semántica sólo como comentario
N o g e n e r a c ó d i g o
M a n e j a e s t i l o s ( f a m i l i a )
V a r ia s h e r ra m ie n t a s e n a m b ie n t e W in d o ws :
A c m e S t u d i o
A r m a n i c o n f r o n t - e n d V i s i o
I S I : f r o n t - e n d P o w e r p o i n t
ADML: lenguaje de markup de arquitectura, derivado
d e A c m e ( e s t á n d a r )
A r m a n i : A D L . D e c l a r a t i v o
C 2 S A D L , C 2 S A D E L C2 SADL (Simulation Architecture Description Language)
ADL que permite describir arquitecturas en estilo C2
C2SADEL – Variante. Incluye DRADEL
(Development of Robust Architecture s
using a Description and Evolution Language )
xArch, xADL: Inicialmente ligados a C2
S A D L
Módulos declarativos e imperativos
1) IDN Interface Description Notatio n
2) ADN Architecture Description Notation
3) ACN Architecture Construction Notatio n
W i n d o w s :
DRADEL (Int . Para C2SADEL )
SAAGE (requiere Rose o Dradel)
ArchStudio – Argo (discontinuado)
R A P I D E D e s a r r o l l a d o p o r D a vi d L u c k h a n ( s t a n f o r d )
A D L d e p r o p ó s i t o g e n e r a l
Su objetivo es facilitar la simulación de eventos
(comportamientos aceptados y prohibidos )
Las especificaciones Rapide son ejecutable s
Lenguaje OO (modela concurrencia)
Requerimientos del sistema son expresados como
r e s t r i c c i o n e s e n e l t i e m p o
P r i n c i p a l e s e l e m e n t o s :
Componet (Interface Objects y Module )
C o n n e ct o r (I n t e rf a c e d e e n ví o y r e c e p c i ó n ,
lo s co m p o n e n t s s e co m u n i ca n a t ra vé s d e
conectores, tres tipos de conexiones: Básicas ,
P i p e s y A g e n t e s )
Constraints (se definen en las conexiones de las
a r q u i t e c t u r a s )
D a r w i n ADL orientado a arquitecturas dinámica s
Descripción de tipo de componente mediante
i n t e r f a z
Su desarrollo consiste en instanciar declaraciones
de componentes y establecer relaciones entre
s e r v i c i o s
Soporta reconfiguración dinámica e instalación
t a r d í a
Las propiedades de un componente son sólo
c o m e n t a r i o s
No hay soporte real de estilos: solo se pueden
e x p r e s a r c o n s t r u c t i v a m e n t e
Semántica basada en cálculo Pi
Interfaz gráfica (software architect´s assistant )
2. Identifica y describe los patrones de arquitectura y agrega la utilidad que tienen.
un patrón de arquitectura deberá entenderse como una guía que ofrecen solución
a determinados problemas ya conocidos, respecto a problemáticas fundadas en la
ingeniería de software. También expresa de manera clara la relación que hay entre
los componentes de una solución basada en software y su esquema de
organización estructural, incluyendo todos los subsistemas y acciones que deberá
realizar cada uno de ellos, además de la manera correcta de comunicar el
resultado de esas acciones entre los mismos componentes, entre vistas o con
otros sistemas externos. Los patrones arquitectónicos sirven también para
describir las restricciones que tienen los módulos que comprenderán al sistema,
por ejemplo en la manera de comunicarse, la seguridad que deberá implementar
el sistema para resguardar los datos, de qué manera viajarán estos datos y por
qué protocolo de transmisión se hará. Las relaciones entre los módulos, las vistas
y los sistemas externos dan la estructura necesaria para pasar de cualquier
sistema de software a forma de esquema (gráfico o no); la estructura, expresa de
forma clara la composición total del sistema de software, pudiendo ser de un nivel
de abstracción muy alto hasta poder llegar a representarse de manera muy
detallada, a diferencia de los ADLs. Nota: Los ADLs y los patrones arquitectónicos
son complementarios
PATRONES DE ARQUITECTURA PRINCIPALES CARACTERÍSTICAS Y APLICACIONES
D E S O F T W A R E
L a y e r s
Descr ibe la c om pos ic ión de s ervic ios de forma que la m ayoría de la
interaccion corurre solamente entre capas vecinas .
Las capas de una aplicación puede residir en la misma máquina físic a
(misma capa) o puede estar distribuido sobre diferentes computadores
( n c a p a s )
Los componentes de cada capa se comunican con otros componentes en
otras capas a través de interfaces muy bien def inidas
Este modelo ha sido descrito como una “pirámide invertida de re - uso”
donde cada capa agrega responsabilidad y abstracción a la capa
d i r e c t a m e n t e s o b r e e l l a
Capa de presentación: Contiene elementos responsables de proveer
algún tipo de comunicación con los humanos, tales como las interfaces de
usuario 2. Lógica del negocio: Contiene elementos responsables de realizar
algún proceso del negocio y la aplicación de reglas del negocio. 3. Acceso de dato
a c c e s o
a los datos, tales como el modelo relacional.
M i c r o k e r n e l
Aplica para sistemas de software que deben de estar en capacidad de adaptar los
R e q u e r i m i e n t o s d e c a m b i o s d e s i s t e m a
Separa un núcleo funcional mínimo del resto de la funcionalidad y de partes
e s p e c i f i c a s p e r t e n e c i e n t e s a l c l i e n t e
P o r t a b i l i d a d
E s c a l a b i l i d a d
C o n f i a b i l i d a d
D i s p o n i b i l i d a d
V i s t a
M u e s t r a l a i n f o r m a c i ó n a l u s u a r i o
Pueden existir múltiples vistas del modelo
Cada vista tiene asociado un componente controlado r
Gestiona la representación de la información de la aplicación
C o n t r o l a d o r
R e c i b e n l a s e n t r a d a s
Llama a la lógica del negocio para procesar y producir una
r e s p u e s t a
Interpreta las entradas del usuario, informando al modelo y a la
vista lo que surja de dichas entradas
.
B l a c k b o a r d Aplica para problemas cuya solución utiliza estrategias no
De t e rm in í st i ca s . V a rio s s u b s ist e m a s e n sa m b la n su
c o n o c i m i e n t o
Para construir una posible solución parcial o aproximada .
M o d i f i c a b i l i d a d
M a n t e n i b i l i d a d
R e u s a b i l i d a d
I n t e g r i d a d
Ejemplo 1
Meta Object Facility (MOF). MOF es un lenguaje común y abstracto para la
especificación de meta-modelos, que sirve como un modelo común para UML y
CMW. MOF es una arquitectura de metamodelos de cuatro capas. La
especificación de MOF provee: i) Un modelo abstracto de los objetos y sus
relaciones; ii) un conjunto de reglas para mapear un metamodelo a interfaces
independientes del
lenguaje; iii) reglas definiendo el ciclo de vida, composición y semántica de los
modelos basados en MOF; iv) una jerarquía de interfaces reflexivas definiendo
operaciones genéricas para descubrir y manipular las propiedades de los meta-
modelos basados en MOF.
Common Warehouse Metamodel (CWM). Es un meta-modelo que especifica
interfaces que pueden ser usadas para habilitar el intercambio de metadatos de
almacenes de datos e inteligencia de negocio, entre distintas herramientas,
plataformas y metadatos en ambientes heterogéneos y distribuidos de almacenes
de datos. CMW se basa en tres estándares: MOF, UML y XMI. Los modelos CMW
permiten a los usuarios rastrear el linaje de los datos, mediante objetos que
describen de donde vienen los datos y cuándo y cómo se crearon los datos.
Unified Modeling Language (UML). El Lenguaje de Unificado (UML) sirve como
notación base para la definición de CMW. Dado que UML utiliza una definición
precisa, a partir de sus modelos visuales se pueden realizar traducciones
automáticas a otros lenguajes formales.
XML Metadata Interchange (XMI). Estándar que mapea el MOF al estándar de
XML del World Wide Web Consortium. XMI define como los tags de XML se usan
para representar en XML modelos serializados que cumplan con el estándar de
MOF. Esto facilita el intercambio
de modelos entre diversos modelos y herramientas.
Modelos MDA
MDA especifica tres modelos básicos de un sistema, correspondientes a los
puntos de vista expresados anteriormente. Estos modelos pueden verse como
niveles de abstracción donde en cada nivel pueden
construirse varios modelos
El Proceso MDA
Un sistema complejo puede incluir varios modelos relacionados entre sí,
organizados a través de varios niveles de abstracción, con mapeos definidos de
un conjunto de modelos hacia otro y que pueden incluir:
• Un CIM que contenga todas las reglas del negocio definidas en el modelo del
proceso de negocio.
• Un PIM que defina el modelo conceptual completo con todas sus relaciones.
• Uno o varios PSM para generar componentes de ejecución y pruebas del
sistema.
La idea básica de MDA, más allá de los modelos CIM/PIM/PSM, es utilizar los dos
conceptos clave: Modelo y Transformación. El primer paso es construir un modelo
conceptual (PIM) expresado en UML, el cual será transformado hacia varios PSM.
Las figuras 2 a 6 muestran el ejemplo de cómo un PIM se transforma en varios
PSM, uno para el modelo de datos, otro para las interfaces distribuidas y otro para
las clases de implementación. Estas transformaciones de un PIM en varios PSM
pueden realizarse las veces que se requiera. Si se hacen cambios al modelo
conceptual se pueden regenerar los PSM automáticamente. En el sitio web de
MDA (www.omg.org/mda) se puede encontrar una lista de
herramientas capaces de realizar estas transformaciones.
Ejemplo 2
Pensando en la Transición
Figura 6. Modelo C#
LENGUAJES DESCRIPTORES DE PRINCIPALES CARACTERÍSTICAS
ARQUI TECTURA Y APLICACIONES
D a r w i n Lenguaje de descripción de
arquitecturas basado en XML
Desarrollado por el institute for
Software Research (Universidad de
California)
Principales elementos (componente,
conector, interfaces y
configuraciones)
Fácilmente extensible (módulos)
Diferencia dos tipos de elementos:
Instancias arquitecturales (Ejecución)
ADLS