metodologías de ingeniería web dirigida por modelos

Post on 24-Jun-2015

1.535 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

1. Ingeniería web

3

Nº especialde la revistaIEEE Multimedia,Marzo, 2001

1. Ingeniería webOrigen del término

4

Nº especialde la revistaIEEE Multimedia,Marzo, 2001

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

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

6

Nº especialde la revistaIEEE Multimedia,Marzo, 2001

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

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

7

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

8

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

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

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

1. Ingeniería webArtículo de referencia

11

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

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

12

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

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

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

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

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

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

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

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

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

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

2. MDWETransformaciones MDA

23

Fuente: Enterprise Architect

2. MDWETransformaciones MDA: ejemplo PIM

24

Fuente: Enterprise Architect

2. MDWETransformaciones MDA: ejemplo PSM Java

25

Fuente: Enterprise Architect

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

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

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

3. Metodologías MDWEOOWS-Suite

• Herramienta CASE:

• OOWS-Suite (Integranova)

29

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

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

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

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

4. Comparación de metodologías MDWE

Transformaciones de modelos• Las transformaciones automáticas ayudan a

mantener la trazabilidad entre los modelos

34

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

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

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

37

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

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

39

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

40

Modelo dinámico de la clase “Cesta”

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”:

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

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

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

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

45

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

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

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

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

Actividades recomendadasProbar herramientas CASE MDA

• Enterprise Architect

• Eclipse

• Otras . . .

50

Actividades recomendadasProbar herramientas: Enterprise Architect (1)

51

52

Actividades recomendadasProbar herramientas: Enterprise Architect (2)

Actividades recomendadasProbar herramientas CASE: Eclipse (1)

• Plugins

53

Actividades recomendadasProbar herramientas CASE: Eclipse (2)

• Plugins

54

top related