MDA, MDA en Java, Metodologías de Booch y de Rumbaugh (OMT)
Por Carlos López, Ernesto Rodríguez y Jeffry Turcios Turcios Objetos y Abstracción Abstracción de Datos
UNIVERSIDAD DEL VALLE DE GUATEMALA Facultad de Ingeniería Febrero del 2009 1
ÍNDICE Cápitulos
Página
I. INTRODUCCIÓN INTRODUCCIÓN ........... ................. ........... ........... ............ .......... ....
3
II. MDA ......................................................... II.1 Qué es y cómo surge?.................. II.2 Cómo funciona?............................ II.3 Para qué sirve?.............................. sirve?.............................. II.4 Quiénes la soportan?....................
4 4 4 5 5
III. MDA en JAV JAVA......................................... III.1. Introducción a MDA en Java........ III.2. Estructura de una aplicación....... III.3. Desarrollo de aplicaciones Java..
6 6 6 7
IV. Metodología Metodología de Booch............................ IV.1. Qué es y como funcióna............... IV.2. IV.2. Cómo funciona.............................. IV.3. Qué soporte tiene?........................
8 8 8 8
V. Metodología de Rumbaugh (Object Modeling Technique, echnique, OMT)........................................... V.1. Cómo C ómo y cuándo surgió?................. V.2. Qué es y para qué sirve?................ V.3. Cómo funciona?.............................. V.4. Quiénes lo soportan?......................
9 9 9 10
VI. LICENCIA.................................................. VII. CONCLUSIONES....................... CO NCLUSIONES..................................... .............. VIII. ANEXOS.... ANEXOS......... ........... ............ ............ ............ ........... ........ ............ ......... IX. BIBLIOG BIBLIOGRAFÍ RAFÍA.. A..... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
`11 `11 11 12 16
2
I.
INTRODUCCIÓN
Ésta investigación trata acerca de cuatro temas en general • MDA, Model Driven Architecture • MDA en JAVA, como se aplica MDA en Java (Lenguaje de programación) • Metodología de Booch • Metodología de Raumburgh (OMT, Object Modeling Technique). Todos están relacionados con el campo de desarrollo de software. Las metodologías que se cubrirán han sido sólo alguna de las bases y los primeros intentos que se hicieron de un proceso para desarrollar software. Actualmente, éstas metodologías ya no se usan mucho, a pesar de esto, han contribuído considerablemente a los métodos, técnicas y arquitecturas que se usan hoy en día.
3
II.
MDA
II.1. Qué es y cómo surge? Model Driven Architecture o MDA, es una herramienta y una arquitectura de las Tecnologías de Información perteneciente a el Object Management Group G roup (OMG), creado 1 en 1989 por 11 11 compañias líderes líderes en éste campo. En 1996, OMG decide adoptar la modelación con el objetivo de de ampliar su campo de aplicación, un año más tarde, adoptaría dos estándares que serían vitales para MDA: el Unified Model Language (UML) y Metamodel Object Facilities (MOF); más adelante adoptaría CWM (Common Warehouse Metalmodel) y XMI (XML ( XML Meta Metadata data Interchange) para completar la base de lo que es MDA.2 El objetivo principal de MDA es el de unificar e implementar modelos en un ambiente que maximice el retorno de las las inversiones que se hacen en tecnologías de información integrando cada aspecto de éstas: desde el modelamiento en el funcionamiento de tecnologeias independientes, desarrollo e integración en cada plataforma hasta el despliegue y el mantenimiento.3 MDA permite la creación de aplicaciones portables e interoperables desde sistemas incrustados, de escritorio, mainframes, servidores y sistemas en la internet.4 La base del 99% de los proyectos que son desarrollados con MDA, es UML, a pesar de esto, el estándar que es formalmente requerido para que una arquitectura arquitectur a pueda hacerse llamar MDA, es MOF. MOF es un meta-modelo5 que permite que la estructura y el comportamiento de los demas estándares involucrados en MDA sean transmitidos vía XMI, almacenados en repositorios MOF-compatibles, transformados y manipulados por herramientas MOF y generadores de código. 5 MDA significa una especificación de un sistema de Tecnologías Tecnologías de Información que separa la especificación de la funcionalidad funcionalida d de un sistema de la especificación de la implementación de ésta funcionalidad en una plataforma específica.6
II.2. Cómo funciona? El primer modelo es hecho por un analista de negocios, en donde éste no tendrá ninguna relacion computacional, se describe el sistema en base a sus requerimientos. Los demás modelos son derivados de éste a travez t ravez de capas de abstracción como es mostrado en la 7 Figura 1.
4
Figura 1: Capas de abstracción en MDA
II.3. Para qué sirve? Las herramientas estandarizadas MDA MD A consiguen • Automatizar la transformación del diseño de modelo de negocio a la implementación de éste, produciendo nuevas aplicaciones mejores, más baratas y más rápidas. • Asegurar requerimientos no sólo en la implementación final del modelo si no también, escabilidad y seguridad. • Obtener código optimizado para procesos determinados, el desarrollo a partir de las librerías ha sido diseñado por algunos de los mejores desarrolladores de la industria, es por eso que el código generado por herramientas MDA, es de lo mejor que se puede obtener. • Aplicaciones son interoperables y portables, diseñadas para múltiples plataformas
II.4. Quiénes la soportan? MDA es respaldado por OMG, una organización fundada por líderes en Tecnologías Tecnologías de Información, entre ellas se encuentran: SuPackard, American Airlines entre otras.8
5
III.
MDA en Java
III.1 Introducción Existen varios programas que generan código Java mediante esta tecnología En este documento se utilizara Andromda como referencia aunque todos los programas deberían lograr lo mismo. Andromda puede utilizar UML 1.4/XMI o UML 2/EMF. 2/EMF. Andromda puede utilizar varias bases de datos. El código generado es de JavaEE (AndroMDA, 2009).
III.2 Estructura de una aplicación Antes de entrar a los pasos específicos de Java entraremos al diseño de una aplicación. Una aplicación esta compuesta de varios componentes. Los componentes con funciones similares se agrupan en capas y las capas se organizan en stacks donde una capa de un nivel superior utiliza los servicios de una capa de nivel inferior. Esa aplicaciones empresariales generalmente se dividen en estas cuatro capas: • Capa de presentación: Contiene todos los componentes necesarios para interactuar con una aplicación. Pueden ser páginas web, formatos, ect. Andromda permite crear interfaces con Struts S truts y JSF. JSF. Utiliza un diagrama de actividad para generar los componentes de la página web que se comunican con el sistema. • Business Layer: Contiene toda la funcionalidad y lógica de una aplicación. Generalmente contiene una interfaz para acceder a los servicios con mayor facilidad. Andromda se encarga de crear servicios para acceder información y comunicarse con la capa de presentación. También También provee métodos vacíos donde va la programación que corresponde a la lógica del sistema. Tiene interfaces que permiten acceder y • Cada de Acceso de información: Tiene manipular información fácilmente. Andromda utiliza una herramienta de mapeo llamada Hibernate que crea objetos para acceder información. Estos objetos se convierten de registros de una base de datos a objetos y viceversa. • Capa de almacenamiento: Contiene toda la información que se desea almacenar. Hibernate puede crear objetos de diversas bases de datos. La capa de presentación y el business layer pueden comunicarse de dos maneras. La primera es permitirle a la capa de presentación acceso completo y la otra es comunicarse a través de objetos con propiedades. La primera forma es mas fácil implementar y la segunda ofrece mayor seguridad y funciona fu nciona cuando las capas están dispersas en varios sistemas. Para mayor información consultar la bibliografia (AndroMDA, 2009).
6
III.3 Desarrollo de Aplicaciones Java Andromda utiliza los siguientes componentes para crear aplicaciones java: • Java Development Kit • Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construcción, documentación y reportaje. Maven utiliza el concepto POM (Project Object Model) que es un archivo XML que indica las dependencias del proyecto y las propiedades del ambiente donde se esta desarrollando desarrollando el proyecto de manera que le permite a Maven construir, instalar y eliminar el proyecto. Maven se encarga de recuperar todas las dependencias del proyecto (Maven, 2009). • Jboss en un servidor de aplicaciones. Un servidor de aplicaciones es la parte que se encarga del funcionamiento del sistema. JBoss se encarga de servicios como la organización y persistencia de la información (TechTarget, 2009). Luego de alimentar a Andromda con un diagrama UML siguiendo las instrucciones de la pagina web de Andromda que se encuentra en la bibliografia. Este genera el código Java necesario para que los objetos interactuen de la forma que indica el diagrama. Si los objetos interactuan con bases de datos, Andromda se encarga de generar el código necesario para recuperar y guardar archivos en la base de datos. Luego de generar las clases necesarias, Andromda Andromda separa el código en dos partes. El código generado por Andromda y el código generado por el usuario. Cuando a Andromda se le indica que una clase tendrá código a la medida, Andromda Andromda crea dos clases. Una clase estática donde esta todo el código generado por Andromda. Esta clase es sobrescrita cada vez que se genera código. Por eso no se debe agregar código manual en esa clase. Luego crea clases no estáticas que son la implementación de las clases creadas por Andromda. El código manual se escribe en estas clases (AndroMDA, 2009). Andromda se encarga de generar el código necesario para que los objetos interactuen como lo indica el diagrama UML. El código agregado manualmente corresponde a la lógica y el funcionamiento fu ncionamiento del sistema que se esta implementando. Andromda se encarga de convertir la información automáticamente. Pero hay casos en los que la conversión automática no satisface las necesidades del sistema y se debe sobrescribir manualmente. Andromda se encarga de crear los componentes necesarios para que la capa de presentación interactue con el sistema utilizando como referencia un diagrama de actividad. Al programador le corresponde crear la interfaz que el usuario observara (AndroMDA, 2009).91011
7
IV.
Metodología de Booch
IV.1 Qué es y cómo surge? La metodología de Booch o el diseño orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML). Provee una forma de desarrollar análisis y diseño de un sistema orientado a objetos. Fue desarrollada por Grady Booch mientras trabajaba en Rational Software, que es parte de IBM desde el 2003. 12 La metodología de Booch es secuencial en el sentido que la fase de análisis es completada y posteriormente la fase de diseño también. Es cíclica en el sentido que cada fase está compuesta de pasos cíclicos más pequeños. La metodología de Booch se enfoca en el análisis y el diseño y no en la implementación o la prueba del resultado de estos.13 Define seis tipos de diagramas: clase, objeto, estado de transición, interacción, modulo y proceso.
IV.2. Cómo funciona? La fase de análisis se divide en pasos. 1. Establecer los requerimientos requerimientos desde una perspectiva perspectiva del consumidor consumidor o usuario, éste paso genera una descripción de alto nivel del funcionamiento y de la estructura del sistema. 2. Análisis Análisis de dominio dominio,, aquí se definen las clases, sus atributos, la herencia de clases y métodos de éstas. Los diagramas de los objetos son realizados posteriormente. 3. Éste paso completa la fase del del análisis con la validación hasta hasta que la consistencia se alcance. Después de haber desarrollado la fase de análisis, se procede a la fase de diseño. La fase de diseño también es iterativa. Un diseño lógico es mapeado físicamente en donde los detalles de la ejecución, procesos, rendimiento, tipo de datos, estructura de datos, visibilidad y distribución son establecidos. Se crea un prototipo y se prueba. éste proceso consiste en la iteración a travez de el diseño lógico, el diseño físico, prototipo y la prueba
IV.3. IV.3. Qué Q ué soporte tiene? Actualmente, la metodología de Booch fue prácticamente suplantada por UML, también propuesta por Grady Booch y otras dos personas. A pesar de esto, ha contribuído y se ha utilizado en otras metodologías que se usan actualmente como la RUP (Rational Unified Process). 8
V. Metodo todolo logí gíaa de de Ru Rumbau mbaug gh (Ob (Obje ject ct Modeling Technique, OMT) V.1. ¿Cómo y cuándo surgió? En 1991 James Rumbaugh, quien es un metodólogo de la programación orientada a objetos, mientras trabajaba en General Electric Research & Development (GE R&D) desarrolló junto a Mike Blaha, Bill Premerlani, Fred Eddy Eddy y Bill Lorensen Lorensen una técnica llamada OMT (Object Modeling Modeling Techinque)3. Esta técnica no solo funciona para programación, ya que también se ha usado para problemas de la vida real 1. Esta metodología fue uno de los atributos de James Rumbaugh para la creación de UML (Unified Modeling Language).
V.2. ¿Qué es y para qué sirve? Este metodología, la cual es predecesora de UML, ayuda en el desarrollo de procesos orientado orientadoss a objetos ya que sirve para definir un sistema a través t ravés de tres modelos: modelo de objetos (object model), modelo dinámico (dynamic model) y modelo funcional (funtional model).
Modelo de Objetos Es el más importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relación entre las clases, sus atributos y operaciones (métodos). Este modelo es representado gráficamente por un diagrama de clases. 14 Modelo Dinámico Este modelo describe la dinámica entre los objetos y sus cambios de estado a través del tiempo. Los cambios de estado son dados por eventos de un objeto que afectan a otro objeto al interactuar. 14 Este modelo es representado por diagramas que describen escenarios, en estos escenarios se presentan los objetos y la secuencia de eventos de estos objetos que ocurren en un tiempo preciso. 15 Gráficamente se representan por diagramas de estado (state charts).1416
Modelo Funcional Este modelo es un diagrama que muestra las transformaciones que sufre la información que maneja del sistema. En otras palabras describe lo que el sistema hace, sin embargo no describe como lo hace. Este modelo es representado gráficamente con un data flow diagram (DFD), que muestra el flujo de los valores. Este flujo ser refiere a lo que puede pasar con la información (valores) como por ejemplo: el ingreso de valores, operaciones entre valores, guardar valores, valores, o salida de valores. valores. 15
9
V.3. ¿Cómo funciona? Para desarrollar un proceso OMT se necesitan seguir los siguientes pasos: • Análisis • Diseño del Sistema • Diseño de Objetos • Implementación El modelaje OMT se hace únicamente en el primer paso y después solo sirve de apoyo para los demás pasos. Análisis 14 En este paso se debe de saber la descripción del problema y el dominio del problema, teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a: • Identificar los objetos • Descartar clases innecesarias o incorrectas • Identificar asociaciones entre objetos clases • Descartar asociaciones innecesarias o incorrectas • Identificar atributos de los objetos • Descartar atributos innecesarios o incorrectos • Usar herencia para compartir estructuras comunes entre objetos Ya que se tiene t iene el modelo de objetos se procede a elaborar el modelo dinámico, para esto se necesita: • Identificar casos de uso y preparar escenarios. • Identificar los eventos entre objetos, estos son las operaciones que se describen en el diagrama de modelo de objetos. • Preparar un flujo de eventos para el sistema • Elaborar diagramas de estado para las clase. Después se procede a elaborar el modelo funcional, para esto se deben seguir los siguientes pasos: • Identificar ingresos de valores y salidas de valores. • Describir que es lo que hace cada función (evento)
V. 4. ¿Quiénes lo soportan?
Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML.
10
VI.
LICENCIA MDA, MDA en Java, Metodología de Booch por Carlos C arlos López, Ernesto Rodríguez y Jeffry Turcios está registrado bajo la licencia li cencia Creative Commons Attribution 3.0 Guatemala License.
VII.
CONCLUSIONES
• La tecnologia MDA facilita programar la interacción que hay entre objetos aunque no puede programar la logica y funcionamiento del programa. • MDA puede hacer la programacion más eficiente ya que el programador no se tiene que preocupar de programar la interacción i nteracción entre objetos y otros componentes como base de datos. • El código que se genera con herramientas MDA Model Driven Architecture es de el código más optimizado que puede obtenerse en la industria. • MDA Model Driven Architecture está siendo desarrollada por empresas líderes en la industria de Tecnologías Tecnologías de la información y son los más interesados en seguirla mejorando. u no de los primeros intentos • La metodología de Booch, sirvió en su tiempo, ya que fue uno por modelar un sistema a travez de un proceso. Éste contribuyo mucho a lo que ahora es UML.
11
VIII.
ANEXOS
VII.1. Notaciones Básicas de OMT Modelo de Objetos Clase:
Asosiación:
Agregación:
Modelo:
Herencia:
12
Modelo Dinámico Evento:
Evento con atributo:
Estado inicial y final:
Mandar un objeto a otro objeto:
Modelo funcional Proceso:
Flujo de información entre procesos:
13
Guardar Información:
Control de flujo:
Ingresar a información guardada:
Actualizar informcaión guardada:
Composición de valores:
Duplicación de valores:
Descomposición de valores:
14
VII.2. Diagramas de la metodología de Booch
Adornos en las clases: Se usan para proveer más información de la clase
15
16
IX.
BIBLIOGRAFÍA
1 About
the Object Management Group™ (OMG™), Página web de OMG™, http://www.omg.org/ gettingstarted/gettingstartedindex.htm
MDA Frequently Asked Questions, Página web de OMG™, Can you tell me something about the history of the MDA?, http://www.omg.org/mda/faq_mda.htm 2
Jon Siegel, Vicepresidente de tecnologías de transferencia, transferencia, SD Times, Times, 15 de Octubre del 2002, OMG's Model Driven Architecture, http://www http://www.sdtimes.com/content/article.aspx?ArticleI .sdtimes.com/content/article.aspx?ArticleID=26807 D=26807
3
MDA Frequently Asked Asked Questions, Página web de OMG™, OMG™, What is the role of UML and MOF in the MDA?, http://www.omg.org/mda/faq_mda.htm
4
5
Metamodeling, Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/Meta_ http://en.wikipedia.org/wiki/Meta_model model
OMG’s approach validation in MASTER IST Project, Master Overview, http:/modeldrivenarchitecture.esi.es/ mda_overview.html
6
Mahesh H. Donani, IBM Software, U.S.A. A picture is Worth a 1000 Words?, http://www.jot.fm/issues/ issue_2006_03/column4/
7
8
MDA Vendor Vendor Directory Listing, Página web de OMG™, http://m http://mda-directory.omg.org/vendor/list.htm da-directory.omg.org/vendor/list.htm
9 AndroMDA.org,
2009, Getting Started Java, Recuperado el 25 de Febrero Febrero del 2009 de Joomialis Free Software, URL: http://galaxy http://galaxy.andromda.org/index.php? .andromda.org/index.php?option=com_content& option=com_content&task%20=category&sec task%20=category§ionid tionid %20=11&id=42&Itemid=89 Maven. 2009. Introduction to POM. Recuperado el 25 de feberero del 2009 de Apache Software Foundation. URL: http://maven.apache.org/guides/introduction/introduction-to-the-pom.html 10
TechTarget. 2009. 2009. Application Server. Recuperado el 25 de febrero del 2009 de TechT TechTarget. arget. URL:http:/ URL: http:/ / / searchsqlserver.techtarget.com/sDefinition/0,,si searchsqlserver .techtarget.com/sDefinition/0,,sid87_gci211584,00.htm d87_gci211584,00.htmll
11
IBM, 2003, IBM Rational Software joins IBM traning portfolio, portfolio, http://download.boulder.ibm.com/ibm http://download.boulder.ibm.com/ibmdl/pub/ dl/pub/ software/dw/rationaledge/aug03/t_trainingportfolio.pdf
12
Ronald LeRoi Burback, Stanford University, 1998, The Booch Methodology, http://infolab.stanford.ed http://infolab.stanford.edu/ u/ ~burback/watersluice/node55.html
13
W. Schaufelberger, Schaufelberger, D. Keller and F. Kraus. Computermethoden der Automatisierungstechn Automatisierungstechnik. ik. (1998). (1998 ). Object-Oriented Software Development Using Object Modeling Technique Technique (OMT). URL: http:// publications.ksu.edu.sa/Conferences/Systems%20Analysis%20Seminar/Article8.pdf publications.ksu.edu.sa/Conferences/Systems%20 Analysis%20Seminar/Article8.pdf
14
Debra j. Richardson. University of California. California. Information and computer Schience 125: Project in Software System Development. Object Modeling Modeling Technique. Technique. URL: http://www http://www.ics.uci.edu/~djr/ics125/OMT .ics.uci.edu/~djr/ics125/OMT.html .html
15
James Rumbaugh, InformIT. InformIT. URL: http://www.informit.com/authors/bio.aspx? a=D3DD9437-09E2-448F-9EE3-6AAD01752522
16
17