Anda di halaman 1dari 9

UNIVERSIDAD DEL VALLE DE GUATEMALA

Facultad de Ingeniería

Metodologías para Análisis y


Diseño Orientado a Objetos y
MDA

Trabajo de investigación presentado por


Luis Carlos Aldana 08261
David Ytzen Hsieh 08225
Eduardo Luis Mejicanos 08058

Guatemala
2009

1
Índice

I. MDA ………………………………………………..3
A. Orígenes

B. ¿Qué es y cómo funciona?

C. Relación con la industria

D. Herramientas y sistemas que lo emplean

E. Conclusiones

II. LA METODOLOGÍA DE BOOCH ………………….. 5


A. Aspectos relevantes

B. ¿Cómo funciona?

C. Productos que la soportan

D. Conclusiones

III. LA METODOLOGÍA DE RUMBAUGH ……………… 7


A. ¿Qué es la metodología de Rumbaugh?

B. Implementación del sistema

C. Conclusiones

IV. BIBLIOGRAFÍA ……………………………………. 9

2
I. MDA (MODEL DRIVEN ARCHITECTURE)

A. Orígenes
En 1996 la empresa OMG (Object Management Group) expandió su visión a incluir
la modelación y en 1997 adopto el Lenguaje Unificado de Modelación (UML) y
Facilidad de Meta-Objeto (MOF). A pesar de que los modelos UML se pueden
implementar en cualquier plataforma, pero sugirieron que la modelación basada en
MOF es la clave de la estabilidad del software. El MDA une los estándares de
modelación de la empresa OMG con cada tecnología de middleware, para integrar
lo que se creo, con lo que se está creando, y con lo que se va a crear. (OMG, 2007)

B. ¿Qué es y cómo funciona?


MDA es una nueva forma para desarrollar aplicaciones y escribir especificaciones,
basado en un modelo de plataforma independiente de una aplicación o la
funcionalidad de la especificación. MDA posee niveles múltiples de modelos. En el
nivel más alto se encuentra el modelo de plataforma independiente (PIM), el cual es
un modelo libre de especificaciones de sistema. El PIM especifica entidades desde lo
más abstracto posible capturando todos los requerimientos. En el siguiente nivel se
encuentra el modelo de plataforma específica (PSM). Este modelo es una versión
incrementada con mas especificaciones de la PIM, en la cual agrega todas las
estructuras requeridas para implementar el PIM, pero aun siendo modelada de la
forma UML. Los generadores utilizan el modelo de plataforma específica para
generar código. Una especificación completa MDA consiste de un definitivo modelo
base con plataforma independiente, además de uno o más modelos de plataforma
específica y conjuntos de definiciones de interfaces, cada uno describiendo como el
modelo base es implementado en cada diferente plataforma Middleware. Una
aplicación completa MDA consiste de un modelo de plataforma independiente
especifica definitiva, además de un modelo de plataforma especifica o más, uno en
cada plataforma de la aplicación que el desarrollador decide trabajar. (Code
Generation Network, 2004)

Modelo de Plataforma Modelo de Plataforma Código


Independiente (PIM) Específica (PSM)

El desarrollo MDA se enfoca principalmente en la funcionalidad y el comportamiento


de una aplicación o un sistema distribuido, beneficiado por la tecnología de la
plataforma o las plataformas en que se implementará. Con MDA, la funcionalidad y
el comportamiento solo son modelados una sola vez. Creando desde un modelo de
plataforma independiente por medio de un modelo de plataforma específico a una

3
plataforma MDA que es implementada por herramientas, facilitando el trabajo de
tener soporte a nuevas o diferentes tecnologías (OMG, 2007).

C. Relación con la industria


Existen varios generadores de MDA que fueron creados principalmente para
lenguajes de producción profesionales como Java, C++ y C#. A pesar de que
algunos generadores interpretan lenguajes internos, ninguno crea Perl, Ruby, PHP o
Python con set estándar de plantillas (Brown, 2004).

D. Herramientas y sistemas que lo emplean


MDA está siendo implementada en herramientas, los cuales integran la modelación y
el desarrollo de un solo ambiente que lleva una aplicación desde el PIM, pasando
por el PSM, y luego llevando la generación de código a un conjunto de lenguaje y
archivos de configuración implementando interfaces, puentes a servicios y
posiblemente hasta funcionalidades de negocio. Existen varias compañías que ya
proveen herramientas que soportan este nivel de integración, incluyendo la
generación de código. Actualmente las herramientas logran automatizar de un 50%
a 70% la transformación de PIM a PSM, y debido a que el segundo paso se empezó
a desarrollar desde antes, la automatización de la transformación de PSM a código
ya es casi del 100% (Code Generation Network, 2004).
Entre los generadores que se encuentran disponibles actualmente se encuentran:
1. AndroMDA: Este generador lee modelos UML exportados como XML y
genera código Java.
2. iQgen: Generador basado en Java, que puede generar código C#, XML,
Java y COBOL desde un modelo informático en formato XML y plantillas
creadas en Java.
3. Pluggable Transformations (MDA-Catridges): Genera código Java y C#
desde modelos UML.

E. Conclusiones
1. El MDA es una nueva forma de desarrollo de software que aun esta siendo
desarrollada, el cual facilita la creación de aplicaciones subiendo los niveles
de abstracción.
2. En la actualidad ya se encuentran disponibles distintas herramientas que
tienen implementado generadores de código basados en MDA para distintos
lenguajes, lo cual lo requerimientos que se necesitan son modelos y
diagramas, principalmente UML.

4
II. LA METODOLOGÍA DE BOOCH

A. Aspectos Relevantes
El método de Booch difiere con otras metodologías orientadas a objetos porque se
centra en el desarrollo de 4 modelos fundamentales de un sistema. Estos modelos son
(Calpoly, 1997):
1. Modelo lógico
2. Modelo físico
3. Modelo estático
4. Modelo dinámico

B. ¿Cómo funciona?
En sus primeros textos de Ingeniería de Software (1987), Booch sugiere que se sigan
los siguientes pasos para analizar un sistema en preparación para diseñar una
solución en una manera orientada a objetos (Biggs, 1999):
1. Definir el problema
2. Crear una estrategia informal para la realización del software
3. Formalizar la estrategia

Esto pasos se basaron en el trabajo previo de Abbott en 1983. El problema es


definido en una descripción textual informal y concisa. De esta descripción se podía
obtener información sobre los objetos y métodos representados en el sistema. Los
objetos son representados por sustantivos y los métodos por verbos. Booch notó que
el desarrollo orientado a objetos no es un método de ciclo de vida completo, pero se
concentra en el diseño e implementación de etapas.
En su posterior trabajo (1991), sugirió el siguiente orden de eventos para la
formalización de la estrategia (Biggs, 1999):
1. Identificar las clases y objetos a un nivel dado de abstracción:
Esto involucra encontrar abstracciones clave en el espacio problema y
mecanismos importantes que ofrecen un comportamiento dinámico sobre
varios objetos. Estas abstracciones claves se encuentran al estudiar el dominio
del problema.
2. Identificar la semántica de las clases y objetos:
Involucra establecer los significados de las clases y objetos identificados en
la etapa anterior. El desarrollador debe de observar los objetos desde
afuera, definir el protocolo de los objetos e investigar cómo puede cada
objeto ser usado por otro objeto.
3. Identificar las relaciones entre las clases y objetos:
Esto extiende el trabajo previo a incluir las relaciones que existen entre las
clases y objetos, e identificar la interacción entre ellos. Asociaciones como
herencia, instanciación y uso entre las clases se definen en esta etapa.
También se decide la visibilidad entre clases y objetos.
4. Implementar las clases y objetos:
5
Involucra una investigación profunda de las clases y objetos para determinar
cómo se implementan en el lenguaje de programación de su elección. En esta
etapa se usan los componentes, y los objetos y clases se estructuran en
módulos.
Una de las mayores ventajas del método de Booch es la variedad de notación
disponible. Hay notaciones diagramáticas para producir (Calpoly, 1997):
1. Diagrama de clases
2. Diagrama de objetos
3. Diagrama de estado
4. Diagrama de interacción
5. Diagrama de módulos
6. Diagrama de procesos

La notación para los diagramas utiliza diferentes tipos de flechas para dar
determinada información. Se sugiere que se use una notación básica en las primeras
etapas del diseño, y luego llenar los detalles. También existe una forma textual para
cada notación.
Este método provee una notación muy robusta, que crece del análisis al diseño.
Ciertos elementos de la notación se introducen durante el análisis, mientras que otros
elementos se introducen durante el diseño e implementación (Martin, 2002).
La notación tiene tres papeles importantes:
1. Sirve de lenguaje para comunicar decisiones que no son obvias o no se
reconocen fácilmente del código.
2. Provee semántica lo suficientemente completa para capturar todas las
decisiones importantes estratégicas y tácticas.
3. Ofrece una forma suficientemente concreta para la comprensión humana y
para la manipulación en herramientas.

C. Productos que la soportan


1. Paradigm Plus
2. Rational Rose

D. Conclusiones
1. El método para diseño orientado a objetos nunca se ha desarrollado en un
proceso, pero en una colección de técnicas. Ideas forales que se pueden
utilizar en el desarrollo de sistemas.
2. Este método se preocupa más en el análisis y diseño que en la
implementación y evaluación.

6
III. METODOLOGÍA DE RUMBAUGH (OMT)

Análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería de


software que modela un sistema como un grupo de objetos que interactúan entre sí.
James Rumbaugh es un científico de la computación y un metodologista de objeto. Es
mejor conocido por su trabajo en la creación de la Técnica de Modelado de Objetos
(OMT) y el Lenguaje Unificado de Modelado (UML) trabajando conjuntamente con
Ivar Jacobson y Grady Booch.

A. ¿Qué es la metodología de Rumbaugh?


"Un modelo es una abstracción de algo, cuyo objetivo es comprenderlo antes de
construirlo. Dado que los modelos omiten los detalles no esenciales, es más sencillo
manipularlos que manipular la entidad original. La abstracción es una capacidad
humana fundamental que nos permite enfrentarnos a la complejidad. Los ingenieros,
artistas y artesanos han estado construyendo modelos durante miles de años para
probar los diseños antes de ejecutarlos. El desarrollo de sistemas hardware y
software no es una excepción [el desarrollo de hipertextos tampoco]. Para construir
sistemas complejos, el desarrollador debe abstraer distintas vistas del sistema,
construir modelos utilizando notaciones precisas, verificar que los modelos satisfacen
los requisitos del sistema y añadir, gradualmente, detalles para trasformar los
modelos en una implementación." (Rumbaugh, 1996)
La metodología de Rumbaugh toma en cuenta tres puntos de vista importantes que
son:
1. El modelo de objetos. El modelo de objetos es el modelo más importante, ya
que en él se identifican las clases dentro del sistema junto con sus relaciones,
sus atributos y operaciones. Este modelo se representa mediante un
diagrama de clases.(Romero)
2. El modelo dinámico. Representa los aspectos temporales de comportamiento
"de control" del sistema, mediante la secuencia de operaciones en el tiempo.
(Romero) El modelo dinámico contiene diagramas de estado que son grafos
cuyos nodos son estados y cuyos arcos son transiciones entre estados
causadas por sucesos. (U. Guadalajara)
3. El modelo funcional. Representa los aspectos transformacionales "de
función" del sistema, mediante la transformación de valores de los datos. Se
representa mediante un diagrama de flujo. (Romero)

El método de Rumbaugh consiste en:

1. Desarrollo de una declaración del ámbito del problema.


2. Desarrollo de un modelo de objetos.
3. Identificación de clases relevantes al problema.
4. Definición de atributos y asociaciones.
5. Definición de enlaces de objetos.
6. Organización de las clases de objetos usando la herencia.
7. Desarrollo de un modelo dinámico.
8. Preparación de escenarios.

7
9. Definición de eventos y desarrollo de una traza de eventos para cada
escenario.
10. Construcción de un diagrama de flujos de datos.
11. Desarrollo de un diagrama de estado.
12. Revisión del comportamiento para comprobar consistencia y completitud.
13. Desarrollo de un modelo funcional.
14. Identificación de entradas y salidas.
15. Uso de diagramas de flujos de datos para representar transformaciones del
flujo.
16. Desarrollo de especificaciones de proceso para cada función.
17. Especificación de criterios de restricciones y optimización.
(U. Guadalajara))

Diagrama del proceso OMT.

(Romero)

B. Implementación del Sistema


Durante la implementación se codifican, tanto las estructuras en el dominio de la
aplicación como las estructuras en el dominio de la solución. La base que la sustenta
es la definición de objetos. El código puede ser una simple transición de las
decisiones de diseño a las características propias de un lenguaje. (Romero)

C. Conclusión
Los sistemas construidos hoy en día son más complejos que los sistemas construidos en
los años 70s y 80s. La complejidad funcional es menos preocupante de como lo era
antes, lo que ahora ha tomado una prioridad alta es el modelar la comprensión del
dominio del problema y las responsabilidades del sistema, por lo que estas
metodologías se han convertido en una herramienta necesaria y de mucha
importancia para el desarrollo de software.

8
IV. BIBLIOGRAFÍA

1. Biggs, Peter. 1999. A Survey of Object-Oriented Methods.


http://students.cs.byu.edu/~pbiggs/survey.html

2. Brown, Alan. 2004.


http://www.ibm.com/developerworks/rational/library/3100.html
3. Cal Poly State University. 1997. The Booch Method.
http://users.csc.calpoly.edu/~dbutler/tutorials/winter96/rose/node4.html

4. Code Generation Network. 2004. http://www.codegeneration.net/tiki-


index.php?page=MDA
5. Instituto Tecnologico de Laguna. Analisis y Diseño orientado a objetos. Paola
Romero.
http://www.itlalaguna.edu.mx/academico/carreras/sistemas/Analisis%20y
%20dise%F1o%20orientado%20a%20objetos/rumbaugh.pdf

6. Martin, Louis. 2002. The Booch Method.


http://www.grosmax.uqam.ca/Martin/files/Life%20cycle%20booch.pdf

7. Object Management Group (OMG). 2007.


http://www.omg.org/mda/faq_mda.htm
8. Rumbaugh, James et al. (1996). Modelado y diseño orientados a objetos.
Madrid: Prentice Hall, 1996.

9. Universidad de Guadalajara. Modelos de Objeto y Dinámico.


http://148.202.148.5/cursos/cc321/fundamentos/unidad3/tema3_4_2.html

Metodologías para Análisis y Diseño Orientado a Objetos y MDA is licensed under a


Creative Commons Atribución-No Comercial-Compartir Obras Derivadas Igual 3.0

Anda mungkin juga menyukai