Metodologías de ingeniería Web dirigida por modelos
Upcoming SlideShare
Loading in...5
×
 

Metodologías de ingeniería Web dirigida por modelos

on

  • 548 views

 

Statistics

Views

Total Views
548
Views on SlideShare
548
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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
  • 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
  • 1. Ingeniería web Nº especial de la revista IEEE Multimedia, Marzo, 2001 3
  • 1. Ingeniería web Origen del término Nº especial de la revista IEEE Multimedia, Marzo, 2001 4
  • 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
  • 1. Ingeniería web ¿es una nueva disciplina? Nº especial de la revista IEEE Multimedia, Marzo, 2001 6
  • 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? Discusión: Ingeniería documental vs Ingeniería hiperemedia (Revista Novática, 2001) 8
  • • 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
  • 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
  • 1. Ingeniería web Artículo de referencia El resto de la presentación es un resumen de este artículo: 11
  • 1. Ingeniería web Metodologí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. 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 2. MDWE Transformaciones MDA Fuente: Enterprise Architect 23
  • 2. MDWE Transformaciones MDA: ejemplo PIM Fuente: Enterprise Architect 24
  • 2. MDWE Transformaciones MDA: ejemplo PSM Java Fuente: Enterprise Architect 25
  • 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, 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
  • 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
  • 3. Metodologías MDWE OOWS-Suite • Herramienta CASE: • OOWS-Suite (Integranova) 29
  • 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
  • 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
  • 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
  • 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
  • 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 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
  • 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 OOWS Fase de especificación del sistema 37
  • 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
  • 5. Ejemplo metodología OOWS Modelo de estructural o de objetos (PIM) 39
  • 5. Ejemplo metodología OOWS Modelo dinámico (PIM) Modelo dinámico de la clase “Cesta” 40
  • 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
  • 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
  • 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
  • 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
  • 5. Ejemplo metodología OOWS Fase de desarrollo de la solución 45
  • 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
  • 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 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
  • 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
  • Actividades recomendadas Probar herramientas CASE MDA • Enterprise Architect • Eclipse • Otras . . . 50
  • Actividades recomendadas Probar herramientas: Enterprise Architect (1) 51
  • Actividades recomendadas Probar herramientas: Enterprise Architect (2) 52
  • Actividades recomendadas Probar herramientas CASE: Eclipse (1) • Plugins 53
  • Actividades recomendadas Probar herramientas CASE: Eclipse (2) • Plugins 54