Sie sind auf Seite 1von 17

MDA, MDA en Java, Metodologías de Booch y de

Rumbaugh (OMT)

Por Carlos López, Ernesto Rodríguez y Jeffry Turcios


Objetos y 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 ...................................... 3

II. MDA ......................................................... 4


II.1 Qué es y cómo surge?.................. 4
II.2 Cómo funciona?............................ 4
II.3 Para qué sirve?.............................. 5
II.4 Quiénes la soportan?.................... 5

III. MDA en JAVA......................................... 6


III.1. Introducción a MDA en Java........ 6
III.2. Estructura de una aplicación....... 6
III.3. Desarrollo de aplicaciones Java.. 7

IV. Metodología de Booch............................ 8


IV.1. Qué es y como funcióna............... 8
IV.2. Cómo funciona.............................. 8
IV.3. Qué soporte tiene?........................ 8

V. Metodología de Rumbaugh (Object Modeling


Technique, OMT)........................................... 9
V.1. Cómo y cuándo surgió?................. 9
V.2. Qué es y para qué sirve?................ 9
V.3. Cómo funciona?.............................. 10
V.4. Quiénes lo soportan?......................

VI. LICENCIA.................................................. `11


VII. CONCLUSIONES..................................... 11
VIII. ANEXOS......................................... ......... 12
IX. BIBLIOGRAFÍA....................................... 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 (OMG), creado
en 1989 por 11 compañias líderes en éste campo.1

En 1996, OMG decide adoptar la modelación con el objetivo 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 Metadata 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 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 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 de Información que


separa la especificación de la funcionalidad 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 de capas de abstracción como es mostrado en la
Figura 1.7

4
Figura 1: Capas de abstracción en MDA

II.3. Para qué sirve?


Las herramientas estandarizadas MDA 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 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. 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 y 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 provee métodos vacíos donde
va la programación que corresponde a la lógica del sistema.

• Cada de Acceso de información: Tiene interfaces que permiten acceder y


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 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 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 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 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 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).910 11

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 desde una perspectiva del consumidor o usuario,


éste paso genera una descripción de alto nivel del funcionamiento y de la
estructura del sistema.
2. Análisis de 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 análisis con la validación 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. Qué 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. Metodología de Rumbaugh (Object
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 y Bill Lorensen una técnica
llamada OMT (Object 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
orientados a objetos ya que sirve para definir un sistema a travé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, o salida de 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 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 López, Ernesto
Rodríguez y Jeffry Turcios está registrado bajo la licencia 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 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 de la información y son los más interesados en seguirla
mejorando.
• La metodología de Booch, sirvió en su tiempo, ya que fue uno de los primeros intentos
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
1About the Object Management Group™ (OMG™), Página web de OMG™, http://www.omg.org/
gettingstarted/gettingstartedindex.htm
2 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
3Jon Siegel, Vicepresidente de tecnologías de transferencia, SD Times, 15 de Octubre del 2002, OMG's
Model Driven Architecture, http://www.sdtimes.com/content/article.aspx?ArticleID=26807
4MDA Frequently Asked Questions, Página web de OMG™, What is the role of UML and MOF in the MDA?,
http://www.omg.org/mda/faq_mda.htm
5 Metamodeling, Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/Meta_model
6OMG’s approach validation in MASTER IST Project, Master Overview, http:/modeldrivenarchitecture.esi.es/
mda_overview.html
7 Mahesh H. Donani, IBM Software, U.S.A. A picture is Worth a 1000 Words?, http://www.jot.fm/issues/
issue_2006_03/column4/
8 MDA Vendor Directory Listing, Página web de OMG™, http://mda-directory.omg.org/vendor/list.htm
9AndroMDA.org, 2009, Getting Started Java, Recuperado el 25 de Febrero del 2009 de Joomialis Free
Software, URL: http://galaxy.andromda.org/index.php?option=com_content&task%20=category&sectionid
%20=11&id=42&Itemid=89
10Maven. 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
11TechTarget. 2009. Application Server. Recuperado el 25 de febrero del 2009 de TechTarget. URL: http://
searchsqlserver.techtarget.com/sDefinition/0,,sid87_gci211584,00.html
12IBM, 2003, IBM Rational Software joins IBM traning portfolio, http://download.boulder.ibm.com/ibmdl/pub/
software/dw/rationaledge/aug03/t_trainingportfolio.pdf
13Ronald LeRoi Burback, Stanford University, 1998, The Booch Methodology, http://infolab.stanford.edu/
~burback/watersluice/node55.html
14W. Schaufelberger, D. Keller and F. Kraus. Computermethoden der Automatisierungstechnik. (1998).
Object-Oriented Software Development Using Object Modeling Technique (OMT). URL: http://
publications.ksu.edu.sa/Conferences/Systems%20Analysis%20Seminar/Article8.pdf
15Debra j. Richardson. University of California. Information and computer Schience 125: Project in Software
System Development. Object Modeling Technique. URL: http://www.ics.uci.edu/~djr/ics125/OMT.html
16James Rumbaugh, InformIT. URL: http://www.informit.com/authors/bio.aspx?
a=D3DD9437-09E2-448F-9EE3-6AAD01752522

17

Das könnte Ihnen auch gefallen