MDA MDA en Java Metodologiacuteas de Booch y de Rumbaugh (OMT)
Por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry TurciosObjetos y Abstraccioacuten de Datos
UNIVERSIDAD DEL VALLE DE GUATEMALAFacultad de Ingenieriacutea
Febrero del 2009
1
IacuteNDICECaacutepitulos13 13 13 13 13 13 13 13 13 Paacutegina
I INTRODUCCIOacuteN 1313 3
II MDA 413 II1 Queacute es y coacutemo surge 13 413 II2 Coacutemo funciona 13 413 II3 Para queacute sirve1313 513 II4 Quieacutenes la soportan 13 13 5
III MDA en JAVA 613 III1 Introduccioacuten a MDA en Java 6 13 III2 Estructura de una aplicacioacuten 13 13 613 III3 Desarrollo de aplicaciones Java 13 7
IV Metodologiacutea de Booch 8 13 IV1 Queacute es y como funcioacutena 13 813 IV2 Coacutemo funciona 13 813 IV3 Queacute soporte tiene13 13 8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT) 13 913 V1 Coacutemo y cuaacutendo surgioacute13 13 913 V2 Queacute es y para queacute sirve13 13 913 V3 Coacutemo funciona 13 1013 V4 Quieacutenes lo soportan
VI LICENCIA 13 `11VII CONCLUSIONES 13 13 11VIII ANEXOS13 12IX BIBLIOGRAFIacuteA 16
2
I INTRODUCCIOacuteN
Eacutesta investigacioacuten trata acerca de cuatro temas en generalbull MDA Model Driven Architecturebull MDA en JAVA como se aplica MDA en Java (Lenguaje de programacioacuten)bull Metodologiacutea de Boochbull Metodologiacutea de Raumburgh (OMT Object Modeling Technique)
Todos estaacuten relacionados con el campo de desarrollo de software Las metodologiacuteas que se cubriraacuten han sido soacutelo alguna de las bases y los primeros intentos que se hicieron de un proceso para desarrollar software Actualmente eacutestas metodologiacuteas ya no se usan mucho a pesar de esto han contribuiacutedo considerablemente a los meacutetodos teacutecnicas y arquitecturas que se usan hoy en diacutea
3
II MDA
II1 Queacute es y coacutemo surgeModel Driven Architecture o MDA es una herramienta y una arquitectura de las Tecnologiacuteas de Informacioacuten perteneciente a el Object Management Group (OMG) creado en 1989 por 11 compantildeias liacutederes en eacuteste campo1
En 1996 OMG decide adoptar la modelacioacuten con el objetivo de ampliar su campo de aplicacioacuten un antildeo maacutes tarde adoptariacutea dos estaacutendares que seriacutean vitales para MDA el Unified Model Language (UML) y Metamodel Object Facilities (MOF) maacutes adelante adoptariacutea CWM (Common Warehouse Metalmodel) y XMI (XML Metadata Interchange) para completar la base de lo que es MDA2
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 tecnologiacuteas de informacioacuten integrando cada aspecto de eacutestas desde el modelamiento en el funcionamiento de tecnologeias independientes desarrollo e integracioacuten en cada plataforma hasta el despliegue y el mantenimiento3
MDA permite la creacioacuten de aplicaciones portables e interoperables desde sistemas incrustados de escritorio mainframes servidores y sistemas en la internet4
La base del 99 de los proyectos que son desarrollados con MDA es UML a pesar de esto el estaacutendar 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 estaacutendares involucrados en MDA sean transmitidos viacutea XMI almacenados en repositorios MOF-compatibles transformados y manipulados por herramientas MOF y generadores de coacutedigo5
MDA significa una especificacioacuten de un sistema de Tecnologiacuteas de Informacioacuten que separa la especificacioacuten de la funcionalidad de un sistema de la especificacioacuten de la implementacioacuten de eacutesta funcionalidad en una plataforma especiacutefica6
II2 Coacutemo funciona El primer modelo es hecho por un analista de negocios en donde eacuteste no tendraacute ninguna relacion computacional se describe el sistema en base a sus requerimientos Los demaacutes modelos son derivados de eacuteste a travez de capas de abstraccioacuten como es mostrado en la Figura 17
4
Figura 1 Capas de abstraccioacuten en MDA
II3 Para queacute sirveLas herramientas estandarizadas MDA consiguen
bull Automatizar la transformacioacuten del disentildeo de modelo de negocio a la implementacioacuten de eacuteste produciendo nuevas aplicaciones mejores maacutes baratas y maacutes raacutepidas
bull Asegurar requerimientos no soacutelo en la implementacioacuten final del modelo si no tambieacuten escabilidad y seguridad
bull Obtener coacutedigo optimizado para procesos determinados el desarrollo a partir de las libreriacuteas ha sido disentildeado por algunos de los mejores desarrolladores de la industria es por eso que el coacutedigo generado por herramientas MDA es de lo mejor que se puede obtener
bull Aplicaciones son interoperables y portables disentildeadas para muacuteltiples plataformas
II4 Quieacutenes la soportanMDA es respaldado por OMG una organizacioacuten fundada por liacutederes en Tecnologiacuteas de Informacioacuten entre ellas se encuentran SuPackard American Airlines entre otras8
5
III MDA en JavaIII1 IntroduccioacutenExisten varios programas que generan coacutedigo Java mediante esta tecnologiacutea En este documento se utilizara Andromda como referencia aunque todos los programas deberiacutean lograr lo mismo Andromda puede utilizar UML 14XMI o UML 2EMF Andromda puede utilizar varias bases de datos El coacutedigo generado es de JavaEE (AndroMDA 2009)
III2 Estructura de una aplicacioacutenAntes de entrar a los pasos especiacuteficos de Java entraremos al disentildeo de una aplicacioacuten Una aplicacioacuten 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
bull Capa de presentacioacuten Contiene todos los componentes necesarios para interactuar con una aplicacioacuten Pueden ser paacuteginas web formatos ect Andromda permite crear interfaces con Struts y JSF Utiliza un diagrama de actividad para generar los componentes de la paacutegina web que se comunican con el sistema
bull Business Layer Contiene toda la funcionalidad y loacutegica de una aplicacioacuten Generalmente contiene una interfaz para acceder a los servicios con mayor facilidad Andromda se encarga de crear servicios para acceder informacioacuten y comunicarse con la capa de presentacioacuten Tambieacuten provee meacutetodos vaciacuteos donde va la programacioacuten que corresponde a la loacutegica del sistema
bull Cada de Acceso de informacioacuten Tiene interfaces que permiten acceder y manipular informacioacuten faacutecilmente Andromda utiliza una herramienta de mapeo llamada Hibernate que crea objetos para acceder informacioacuten Estos objetos se convierten de registros de una base de datos a objetos y viceversa
bull Capa de almacenamiento Contiene toda la informacioacuten que se desea almacenar Hibernate puede crear objetos de diversas bases de datos
La capa de presentacioacuten y el business layer pueden comunicarse de dos maneras La primera es permitirle a la capa de presentacioacuten acceso completo y la otra es comunicarse a traveacutes de objetos con propiedades La primera forma es mas faacutecil implementar y la segunda ofrece mayor seguridad y funciona cuando las capas estaacuten dispersas en varios sistemas Para mayor informacioacuten consultar la bibliografia (AndroMDA 2009)
6
III3 Desarrollo de Aplicaciones JavaAndromda utiliza los siguientes componentes para crear aplicaciones java
bull Java Development Kit
bull Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construccioacuten documentacioacuten 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)
bull 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 organizacioacuten y persistencia de la informacioacuten (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 coacutedigo 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 coacutedigo necesario para recuperar y guardar archivos en la base de datos Luego de generar las clases necesarias Andromda separa el coacutedigo en dos partes El coacutedigo generado por Andromda y el coacutedigo generado por el usuario Cuando a Andromda se le indica que una clase tendraacute coacutedigo a la medida Andromda crea dos clases Una clase estaacutetica donde esta todo el coacutedigo generado por Andromda Esta clase es sobrescrita cada vez que se genera coacutedigo Por eso no se debe agregar coacutedigo manual en esa clase Luego crea clases no estaacuteticas que son la implementacioacuten de las clases creadas por Andromda El coacutedigo manual se escribe en estas clases (AndroMDA 2009)
Andromda se encarga de generar el coacutedigo necesario para que los objetos interactuen como lo indica el diagrama UML El coacutedigo agregado manualmente corresponde a la loacutegica y el funcionamiento del sistema que se esta implementando Andromda se encarga de convertir la informacioacuten automaacuteticamente Pero hay casos en los que la conversioacuten automaacutetica no satisface las necesidades del sistema y se debe sobrescribir manualmente Andromda se encarga de crear los componentes necesarios para que la capa de presentacioacuten 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 Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
IacuteNDICECaacutepitulos13 13 13 13 13 13 13 13 13 Paacutegina
I INTRODUCCIOacuteN 1313 3
II MDA 413 II1 Queacute es y coacutemo surge 13 413 II2 Coacutemo funciona 13 413 II3 Para queacute sirve1313 513 II4 Quieacutenes la soportan 13 13 5
III MDA en JAVA 613 III1 Introduccioacuten a MDA en Java 6 13 III2 Estructura de una aplicacioacuten 13 13 613 III3 Desarrollo de aplicaciones Java 13 7
IV Metodologiacutea de Booch 8 13 IV1 Queacute es y como funcioacutena 13 813 IV2 Coacutemo funciona 13 813 IV3 Queacute soporte tiene13 13 8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT) 13 913 V1 Coacutemo y cuaacutendo surgioacute13 13 913 V2 Queacute es y para queacute sirve13 13 913 V3 Coacutemo funciona 13 1013 V4 Quieacutenes lo soportan
VI LICENCIA 13 `11VII CONCLUSIONES 13 13 11VIII ANEXOS13 12IX BIBLIOGRAFIacuteA 16
2
I INTRODUCCIOacuteN
Eacutesta investigacioacuten trata acerca de cuatro temas en generalbull MDA Model Driven Architecturebull MDA en JAVA como se aplica MDA en Java (Lenguaje de programacioacuten)bull Metodologiacutea de Boochbull Metodologiacutea de Raumburgh (OMT Object Modeling Technique)
Todos estaacuten relacionados con el campo de desarrollo de software Las metodologiacuteas que se cubriraacuten han sido soacutelo alguna de las bases y los primeros intentos que se hicieron de un proceso para desarrollar software Actualmente eacutestas metodologiacuteas ya no se usan mucho a pesar de esto han contribuiacutedo considerablemente a los meacutetodos teacutecnicas y arquitecturas que se usan hoy en diacutea
3
II MDA
II1 Queacute es y coacutemo surgeModel Driven Architecture o MDA es una herramienta y una arquitectura de las Tecnologiacuteas de Informacioacuten perteneciente a el Object Management Group (OMG) creado en 1989 por 11 compantildeias liacutederes en eacuteste campo1
En 1996 OMG decide adoptar la modelacioacuten con el objetivo de ampliar su campo de aplicacioacuten un antildeo maacutes tarde adoptariacutea dos estaacutendares que seriacutean vitales para MDA el Unified Model Language (UML) y Metamodel Object Facilities (MOF) maacutes adelante adoptariacutea CWM (Common Warehouse Metalmodel) y XMI (XML Metadata Interchange) para completar la base de lo que es MDA2
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 tecnologiacuteas de informacioacuten integrando cada aspecto de eacutestas desde el modelamiento en el funcionamiento de tecnologeias independientes desarrollo e integracioacuten en cada plataforma hasta el despliegue y el mantenimiento3
MDA permite la creacioacuten de aplicaciones portables e interoperables desde sistemas incrustados de escritorio mainframes servidores y sistemas en la internet4
La base del 99 de los proyectos que son desarrollados con MDA es UML a pesar de esto el estaacutendar 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 estaacutendares involucrados en MDA sean transmitidos viacutea XMI almacenados en repositorios MOF-compatibles transformados y manipulados por herramientas MOF y generadores de coacutedigo5
MDA significa una especificacioacuten de un sistema de Tecnologiacuteas de Informacioacuten que separa la especificacioacuten de la funcionalidad de un sistema de la especificacioacuten de la implementacioacuten de eacutesta funcionalidad en una plataforma especiacutefica6
II2 Coacutemo funciona El primer modelo es hecho por un analista de negocios en donde eacuteste no tendraacute ninguna relacion computacional se describe el sistema en base a sus requerimientos Los demaacutes modelos son derivados de eacuteste a travez de capas de abstraccioacuten como es mostrado en la Figura 17
4
Figura 1 Capas de abstraccioacuten en MDA
II3 Para queacute sirveLas herramientas estandarizadas MDA consiguen
bull Automatizar la transformacioacuten del disentildeo de modelo de negocio a la implementacioacuten de eacuteste produciendo nuevas aplicaciones mejores maacutes baratas y maacutes raacutepidas
bull Asegurar requerimientos no soacutelo en la implementacioacuten final del modelo si no tambieacuten escabilidad y seguridad
bull Obtener coacutedigo optimizado para procesos determinados el desarrollo a partir de las libreriacuteas ha sido disentildeado por algunos de los mejores desarrolladores de la industria es por eso que el coacutedigo generado por herramientas MDA es de lo mejor que se puede obtener
bull Aplicaciones son interoperables y portables disentildeadas para muacuteltiples plataformas
II4 Quieacutenes la soportanMDA es respaldado por OMG una organizacioacuten fundada por liacutederes en Tecnologiacuteas de Informacioacuten entre ellas se encuentran SuPackard American Airlines entre otras8
5
III MDA en JavaIII1 IntroduccioacutenExisten varios programas que generan coacutedigo Java mediante esta tecnologiacutea En este documento se utilizara Andromda como referencia aunque todos los programas deberiacutean lograr lo mismo Andromda puede utilizar UML 14XMI o UML 2EMF Andromda puede utilizar varias bases de datos El coacutedigo generado es de JavaEE (AndroMDA 2009)
III2 Estructura de una aplicacioacutenAntes de entrar a los pasos especiacuteficos de Java entraremos al disentildeo de una aplicacioacuten Una aplicacioacuten 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
bull Capa de presentacioacuten Contiene todos los componentes necesarios para interactuar con una aplicacioacuten Pueden ser paacuteginas web formatos ect Andromda permite crear interfaces con Struts y JSF Utiliza un diagrama de actividad para generar los componentes de la paacutegina web que se comunican con el sistema
bull Business Layer Contiene toda la funcionalidad y loacutegica de una aplicacioacuten Generalmente contiene una interfaz para acceder a los servicios con mayor facilidad Andromda se encarga de crear servicios para acceder informacioacuten y comunicarse con la capa de presentacioacuten Tambieacuten provee meacutetodos vaciacuteos donde va la programacioacuten que corresponde a la loacutegica del sistema
bull Cada de Acceso de informacioacuten Tiene interfaces que permiten acceder y manipular informacioacuten faacutecilmente Andromda utiliza una herramienta de mapeo llamada Hibernate que crea objetos para acceder informacioacuten Estos objetos se convierten de registros de una base de datos a objetos y viceversa
bull Capa de almacenamiento Contiene toda la informacioacuten que se desea almacenar Hibernate puede crear objetos de diversas bases de datos
La capa de presentacioacuten y el business layer pueden comunicarse de dos maneras La primera es permitirle a la capa de presentacioacuten acceso completo y la otra es comunicarse a traveacutes de objetos con propiedades La primera forma es mas faacutecil implementar y la segunda ofrece mayor seguridad y funciona cuando las capas estaacuten dispersas en varios sistemas Para mayor informacioacuten consultar la bibliografia (AndroMDA 2009)
6
III3 Desarrollo de Aplicaciones JavaAndromda utiliza los siguientes componentes para crear aplicaciones java
bull Java Development Kit
bull Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construccioacuten documentacioacuten 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)
bull 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 organizacioacuten y persistencia de la informacioacuten (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 coacutedigo 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 coacutedigo necesario para recuperar y guardar archivos en la base de datos Luego de generar las clases necesarias Andromda separa el coacutedigo en dos partes El coacutedigo generado por Andromda y el coacutedigo generado por el usuario Cuando a Andromda se le indica que una clase tendraacute coacutedigo a la medida Andromda crea dos clases Una clase estaacutetica donde esta todo el coacutedigo generado por Andromda Esta clase es sobrescrita cada vez que se genera coacutedigo Por eso no se debe agregar coacutedigo manual en esa clase Luego crea clases no estaacuteticas que son la implementacioacuten de las clases creadas por Andromda El coacutedigo manual se escribe en estas clases (AndroMDA 2009)
Andromda se encarga de generar el coacutedigo necesario para que los objetos interactuen como lo indica el diagrama UML El coacutedigo agregado manualmente corresponde a la loacutegica y el funcionamiento del sistema que se esta implementando Andromda se encarga de convertir la informacioacuten automaacuteticamente Pero hay casos en los que la conversioacuten automaacutetica no satisface las necesidades del sistema y se debe sobrescribir manualmente Andromda se encarga de crear los componentes necesarios para que la capa de presentacioacuten 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 Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
I INTRODUCCIOacuteN
Eacutesta investigacioacuten trata acerca de cuatro temas en generalbull MDA Model Driven Architecturebull MDA en JAVA como se aplica MDA en Java (Lenguaje de programacioacuten)bull Metodologiacutea de Boochbull Metodologiacutea de Raumburgh (OMT Object Modeling Technique)
Todos estaacuten relacionados con el campo de desarrollo de software Las metodologiacuteas que se cubriraacuten han sido soacutelo alguna de las bases y los primeros intentos que se hicieron de un proceso para desarrollar software Actualmente eacutestas metodologiacuteas ya no se usan mucho a pesar de esto han contribuiacutedo considerablemente a los meacutetodos teacutecnicas y arquitecturas que se usan hoy en diacutea
3
II MDA
II1 Queacute es y coacutemo surgeModel Driven Architecture o MDA es una herramienta y una arquitectura de las Tecnologiacuteas de Informacioacuten perteneciente a el Object Management Group (OMG) creado en 1989 por 11 compantildeias liacutederes en eacuteste campo1
En 1996 OMG decide adoptar la modelacioacuten con el objetivo de ampliar su campo de aplicacioacuten un antildeo maacutes tarde adoptariacutea dos estaacutendares que seriacutean vitales para MDA el Unified Model Language (UML) y Metamodel Object Facilities (MOF) maacutes adelante adoptariacutea CWM (Common Warehouse Metalmodel) y XMI (XML Metadata Interchange) para completar la base de lo que es MDA2
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 tecnologiacuteas de informacioacuten integrando cada aspecto de eacutestas desde el modelamiento en el funcionamiento de tecnologeias independientes desarrollo e integracioacuten en cada plataforma hasta el despliegue y el mantenimiento3
MDA permite la creacioacuten de aplicaciones portables e interoperables desde sistemas incrustados de escritorio mainframes servidores y sistemas en la internet4
La base del 99 de los proyectos que son desarrollados con MDA es UML a pesar de esto el estaacutendar 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 estaacutendares involucrados en MDA sean transmitidos viacutea XMI almacenados en repositorios MOF-compatibles transformados y manipulados por herramientas MOF y generadores de coacutedigo5
MDA significa una especificacioacuten de un sistema de Tecnologiacuteas de Informacioacuten que separa la especificacioacuten de la funcionalidad de un sistema de la especificacioacuten de la implementacioacuten de eacutesta funcionalidad en una plataforma especiacutefica6
II2 Coacutemo funciona El primer modelo es hecho por un analista de negocios en donde eacuteste no tendraacute ninguna relacion computacional se describe el sistema en base a sus requerimientos Los demaacutes modelos son derivados de eacuteste a travez de capas de abstraccioacuten como es mostrado en la Figura 17
4
Figura 1 Capas de abstraccioacuten en MDA
II3 Para queacute sirveLas herramientas estandarizadas MDA consiguen
bull Automatizar la transformacioacuten del disentildeo de modelo de negocio a la implementacioacuten de eacuteste produciendo nuevas aplicaciones mejores maacutes baratas y maacutes raacutepidas
bull Asegurar requerimientos no soacutelo en la implementacioacuten final del modelo si no tambieacuten escabilidad y seguridad
bull Obtener coacutedigo optimizado para procesos determinados el desarrollo a partir de las libreriacuteas ha sido disentildeado por algunos de los mejores desarrolladores de la industria es por eso que el coacutedigo generado por herramientas MDA es de lo mejor que se puede obtener
bull Aplicaciones son interoperables y portables disentildeadas para muacuteltiples plataformas
II4 Quieacutenes la soportanMDA es respaldado por OMG una organizacioacuten fundada por liacutederes en Tecnologiacuteas de Informacioacuten entre ellas se encuentran SuPackard American Airlines entre otras8
5
III MDA en JavaIII1 IntroduccioacutenExisten varios programas que generan coacutedigo Java mediante esta tecnologiacutea En este documento se utilizara Andromda como referencia aunque todos los programas deberiacutean lograr lo mismo Andromda puede utilizar UML 14XMI o UML 2EMF Andromda puede utilizar varias bases de datos El coacutedigo generado es de JavaEE (AndroMDA 2009)
III2 Estructura de una aplicacioacutenAntes de entrar a los pasos especiacuteficos de Java entraremos al disentildeo de una aplicacioacuten Una aplicacioacuten 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
bull Capa de presentacioacuten Contiene todos los componentes necesarios para interactuar con una aplicacioacuten Pueden ser paacuteginas web formatos ect Andromda permite crear interfaces con Struts y JSF Utiliza un diagrama de actividad para generar los componentes de la paacutegina web que se comunican con el sistema
bull Business Layer Contiene toda la funcionalidad y loacutegica de una aplicacioacuten Generalmente contiene una interfaz para acceder a los servicios con mayor facilidad Andromda se encarga de crear servicios para acceder informacioacuten y comunicarse con la capa de presentacioacuten Tambieacuten provee meacutetodos vaciacuteos donde va la programacioacuten que corresponde a la loacutegica del sistema
bull Cada de Acceso de informacioacuten Tiene interfaces que permiten acceder y manipular informacioacuten faacutecilmente Andromda utiliza una herramienta de mapeo llamada Hibernate que crea objetos para acceder informacioacuten Estos objetos se convierten de registros de una base de datos a objetos y viceversa
bull Capa de almacenamiento Contiene toda la informacioacuten que se desea almacenar Hibernate puede crear objetos de diversas bases de datos
La capa de presentacioacuten y el business layer pueden comunicarse de dos maneras La primera es permitirle a la capa de presentacioacuten acceso completo y la otra es comunicarse a traveacutes de objetos con propiedades La primera forma es mas faacutecil implementar y la segunda ofrece mayor seguridad y funciona cuando las capas estaacuten dispersas en varios sistemas Para mayor informacioacuten consultar la bibliografia (AndroMDA 2009)
6
III3 Desarrollo de Aplicaciones JavaAndromda utiliza los siguientes componentes para crear aplicaciones java
bull Java Development Kit
bull Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construccioacuten documentacioacuten 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)
bull 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 organizacioacuten y persistencia de la informacioacuten (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 coacutedigo 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 coacutedigo necesario para recuperar y guardar archivos en la base de datos Luego de generar las clases necesarias Andromda separa el coacutedigo en dos partes El coacutedigo generado por Andromda y el coacutedigo generado por el usuario Cuando a Andromda se le indica que una clase tendraacute coacutedigo a la medida Andromda crea dos clases Una clase estaacutetica donde esta todo el coacutedigo generado por Andromda Esta clase es sobrescrita cada vez que se genera coacutedigo Por eso no se debe agregar coacutedigo manual en esa clase Luego crea clases no estaacuteticas que son la implementacioacuten de las clases creadas por Andromda El coacutedigo manual se escribe en estas clases (AndroMDA 2009)
Andromda se encarga de generar el coacutedigo necesario para que los objetos interactuen como lo indica el diagrama UML El coacutedigo agregado manualmente corresponde a la loacutegica y el funcionamiento del sistema que se esta implementando Andromda se encarga de convertir la informacioacuten automaacuteticamente Pero hay casos en los que la conversioacuten automaacutetica no satisface las necesidades del sistema y se debe sobrescribir manualmente Andromda se encarga de crear los componentes necesarios para que la capa de presentacioacuten 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 Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
II MDA
II1 Queacute es y coacutemo surgeModel Driven Architecture o MDA es una herramienta y una arquitectura de las Tecnologiacuteas de Informacioacuten perteneciente a el Object Management Group (OMG) creado en 1989 por 11 compantildeias liacutederes en eacuteste campo1
En 1996 OMG decide adoptar la modelacioacuten con el objetivo de ampliar su campo de aplicacioacuten un antildeo maacutes tarde adoptariacutea dos estaacutendares que seriacutean vitales para MDA el Unified Model Language (UML) y Metamodel Object Facilities (MOF) maacutes adelante adoptariacutea CWM (Common Warehouse Metalmodel) y XMI (XML Metadata Interchange) para completar la base de lo que es MDA2
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 tecnologiacuteas de informacioacuten integrando cada aspecto de eacutestas desde el modelamiento en el funcionamiento de tecnologeias independientes desarrollo e integracioacuten en cada plataforma hasta el despliegue y el mantenimiento3
MDA permite la creacioacuten de aplicaciones portables e interoperables desde sistemas incrustados de escritorio mainframes servidores y sistemas en la internet4
La base del 99 de los proyectos que son desarrollados con MDA es UML a pesar de esto el estaacutendar 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 estaacutendares involucrados en MDA sean transmitidos viacutea XMI almacenados en repositorios MOF-compatibles transformados y manipulados por herramientas MOF y generadores de coacutedigo5
MDA significa una especificacioacuten de un sistema de Tecnologiacuteas de Informacioacuten que separa la especificacioacuten de la funcionalidad de un sistema de la especificacioacuten de la implementacioacuten de eacutesta funcionalidad en una plataforma especiacutefica6
II2 Coacutemo funciona El primer modelo es hecho por un analista de negocios en donde eacuteste no tendraacute ninguna relacion computacional se describe el sistema en base a sus requerimientos Los demaacutes modelos son derivados de eacuteste a travez de capas de abstraccioacuten como es mostrado en la Figura 17
4
Figura 1 Capas de abstraccioacuten en MDA
II3 Para queacute sirveLas herramientas estandarizadas MDA consiguen
bull Automatizar la transformacioacuten del disentildeo de modelo de negocio a la implementacioacuten de eacuteste produciendo nuevas aplicaciones mejores maacutes baratas y maacutes raacutepidas
bull Asegurar requerimientos no soacutelo en la implementacioacuten final del modelo si no tambieacuten escabilidad y seguridad
bull Obtener coacutedigo optimizado para procesos determinados el desarrollo a partir de las libreriacuteas ha sido disentildeado por algunos de los mejores desarrolladores de la industria es por eso que el coacutedigo generado por herramientas MDA es de lo mejor que se puede obtener
bull Aplicaciones son interoperables y portables disentildeadas para muacuteltiples plataformas
II4 Quieacutenes la soportanMDA es respaldado por OMG una organizacioacuten fundada por liacutederes en Tecnologiacuteas de Informacioacuten entre ellas se encuentran SuPackard American Airlines entre otras8
5
III MDA en JavaIII1 IntroduccioacutenExisten varios programas que generan coacutedigo Java mediante esta tecnologiacutea En este documento se utilizara Andromda como referencia aunque todos los programas deberiacutean lograr lo mismo Andromda puede utilizar UML 14XMI o UML 2EMF Andromda puede utilizar varias bases de datos El coacutedigo generado es de JavaEE (AndroMDA 2009)
III2 Estructura de una aplicacioacutenAntes de entrar a los pasos especiacuteficos de Java entraremos al disentildeo de una aplicacioacuten Una aplicacioacuten 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
bull Capa de presentacioacuten Contiene todos los componentes necesarios para interactuar con una aplicacioacuten Pueden ser paacuteginas web formatos ect Andromda permite crear interfaces con Struts y JSF Utiliza un diagrama de actividad para generar los componentes de la paacutegina web que se comunican con el sistema
bull Business Layer Contiene toda la funcionalidad y loacutegica de una aplicacioacuten Generalmente contiene una interfaz para acceder a los servicios con mayor facilidad Andromda se encarga de crear servicios para acceder informacioacuten y comunicarse con la capa de presentacioacuten Tambieacuten provee meacutetodos vaciacuteos donde va la programacioacuten que corresponde a la loacutegica del sistema
bull Cada de Acceso de informacioacuten Tiene interfaces que permiten acceder y manipular informacioacuten faacutecilmente Andromda utiliza una herramienta de mapeo llamada Hibernate que crea objetos para acceder informacioacuten Estos objetos se convierten de registros de una base de datos a objetos y viceversa
bull Capa de almacenamiento Contiene toda la informacioacuten que se desea almacenar Hibernate puede crear objetos de diversas bases de datos
La capa de presentacioacuten y el business layer pueden comunicarse de dos maneras La primera es permitirle a la capa de presentacioacuten acceso completo y la otra es comunicarse a traveacutes de objetos con propiedades La primera forma es mas faacutecil implementar y la segunda ofrece mayor seguridad y funciona cuando las capas estaacuten dispersas en varios sistemas Para mayor informacioacuten consultar la bibliografia (AndroMDA 2009)
6
III3 Desarrollo de Aplicaciones JavaAndromda utiliza los siguientes componentes para crear aplicaciones java
bull Java Development Kit
bull Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construccioacuten documentacioacuten 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)
bull 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 organizacioacuten y persistencia de la informacioacuten (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 coacutedigo 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 coacutedigo necesario para recuperar y guardar archivos en la base de datos Luego de generar las clases necesarias Andromda separa el coacutedigo en dos partes El coacutedigo generado por Andromda y el coacutedigo generado por el usuario Cuando a Andromda se le indica que una clase tendraacute coacutedigo a la medida Andromda crea dos clases Una clase estaacutetica donde esta todo el coacutedigo generado por Andromda Esta clase es sobrescrita cada vez que se genera coacutedigo Por eso no se debe agregar coacutedigo manual en esa clase Luego crea clases no estaacuteticas que son la implementacioacuten de las clases creadas por Andromda El coacutedigo manual se escribe en estas clases (AndroMDA 2009)
Andromda se encarga de generar el coacutedigo necesario para que los objetos interactuen como lo indica el diagrama UML El coacutedigo agregado manualmente corresponde a la loacutegica y el funcionamiento del sistema que se esta implementando Andromda se encarga de convertir la informacioacuten automaacuteticamente Pero hay casos en los que la conversioacuten automaacutetica no satisface las necesidades del sistema y se debe sobrescribir manualmente Andromda se encarga de crear los componentes necesarios para que la capa de presentacioacuten 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 Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
Figura 1 Capas de abstraccioacuten en MDA
II3 Para queacute sirveLas herramientas estandarizadas MDA consiguen
bull Automatizar la transformacioacuten del disentildeo de modelo de negocio a la implementacioacuten de eacuteste produciendo nuevas aplicaciones mejores maacutes baratas y maacutes raacutepidas
bull Asegurar requerimientos no soacutelo en la implementacioacuten final del modelo si no tambieacuten escabilidad y seguridad
bull Obtener coacutedigo optimizado para procesos determinados el desarrollo a partir de las libreriacuteas ha sido disentildeado por algunos de los mejores desarrolladores de la industria es por eso que el coacutedigo generado por herramientas MDA es de lo mejor que se puede obtener
bull Aplicaciones son interoperables y portables disentildeadas para muacuteltiples plataformas
II4 Quieacutenes la soportanMDA es respaldado por OMG una organizacioacuten fundada por liacutederes en Tecnologiacuteas de Informacioacuten entre ellas se encuentran SuPackard American Airlines entre otras8
5
III MDA en JavaIII1 IntroduccioacutenExisten varios programas que generan coacutedigo Java mediante esta tecnologiacutea En este documento se utilizara Andromda como referencia aunque todos los programas deberiacutean lograr lo mismo Andromda puede utilizar UML 14XMI o UML 2EMF Andromda puede utilizar varias bases de datos El coacutedigo generado es de JavaEE (AndroMDA 2009)
III2 Estructura de una aplicacioacutenAntes de entrar a los pasos especiacuteficos de Java entraremos al disentildeo de una aplicacioacuten Una aplicacioacuten 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
bull Capa de presentacioacuten Contiene todos los componentes necesarios para interactuar con una aplicacioacuten Pueden ser paacuteginas web formatos ect Andromda permite crear interfaces con Struts y JSF Utiliza un diagrama de actividad para generar los componentes de la paacutegina web que se comunican con el sistema
bull Business Layer Contiene toda la funcionalidad y loacutegica de una aplicacioacuten Generalmente contiene una interfaz para acceder a los servicios con mayor facilidad Andromda se encarga de crear servicios para acceder informacioacuten y comunicarse con la capa de presentacioacuten Tambieacuten provee meacutetodos vaciacuteos donde va la programacioacuten que corresponde a la loacutegica del sistema
bull Cada de Acceso de informacioacuten Tiene interfaces que permiten acceder y manipular informacioacuten faacutecilmente Andromda utiliza una herramienta de mapeo llamada Hibernate que crea objetos para acceder informacioacuten Estos objetos se convierten de registros de una base de datos a objetos y viceversa
bull Capa de almacenamiento Contiene toda la informacioacuten que se desea almacenar Hibernate puede crear objetos de diversas bases de datos
La capa de presentacioacuten y el business layer pueden comunicarse de dos maneras La primera es permitirle a la capa de presentacioacuten acceso completo y la otra es comunicarse a traveacutes de objetos con propiedades La primera forma es mas faacutecil implementar y la segunda ofrece mayor seguridad y funciona cuando las capas estaacuten dispersas en varios sistemas Para mayor informacioacuten consultar la bibliografia (AndroMDA 2009)
6
III3 Desarrollo de Aplicaciones JavaAndromda utiliza los siguientes componentes para crear aplicaciones java
bull Java Development Kit
bull Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construccioacuten documentacioacuten 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)
bull 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 organizacioacuten y persistencia de la informacioacuten (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 coacutedigo 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 coacutedigo necesario para recuperar y guardar archivos en la base de datos Luego de generar las clases necesarias Andromda separa el coacutedigo en dos partes El coacutedigo generado por Andromda y el coacutedigo generado por el usuario Cuando a Andromda se le indica que una clase tendraacute coacutedigo a la medida Andromda crea dos clases Una clase estaacutetica donde esta todo el coacutedigo generado por Andromda Esta clase es sobrescrita cada vez que se genera coacutedigo Por eso no se debe agregar coacutedigo manual en esa clase Luego crea clases no estaacuteticas que son la implementacioacuten de las clases creadas por Andromda El coacutedigo manual se escribe en estas clases (AndroMDA 2009)
Andromda se encarga de generar el coacutedigo necesario para que los objetos interactuen como lo indica el diagrama UML El coacutedigo agregado manualmente corresponde a la loacutegica y el funcionamiento del sistema que se esta implementando Andromda se encarga de convertir la informacioacuten automaacuteticamente Pero hay casos en los que la conversioacuten automaacutetica no satisface las necesidades del sistema y se debe sobrescribir manualmente Andromda se encarga de crear los componentes necesarios para que la capa de presentacioacuten 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 Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
III MDA en JavaIII1 IntroduccioacutenExisten varios programas que generan coacutedigo Java mediante esta tecnologiacutea En este documento se utilizara Andromda como referencia aunque todos los programas deberiacutean lograr lo mismo Andromda puede utilizar UML 14XMI o UML 2EMF Andromda puede utilizar varias bases de datos El coacutedigo generado es de JavaEE (AndroMDA 2009)
III2 Estructura de una aplicacioacutenAntes de entrar a los pasos especiacuteficos de Java entraremos al disentildeo de una aplicacioacuten Una aplicacioacuten 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
bull Capa de presentacioacuten Contiene todos los componentes necesarios para interactuar con una aplicacioacuten Pueden ser paacuteginas web formatos ect Andromda permite crear interfaces con Struts y JSF Utiliza un diagrama de actividad para generar los componentes de la paacutegina web que se comunican con el sistema
bull Business Layer Contiene toda la funcionalidad y loacutegica de una aplicacioacuten Generalmente contiene una interfaz para acceder a los servicios con mayor facilidad Andromda se encarga de crear servicios para acceder informacioacuten y comunicarse con la capa de presentacioacuten Tambieacuten provee meacutetodos vaciacuteos donde va la programacioacuten que corresponde a la loacutegica del sistema
bull Cada de Acceso de informacioacuten Tiene interfaces que permiten acceder y manipular informacioacuten faacutecilmente Andromda utiliza una herramienta de mapeo llamada Hibernate que crea objetos para acceder informacioacuten Estos objetos se convierten de registros de una base de datos a objetos y viceversa
bull Capa de almacenamiento Contiene toda la informacioacuten que se desea almacenar Hibernate puede crear objetos de diversas bases de datos
La capa de presentacioacuten y el business layer pueden comunicarse de dos maneras La primera es permitirle a la capa de presentacioacuten acceso completo y la otra es comunicarse a traveacutes de objetos con propiedades La primera forma es mas faacutecil implementar y la segunda ofrece mayor seguridad y funciona cuando las capas estaacuten dispersas en varios sistemas Para mayor informacioacuten consultar la bibliografia (AndroMDA 2009)
6
III3 Desarrollo de Aplicaciones JavaAndromda utiliza los siguientes componentes para crear aplicaciones java
bull Java Development Kit
bull Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construccioacuten documentacioacuten 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)
bull 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 organizacioacuten y persistencia de la informacioacuten (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 coacutedigo 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 coacutedigo necesario para recuperar y guardar archivos en la base de datos Luego de generar las clases necesarias Andromda separa el coacutedigo en dos partes El coacutedigo generado por Andromda y el coacutedigo generado por el usuario Cuando a Andromda se le indica que una clase tendraacute coacutedigo a la medida Andromda crea dos clases Una clase estaacutetica donde esta todo el coacutedigo generado por Andromda Esta clase es sobrescrita cada vez que se genera coacutedigo Por eso no se debe agregar coacutedigo manual en esa clase Luego crea clases no estaacuteticas que son la implementacioacuten de las clases creadas por Andromda El coacutedigo manual se escribe en estas clases (AndroMDA 2009)
Andromda se encarga de generar el coacutedigo necesario para que los objetos interactuen como lo indica el diagrama UML El coacutedigo agregado manualmente corresponde a la loacutegica y el funcionamiento del sistema que se esta implementando Andromda se encarga de convertir la informacioacuten automaacuteticamente Pero hay casos en los que la conversioacuten automaacutetica no satisface las necesidades del sistema y se debe sobrescribir manualmente Andromda se encarga de crear los componentes necesarios para que la capa de presentacioacuten 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 Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
III3 Desarrollo de Aplicaciones JavaAndromda utiliza los siguientes componentes para crear aplicaciones java
bull Java Development Kit
bull Maven es na herramienta que se utiliza para administrar diferentes partes de un proyecto como la construccioacuten documentacioacuten 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)
bull 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 organizacioacuten y persistencia de la informacioacuten (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 coacutedigo 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 coacutedigo necesario para recuperar y guardar archivos en la base de datos Luego de generar las clases necesarias Andromda separa el coacutedigo en dos partes El coacutedigo generado por Andromda y el coacutedigo generado por el usuario Cuando a Andromda se le indica que una clase tendraacute coacutedigo a la medida Andromda crea dos clases Una clase estaacutetica donde esta todo el coacutedigo generado por Andromda Esta clase es sobrescrita cada vez que se genera coacutedigo Por eso no se debe agregar coacutedigo manual en esa clase Luego crea clases no estaacuteticas que son la implementacioacuten de las clases creadas por Andromda El coacutedigo manual se escribe en estas clases (AndroMDA 2009)
Andromda se encarga de generar el coacutedigo necesario para que los objetos interactuen como lo indica el diagrama UML El coacutedigo agregado manualmente corresponde a la loacutegica y el funcionamiento del sistema que se esta implementando Andromda se encarga de convertir la informacioacuten automaacuteticamente Pero hay casos en los que la conversioacuten automaacutetica no satisface las necesidades del sistema y se debe sobrescribir manualmente Andromda se encarga de crear los componentes necesarios para que la capa de presentacioacuten 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 Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
IV Metodologiacutea de BoochIV1 Queacute es y coacutemo surgeLa metodologiacutea de Booch o el disentildeo orientado a objetos de Grady Booch (OOD) es un precursor al Modelamiento Unificado (UML) Provee una forma de desarrollar anaacutelisis y disentildeo 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 metodologiacutea de Booch es secuencial en el sentido que la fase de anaacutelisis es completada y posteriormente la fase de disentildeo tambieacuten Es ciacuteclica en el sentido que cada fase estaacute compuesta de pasos ciacuteclicos maacutes pequentildeos
La metodologiacutea de Booch se enfoca en el anaacutelisis y el disentildeo y no en la implementacioacuten o la prueba del resultado de estos13
Define seis tipos de diagramas clase objeto estado de transicioacuten interaccioacuten modulo y proceso
IV2 Coacutemo funcionaLa fase de anaacutelisis se divide en pasos
1 Establecer los requerimientos desde una perspectiva del consumidor o usuario eacuteste paso genera una descripcioacuten de alto nivel del funcionamiento y de la estructura del sistema
2 Anaacutelisis de dominio aquiacute se definen las clases sus atributos la herencia de clases y meacutetodos de eacutestas Los diagramas de los objetos son realizados posteriormente
3 Eacuteste paso completa la fase del anaacutelisis con la validacioacuten hasta que la consistencia se alcance
Despueacutes de haber desarrollado la fase de anaacutelisis se procede a la fase de disentildeo La fase de disentildeo tambieacuten es iterativa Un disentildeo loacutegico es mapeado fiacutesicamente en donde los detalles de la ejecucioacuten procesos rendimiento tipo de datos estructura de datosvisibilidad y distribucioacuten son establecidos Se crea un prototipo y se prueba eacuteste proceso consiste en la iteracioacuten a travez de el disentildeo loacutegico el disentildeo fiacutesico prototipo y la prueba
IV3 Queacute soporte tieneActualmente la metodologiacutea de Booch fue praacutecticamente suplantada por UML tambieacuten propuesta por Grady Booch y otras dos personas A pesar de esto ha contribuiacutedo y se ha utilizado en otras metodologiacuteas que se usan actualmente como la RUP (Rational Unified Process)
8
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
V Metodologiacutea de Rumbaugh (Object Modeling Technique OMT)
V1 iquestCoacutemo y cuaacutendo surgioacute
En 1991 James Rumbaugh quien es un metodoacutelogo de la programacioacuten orientada a objetos mientras trabajaba en General Electric Research amp Development (GE RampD) desarrolloacute junto a Mike Blaha Bill Premerlani Fred Eddy y Bill Lorensen una teacutecnica llamada OMT (Object Modeling Techinque)3 Esta teacutecnica no solo funciona para programacioacuten ya que tambieacuten se ha usado para problemas de la vida real 1 Esta metodologiacutea fue uno de los atributos de James Rumbaugh para la creacioacuten de UML (Unified Modeling Language)
V2 iquestQueacute es y para queacute sirve
Este metodologiacutea la cual es predecesora de UML ayuda en el desarrollo de procesos orientados a objetos ya que sirve para definir un sistema a traveacutes de tres modelos modelo de objetos (object model) modelo dinaacutemico (dynamic model) y modelo funcional (funtional model)
Modelo de Objetos13 Es el maacutes importante de los tres ya que este describe las clases de las cuales se derivan los objetos en un sistema mostrando la relacioacuten entre las clases sus atributos y operaciones (meacutetodos) Este modelo es representado graacuteficamente por un diagrama de clases 14
Modelo Dinaacutemico13 Este modelo describe la dinaacutemica entre los objetos y sus cambios de estado a traveacutes 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
Graacuteficamente se representan por diagramas de estado (state charts)1416
Modelo Funcional13 Este modelo es un diagrama que muestra las transformaciones que sufre la informacioacuten que maneja del sistema En otras palabras describe lo que el sistema hace sin embargo no describe como lo hace13 Este modelo es representado graacuteficamente con un data flow diagram (DFD) que muestra el flujo de los valores Este flujo ser refiere a lo que puede pasar con la informacioacuten (valores) como por ejemplo el ingreso de valores operaciones entre valores guardar valores o salida de valores 15
9
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
V3 iquestCoacutemo funcionaPara desarrollar un proceso OMT se necesitan seguir los siguientes pasos
bull Anaacutelisisbull Disentildeo del Sistemabull Disentildeo de Objetosbull Implementacioacuten
El modelaje OMT se hace uacutenicamente en el primer paso y despueacutes solo sirve de apoyo para los demaacutes pasos
Anaacutelisis 14
13 En este paso se debe de saber la descripcioacuten del problema y el dominio del problema teniendo ya en claro esto se procede a elaborar un modelo de objetos el cual ayudara a
bull Identificar los objetosbull Descartar clases innecesarias o incorrectasbull Identificar asociaciones entre objetos clasesbull Descartar asociaciones innecesarias o incorrectasbull Identificar atributos de los objetosbull Descartar atributos innecesarios o incorrectosbull Usar herencia para compartir estructuras comunes entre objetos
Ya que se tiene el modelo de objetos se procede a elaborar el modelo dinaacutemico para esto se necesita
bull Identificar casos de uso y preparar escenariosbull Identificar los eventos entre objetos estos son las operaciones que se describen
en el diagrama de modelo de objetosbull Preparar un flujo de eventos para el sistemabull Elaborar diagramas de estado para las clase
Despueacutes se procede a elaborar el modelo funcional para esto se deben seguir los siguientes pasos
bull Identificar ingresos de valores y salidas de valoresbull Describir que es lo que hace cada funcioacuten (evento)
V 4 iquestQuieacutenes lo soportan13 Cualquier software que soporte diagramas UML ya que el OMT tiene sus equivalentes con respecto a UML
10
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
VI LICENCIAMDA MDA en Java Metodologiacutea de Booch por Carlos Loacutepez Ernesto Rodriacuteguez y Jeffry Turcios estaacute registrado bajo la licencia Creative Commons Attribution 30 Guatemala License
VII CONCLUSIONESbull La tecnologia MDA facilita programar la interaccioacuten que hay entre objetos aunque no
puede programar la logica y funcionamiento del programabull MDA puede hacer la programacion maacutes eficiente ya que el programador no se tiene que
preocupar de programar la interaccioacuten entre objetos y otros componentes como base de datos
bull El coacutedigo que se genera con herramientas MDA Model Driven Architecture es de el coacutedigo maacutes optimizado que puede obtenerse en la industria
bull MDA Model Driven Architecture estaacute siendo desarrollada por empresas liacutederes en la industria de Tecnologiacuteas de la informacioacuten y son los maacutes interesados en seguirla mejorando
bull La metodologiacutea de Booch sirvioacute en su tiempo ya que fue uno de los primeros intentos por modelar un sistema a travez de un proceso Eacuteste contribuyo mucho a lo que ahora es UML
11
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
VIII ANEXOS
VII1 Notaciones Baacutesicas de OMTModelo de Objetos
Clase1313 13 13 13 13 13
Asosiacioacuten
Agregacioacuten13
Modelo
Herencia
12
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
13
Modelo Dinaacutemico
Evento
Evento con atributo
Estado inicial y final
Mandar un objeto a otro objeto
Modelo funcional
Proceso
Flujo de informacioacuten entre procesos
13
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
Guardar Informacioacuten
Control de flujo
Ingresar a informacioacuten guardada
Actualizar informcaioacuten guardada
Composicioacuten de valores
Duplicacioacuten de valores
Descomposicioacuten de valores
14
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
VII2 Diagramas de la metodologiacutea de Booch
Adornos en las clases Se usan para proveer maacutes informacioacuten de la clase
15
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
16
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522
IX BIBLIOGRAFIacuteA
17
1 About the Object Management Grouptrade (OMGtrade) Paacutegina web de OMGtrade httpwwwomgorggettingstartedgettingstartedindexhtm
2 MDA Frequently Asked Questions Paacutegina web de OMGtrade Can you tell me something about the history of the MDA httpwwwomgorgmdafaq_mdahtm
3 Jon Siegel Vicepresidente de tecnologiacuteas de transferencia SD Times 15 de Octubre del 2002 OMGs Model Driven Architecture httpwwwsdtimescomcontentarticleaspxArticleID=26807
4 MDA Frequently Asked Questions Paacutegina web de OMGtrade What is the role of UML and MOF in the MDA httpwwwomgorgmdafaq_mdahtm
5 Metamodeling Wikipedia the free encyclopedia httpenwikipediaorgwikiMeta_model
6 OMGrsquos approach validation in MASTER IST Project Master Overview httpmodeldrivenarchitectureesiesmda_overviewhtml
7 Mahesh H Donani IBM Software USA A picture is Worth a 1000 Words httpwwwjotfmissuesissue_2006_03column4
8 MDA Vendor Directory Listing Paacutegina web de OMGtrade httpmda-directoryomgorgvendorlisthtm
9 AndroMDAorg 2009 Getting Started Java Recuperado el 25 de Febrero del 2009 de Joomialis Free Software URL httpgalaxyandromdaorgindexphpoption=com_contentamptask20=categoryampsectionid20=11ampid=42ampItemid=89
10 Maven 2009 Introduction to POM Recuperado el 25 de feberero del 2009 de Apache Software Foundation URL httpmavenapacheorgguidesintroductionintroduction-to-the-pomhtml
11 TechTarget 2009 Application Server Recuperado el 25 de febrero del 2009 de TechTarget URL httpsearchsqlservertechtargetcomsDefinition0sid87_gci21158400html
12 IBM 2003 IBM Rational Software joins IBM traning portfolio httpdownloadboulderibmcomibmdlpubsoftwaredwrationaledgeaug03t_trainingportfoliopdf
13 Ronald LeRoi Burback Stanford University 1998 The Booch Methodology httpinfolabstanfordedu~burbackwatersluicenode55html
14 W Schaufelberger D Keller and F Kraus Computermethoden der Automatisierungstechnik (1998) Object-Oriented Software Development Using Object Modeling Technique (OMT) URL httppublicationsksuedusaConferencesSystems20Analysis20SeminarArticle8pdf
15 Debra j Richardson University of California Information and computer Schience 125 Project in Software System Development Object Modeling Technique URL httpwwwicsuciedu~djrics125OMThtml
16 James Rumbaugh InformIT URL httpwwwinformitcomauthorsbioaspxa=D3DD9437-09E2-448F-9EE3-6AAD01752522