Como Desarrollar SW Distribuido de
Calidad
¿Como podemos desarrollar software de calidad para sistemas
distribuidos?
¿Cómo pueden interoperar diferentes tecnologías en un mismo
sistema?
Necesidad de cambiar de tecnología cada 20 años. ¿Qué
hacemos con los sistemas antiguos?

Evolución de la programación






La programación ha evolucionado.
Hemos pasado de lenguajes de bajo nivel como C, pasando por
FORTRAN hasta llegar a C++ o Java.
Antes se dedicaba un 20% del tiempo a desarrollar, un 60% a
programar y un 20% a las pruebas.
Ahora se emplea un 60% del tiempo al desarrollo, un 20% a la
programación y otro 20% a las pruebas.
Ahora la mayor parte del peso de un proyecto recae en el
trabajo previo a la programación.
Para la realización de un proyecto de calidad, hay que partir de
unas buenas especificaciones.
Una solución: MDA


MDA es una forma de modelar SW
distribuido.
La especificación completa de
MDA consta de:



Modelo independiente de la
plataforma (PIM) basado en UML.
Varios modelos específicos de la
plataforma (PSM)
Descripciones de cómo pasar de PIM a
un PSM.
Una solución: MDA

Una aplicación desarrollada con la ayuda
de MDA consta de:


Un modelo independiente de la plataforma
(PIM).
Una o varias implementaciones concretas
(PSMs), una por cada aplicación que se
quiera soportar.
Pero, ¿qué es MDA?






MDA son las siglas de Model Driven Architecture (Arquitectura de
conducción del modelado).
Ha sido desarrollado por el OMG.
Esta basado en el modelado con UML.
MDA nos permite unir diferentes implementaciones mediante puentes.
MDA nos permite construir aplicaciones independientemente de la
plataforma (PIM).
Nos permite controlar el ciclo de vida completo del software:






Análisis
Diseño
Implementación
Desarrollo
Mantenimiento
Hay otras plataformas para desarrollar Sistemas Distribuidos, como .NET,
pero estas son individuales.
El OMG

El OMG está formado por un consorcio de empresas, entre las
que se encuentran:








Algunos de los logros más importantes del OMG han sido:




Compaq
Ericsson
Fujitsu
Microsoft
NASA
Sun
Oracle
CORBA (Common Object Request Broken Architecture)
UML (Unified Modeling Language)
XML (Metadata Interchange)
Desde 1989, el OMG ha trabajado desarrollando una
arquitectura para el diseño de aplicaciones distribuidas. Como
resultado tenemos el MDA.
Relación entre UML y MDA

Breve historia de UML:







UML es una metodología para el desarrollo de SW OO.
UML es el sucesor de las diferentes notaciones OO de los años 90.
OMG desarrolló UML entre el 96 y el 97.
Los modelos UML se pueden implementar en cualquier plataforma, pero la
gran proliferación de middleware, recomienda la utilización de un
modelado UML independiente de la plataforma.
MDA está basado en el modelado UML independiente de la plataforma
(PIM).
Además MDA tiene varios modelos específicos (PSM)
La fuerza de MDA está en que todas las aplicaciones desarrolladas con
MDA, están basada en un modelado UML, que es un estándar reconocido.
Diseño con MDA (I)

Platform Independent
Model


Primero se crea un modelo
independiente de la plataforma
(PIM).
Representará el modelo de
negocio, la funcionalidad y el
comportamiento del sistema.
No tendremos la complicación
añadida de pensar en una
plataforma concreta.
Diseño con MDA (II)

Platform Independent
Model

Corba
Model
Java
Model
XML/SOAP
Model

Con MDA podemos aplicar un
mapping para generar un
modelo dependiente de la
plataforma (PSM) a partir del
PIM.
Se puede mapear el PIM a
diferentes tecnologías gracias al
mapping estándar del OMG.
A las futuras tecnologías se les
podrá dar también soporte.
Diseño con MDA (III)

Platform Independent
Model
Corba
Model
Java
Model
XML/SOAP
Model
Corba
System
Java
System
XML/SOAP
System
También se podrá generar
código de forma automática.
Diseño con MDA (IV)

Platform Independent
Model

Corba
Model
Java
Model
Corba
System
Java
System
Bridge


La interoperabilidad entre
diferentes tecnologías es un
punto crucial.
La generación de puentes se
simplifica con el PIM.
Las herramientas MDA generan
puentes de forma automática
uniendo las diferentes
implementaciones.
Se consigue una simplificación
substancial en la creación de
aplicaciones integradas.
Ciclo de Desarrollo
PIM (Platform
Independent Model)

Platform
Specific Models
Build/Test
A la hora de diseñar un sistema distribuido, comenzaremos
con un modelo independiente de la plataforma. Nuestro
sistema podrá adaptarse a las nuevas tecnologías, ya que en
su base es independiente de estas.
Servicios disponibles en MDA




Para el desarrollo de sistemas distribuidos se precisa de un
conjunto de servicios, como los que ofrece CORBA.
En MDA, a estos servicios se los conoce como Pervasive
Services (Servicios Extendidos).
Independientemente de la plataforma utilizada, se dará servicio
a toda aplicación o cliente, gracias a los puentes que
automáticamente genera MDA.
OMG define cuatro Servicios:




Servicios de Directorio.
Servicios de Transacción.
Servicios de Seguridad.
Servicios de Notificación.
Beneficios de usar MDA







Soporte completo para el ciclo de vida de la aplicación
Reducción de costos desde el principio hasta el fin
Reutilización de código, aplicaciones, experiencia
Representación independiente de la tecnología
Escalabilidad y robustez
Está predestinado a ser un estándar
Interoperatividad entre diferentes tecnologías
Futuro del MDA

Según Paul Harmon:
 Se incluirá MDA dentro de los paquetes para el modelado
OO y herramientas de desarrollo.
 Transcurrirán unos dos años antes de que emerja de forma
natural las herramientas MDA.
 Es muy posible que el mercado de MDA crezca de forma
rápida, gracias a todo lo que tiene detrás: UML, MOF,
CWM
 Casi todas las herramientas de modelado UML se
desarrollaron en 3 años.
Descargar

MDA (Model Driven Architecture)