La Electricidad Y La Electrónica Trabajo Tecnología.pdf
Metodologías de ingeniería Web dirigida por modelos
1. 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
2. Contenido
1. Ingeniería web
2. Ingeniería web dirigida por modelos: Model-Driven Web
Engineering (MDWE)
–
Model-Driven Architecture (MDA)
3. Metodologías MDWE
4. Comparación de metodologías MDWE
–
–
–
–
–
–
Soporte MDA
Complejidad de los metamodelos
Tipos de modelos
Transformaciones de modelos
Compatibilidad.
Herramientas
5. Ejemplo: metodología OOWS
6. Conclusiones
2
5. 1. Ingeniería web
Tema de discusión
Discusión: Ingeniería web vs Ingeniería del software
Nº especial
de la revista
IEEE Multimedia,
Marzo, 2001
5
6. 1. Ingeniería web
¿es una nueva disciplina?
Nº especial
de la revista
IEEE Multimedia,
Marzo, 2001
6
7. 1. Ingeniería web
¿Ingeniería documental?
Discusión: Ingeniería documental vs Ingeniería
hiperemedia (Revista Novática, 2001)
7
8. 1. Ingeniería web
¿Ingeniería documental?
Discusión: Ingeniería documental vs Ingeniería hiperemedia (Revista Novática, 2001)
8
9. •
1. Ingeniería web
Relación con otras ingenierías
Cuatro tipos de ingeniería
Ingeniería
documental
Ingeniería
hipermedia
Ingeniería
del software
Ingeniería
web
9
10. 1. Ingeniería web
Relació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.
Ingeniería
hipermedia
Ingeniería
documental
Ingeniería
web
Ingeniería
del software
10
13. 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
14. 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
15. 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
16. 2. MDWE
Metamodelos
• 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
16
17. 2. MDWE
Ejemplo 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
18. 2. MDWE
Modelos que cumplen el metamodelo
Página
de inicio
Sitio web de la UAH
url: www.uah.es
Página
de
historia
Sitio web de la UAH
url: www.uah.es
Página de inicio
Página de historia
18
19. 2. MDWE
Compatibilidad 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
20. 2. MDWE
Herramientas 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
21. 2. MDWE
Model-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
22. 2. MDWE
Niveles 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
26. 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
27. 3. Metodologías MDWE
• W2000: Establece 4 metamodelos:
Information, Navigation, Presentation, Dynam
ic Behavior.
• UWE. Establece 5 metamodelos:
Requirements, Content, Navigation, Presenta
tion, 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
28. 3. Metodologías MDWE
OOWS
•
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
30. 4. Comparación de metodologías MDWE
MDA 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
31. 4. Comparación de metodologías MDWE
Complejidad 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
32. 4. Comparación de metodologías MDWE
Tipos de modelos
• Hay un conjunto de tipos de modelos que aparecen en
la mayoría de las metodoologías MDWE
32
33. 4. Comparación de metodologías MDWE
Modelos 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
34. 4. Comparación de metodologías MDWE
Transformaciones de modelos
• Las transformaciones automáticas ayudan a
mantener la trazabilidad entre los modelos
34
35. 4. Comparación de metodologías MDWE
Compatibilidad
• 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
36. 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
38. 5. Ejemplo metodología OOWS
Modelo 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.
Fuente:
http://cic.puj.edu.co/wiki/lib/exe/fetch.php?
media=materias:oows.pdf
38
40. 5. Ejemplo metodología OOWS
Modelo dinámico (PIM)
Modelo dinámico de la clase “Cesta”
40
41. 5. Ejemplo metodología OOWS
Modelo funcional (PIM)
• 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”:
41
42. 5. Ejemplo metodología OOWS
Modelo 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, Alb
umes y Facturas).
42
43. 5. Ejemplo metodología OOWS
Modelo 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
44. 5. Ejemplo metodología OOWS
Modelo 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
46. 5. Ejemplo metodología OOWS
Modelo 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
47. 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
48. Actividades recomendadas
Lectura 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
49. Actividades recomendadas
Revisió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