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