Práctica 4: MDA - Departamento de Ingeniería de Sistemas

Pontificia Universidad Javeriana
Maestría en Ingeniería de Sistemas
Curso: Diseño de software basado en Patrones
Práctica 4: MDA: expresar un modelo PIM y un modelo PSM
para un mismo problema
Considerando el sistema Java EE 5 del ejemplo booking de Seam (buscarlo en jboss-seam-2.2.0.GA.zip), se
toma como subsistema el caso de uso hotelBooking que permite registrar una reserva asociada a un hotel y a
nombre de un usuario.
Examinando los fuentes de este caso de uso se tienen los siguientes elementos:
- las entidades Hotel, User y Booking
- el EJB HotelBookingAction su interfaz HotelBooking
- las páginas hotel.xhtml (permite ver el hotel seleccionado), book.xhtml (permite al usuario
suministrar los datos de la nueva reserva), confirm.xhtml (permite confirmar o cancelar la nueva
reserva)
1. Manualmente realice ingeniería reversa y haga un modelo1 PIM para este subsistema expresándolo como
un diagrama de clases del lenguaje UML con las asociaciones adecuadas,
a. Todos los elementos deben modelarse como clases, incluyendo las páginas modeladas como
clases de interfaz UI. El flujo de navegación entre las clases de interfaz UI puede representarse
como dependencias UML.
b. El modelo debe servir tanto si se va a implementar posteriormente en Java EE 5 (en donde cada
clase de interfaz ui se convierte en una página JSF) como si se va a implementar en una aplicación
Swing (en donde cada clase de interfaz UI se convertiría en un JFrame visual) o en cualquier otra
tecnología
c. Para todas las clases (incluyendo las clases de interfaz UI) deben indicarse atributos y métodos,
exceptuando métodos get y set de atributos. En el caso de una clase de interfaz UI los atributos
corresponden a objetos de otras clases cuyos valores quieren mostrarse al usuario, y los métodos
corresponden a las acciones que deben realizarse como reacción a la interacción del usuario y que
en últimas se traducen en invocar métodos de las clases de negocio; utilice como nombres de
métodos de las clases de interfaz UI los mismos nombres de los métodos de negocio que se
quieren invocar.
2. Haga un modelo2 PIM como una extensión del modelo1 en donde se agregan marcas para:
a. Indicar si una clase es entidad (persistente), componente de negocio, interfaz para otra clase, o
interfaz UI (a través de estereotipo a nivel de clase)
b. Indicar restricciones acerca de los atributos de una clase entidad (como estereotipo a nivel de
atributo)
c. Indicar restricción de una clase que es interfaz UI de si es editable o no
3. Haga un modelo3 PSM que es el resultado de la transformación del modelo2 para soportar la plataforma
Java EE 5.
a. Este modelo3 utiliza convenciones gráficas diferentes para representar los elementos:
entidad
atributo1
atributo2
componente
interfaz
página
atributo1
atributo2
método1
método2
método1
método2
campo1
campo2
acción1
acción2
1
b. Algunas de las marcas puestas en el modelo2 deberían conservarse en este modelo3, si son
necesarias para la posterior generación de código; además se requiere agregar otras marcas como
las relativas a métodos que soportan conversación.
c. Las asociaciones en este modelo3 deben ser más detalladas vinculando por ejemplo los campos de
una página a atributos de entidades y de componentes, y las acciones a métodos de componentes.
4. Redacte las reglas de transformación que aplicadas al modelo 3 (y a cualquier otro modelo de caso de
uso expresado en ese mismo lenguaje) generan la versión inicial de los fuentes del caso de uso en Java
EE 5 (para el ejemplo trabajado son 8 fuentes para el caso de uso HotelBooking).
• la versión inicial de una página mostrará elementos editables o no editables asociados a atributos de
entidades o de EJBs, y botones que invocan métodos de EJBs
• la versión inicial de un EJB mostrará sus métodos vacíos y tendrá la inyección de todos los
frameworks de control
• la versión inicial de una entidad debe ser completa con todos sus atributos, métodos get y set y
anotaciones de restricciones
-----------------------------------------------------Condiciones de entrega-------------------------------------------La practica debe entregarse a más tardar el miércoles 24 de Noviembre a las 11:59 pm.
Puede ser realizar en grupos de 2 o 3 estudiantes. LOS GRUPOS DEBEN TRABAJAR ESTRICTAMENTE DE
MANERA INDEPENDIENTE.
Deberán entregar un zip con los nombres de los estudiantes en el nombre del zip con el siguiente contenido:
• modelo1.gif : gráfico del modelo1
• modelo2.gif: gráfico del modelo2
• modelo3.gif: gráfico del modelo3
• reglas-transformación-modelo3.doc: documento de máximo 1 página que enumera las reglas de navegación
solicitadas en el punto 4.
2