Metodologías de ingeniería Web dirigida por modelos

54
METODOLOGÍAS DE INGENIERÍA WEB DIRIGIDA POR MODELOS José Ramón Hilera Universidad de Alcalá, España Noviembre, 2013 Presentación disponible como video con narración en: http:// youtu.be/BVxr4EfozMU

Transcript of Metodologías de ingeniería Web dirigida por modelos

Page 1: Metodologías de ingeniería Web dirigida por modelos

METODOLOGÍAS DE INGENIERÍA WEB DIRIGIDA

POR MODELOS

José Ramón HileraUniversidad de Alcalá, España

Noviembre, 2013

Presentación disponible como video con narración en: http://youtu.be/BVxr4EfozMU

Page 2: Metodologías de ingeniería Web dirigida por modelos

Contenido

1. Ingeniería web 2. Ingeniería web dirigida por modelos: Model-Driven Web

Engineering (MDWE)– Model-Driven Architecture (MDA)

3. Metodologías MDWE4. Comparación de metodologías MDWE

– Soporte MDA– Complejidad de los metamodelos– Tipos de modelos– Transformaciones de modelos– Compatibilidad.– Herramientas

5. Ejemplo: metodología OOWS6. Conclusiones

2

Page 3: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería web

3

Nº especialde la revistaIEEE Multimedia,Marzo, 2001

Page 4: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería webOrigen del término

4

Nº especialde la revistaIEEE Multimedia,Marzo, 2001

Page 5: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería webTema de discusión

Discusión: Ingeniería web vs Ingeniería del software

5

Nº especialde la revistaIEEE Multimedia,Marzo, 2001

Page 6: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería web¿es una nueva disciplina?

6

Nº especialde la revistaIEEE Multimedia,Marzo, 2001

Page 7: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería web¿Ingeniería documental?

Discusión: Ingeniería documental vs Ingeniería hiperemedia (Revista Novática, 2001)

7

Page 8: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería web¿Ingeniería documental?

8

Discusión: Ingeniería documental vs Ingeniería hiperemedia (Revista Novática, 2001)

Page 9: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería webRelación con otras ingenierías

• Cuatro tipos de ingeniería

9

Ingeniería documental

Ingeniería del software

Ingeniería hipermedia

Ingeniería web

Page 10: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería webRelación con otras ingenierías

Suele aceptarse que es parte de la Ingeniería del software,… pero añadiendo conocimientos y tecnologías de otras ingenierías.

10

Ingeniería documental

Ingeniería del software

Ingeniería hipermedia

Ingeniería web

Page 11: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería webArtículo de referencia

11

El resto de la presentación es un resumen de este artículo:

Page 12: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería webMetodologías de Ingeniería web

12

Page 13: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería web Panorama

• Demasiados enfoques y vocabularios diferentes

• Diferentes métodos y ténicas propuestas para las diferentes fases de desarollo

• Pocas herramientas CASE que soporten las propuestas

13

Page 14: Metodologías de ingeniería Web dirigida por modelos

1. Ingeniería web Tendencias

• Tienen en común que en todas las metodologías se usa modelado

• Es comúnmente aceptado el diferenciar, al menos, tres tipos de modelos de un sistema web

– Modelo conceptual de información (Ej. Diagrama de clases UML)

– Modelo navegacional (Ej. Propuesta original de J. Conallen, en forma de perfil UML, pero no está estandarizado, hay muchas propuestas de modelos navegacional como perfiles UML)

– Modelo de presentación (Ej. Nuevo estándar IFML, disponible como perfil UML, año 2013)

• La tendencia es converger hacia el desarrollo web dirigido por modelos 14

Page 15: Metodologías de ingeniería Web dirigida por modelos

2. Ingeniería web dirigida por modelos: Model-Driven Web Engineering (MDWE)

• MDWE propone la representación de conceptos mediante metamodelos que son independientes de la plataforma.

• El proceso de desarrollo se apoya en un conjunto de transformaciones y de las relaciones entre los conceptos de los modelos que permite el desarrollo ágil y asegura la coherencia entre los modelos.

• Los frameworks como Struts, Django, Ruby on Rails, etc. también se basan en MDE.

• MDE también se utiliza en las pruebas del software, en el ámbito del desarrollo dirigido por pruebas (TDD (Testing-Driven Development), mediante la definición de metamodelos para representar aspectos de prueba y el uso de transformaciones para derivar casos de prueba. 15

Page 16: Metodologías de ingeniería Web dirigida por modelos

2. MDWEMetamodelos

• MDWE se refiere al uso del paradigma basado en modelos en metodologías de desarrollo Web.

• Ayuda a obtener modelos en un punto específico del proceso de desarrollo, mediante el uso de los conocimientos adquiridos en las etapas anteriores, con los modelos previamente desarrollados.

• Los metamodelos proporcionan una solución para la multiplicidad de vocabularios y enfoques.

• Un metamodelo es una representación abstracta de los conceptos o artefactos que se permitirán usar en los modelos que se basen en ese metamodelo.

• No se centra en la terminología o forma (símbolos o código) en la que se expresarán los conceptos en los futuros modelos, sino en los conceptos y la relación entre ellos. 16

Page 17: Metodologías de ingeniería Web dirigida por modelos

2. MDWEEjemplo de metamodelo

• Ejemplo de metamodelo sobre los conceptos que se usan en un sitio web

• Existen varias notaciones para definir metamodelos: MOF y UML Profile (ambas de OMG), o Ecore y Emfatic (ambas de Eclipse Modeling Framework)

17

Page 18: Metodologías de ingeniería Web dirigida por modelos

2. MDWEModelos que cumplen el metamodelo

18

Sitio web de la UAHurl: www.uah.es

Página de inicio

Página de

historia

Página de inicio Página de historia

Sitio web de la UAHurl: www.uah.es

Page 19: Metodologías de ingeniería Web dirigida por modelos

2. MDWECompatibilidad de enfoques

• Las metodologías de desarrollo web puede llegar a ser compatibles, y las diferencias en el vocabulario y la falta de conexión entre los diferentes enfoques se puede resolver con diferentes metamodelos.

• Un equipo de desarrollo puede utilizar lo mejor de cada enfoque y, a través de transformaciones, obtener ventajas de otros enfoques.

19

Page 20: Metodologías de ingeniería Web dirigida por modelos

2. MDWEHerramientas CASE

• La calidad tanto del metamodelo y transformaciones es fundamental en la obtención de resultados adecuados.

• Es esencial el uso de herramientas CASE para crear metamodelos, modelos y definir transformaciones que se ejecuten de forma automática.

• Hay herramientas independientes de la metodología, pues se basan en estándares de modelado, especialmente en:

– UML Profiles para los metamodelos

– QVT (Query View Transformation) para las transformaciones

20

Page 21: Metodologías de ingeniería Web dirigida por modelos

2. MDWEModel-Driven Architecture (MDA)

• MDA es el estándar Model-Driven Architecture definido por el Object Management Group (OMG) in 2001 para MDE.

• En MDA se proponen cuatro niveles de modelado:

– CIM (Computer-Independent Model): Este nivel define conceptos que captan la lógica del sistema. Por ejemplo, los modelos de negocio y los requisitos se incluyen en este nivel.

– PIM (Platform-Independent Model): Este nivel agrupa conceptos que definen el sistema de software sin ninguna referencia a la plataforma de desarrollo específica. Por ejemplo, los artefactos de análisis, como el diagrama de clases del dominio del problema, se incluyen en este nivel.

– PSM (Platform-Specific Model): En este nivel, se definen los modelos, con detalles que dependen de la plataforma de desarrollo específico. Por ejemplo, una versión del diagrama de clases para Java, C# (.NET) o PHP.

– Code: Representa el código fuente de la aplicación. Por ejemplo código en Java, C# o PHP. 21

Page 22: Metodologías de ingeniería Web dirigida por modelos

2. MDWENiveles MDA

• En MDA, se pueden definir transformaciones entre los niveles.

• MDA se puede utilizar como marco básico de referencia para comparar diferentes enfoques MDWE.

• La mayoría de las metodologías MDWE definen sus metamodelos y transformaciones basadas en el estándar MDA, aunque cada uno de ellos se centran en diferentes niveles de MDA. 22

Page 23: Metodologías de ingeniería Web dirigida por modelos

2. MDWETransformaciones MDA

23

Fuente: Enterprise Architect

Page 24: Metodologías de ingeniería Web dirigida por modelos

2. MDWETransformaciones MDA: ejemplo PIM

24

Fuente: Enterprise Architect

Page 25: Metodologías de ingeniería Web dirigida por modelos

2. MDWETransformaciones MDA: ejemplo PSM Java

25

Fuente: Enterprise Architect

Page 26: Metodologías de ingeniería Web dirigida por modelos

3. Metodologías MDWE

• OOHDMDA: Basada en la metodología de OOHDM (1995), que separaba el diseño de un sistema web en 3 modelos: conceptual, navegacional y de interface abstracta.

• WebML development process. Hay varias propuestas de metamodelos y transformaciones

– WebML1: Establece 4 metamodelos: CommonElements, DataView, HypertextView and PresentationView

– WebML2: Establece 5 metamodelos: Hypertext Organization, Access Control, Hypertext, Content Management and Content.

– Herramienta CASE: WebRatio. 26

Page 27: Metodologías de ingeniería Web dirigida por modelos

3. Metodologías MDWE

• W2000: Establece 4 metamodelos: Information, Navigation, Presentation, Dynamic Behavior.

• UWE. Establece 5 metamodelos: Requirements, Content, Navigation, Presentation, Process. Y un conjunto de transformaciones para derivar unos modelos de otros. Herramienta CASE: MagicUWE.

• NDT: Incluye 2 metamodelos para el nivel PIM: Content, Navigational. Define un conjunto de transformaciones basadas en QVT, pars obtener PIM a partir de CIM. Herramienta CASE: NDT-Suite. 27

Page 28: Metodologías de ingeniería Web dirigida por modelos

3. Metodologías MDWEOOWS

• OOWS:Es una extensión para sistemas web, de la metodología OO-Method.

– 5 Metamodelos PIM: Estructural (Objetos), Dinámico, Funcional, Navegacional y de Presentación.

28

Page 29: Metodologías de ingeniería Web dirigida por modelos

3. Metodologías MDWEOOWS-Suite

• Herramienta CASE:

• OOWS-Suite (Integranova)

29

Page 30: Metodologías de ingeniería Web dirigida por modelos

4. Comparación de metodologías MDWEMDA Framework

• La mayoría de las metodologías MDWE se centran en el nivel de PIM, que es equivalente al modelado de análisis y diseño de alto nivel

• Ninguna de las metodologías cubre MDA por completo.

30

Page 31: Metodologías de ingeniería Web dirigida por modelos

4. Comparación de metodologías MDWEComplejidad de los metamodelos

• Los metamodelos rara vez incluyen métodos, ya que normalmente expresan conceptos y sus relaciones y no incluyen información sobre la funcionalidad.

• Los conceptos en los metamodelos suelen definirse como una extension formal del concepto “clase” de UML class (mediante UML Profiles).

31

Page 32: Metodologías de ingeniería Web dirigida por modelos

4. Comparación de metodologías MDWETipos de modelos

• Hay un conjunto de tipos de modelos que aparecen en la mayoría de las metodoologías MDWE

32

Page 33: Metodologías de ingeniería Web dirigida por modelos

4. Comparación de metodologías MDWEModelos comunes específicos web

• Para representar aspectos estáticos de un sitio web, se utiliza un modelo de contenido u objetos (habitualmente Diagrama de Clases UML).

• Para representar aspectos sobre las posibilidades de navegación en un sitio web, se utiliza un modelo de navegación (habitualmente basado en un perfil UML).

• Para representar aspectos sobre la presentación del sitio web al usuario, se utilizan modelos de presentación de inferfaces abstractas (habitualmente basados en perfiles UML).

33

Page 34: Metodologías de ingeniería Web dirigida por modelos

4. Comparación de metodologías MDWE

Transformaciones de modelos• Las transformaciones automáticas ayudan a

mantener la trazabilidad entre los modelos

34

Page 35: Metodologías de ingeniería Web dirigida por modelos

4. Comparación de metodologías MDWECompatibilidad

• Una de las ventajas más importantes del paradigma MDWE es la posibilidad de hacer compatibles diversas metodologías.

• Si se define un metamodelo o algunas transformaciones utilizando un lenguaje común, la conexión entre las metodologías podría ser sencilla.

• Para este fin, el uso de perfiles UML ofrece resultados muy interesantes.

• Un UML Profile es un mecanismo de extensión que ofrece UML para extender los conceptos básicos de un enfoque MDWE.

35

Page 36: Metodologías de ingeniería Web dirigida por modelos

4. Comparación de metodologías MDWE

Herramientas• Con la definición del perfil, las herramientas CASE basadas en

UML pueden proporcionar una solución adecuada para cualquier metodología MDWE y reduce el costo de la curva de aprendizaje, ya que son conocidas por los equipos de desarrollo, lo que hace más fácil la aplicación de estos métodos en el entorno empresarial

• WebML, y, principalmente, su herramienta, WebRatio, también se han aplicado con buenos resultados en las empresas reales.

• Es necesario disponer de herramienta que puede representar metamodelos y transformaciones escritas, por ejemplo, en QVT.

• En este sentido, el entorno EMF (Eclipse Modeling Framework) y su lenguaje de transformación ATL ofrecen resultados prometedores.

• Algunos herramientas como Moment o SmartQVT, o la inclusión de MDA, y de lenguajes de transformación en herramientas basadas en UML, como el caso de Enterprise Architect, ofrecen soluciones prometedoras.

36

Page 37: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSFase de especificación del sistema

37

Page 38: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo de requisitos (CIM)

CIM: Modelo de requisitos (Casos de uso)

• Las compras que se realicen se deberán ir incluyendo, simbólicamente, en una cesta de la compra; el usuario podrá consultar en cualquier momento el contenido de su cesta y realizar modificaciones sobre su contenido.

• Esta cesta de la compra se creará en el momento en el que se reciba la petición de entrada en el sistema y pertenecerá al usuario que está navegando en ese momento.

• Todas las operaciones que el usuario realice sobre el sistema se harán de forma anónima, de modo que el usuario no deberá identificarse (registrarse) hasta que no vaya a confirmar su compra.

• Para comprar un álbum se deberá llegar a él a través del autor o de la categoría a la que pertenece.

• Desde la página de inicio podremos acceder a un listado de autores o a un listado de categorías y desde ahí al listado delos álbumes del autor o de la categoría que hayamos seleccionado.

• Cuando seleccionemos un álbum de la lista, se mostrarán todos los datos de ese álbum y se podrá comprar. Esto hará que el álbum sea incluido en la cesta de la compra de ese usuario y que se muestre su contenido actual.

• Mientras veamos el contenido de la cesta, podremos cambiar el número de unidades que se desea adquirir de cada álbum de los comprados hasta el momento o eliminar alguna de las compras de la cesta.

• Cuando se decida confirmar la compra se realizarán dos acciones: la primera consistirá en crear una factura (para lo que el comprador debe haberse identificado) y la segunda será reducir el stock de los álbumes comprados; cuando se haya confirmado una compra, ya no se podrá modificar el contenido de la cesta. 38

Fuente: http://cic.puj.edu.co/wiki/lib/exe/fetch.php?media=materias:oows.pdf

Page 39: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo de estructural o de objetos (PIM)

39

Page 40: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo dinámico (PIM)

40

Modelo dinámico de la clase “Cesta”

Page 41: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo funcional (PIM)

41

• El Modelo Funcional captura la semántica asociada a los cambios de estado de los objetos.

• El valor de cada atributo es modificado dependiendo de la acción que activó el cambio de estado, de los argumentos de dicho evento y del estado actual del objeto.

• Ejemplo de parte del modelo funcional para la clase “Linea”:

Page 42: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo de navegación (PIM) 1/2

• Representa los contextos de navegación que han sido identificados en las primeras fases de especificación del sistema.

• También aparecen sobre el modelo los servicios que son ejecutados al iniciar y finalizar una sesión.

– Cuando el servidor Web recibe una petición de un internauta, ejecuta el servicio crear del Usuario Navegante asociándole además una Cesta.

– Cuando el Usuario Navegante abandona el sistema se ejecuta el servicio destruir, eliminando además, si no ha sido confirmada, su Cesta asociada.

• Se aprecia que el Usuario Navegante siempre tendrá disponibles los contextos (marcados como contextos de exploración) Autores, Categorías, Cesta y Registrarse.

• A partir de estos, y siguiendo diferentes caminos navegacionales, podrá alcanzar los demás (Detalles_Autor, Detalles_Categoría, Albumes y Facturas).

42

Page 43: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo de navegación (PIM) 2/2

• En la figura se describe con detalle el contexto Autores.

• Donde se recupera la información sobre un autor (su nombre), los álbumes que están disponibles de este autor (título, año y precio) y el nombre de la categoría del álbum.

• Seleccionando el título de un álbum podremos navegar al contexto Álbumes, donde se proporcionará información adicional del álbum y podremos comprarlo.

• Además, se ha definido una estructura de acceso índice de tipo atributo, que permitirá acceder a los autores por su letra_inicial (atributo derivado definido en la clase Autor).

• También se ha definido un filtro de tipo aproximado para facilitar la búsqueda de autores por su nombre.

43

Page 44: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo de presentación (PIM)

• En este modelo se captan los requisitos de presentación de información para cada contexto del mapa de navegación.

• En la figura se muestra como ejemplo la plantilla de presentación asociada al contexto Autores.

• En ella se especifica que los objetos de la clase directora se presentarán en modo tabular y el contexto (objetos de la clase directora) estará paginado con una

• cardinalidad estática de 1 elemento, con posibilidad de acceso secuencial y circular.

• El patrón de presentación asociado a la relación de contexto definida entre un Autor y sus Albumes será maestro-detalle, con el detalle en modo tabular y con una paginación de cardinalidad estática de 5 elementos, con acceso secuencial, circular.

• Se ha definido una ordenación de los elementos de la clase Album por el año de modo ascendente y la relación de contexto definida entre la clase Album con la clase Categoría se presentará en modo tabular (relación “1 a 1”). 44

Page 45: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSFase de desarrollo de la solución

45

Page 46: Metodologías de ingeniería Web dirigida por modelos

5. Ejemplo metodología OOWSModelo de presentación (PIM)

• En una estrategia de compilación de modelos, se obtiene el prototipo software completo de manera automática, siguiendo la especificación realizada del sistema.

• En la figura aparece una posible interfaz de usuario que representa correctamente los requisitos, tanto navegacionales como de interfaz, especificados para el actor Usuario Navegante.

• Se puede apreciar que existe un enlace desde esta página (en realidad desde cualquier página, ya que se el frame izquierdo es común a todas las páginas) a cada uno de los contextosde exploración especificados (Autores, Categorías, Cesta y Registrarse).

• Esta página proporciona información sobre un autor y sus álbumes disponibles, mostrando su título, año, precio y categoría.

• Además, aparece el índice que se había especificado, usando el atributo letra_inicial de la clase Autor y también el mecanismo de búsqueda de de autores por su atributo nombre.

• Respecto a presentación de información, la paginación del contexto (objetos de la clase directora Autor) se realiza elemento en elemento (cardinalidad 1).

• Es por esto que sólo aparece información sobre un autor o grupo (Queen) y se proporcionan mecanismos para avanzar o retroceder secuencialmente.

• La información complementaria sobre los álbumes para este grupo aparece en modo maestro-detalle (con el detalle en modo tabular) y además paginado de 5 en 5 elementos, como había sido explicitado. 46

Page 47: Metodologías de ingeniería Web dirigida por modelos

6. Conclusiones

• Dos ventajas importantes que ofrece el paradigma MDWE son

– la reducción del tiempo de desarrollo mediante el uso de transformaciones automáticas

– y la concordancia entre los modelos en diferentes fases.

• No es necesario definir una herramienta CASE específica para cada metodología.

– Con sólo la definición del perfil, cualquier herramienta CASE basada en UML se puede utilizar para la aplicación de la metodología.

• Estas herramientan soportan perfiles UML para defininr metamodelos, pero no transformaciones basadas en el estándar SVQ..

– Algunas herramientas, como Enterprise Architect o Eclipse Modeling Framework (EMF), definen su propio lenguaje de transformación (por ejemplo, ATL en EMF).

47

Page 48: Metodologías de ingeniería Web dirigida por modelos

Actividades recomendadasLectura de libro de 2013

• Metamodelado:

– Cap. 3. Una introducción al metamodelado

– Cap. 4. El lenguaje OCL

– Cap. 5. Perfiles UML

• Transformación de modelos

– Cap. 10. Transformaciones de modelos

– Cap 12. El lenguaje QVT

• Creación de lenguajes gráficos de modelado

– Cap. 6. Eclipse Graphical Modeling Framework

– Cap. 8. Microsoft DSL Tools 48

Page 49: Metodologías de ingeniería Web dirigida por modelos

Actividades recomendadasRevisión de estándares MDA de OMG

• Metamodelado:

– MDA

– Lenguaje MOF

– Lenguaje OCL

– Perfiles UML

• Transformación de modelos

– Lenguaje QVT

• Lenguajes de modelado específico

– BPMN: Business Process Model and Notation

– IFML: Interaction Flow Modeling Language

– SYSML: Systems Modeling Language 49

Page 50: Metodologías de ingeniería Web dirigida por modelos

Actividades recomendadasProbar herramientas CASE MDA

• Enterprise Architect

• Eclipse

• Otras . . .

50

Page 51: Metodologías de ingeniería Web dirigida por modelos

Actividades recomendadasProbar herramientas: Enterprise Architect (1)

51

Page 52: Metodologías de ingeniería Web dirigida por modelos

52

Actividades recomendadasProbar herramientas: Enterprise Architect (2)

Page 53: Metodologías de ingeniería Web dirigida por modelos

Actividades recomendadasProbar herramientas CASE: Eclipse (1)

• Plugins

53

Page 54: Metodologías de ingeniería Web dirigida por modelos

Actividades recomendadasProbar herramientas CASE: Eclipse (2)

• Plugins

54