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