SlideShare a Scribd company logo
1 of 234
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 1
28/02/2023
Ingeniería Web dirigida
por modelos
Unidad 3
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo
para uso de los cursos de Ingeniería Web
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 2
28/02/2023
Objetivo general de la Unidad 3
Caracterizar la Ingeniería Web dirigida por modelos para la
construcción de aplicaciones web independientes de la
plataforma.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 3
28/02/2023
Contenido
• Introducción
• MDA
• Model-driven Web Engineering
• MDD y MBE
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 4
28/02/2023
Web Engineering y Web Applications
• Web Engineering
▪ “El enfoque sistemático, disciplinado y
cuantificable para el desarrollo, operación y
mantenimiento de aplicaciones web.”
• Web Application
▪ “Un sistema de información que utiliza
tecnologías y plataformas basadas en la web y
que admite la interacción a través de interfaces
basadas en la web.”
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 5
28/02/2023
Categorías de Aplicaciones Web
Doc-Centric
Interactive
Transactional
Workflow
Based
Social Web
Collaborative
Ubiquitous
Portal
Oriented
Semantic
Web
Development History
Complexity
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 6
28/02/2023
Web-based Applications
• Web-based Applications Architectural
Patterns
▪ Thin Web Client (cliente fino)
• Funcionalidades mínimas del lado del cliente
(navegador web)
• La lógica empresarial reside en el lado del servidor
▪ Thick Web Client (cliente grueso)
• Scripting del lado del cliente y objetos personalizados
(controles, applets,...)
• Una cantidad significativa de lógica empresarial reside
en el cliente
▪ “Web Delivery”
• Los clientes participan en un sistema de objetos
distribuidos
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 7
28/02/2023
Web-based Enterprise Layers
HTTP
Web Server
Applications
SQL DBMS,
Client/Server
& Legacy
Applications
Client
Applications
Business and data
rules go here
User interface and
application logic go
here
The data
goes here
EAI Applications &
B2B E-Commerce
Web
Browser
Standard Middleware
Connects: applications
to components, and
components to
components
XML
Corba
EJB
DCOM
MQ
Supply Chain
Enterprise
Components
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 8
28/02/2023
Web-based Enterprise Architecture
CORBA ORB/CORBA Services
Client Tier
Server Tier
Back-end
Systems
DB DB
DB
servlets
EJBs
JSPs
Browsers
Móviles
Application
servers
Applets,
Applications
Web Services
clients
J2EE Container
Client
Apps
External
Web Services
External
Web Services
Middleware
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 9
28/02/2023
From three to a six layer architecture
Three layers model Six layers model (Refined)
Data access
Device-independent
Presentation / Navigation
Process control
(Functionality)
Business Objects
Presentation / Navitation
GUI
Physical data
User interface
Business Logic
Data
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 10
28/02/2023
Introducción
La Ingeniería Guiada por modelos es un nuevo paradigma que da
más importancia a los conceptos que a la forma de representarlo.
La idea es detectar los conceptos y representarlos de manera
abstracta.
Tras esto se definen las relaciones entre estos conceptos.
Basándose en los conceptos se pueden definir transformaciones.
Concepto 1 Concepto 2
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 11
28/02/2023
¿Filosofamos un poco?
MBE vs MDE vs MDD vs MDA
• MBE: “model-based engineering” o “model-based
development”
▪ versión más suave de model-driven engineering (MDE).
▪ MBE describe un proceso donde los modelos software
tienen un papel importante pero donde no son
necesariamente los motores del proceso de desarrollo (es
decir, no “dirigen” el proceso como en MDE).
▪ Un ejemplo sería un proceso donde en la fase de análisis
se utilizan modelos para especificar el sistema pero
después estos modelos no se utilizan para automatizar la
creación de código.
▪ El modelo es importante pero no es el “conductor” del
proceso. Por lo tanto, MBE puede ser visto como un
superconjunto de MDE.
▪ Todos los procesos model-driven (MDE) son model-based
(MBE) pero al revés no es cierto.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 12
28/02/2023
¿Filosofamos un poco?
MBE vs MDE vs MDD vs MDA
• MDD: Model Driven Development
▪ Es un paradigma de desarrollo que considera los modelos
software como principal elemento del proceso de desarrollo.
▪ Normalmente, además, a partir de estos modelos se genera de
una forma semi-automática el código.
• MDA: Model-Driven Architecture
▪ es la visión particular que tiene OMG de MDD y por lo tanto se
basa en el uso de los estándares OMG.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 13
28/02/2023
¿Filosofamos un poco?
MBE vs MDE vs MDD vs MDA
• MDA puede ser visto como un subconjunto de MDD.
• En cambio, MDE sería un superconjunto de MDD ya que
como la E de MDE sugiere, MDE va más allá de las
actividades de desarrollo y incluye también otros procesos
adicionales de la ingeniería del software como la evolución
del sistema o el model-driven reverse engineering de un
sistema legado, siempre basándose en el uso de modelos.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 14
28/02/2023
Contenido
• Introducción
• MDA
• Model-driven Web Engineering
• MDD y MBE
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 15
28/02/2023
¿Por qué modelamos?
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 16
28/02/2023
¿Por qué modelamos?
• Define una vista abstracta de una entidad del
mundo real
▪ Encontrar y descubrir objetos/conceptos en un
dominio
▪ Asignación de responsabilidades a los objetos
• Herramienta de pensamiento
▪ Reducción de la complejidad
▪ Permite documentar las decisiones de diseño
• Medio de comunicación en su equipo de
desarrollo
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 17
28/02/2023
Depues de todo... ¿Por qué modelamos?
• El punto real del desarrollo de software es
abordar la codificación.
• Los diagramas son, después de todo, solo
imágenes bonitas.
• Ningún usuario te va a agradecer las fotos
bonitas; lo que un usuario quiere es un software
que ejecute
M. Fowler, ”UML Distilled”, 1st edition, Addison Wesley, 1997
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 18
28/02/2023
Unified Modeling Language (UML)
• “El lenguaje de modelado unificado es un lenguaje
visual para especificar y documentar los artefactos
de los sistemas.”
• Idioma de elección (y estándar ISO) para la
notación de diagramas en el desarrollo OO
▪ Estructural – Diagramas de clase(domain
models)
▪ Comportamiento – Use Cases, Sequence
diagrams
• Actualmente en la versión 2.5, aunque muchos
analistas y diseñadores aún usan la 1.x
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 19
28/02/2023
Ciclo de vida del desarrollo de
software: práctica actual
Informal Formal
Mayormente
Texto
Diagramas
& Texto
Diagramas
& Texto
Código
Requerimientos
Análisis
Diseño
Código
Pruebas
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 20
28/02/2023
Problemas con las prácticas actuales
• Productividad
▪ el código es la fuerza impulsora(driving force)
▪ XP: solo codificación y prueba. ¿Cómo puede un extraño entender cómo funciona el
código?
• Portabilidad
▪ Frecuentemente salen nuevas tecnologías
▪ Adoptado porque lo exigió, resuelve problemas actuales, no admite tecnologías más
antiguas
▪ Complejidad empeorada por diferentes versiones, falta de compatibilidad con
versiones anteriores
• Interoperabilidad
▪ Los sistemas no existen de forma aislada.
▪ Los componentes individuales usan las mejores tecnologías, pero necesitan
interactuar
• Mantenimiento y documentación
▪ tarea que consume mucho tiempo
▪ el beneficio es “para otros”
▪ “el código es la documentación” pero la documentación de alto nivel es imprescindible
para los sistemas complejos
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 21
28/02/2023
El rol del modelo en el desarrollo
• Modelos como sketch
▪ Para comunicar ideas y alternativas
▪ Esencia: Selectividad
▪ “Sketchers” no tienen que preocuparse mucho por los modelos
• Modelos como planos (blueprint)
▪ Expone todas las decisiones de diseño (quizás de un área en particular)
▪ Esencia: Integridad (Completeness) – la programación debería ser
bastante sencilla gracias a los modelos.
▪ Issue of reverse engineering
• Modelos como programas
▪ Las aplicaciones se generan automáticamente
▪ Esencia : los modelos se convierten en el código fuente
grado
de
model-drivenness
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 22
28/02/2023
Modelo - Interacción de código
Model Model Model
Code Code
Code
Model
Code
Code only Code
Visualization
Roundtrip
Engineering
Model-centric /
Model-driven
Model only
"Models as Code"
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 23
28/02/2023
Model-Driven ...
• Desarrollo sistemático en base a modelos
• Los modelos se convierten en los artefactos de
primera mano en el ciclo de desarrollo de software
• Conceptos claves
▪ abstracción del detalle de implementación
▪ transformaciones sistemáticas
• Terminología relacionada
▪ Model Driven [Software] Engineering (MDE),
▪ Model Driven [Software] Development (MDD/MDSD),
▪ Model Driven Architecture (MDA)
▪ Model Driven Web Engineering (MDWE)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 24
28/02/2023
MDD: Desarrollo Basado en Modelos
• Significa que modelos ejecutables sean el “código fuente”
principal de los desarrollos.
• Se lo llama Model-Driven Architecture (MDA) o Model-Driven
Development (MDD)
▪ “There are many views and opinions about what MDA is and is
not.” (Alan Brown, Staff, IBM)
• Tratan la provisión de herramientas basadas en modelos,
para creación, transformación, testeo, análisis, simulación,
ing. inversa, etc.
▪ Ejemplo de MDD para aplicaciones embebidas generales:
Telelogic Rhapsody (de IBM)
• A este tipo de herramientas antes se las categorizaba como
CASE (Computer-Aided Software Engineering)
▪ El término CASE fue tan abusado que ahora se lo utiliza poco.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 25
28/02/2023
Herramientas asistidas por computadora
para el desarrollo de sistemas (CASE).
• La CASE (Computer Aided Software Engineering,
Ingeniería de Software Asistida por Computadora) se
emplea con bastante frecuencia en la comunidad de
sistemas de información para diseñar la ingeniería de
sistemas asistida por computadora o la ingeniería de
software asistida por computadora.
• Componentes de CASE: Las herramientas de tipo
CASE incluyen los siguientes cinco componentes:
▪ Herramientas para diagramación
▪ Un deposito de información
▪ Generadores de interfaces
▪ Generadores de código
▪ Herramientas de administración
https://www.enter.co/especiales/enterprise/genexus-permite-crear-apps-sin-saber-de-codigo/
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 26
28/02/2023
¿Qué es Model Driven Architecture?
• MDA es definido y desarrollado por el Object Management
Group (OMG) desde Marzo del 2001
• MDA es:
▪ "Model-Driven …"-framework para desarrollo de software,
definido por el OMG
▪ open, vendor-neutral approach to interoperability using OMG's
modeling specifications:
• Unified Modelling Language (UML), Meta-Object Facility (MOF) and
Common Warehouse Model (CWM)
• Principales ideas:
▪ Aborda el ciclo de vida completo del desarrollo del sistema
▪ Especificación separada de la implementación
▪ Especificar un sistema que sea independiente de una plataforma
▪ Generación de código
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 27
28/02/2023
MDA: Definición
MDA is an approach to system development, which increases
the power of models in that work. It is model driven because it
provides a means for using models to direct the course of
understanding, design, construction, deployment, operation,
maintenance and modification.
No hay que mezclar los conceptos. MDA no es lo mismo que MDE
Model Driven Archietecture (MDA) es la estandarización de la OMG
como platarforma para soportar MDD.
MDA se basa en separar la especificación de los detalles de
implementación.
MDA ofrece una aproximación que consiste en paso a paso ir
consiguiendo modelos basado en transformaciones.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 28
28/02/2023
¿MDA es arquitectura?
• La arquitectura basada en modelos (MDA) es
notable (para mí) porque sus descripciones
parecen tener muy poco que ver con la
arquitectura.
• Prefiero el término “desarrollo dirigido por
modelos” (MDD). El concepto fundamental está en
la traducción de modelos a soluciones.
• Entonces, si este importante nuevo paradigma
puede eludir la arquitectura, ¿puede la
arquitectura de software ser tan importante?
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 29
28/02/2023
¿MDA es arquitectura?
• En algunas comunidades de TI, la arquitectura de
software parece haber perdido importancia en la
actualidad.
• Los “chunks (trozos)" son muy grandes y
sofisticados, y van juntos de manera precableada.
Crear la arquitectura de software no es una tarea
compleja.
• Algunas empresas de TI dicen que sus decisiones
arquitectónicas consisten en elegir entre las
soluciones de dos proveedores competidores.
• Una vez que hacen eso, todo lo demás sigue.
¿Puede la arquitectura de software ser tan
importante?
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 30
28/02/2023
El papel de la arquitectura de software
en la ingeniería de software
• La historia de la ingeniería de software se puede
ver como una espiral cada vez mayor de
expresividad del lenguaje, hacia espacios
problemáticos y lejos de los detalles de la
plataforma.
• Cuando aparece una nueva forma de expresar los
problemas, los programas son inicialmente muy
simples, su estructura es muy simple.
• … pero siempre aprendemos a expresar
soluciones cada vez más complejas usando los
lenguajes que tenemos.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 31
28/02/2023
Palabras finales sobre arquitectura…
• A medida que las soluciones escritas con estos nuevos
mega-lenguajes de programación se vuelvan cada vez más
complejos, la arquitectura estará allí para ayudar a los
"arquitectos de soluciones" (el término actual para quienes
programan en estos superlenguajes) a
▪ imponer orden en el caos
▪ asegurarse de que se logren los atributos de calidad
▪ estructurar la solución que se está dando a los sistemas
informáticos subyacentes.
• Veremos un movimiento continuo hacia el soporte de
abstracciones de espacio de problemas más grandes, más
complejas y más variadas, respaldadas por una tecnología de
compilación o traducción más sofisticada que permitirá que
los "lenguajes de especificación" o "lenguajes de modelado"
de hoy continúen siendo los lenguajes de programación del
mañana.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 32
28/02/2023
Volviendo a MDA…
• Enfoque de desarrollo basado en modelos
▪ brinda significado al uso de modelos
▪ dirigen el curso del: conocimiento, diseño,
construcción, distribución, operación, mantenimiento
y modificación del sw
• MDA es un estándar que ya no es tan reciente del
OMG (Object Management Group)
▪ versión 1.0.1 junio 2003
• Principales objetivos de MDA
▪ Portabilidad
▪ Interoperabilidad
▪ reusabilidad
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 33
28/02/2023
MDA: un chico nuevo en la ciudad
• Nueva orientación para las
actividades de OMG
▪ Nuevo paso más allá de la OMA
▪ Un framework para un conjunto de
normas en apoyo de MDD
• Los modelos son el ¡punto central!
▪ El middleware de destino no es importante!
• Focus on Platform Independent Models (PIM)
▪ Sin detalles del middleware
• Abstract Platform Specific Models (PSM)
▪ Incluyendo todos los detalles del middleware
• Define las transformaciones de PIM a PSM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 34
28/02/2023
MDA: principios
• Inspirado por:
▪ La amplia aceptación pública de UML
▪ OMG va más allá del middleware
(CORBA)
▪ La disponibilidad de tecnologías MDD
maduras
• Propósito:
▪ Permitir el interfuncionamiento entre herramientas
complementarias
▪ Fomentar la especialización de herramientas y métodos.
▪ Proporcionar orientación para MDD
• MDA overview papers y recursos:
▪ http://www.omg.org/mda
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 35
28/02/2023
MDA: beneficios (esperados)
• Protege la inversión en software de los
cambios y evoluciones tecnológicos
▪ Preserva los PIM cuando aparece un
nuevo middleware!
• Permite manejar sistemas más grandes
y complejos
▪ A través de la separación de niveles/concerns
• Permite la integración de aspectos separados desde el principio, y
de manera uniforme
▪ security, reliability, performance, ...
• Permite que los sistemas heredados se integren en la cadena MDA
• Permite la simulación e implementación automática de modelos
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 36
28/02/2023
MDA: Conceptos (1/2)
• Architecture
▪ “La arquitectura de un sistema es una especificación de las partes y
conectores del sistema y las reglas para las interacciones de las
partes que usan los conectores.”
• Viewpoint
▪ “Un Viewpoint de un sistema es una técnica de abstracción que
utiliza un conjunto seleccionado de conceptos arquitectónicos y
reglas de estructuración, con el fin de centrarse en preocupaciones
particulares dentro de ese sistema.”
• View
▪ “A viewpoint model o vista de un sistema es una representación de
ese sistema desde la perspectiva de un punto de vista elegido.”
• Implementation
▪ “Una implementación es una especificación que proporciona toda la
información necesaria para construir un sistema y ponerlo en
funcionamiento.”
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 37
28/02/2023
MDA: Conceptos (2/2)
• Platform
▪ “Un conjunto de subsistemas/tecnologías que brindan un
conjunto coherente de funcionalidad a través de interfaces y
patrones de uso específicos que cualquier subsistema que
dependa de la plataforma puede usar sin preocuparse por los
detalles de cómo se implementa la funcionalidad proporcionada
por la plataforma.”
• Platform Independent Model (PIM)
▪ “Un modelo de un subsistema que no contiene información
específica de la plataforma o la tecnología que se utiliza para
realizarlo.”
• Platform Specific Model (PSM)
▪ “Un modelo de un subsistema que incluye información sobre la
tecnología específica que se utiliza en su realización en una
plataforma específica y, por lo tanto, posiblemente contiene
elementos que son específicos de la plataforma..”
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 38
28/02/2023
MDA: modelos (1/5)
• Principales conceptos de MDA
Computation Independent Model
(= modelo de dominio)
Platform Independent Model
(funcionalidad y comportamiento del sistema, sin
detalles de tecnología)
Platform Specific Model
(mapeo a diversas tecnologías de middleware,
generado a partir del PIM, aplicando mapeos
standard de la OMG. Código parcialmente autom.)
CIM
PIM
PSM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 39
28/02/2023
MDA: modelos (2/5)
MDA contempla cuatro
modelos:
Platform
Specific
Models
(PSM)
``Big Picture´´
Content
Model
Platform Independent
Design Models (PIM)
Business Models
(CIM)
Navigation
Model
Process
Model
Presentation
Model
Requirements
Models
Code
CIM to PIM
Transformation
PIM to PIM
Transformation
PIM to PSM
Transformation
PSM to Code
Transformation
Model for
J2EE
Model for
.NET
…
Platform
Specific
Models
(PSM)
``Big Picture´´
Content
Model
Platform Independent
Design Models (PIM)
Business Models
(CIM)
Navigation
Model
Process
Model
Presentation
Model
Requirements
Models
Code
CIM to PIM
Transformation
PIM to PIM
Transformation
PIM to PSM
Transformation
PSM to Code
Transformation
Model for
J2EE
Model for
.NET
…
✓ CIM: Computation
independent model
✓ PIM: Platform
independent model
✓ PSM: Platform
specific model
✓ Code
[Koch, Zhang, Escalona 2006]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 40
28/02/2023
• Ejemplo de MDA
▪ Modelo conceptual
UNICO
▪ Modelo funcionalidad
y comportamiento
UNICO
PSM
(distintas
plataformas)
y
Deployment
(Code)
CIM
PIM
Modelo
Corba
Modelo
Java/EJB
Modelo
XML/SOAP
Otros
Modelos
Corba Java/EJB XML/SOAP Otros
MDA: modelos (3/5)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 41
28/02/2023
MDA: modelos (4/5)
• Computation Independent Model (CIM)
▪ A view from a system from the Computational Independent
Viewpoint.
▪ Un CIM Se centra en el sistema y su entorno; los detalles de la
estructura del sistema están ocultos o aún no se han
determinado.
▪ Un CIM a veces se denomina modelo de dominio o modelo de
negocio, y se especifica utilizando un vocabulario familiar para
los profesionales del dominio en cuestión.
▪ Puede ocultar mucha o toda la información sobre el uso de
sistemas automatizados de procesamiento de datos.
• Platform Independent Model (PIM)
▪ Un modelo independiente de la plataforma es una vista de un
sistema desde un platform independent viewpoint.
▪ Un PIM exhibe independencia de plataforma y es adecuado
para su uso con varias plataformas diferentes de tipo similar.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 42
28/02/2023
MDA: modelos (5/5)
• Platform Specific Model (PSM)
▪ Un modelo específico de plataforma es una vista de un sistema
desde el platform specific viewpoint.
▪ Un PSM combina las especificaciones en el PIM con los detalles
que especifican cómo ese sistema usa un tipo particular de
plataforma.
• Platform Model (PM)
▪ Un modelo de plataforma proporciona un conjunto de conceptos
técnicos, que representan los diferentes tipos de partes que
componen una plataforma y los servicios proporcionados por
esa plataforma.
▪ También proporciona, para su uso en un modelo específico de
plataforma, conceptos que representan los diferentes tipos de
elementos que se utilizarán para especificar el uso de la
plataforma por parte de una aplicación.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 43
28/02/2023
MDA: Ejemplos de modelos
• CIM
▪ “Se debe dar prioridad al envío de los entregables más
antiguos”
• PIM
▪ “Los Entregables se ordenan según fecha de embarque”
• PSM/OOD
▪ “Los entregables se ordenan para el envío() en orden
creciente, utilizando su atributo de fecha”
• PSM/OOP
▪ “Use quicksort() para ordenar Entregables, usando
Entregable.fecha como clave de ordenamiento, antes de
pasarlos a envío()”
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 44
28/02/2023
MDA: Ciclo de vida de desarrollo
• PIM: Platform Independent Model
▪ Describe el sistema desde una perspectiva
empresarial
• PSM: Platform Specific Model
▪ Especifica el sistema en términos de construcciones
disponibles en una tecnología de implementación
específica
• Enfoque transformacional
PIM Code
Transformation
Tool
Transformation
Tool
PSM
PSM
PSM
PSM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 45
28/02/2023
Ciclo de vida del desarrollo de software: práctica
de MDA
Code
Mayormente
Texto
Requiremientos
Análisis
Diseño
Código
Prueba
Transformational
Steps
Informal Formal
PSM
PIM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 46
28/02/2023
Transformaciones de modelos: MDA Pattern
• La transformación de
modelos es el proceso
de convertir un modelo
en otro modelo del
mismo sistema
• El MDA pattern incluye
(al menos):
▪ un PIM,
▪ un Platform Model,
▪ un Transformation, y
▪ un PSM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 47
28/02/2023
Ejemplos de transformaciones MDA
UML Model (PIM)
<Auto>
<Color> Red </Color>
<Door> 4 </Door>
<Engine> 2 </Engine>
</Auto>
XMI Document (PSM)
XMI
<!Element Auto
(Color*,
Door*,
Engine*)>
XMI DTD, Schema (PSM)
interface Auto
{
};
IDL, Java… (PSM)
Class Auto
{public String color;
public int Door;
public int Engine;
}
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 48
28/02/2023
Defina las transformaciones
Aplicando el MDA pattern
• Ya sea haciendo marking a los elementos
PIM usando las marks definidas por los
mapeos(mappings)
• O usando reglas de transformación entre
los metamodelos PIM (los lenguajes PIM)
y los metamodelos de las plataformas de
destino
1
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 49
28/02/2023
Marking
Aplicando el MDA pattern
UML Profiles can be
used to define the
marks and for marking
PIMs
MOF QVT languages
will define the
mappings
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 50
28/02/2023
Model mappings y marks
• Mappings
▪ Un MDA mapping provee especificaciones para la transformación de
un PIM en un PSM para una plataforma particular. El platform model
determinará la naturaleza del mapeo.
• Marks
▪ Model instance mappings definen marks
▪ Una mark representa un concepto en el PSM, que se puede aplicar a
un elemento del PIM para indicar cómo se va a transformar ese
elemento
• Templates
▪ Un mapeo también puede incluir templates, que son modelos
parametrizados que especifican tipos particulares de
transformaciones.
▪ Estas plantillas son como patrones de diseño, pero pueden incluir
especificaciones mucho más específicas para guiar la
transformación.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 51
28/02/2023
Ejemplo del resultado de un mapeo(mapping)
interface MyClass {
int getAttributeOne();
void setAttributeOne(int v);
int oneOperation();
}
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 52
28/02/2023
Resultado de una template de transformación
usando un Security Profile (ejemplo)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 53
28/02/2023
• Marks distinguen múltiples targets posibles
• Clase de marks
▪ Discriminators y enumerators
[ isRemote | isBoolean ]
▪ Quantities
( if ( numInstances < Q and frequency < F) LinkedList | HashTable )
▪ Inputs
( append “db_” to all operation names )
▪ ...
Marks
<<isLocal>>
PSM
<<isRemote>>
Invocación
Invocación
Remota
Invocación
Local
PIM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 54
28/02/2023
¿Y si no deseo usar marking del PIM?
Aplicando el MDA pattern
• Hasta ahora hemos visto que se marcan
elementos del PIM para indicar los
mapeos que se utilizarán para transformar
ese PIM en un PSM
• Sin embargo, también existe otro enfoque
llamado metamodel transformations,
donde un transformation engine es
usado
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 55
28/02/2023
Metamodelado y Metamodelo
• Metamodelado: es el análisis, diseño y
construcción de los metamodelos necesarios
para cubrir un determinado tipo de problemas,
así como las reglas y restricciones aplicables.
• Metamodelo: conjunto de conceptos del dominio
a modelar (metaclases) y las relaciones entre
ellos (metasociaciones).
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 56
28/02/2023
Metamodelo
• Un metamodelo describe la estructura
posible de los modelos (o lenguajes) de
forma abstracta
▪ Define las construcciones o elementos de un
lenguaje de modelado y sus relaciones
▪ Define las restricciones y las reglas de modelado
sobre los elementos
▪ No define la sintaxis concreta del lenguaje
• Un metamodelo define la sintaxis abstracta y
la semántica estática de un lenguaje de
modelado
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 57
28/02/2023
Metamodelado
Un modelo para describir un lenguaje de modelado
Clase
- nombre: string
Atributo
-nombre: string
- tipo: string
Empleado
- dni: integer
- edad: integer
Empresa
- cif: string
Metamodelo Modelo
Nombre de la
Clase
Nombre Tipo del
del Atributo
Atributo
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 58
28/02/2023
Metamodelado
• Los metamodelos y los modelos tienen una
relación clase-instancia
• Cada modelo es una instancia de un
metamodelo
• Para definir un metamodelo se necesita un
lenguaje de metamodelado que se describe
con un metametamodelo
• Para habilitar esto necesitamos
▪ Lenguajes de modelado
▪ Definiciones de transformación
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 59
28/02/2023
Definición de Lenguajes
modelo
Está
escrito en
metamodelo
es
Definido por
Lenguaje
Está
escrito en meta
lenguaje
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 60
28/02/2023
MDA Framework
Source
Model
Target
Model
Transformation
tool
Transformation
definition
Lenguaje Lenguaje
Está
escrito en Es usado
por
Está
escrito en
Meta lenguaje
Está
escrito en
Está
escrito en
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 61
28/02/2023
Definiendo Transformaciones
• Una definición de transformación mapea
▪ Elemento(s) desde el lenguaje de origen
• a
▪ Elemento(s) del lenguaje de destino
• basado en las respectivas definiciones del
lenguaje
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 62
28/02/2023
Source
Model
Target
Model
Transformation
tool
Transformation
definition
Lenguaje Lenguaje
Está
escrito en
Es usado
por
Está
escrito en
Meta language
Está
escrito en
Está
escrito en
Transformation
definition language
Está
escrito en
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 63
28/02/2023
MDA Framework Completo
• Los lenguajes están definidos por modelos
▪ Estos son metamodelos, p.ej. UML
• Estos modelos están escritos en un
lenguaje de metamodelado:
▪ MOF es el lenguaje de metamodelado de
OMG
• Transformation Definition Language
▪ MOF RfP para Query/Views/Transformations
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 64
28/02/2023
Metamodelos y Transformaciones
“es-instancia-de”
Refinamiento
PIM-PSM
Refinamiento PIM-PIMmetamodelo
PSM- PSMmetamodelo
“es-instancia-de”
PIM
PSM
Metamodelo
PIM
Metamodelo
PSM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 65
28/02/2023
Metaniveles vs. Niveles de Abstracción
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 66
28/02/2023
Hacia MOF…
• ¿Cómo definir un lenguaje de
metamodelado?
▪ Con un lenguaje de meta metamodelado
▪ ¿Y cómo definir un lenguaje de meta
metamodelado?
• Con un lenguaje de meta metametamodelado
– ¿Y cómo definir…?
• ¿Hasta cuándo seguir?
▪ Hasta disponer de un lenguaje capaz de describir
cualquier otro lenguaje (¡¡incluso a él mismo!!)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 67
28/02/2023
Meta Object Facility (MOF)
• Objetivo: Lenguaje “estándar” para
especificar metamodelos
• Subconjunto de UML
• Se utiliza para definir los metamodelos de
OMG (como por ejemplo el de UML)
• Versión actual: 2.5.1 (basado en UML 2)
▪ http://www.omg.org/spec/MOF/2.5.1/
▪ (Object Management Group, 2017)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 68
28/02/2023
Arquitectura de 4 niveles y UML 1.x
• El metamodelo UML 1.x era compatible
pero no se alineaba estrictamente a la
arquitectura de 4 niveles en la que cada
metamodelo es una instancia de un meta-
metamodelo.
• UML 2.0 está alineado con MOF, es una
instancia de MOF. El núcleo de UML y de
MOF comparten los elementos de
metamodelado.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 69
28/02/2023
Meta Object Facility (MOF)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 70
28/02/2023
Meta Object Facility (MOF)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 71
28/02/2023
Las cuatro capas de modelado
• OMG usa una arquitectura de 4 capas para sus
estándares.
CWM es un lenguaje de
modelado que está
diseñado específicamente
para modelar aplicaciones
de almacenamiento de
datos.
MOF - un lenguaje especial
que se utiliza para definir
todos los demás lenguaje
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 72
28/02/2023
Vista general de las capas M0-M3
M3
M2
M1
M0
MOF
Class
Column
Address
“Bilu”
<< instance of >>
<< instance of >>
<< instance of >>
MOF
Class
Table
Employee
“Joe”
<< instance of >>
<< instance of >>
<< instance of >>
MOF - UML MOF - CWM
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 73
28/02/2023
Meta Object Facility
MOF
• MOF captura la diversidad de estándares de
modelamiento para integrar diferentes tipos
de modelos y metadatos e intercambiarlos
entre diferentes herramientas.
• UML 2.0 está alineado con MOF, es una
instancia de MOF. El núcleo de UML y de
MOF comparten los elementos de
metamodelado.
• En UML 2.0 los conceptos de MOF y de UML
Superstructure derivan de conceptos de UML
Infrastructure
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 74
28/02/2023
MOF
• Las construcciones de modelamiento son un
subconjunto del núcleo de UML.
• Construcciones de modelamiento
▪ Clases, que modelan metaobjetos MOF.
▪ Asociaciones que modelan relaciones binarias entre
metaobjetos.
▪ Tipos de datos, que modelan tipos primitivos (Integer,
String,…)
▪ Packages, que modularizan los modelos.
• Especificaciones en OCL
• Lenguaje natural
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 75
28/02/2023
Perfiles UML
• Un perfil UML es una agrupación de elementos de modelado
(UML) que han sido adaptados para un propósito específico
«metaclase»
class
«metaclase»
Association
-color : Color
-peso : int
«enumeración»
Color
+green
+yellow
+blue
+red
<<estereotipo
>>
Weighed
<<profile>>
WeightsAndColors
<<estereotipo
>>
Colored
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 76
28/02/2023
Perfiles UML
• El objetivo de los perfiles es
• Proporcionar un mecanismo directo para adaptar un metamodelo
existente con constructores que son específicos para un dominio,
plataforma o método particular. Dichas adaptaciones se agrupan en un
perfil
• No es posible eliminar ninguna restricción de los
metamodelos de UML, pero es posible añadir nuevas
restricciones que son específicas para el perfil
• El paquete <<Profiles>> de UML contiene mecanismos que
permiten extender las metaclases de metamodelos existentes
para adaptarlos a diferentes propósitos. En este paquete se
definen los elementos
• Estereotipo
• Extensión
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 77
28/02/2023
Perfiles UML
•Elementos que se utilizan en la definición de perfiles
• Estereotipo. Define cómo se puede extender una
metaclase de UML
• Extensión. Se utiliza para indicar que las propiedades de
una metaclase se extienden a través de un estereotipo
• Definición Etiquetada. Especifican nuevos tipos de
propiedades que pueden asociarse a elementos de
modelado
• Restricción. Pueden asociarse a cualquier elemento de
modelado para redefinir su semántica
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 78
28/02/2023
Perfiles UML
• Ejemplo sencillo de un Perfil UML
<<metaclass>>
Class
-resolution : int
<<stereotype>>
Clock
estereotipo
extensión
definición etiquetada
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 79
28/02/2023
Perfiles UML
• Un ejemplo más complejo
«metaclase»
class
«metaclase»
Association
-color : Color
<<profile>>
WeighsAndColors
<<estereotipo
>>
Colored
-weigh : int
<<estereotipo
>>
Weighed
+green
+yellow
+blue
+red
«enumeración»
Color { context UML::InfrastructureLibrary
::
Core::Constructs::Association inv :
self.isStereotyped(“Colored”) implies
self.connection->forAll(isStereotyped(
“Colored”) implies color =self.color)}
extensión estereotipo
restricción
definición
etiquetada
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 80
28/02/2023
Perfiles UML
• Estereotipos
• <<Colored>> Proporcionan color a un elemento UML. Solo las clases
y las asociaciones pueden colorearse
• Definición Etiquetada: color, de tipo Color (tipo Enumerado definido en el
perfil). Indica el color de cada clase o asociación que haya sido etiquetada
como Colored
• <<Weighed>> Proporcionan peso a un elemento UML. Solo las
asociaciones pueden tener asociado un peso
• Definición Etiquetada: weigh, de tipo integer e indica el peso de cada
asociación que haya sido estereotipada como Weighted
• Restricción sobre la Asociación
• “Si dos o más clases están unidas por una asociación coloreada, el color
de las clases debe coincidir con el de la asociación”
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 81
28/02/2023
Perfiles UML
• Instanciación del Perfil WeighsAndColors
<<Colored>>
Ciudad
<<Colored>>
Provincia
<<Colored, Weighed>>
Pertenece
<<Colored>> color = rojo
<<Colored>> color = rojo
<<Weighed>> weigh = 10
<<Colored>> color = rojo
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 82
28/02/2023
Perfiles UML 2.0
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 83
28/02/2023
Transformaciones de metamodelo
• Un enfoque alternativo al uso de marks
(tomado del Perfil UML que define la
Plataforma)
▪ Mas poderoso
▪ Mas general
• La base de las propuestas QVT
• Actualmente, la opción preferida
▪ Deben definirse las transformaciones entre los
diferentes metamodelos:
• UML<~>Java, UML<~> WSDL, etc.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 84
28/02/2023
Metamodelo UML (sobre-simplificado)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 85
28/02/2023
Metamodelo Java (simplificado)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 86
28/02/2023
UML to Java transformation (ATL)
P2P
G2s
Ae2F
C2C
I2I
A2F
OM2M
Pr2Pr
Dt2Pt
[Bezivin, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 87
28/02/2023
WSDL Metamodel
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 88
28/02/2023
UML to WSDL transformation (ATL)
Dt2T
P2D
C2T
P2Part
I2Pt
O2O
[Bézivin, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 89
28/02/2023
Limitaciones de los metamodelos MOF
• En MDDs, los diferentes lenguajes de
modelado y de programación deben definirse
en forma consistente y precisa.
• La semántica de MOF está definida mediante
UML/OCL:
▪ UML y OCL son imprecisos y ambiguos para
verificación, simulación y validación.
▪ Si bien OCL es un lenguaje textual su contexto
sintáctico está determinado gráficamente
▪ OCL no tiene el sólido background de los
lenguajes formales
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 90
28/02/2023
Lenguajes formales versus OCL
• Lenguajes formales
– Sintaxis
– Semántica que
describe los modelos
asociados a la
especificación
– Sistema de
inferencia que
permite describir
deducciones que
pueden hacerse
desde la
especificación formal
• OCL
– El contexto sintáctico
de OCL está
determinado
gráficamente.
– Semántica (notación
matemática en un
estilo de teoría de
conjuntos)
– No tiene cálculo de
pruebas, deducción
automatizada
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 91
28/02/2023
Lenguajes formales versus OCL
• OCL
▪ Análisis sintáctico y de tipos.
▪ Validación dinámica de invariantes,
precondiciones y postcondiciones generando
“instantáneas” de un modelo y
comparándolas con el modelo especificado.
Deducciones lógicas
Síntesis y verificación de código
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 92
28/02/2023
Formalización de MOF
• Para lograr un alto grado de
automatización en herramientas CASE la
semántica de MOF debería ser precisa
Automatizar Formalizar
• Formalización de MOF
▪ Diagramas estáticos UML
▪ OCL
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 93
28/02/2023
Formalización de MOF
• En qué lenguaje?
▪ Textual y formal.
▪ Alineado a MOF
• MDD involucra diferentes lenguajes de
modelado y de programación que
deberían estar alineados con MOF y
definidos en forma precisa y consistente.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 94
28/02/2023
Formalización de MOF
• Interoperabilidad entre diferentes
lenguajes formales
Metamodelos
MOF Leng.Formales
Leng.Programación
Lenguaje
Formal
intermedio
Transformaciones automáticas
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 95
28/02/2023
Metamodel transformation(PIM ➔ PSM)
Aplicando el MDA pattern
MOF QVT
languages
define the
transformations
2
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 96
28/02/2023
Transformaciones MDA — detallado
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 97
28/02/2023
Ejemplo de transformación
Attribute
name: String
type: String
UML
AtoX
Element
name: String
Attribute
name: String
value: String
XML
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 98
28/02/2023
La relación y el mapeo
relation AtoX {
domain { (UML.Attribute) [name = n, type = t] }
domain { (XML.Element) [
name = "Attribute",
attrs = { (XML.Attribute) [name = "name", value = n],
(XML.Attribute) [name = "type", value = t] } ]
}
}
mapping MAtoX refines AtoX {
domain { (UML.Attribute) [name = n, type = t] }
body { (XML.Element) [
name = "Attribute",
attrs = { (XML.Attribute) [name = "name", value = n],
(XML.Attribute) [name = "type", value = t] } ]
}
}
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 99
28/02/2023
Una regla de transformación (1/2)
Transformation ClassToClass (UML, UML) {
source c1: UML::Class;
target c2: UML::Class;
source condition -- none
target condition -- none
mapping
try PublicToPrivateAttribute on
c1.features <~> c2.features;
-- everything else remains the same
}
Transformation PublicToPrivateAttribute (UML, UML) {
source
sourceAttribute : UML::Attribute;
target targetAttribute : UML::Attribute;
getter : UML::Operation;
setter : UML::Operation;
source condition
sourceAttribute.visibility = VisibilityKind::public;
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 100
28/02/2023
Una regla de transformación (2/2)
target condition
targetAttribute.visibility = VisibilityKind::private and
-- define the set operation
setter.name = 'set'.concat(targetAttribute.name) and
setter.parameters->exists( p | p.name = 'new'.concat(targetAttribute.name)
and p.type = targetAttribute.type ) and
setter.type = OclVoid and
-- define the get operation
getter.name = 'get'.concat(targetAttribute.name) and
getter.parameters->isEmpty() and
getter.returntype = targetAttribute.type;
mapping
try StringToString on
sourceAttribute.name <~> targetAttribute.name;
try ClassifierToClassifier on
sourceAttribute.type <~> targetAttribute.type;
}
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 101
28/02/2023
Aplicar una “template” de transformación
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 102
28/02/2023
Model merging
Aplicando el MDA pattern
3
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 103
28/02/2023
Información adicional
Aplicando el MDA pattern
▪ Ejemplo. Un estilo arquitectónico particular puede ser
especificado: se puede agregar información a los conectores
para especificar la calidad del servicio.
4
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 104
28/02/2023
Aplicando el MDA Pattern muchas veces
• El MDA pattern puede ser
[tiene que ser usualmente]
aplicado muchas veces en
sucesión
▪ Lo que es un PSM
resultante de una aplicación
del patrón, será un PIM en
la siguiente aplicación
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 105
28/02/2023
Ejemplo: Una aplicación multimedia
Application’s
PIM
Application’s
CAM
Application’s
DAOP model
Application’s
EDOC model
CORBA Im-
plementation
UML Profile
for CAM
UML Profile
for CORBA
UML Profile
for EDOC
UML Profile
for DAOP
Transf. 2
Transf. 1
Transf. 3
Transf. 4
PIM
CORBA
model
CAM
model
DAOP
model
EDOC
model
CORBA
Implem.
Transf. 5
[Fuentes et al., 2003]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 106
28/02/2023
Sistemas Multi-plataforma
• Muchos sistemas
son [pueden ser]
construidos para más
de una plataforma
• Una MDA
transformation puede
usar marks de varios
Platform Models para
transformar
un PIM en un PSM
con partes del sistema
sobre muchas
plataformas diferentes
Platform-
Independent
Model
CORBA
Model
Java/EJB
Model
CORBA
XML/SOAP
Model
Java/EJB XML/SOAP Other
Other
Model
Map PSM to application
interfaces, code, GUI descriptors,
SQL queries, etc.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 107
28/02/2023
Implementaciones Alternativas
Application’s
PIM
Application’s
CAM
Application’s
DAOP model
Application’s
EDOC model
CORBA Im-
plementation
UML Profile
for CAM
UML Profile
for CORBA
UML Profile
for EDOC
UML Profile
for DAOP
Application’s
DAOP model
Application’s
EDOC model
UML Profile for
EDOC
CORBA Im-
plementation
UML Profile for
CORBA
Application’s
DAOP model
EJB Im-
plementation
UML Profile for
EJB
[Fuentes et al., 2003]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 108
28/02/2023
MDA: Beneficios (1/3)
• Productividad
▪ menos código para escribir
▪ cambio de atención del código a PIM ➔ para resolver el
problema comercial
▪ PERO: ¡el desarrollo de transformaciones es difícil!
• Portabilidad
▪ PIM es por definición completamente portátil
▪ la portabilidad efectiva depende de las transformaciones
disponibles
• Interoperabilidad
• Documentación
▪ PIM cumple el rol de documentación de alto nivel
▪ Herramientas necesarias para mantener las relaciones entre
PIM – PSM y Código
▪ Todavía se requiere documentación para PIM, p.ej. motivación
de las elecciones
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 109
28/02/2023
MDA: Beneficios (2/3)
• Productividad
▪ Reducción de Código & pruebas(testing)
▪ Incrementa esfuerzo en el diseño
• Cambio de requisitos
▪ Prototipado rápido ➔ detectar cambios tempranamente
0%
10%
20%
30%
40%
50%
60%
Effort per project phase
0%
10%
20%
30%
40%
50%
Detected Requirements
Changes
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 110
28/02/2023
MDA: Beneficios (3/3)
• Interoperabilidad
PIM
PSM PSM
Code
Code
PSM
Bridge
Code
Bridge
First Transformation
First Transformation
Second
Transformation
Second
Transformation
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 111
28/02/2023
MDA: Ventajas
• Cada modelo es independiente del resto
▪ Definido por separado
▪ Cada modelo define sus propias "entidades" y reside en un nivel de
abstracción bien definido
• El desarrollo de software se convierte en model
transformation
▪ Cada paso transforma (uno o más) PIM de un nivel en (uno o más)
PSM del siguiente nivel
▪ ...Hasta que se alcance una implementación final del sistema (PSM)
• Transformaciones pueden ser automatizadas
• Ganamos modularidad, flexibilidad y facilitamos la evolución
• Los modelos de aplicaciones que capturan la lógica comercial y
la IP(Intellectual property) se convierten en corporate assets,
independientes de las tecnologías usadas en la implementación
final.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 112
28/02/2023
El proceso MDA: Resumen (1/2)
• El CIM de un sistema es preparado mostrando al sistema en
el ambiente en el cuál el operará
▪ Ese modelo ayudará a comprender exactamente qué debe hacer el
sistema, independientemente de cómo se implemente el sistema.
• Un PIM es construido
▪ Describe el sistema, pero no muestra detalles de su
implementación en ninguna plataforma
• El arquitecto elegirá entonces una Platforma (o varias)
▪ Permiten implementar el sistema con las calidades arquitectónicas
deseadas
• Luego,
a) En el mapeo de instancias de modelo, el PIM está marked: el
arquitecto marca elementos del PIM para indicar los mapeos que
se utilizarán para transformar ese PIM en un PSM; o
b) En Metamodel transformations, un transformation engine es
usado
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 113
28/02/2023
El proceso MDA: Resumen (2/2)
• Transformar el (marked) PIM en un PSM
▪ Esto se puede hacer manualmente, con la ayuda de una
computadora o automáticamente
▪ La input a la transformación es el marked PIM, y el mapping
▪ El resultado es el PSM, y el registro de la transformación
• Un PSM puede proporcionar más o menos detalles,
dependiendo de su propósito
▪ Un PSM será una implementación, si proporciona toda la
información necesaria para construir un sistema y ponerlo en
funcionamiento
▪ Un PSM puede ser el PIM de la próxima iteración del proceso
MDA, hasta que se alcance una implementación adecuada
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 114
28/02/2023
MDA: “componentes”
Transfor-
Mations
Editors
Model
Editors
Code Text
Generators
Transform.
Repository
Model
Validators
Models
Repository
Model
Weavers
IDE
MDA bus: Model Interchange (XMI, IDL o JMI)
Transform.
Tools
Code
Files
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 115
28/02/2023
MDA: Tecnologías actuales
▪ Meta Object Facility (MOF)
▪ Unified Modelling Language (UML)
▪ XML Model Interchange (XMI)
▪ Common Warehouse Meta-model (CWM)
▪ Software Process Engineering Meta-model (SPEM)
▪ Action Semantics Language (ASL)
▪ Query-View-Transformation (QVT)
▪ Various UML profiles
• EDOC (ECA, CCA),
• UML-RT,
• EJB,
• CCM, ... SOAP
WSDL
XML
XML-Schema
EDOC
.NET BPML
XLANG
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 116
28/02/2023
MDA: Herramientas
• ATL ATLAS Transformation Language is language for general transformation within the MDA framework
• MIA Model-in-Action is a tool that implements the concepts of MDA.
• OptimalJ is a MDA tool for J2EE.
• ArcStyler is a MDA tool for J2EE and .NET.
• UMT UML Model Transformation is a tool for model transformation and code generation of UML/XMI models
• MTL Model transformation at Inria ModelWare
• ModFact is an Open Source project for the MDA at LIP6
• AndroMDA is an open source code generation framework that follows the MDA paradigm
• Middlegen is a free general-purpose database-driven code generation engine based on JDBC , Velocity , Ant
and XDoclet
• OpenModel is a java-based framework for generating executable applications from UML models and it
complements ArgoUML
• MCC is a MDA tool supporting J2EE and .NET(in the works).
• Codagen Architect is MDA tool for J2EE and .NET.
• UMLX is an experimental graphical transformation language.
• MDA Transf is a MDA transformation engine
• GMT (Generative Model Transformer) is a project to build MDA tools such as UMLX
• JAMDA (Java Model Driven Architecture) is an open-source framework for building applications
generators which create Java code from a model of the business domain
• PathMATE Model Automation & Transformation Environment is an industry's MDA environment
providing tools for analysis, and model transformation engine
• GReAT is a metamodel based graph transformation language useful for the specification and implementation of
model-to-model transformation
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 117
28/02/2023
Tarea: Comprensión lectora
• Leer el artículo y
redactar un
resumen de
máximo 3 página
con los aspectos
más importantes
del mismo.
• El resumen
deberá ser fruto
de vuestra propia
síntesis.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 118
28/02/2023
Contenido
• Introducción
• MDA
• Model-driven Web Engineering
• MDD y MBE
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 119
28/02/2023
Ingeniería web dirigida por modelos
(MDWE)
• Los enfoques de MDWE tienen como
objetivo:
▪ mejorar el proceso de desarrollo de
aplicaciones web al enfocarse en el modelado
en lugar de codificar
▪ derivar la aplicación final, transformando los
modelos conceptuales a código fuente.
Rossi, Gustavo, Urbieta, Matias, Distante, Damiano, Rivero, Jose Matias, & Firmenich, Sergio. (2016). 25
Years of Model-Driven Web Engineering. What we achieved, What is missing.. CLEI Electronic Journal,
19(3), 5-57. https://doi.org/10.19153/cleiej.19.3.1
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 120
28/02/2023
Recapitulación de aplicaciones web...
Las aplicaciones web tienen 3 bloques de construcción
principales:
• Content
▪ Document-centric, multimediality
▪ Generating, updating, integrating, quality assurance
• Hypertext (Navigation)
▪ Non-linear nature of hypertextual documents
▪ Hypertext models: links, nodes (URL), anchors
▪ Disorientation
• Presentation
▪ User Interface
▪ Self-explanatory
▪ Aesthetics
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 121
28/02/2023
Lógica de Aplicación
Interfaz de ususario
MDE: Modelado de aplicaciones de software
• Niveles – el “cómo” & “que” de una applicación
• Aspectos
▪ Estructura: objetos, atributos, y relaciones
▪ Comportamiento: funciones & procesos
• Fases – Ciclo de desarrollo
Análisis Diseño Implementación
Estructura
Comportamiento
Fases
Niveles
Aspectos
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 122
28/02/2023
MDWE: Modelado de aplicaciones web
• Niveles – Información, node/link structure, UI & page
layout separate.
• Aspectos – Igual que en Aplicaciones de Software
• Fases – El enfoque depende del tipo de aplicación
• Customization – Context information, personalización
Contenido
Presentación
Análisis Diseño Implementación
Estructura
Comportamiento
Fases
Niveles
Aspectos
Hipertexto
Customization
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 123
28/02/2023
Requisitos de modelado
• Casos de uso para requisitos funcionales
(representación gráfica)
• Navigational use cases
→Ya mismo lo revisaremos en un ejemplo (sistema
de conferencias parecido a easychair)!
• En Web Engineering, nos preocupa...
1. Modelado de contenido
2. Modelado de hipertexto
3. Modelado de presentación
The Conference Review System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 124
28/02/2023
Modelado web
(Web Modeling)
• Modelado de aspectos estáticos &
dinámicos del contenido, el hipertexto y la
presentación
• Nos centramos en el análisis y el diseño
orientados a objetos
▪ Análisis: Encontrar & descubrir clases de
objetos/conceptos en un dominio
▪ Diseño: Definición de objetos de software &
cómo interactúan para cumplir con los
requisitos.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 125
28/02/2023
Objetos
• Entidades de software – como las entidades del
mundo real – que consisten en estados y
comportamientos
• Estado:
▪ Las variables almacenan los estados de las propiedades
de un objeto
▪ Oculto del mundo exterior (encapsulación de datos)
• Comportamiento:
▪ Los métodos definen los comportamientos del objeto
▪ Utilizado por objetos para comunicarse con otros objetos
• Clases
▪ Plantillas(blueprints) para crear objetos de un tipo
particular
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 126
28/02/2023
Objetos
Ejemplo de Clase/atributos/métodos
Objetos bicicletas
Abstraídos en
Clase Bicicleta
Atributos
Tamaño de frame
Tamaño de llanta
Material ...
Métodos
Cambio
Mover
Frenar...
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 127
28/02/2023
Clase Instancia 1 Instancia 2
Perro unPerro
atributo X valor x1 valor x2
nombre
peso
Sultán
19 libras
unPerro
Fido
9 libras
operación OPT OPT OPT
sentarse
girar
operaciones de
la clase
operaciones de
la clase
Objetos
Ejemplo de Clase/atributos/métodos
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 128
28/02/2023
Descubrir Objetos en un Dominio
• La forma en que representamos el modelo de
software de un dominio debe parecerse al modelo
físico lo más cerca posible
• Para encontrar clases clave de objetos :
▪ Reutilizar los modelos existentes, si existen
▪ Hacer una lista de categorías
• Gente, lugares, cosas
• Transacciones
• Eventos
▪ Identificar sustantivos
• Al nombrar clases, use los términos que se usan
comúnmente en el dominio
▪ es decir, términos que los usuarios entenderían
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 129
28/02/2023
Asignación de responsabilidades
• Las responsabilidades son las obligaciones o
comportamientos de un objeto relacionados con
su papel en el sistema
• ¿Qué hace un objeto?
▪ Haciendo algo (para) a sí mismo
▪ Pasar acciones (mensajes) a otros objetos
▪ Controlar & coordinar las actividades en otros objetos
• ¿Qué conoce un objeto?
▪ Datos privados y encapsulados
▪ Sus objetos relacionados
▪ Elementos que puede derivar o calcular
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 130
28/02/2023
MDWE
Diversos métodos de modelado (no todos son MDA)
ER
1990
1995
2000
2005
OMT
UML
RMM
HERA
WEBML
HDM
HDM-lite
W2000
WSDM
OOHDM
UWE
OO-H
OOWS
WebSA
WAE
WAE2
Data-
oriented
Hypertext
-oriented
Object-
oriented
SW-oriented
2001 MDA
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 131
28/02/2023
UWE: UML para Web Engineering
• Notación UML Web Engineering (UWE)
▪ UML- compatible
▪ Comprensiva herramienta de modelado
▪ Descarguelo aqui:
https://uwe.pst.ifi.lmu.de/index.html
▪ Requiere MagicDraw UML (La edición
gratuita es suficiente)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 132
28/02/2023
Ejemplo: el sistema de revisión de
artículos de conferencia
• Este ejemplo tiene como objetivo
comparar diferentes métodos de
modelado de aplicaciones web
• El propósito del sistema es apoyar el
proceso de presentación, evaluación y
selección de papers(artículos) para una
conferencia.
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 133
28/02/2023
Actores I
• PC Chair
▪ crea la conferencia
▪ determina los tópicos de la conferencia (o tracks) y temas
▪ establece el Program Committee
▪ define la lista final de papers acceptados y rechazados
▪ define los plazos de la conferencia: submission, review, y
notification.
• PC Member
▪ evalúa un conjunto de papers que le han sido asignados
▪ indica a otra persona como revisor de un paper
▪ sugiere al PC Chair la lista final de papers aceptados
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 134
28/02/2023
Actores II
• Reviewer
▪ Responsable de revisar un paper
• Author
▪ Envía(submit) un documento para su
aceptación en la conferencia
▪ PC Members y Reviewers pueden además
ser Authors, deben tener diferentes
identificaciones para cada rol
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 135
28/02/2023
Funciones I: Paper Submission
• Cualquier autor registrado puede enviar un paper
▪ El autor debe registrar: el título, el resumen, el track
de la conferencia y un conjunto de temas elegidos de
una lista previamente determinada por el PC Chair, si
hay uno
▪ El sistema, después de verificar los registros de los
autores, asigna un ID de paper al nuevo paper, y
permite al autor enviarlo(submit) cargando un
archivo(file)
▪ En cualquier momento, un autor puede verificar los
datos sobre sus papers enviados. Hasta la fecha
límite de envío, el autor también puede sustituir el
archivo cargado por uno nuevo, o cambiar cualquiera
de los datos informados sobre el paper.
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 136
28/02/2023
Funciones II: Asignación de Papers a
los PC Members
• El PC Chair puede indicar posibles conflictos de
intereses entre los PC Members y los papers
enviados a la plataforma
• Una vez que se ha alcanzado la fecha límite de
presentación(deadline)
▪ Los PC Members pueden indicar sus intereses y
también conflictos de intereses con algunos papers
▪ En caso de conflicto de intereses, el PC Member no
verá ninguna información acerca del paper
▪ El PC Chair asignará papers al PC Members para su
revisión (reviewing), se enviará un mensaje de email
con el listado de papers, y una y una URL a una
página donde puede acceder a estos papers
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 137
28/02/2023
Funciones III: Ingresar una Review
• Un PC Member, o un Reviewer, puede ingresar
una revisión para un paper asignado a él
• La revisión(review) se ingresa accediendo a un
formulario que contiene todos los
elementos(ítems) de evaluación
• Un PC Member puede ver otras reviews
(ingresado por otros) para cualquiera de los
papers que está revisando, pero solo después de
haber ingresado su propia revisión (review)
• El PC Chair tiene total acceso a todos los papers
y todas las reviews
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 138
28/02/2023
Funciones IV: Elegir papers aceptados
y rechazados
• Una vez que se ha alcanzado la fecha límite de
revisión, el proceso de revisión está cerrado
• El PC Chair, teniendo en cuenta las
recomendaciones de los PC Members y
reviewers, elige los papers que serán aceptados y
rechazados
• Una vez que el proceso está marcado como
finalizado por el PC Chair, el sistema emite un
mensaje de notificación a los autores del paper,
que incluye las partes apropiadas de las
revisiones presentadas por los PC Members y
reviewers
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 139
28/02/2023
MDWE: Modelado de contenido
Cómo modelar los datos subyacentes a una aplicación web
• Propósito: modelar los requisitos de información
de una Aplicación Web
▪ Diagrama los aspectos estructurales (es decir,
objetos de información) & de comportamiento de la
información.
▪ NO está interesado por la navegación o la
presentación
• Modelos primarios
▪ Diagramas de clases – suficiente para aplicaciones
estáticas.
▪ Diagramas de máquinas de estado – captura
aspectos dinámicos
1
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 140
28/02/2023
Modelo de estructura de contenido
Class name
Class attributes
Class operations
Relation
Invariant
Derived attribute
Composition
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 141
28/02/2023
Modelo de comportamiento del
contenido
Initial State
Condition
Final State
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 142
28/02/2023
MDWE: Modelado de hipertexto
Cómo modelar el hipertexto de una aplicación web
• Propósito: Modelar las rutas de navegación
disponibles para los usuarios
• Artefactos UWE* (UML-based Web Engineering)
▪ Modelo de estructura de hipertexto (modelo de
navegación)
▪ Modelo de acceso
• Se centra en la estructura de los elementos de
hipertexto & acceso
• Use la anotación “<<navigation class>>” para
distinguirse de las clases de contenido
• Basado en el modelado de contenido (paso 1)
* http://uwe.pst.ifi.lmu.de/index.html
2
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 143
28/02/2023
Diferentes modelos ... diferentes enlaces(links) ...
• HDM (Hypertext Design Model)
– Structural links connect elements of the same node (e.g. review summary to review
details)
– Perspective links put various views of a node in relation (e.g. PS and PDF of a paper)
– Application links put different nodes in relation depending on application (e.g. link
pointing to best paper)
• WebML (Web Modeling Language)
– Contextual links carry context information (e.g. ID of reviewer)
– Non-contextual links have no associated context information (e.g. link from single
review to list of all reviews)
– Intra-page links: source and destination are on the same page further down/up
– Inter-page links: different pages
• UWE
– Navigation links (navigate between nodes, e.g. Papers and authors)
– Process links (start node of a process, e.g. Beginning of review submission)
– External links (external page)
• ...
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 144
28/02/2023
Navigation Structure Model
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 145
28/02/2023
Navigation Access Model
• Los modelos de estructura de hipertexto
describen la navegación, pero no la
orientación.
• Los modelos de acceso describen ambos a
través de patrones de navegación, utilizados
para describir constantemente elementos
convencionales.
▪ <<index>> (lista de objetos del mismo type)
▪ <<menu>> (lista de objetos heterogeneos)
▪ <<guided-tour>> (secuencia de links)
▪ <<query>>
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 146
28/02/2023
Navigation Access Model
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 147
28/02/2023
MDWE: Modelado de presentación
Cómo modelar la apariencia(look&feel) de una aplicación web
• Propósito: Modelar el aspecto y la sensación
de la aplicación web en el nivel de página.
• El diseño debe apuntar a la simplicidad y la
auto-explicación.
• Describe la estructura de presentación:
▪ Composición & diseño de cada página
▪ Identificar elementos recurrentes (headers/footers)
• Describe el comportamiento de presentación:
▪ Elementos => Eventos
3
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 148
28/02/2023
Niveles de modelos de presentación
• Página de Presentación –elemento “root”;
equivalente a una página container.
• Presentation Unit
▪ Un fragmento de la página lógicamente
definido al agrupar elementos relacionados.
▪ Representa un nodo modelo de hipertexto
• Presentation Element
▪ A unit’s (node’s) informational components
▪ Text, images, buttons, fields
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 149
28/02/2023
Presentation Structure Model
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 150
28/02/2023
Presentation Behavior Model
The
Conference
Review
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 151
28/02/2023
WebML
• WebML (Web Modeling Language) es una
notación visual y una metodología para diseñar
aplicaciones web complejas con uso intensivo de
datos
• En 2013, WebML se amplió para cubrir un
espectro más amplio de interfaces front-end, lo
que resultó en el lenguaje de modelado de flujo de
interacción (IFML), adoptado como estándar por
Object Management Group (OMG).
• Official webpage: http://www.webml.org/
• Tools support: http://www.webratio.com/
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 152
28/02/2023
WebML
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 153
28/02/2023
Los modelos WebML
• WebML
▪ Un lenguaje conceptual para el diseño de alto nivel de sitios
web.
• Models:
▪ Structure model - data organization
▪ Derivation model - redundant data definition
• La derivación es el proceso de agregar información redundante al
modelo de estructura, para aumentar su expresividad y definir
diferentes vistas y agrupaciones de los mismos datos.
▪ Composition model - definición de las páginas del sitio como
conjunto de subpáginas y unidades de publicación elementales
▪ Navigation model: definición de enlaces entre páginas y entre
unidades(units)
▪ Presentation model: posicionamiento de las unidades en la
página y definición de la apariencia gráfica
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 154
28/02/2023
Vista previa de los conceptos de WebML
• Site = Data + Composition + Navigation + Presentation
data
navigation +
composition presentation
user models
entities,
relationships
units, pages,
links
site views styles
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 155
28/02/2023
Data Model (1)
• Pregunta
▪ ¿Cuáles son los objetos publicados en el sitio y cómo
se relacionan?
• Respuesta
▪ Entity: un tipo de objeto en el dominio de la aplicación
▪ Attribute: propiedad escalar de una entidad
▪ Relationship: Una conexión entre entidades
▪ IS-A hierarchy: clasificación y agrupación
• Compatible con Entidad-Relación y diagramas de
clase(UML)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 156
28/02/2023
Data Model (2)
• Simplified Entity-Relationship model
▪ Binary relationships between entities
▪ IS-A hierarchies
▪ Simple typed attributes in entities
▪ Derivation model can be applied for
redundant data
Book
Author Genre
BestSeller
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 157
28/02/2023
Derivation Model
• Los datos redundantes se pueden especificar fácilmente
usando un WebML-OQL (Object Query Language).
• Ejemplo:
▪ BestSeller := Book where Book.Sales > 50,000
▪ Author.BooksNumber = count(self.Author2Book)
Book
Author
BestSeller
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 158
28/02/2023
Hypertext Model
• Q1: ¿Qué información se publica en los
nodos de hipertexto?
• Q2: ¿Cómo están conectados los nodos de
hipertexto?
• Q3: ¿Cómo se sirve al usuario el hipertexto
en páginas?
• A1: Content units (Composition)
• A2: Links (Navigation)
• A3: Pages (Composition)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 159
28/02/2023
Composition: examples of Content
Units description
DATAUNIT
INDEXUNIT
content
content
To publish information about A
SINGLE object
(e.g. AuthorDetail)
To publish a list of objects
(e.g. IndexOfAuthors)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 160
28/02/2023
Composition: examples of Content
Units rendering
DATAUNIT
INDEXUNIT
Author
first name:XXX
last name:YYY
photo:
Index of Authors
•S. Ceri
•P. Fraternali
•O.Versand
Author
Author
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 161
28/02/2023
Navigation Model: Links
entity:
author
Book
[ author2book ]
• Semantics of a link:
1. Moving from one place to another
2. Transporting information from one place to another (navigation context)
3. Activating a computation (side effect)
AuthorID
is transported
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 162
28/02/2023
Composition: Pages
• A Page is a structured container of units and links
▪ Possibly structured in and/or sub-pages
▪ Abstraction of screen, frame, card, deck...
▪ Permits one to cluster related information for more efficient
communication
• E.g.:
Author
Author
index of authors and
the selected author
are shown together in
the same page
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 163
28/02/2023
Types of links
• Contextual links
▪ Between units
▪ Context transported
• Non-contextual links
▪ Between pages
▪ No context transported
Voyages Books
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 164
28/02/2023
Write access: WebML operations
• Some predefined operations are provided
• Customized operation can be defined
• E.g.:delete of an Author
Create Op. X
Author
Author
Delete
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 165
28/02/2023
Siteviews
• A Siteview is a set of pages that the user
can experience as a whole Web site
• Different site views can be defined for
different devices and different groups of
users
• Access control and multi-devices delivery
is achieved through Siteviews
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 166
28/02/2023
Presentation
• Presentation dealt with along 3 lines:
▪ Grid model of the page for content positioning no
WYSWYG
▪ Gallery of default presentation styles applicable to site
views or single pages
▪ Compatibility with best selling tools for presentation
editing, for advance page design e.g. WebML
extensions for Dreamweaver
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 167
28/02/2023
Modeling with WebRatio tool
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 168
28/02/2023
Things to keep in mind
(or summary)
• WebML is Domain Specific Language (DSL)
▪ Is not UML or MDA
▪ But …
• WebML is about Model Driven Design and Development
▪ Focus on data intensive Web applications
▪ Automatic code generation of Web applications
• One model for each layer
▪ Content
▪ Navigation
▪ Presentation
• Tool Support!
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 169
28/02/2023
HERA
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 170
28/02/2023
The Hera Framework: Design Steps,
Models, and Processing Engines
Hera Suite
Design Methodology
Requirements
Analysis
Conceptual
Design
Integration
Design
Application
Design
Adaptation
Design
Presentation
Design
(Search)
Agent
info
request
(meta) data
Conceptual
Model Application
Model
info request
(slice)
presentation
End User
RQL / RDF XSLT / XML
User
Model
Presentation
Model
Presentation
Engine
Application
Engine
Integration
Engine
Cuypers
Engine
Adaptation
Engine
info request HTML/WML
Integration
Model
Semantic Layer Application Layer Presentation Layer
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 171
28/02/2023
OOHDM
Artist
{from a:Artist}
name: xsd:string
tracks:Idx Tracks By Artist(self)
genres:Idx Genres By Artist(self)
Genre
{from g:Genre}
name: xsd:string
artists:Idx Artists By Genre(self)
1..*
isGenreOf
1..*
Track
{from t:Track}
title: xsd:string
artistName: anchor (Ctx Artist Alpha (a:Artist where a plays t))
plays
1..*
1
Genres
Artists
Tracks
Artists
Alphabetic
By Genre
Tracks
Alphabetic
By Artist
Menu
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 172
28/02/2023
Ejemplo: Una agencia de viajes
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 173
28/02/2023
“Modelo conceptual”
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 174
28/02/2023
Propuestas de Desarrollo de Web-Apps
• Actualmente, las aplicaciones Web se pueden generar a
partir de modelos
▪ Ellos son buenos generadores de código (i.e., ad-hoc “model
compilers”)
• Modelado de aplicaciones web (pre-Web Engineering)
▪ Ejemplo: Propuesta de Jim Conallen
☺ Model Web entities (web pages, servers, forms, etc)
• MDD Web Engineering (pre-MDA)
▪ Ejemplos: UWE (ArgoUWE), OO-H (VisualWADE), OOHDM,
OOWS, WSDM, WebML
☺ Modelar los aspectos de presentación y navegación.
☺ Sus modelos conceptuales capturan y manejan con éxito la
estructura de la aplicación.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 175
28/02/2023
Modelo de Jim Conallen (extracto)
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 176
28/02/2023
OO-H (Object-Oriented Hypermedia)
Functional ViewPoint
Conceptual
View
Presentation
View
Process
View
Navigational
View
Object-Oriented
Hypermedia Method
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 177
28/02/2023
OO-H: Modelo de dominio (Conceptual)
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 178
28/02/2023
OO-H: Modelo de Navegación
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 179
28/02/2023
OO-H: Modelo de Presentación
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 180
28/02/2023
OO-H: Resultado Final
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 181
28/02/2023
UWE (UML-based Web Engineering)
[Koch et al., 2001]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 182
28/02/2023
UWE: Metamodelo (1/2)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 183
28/02/2023
UWE: Metamodelo (2/2)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 184
28/02/2023
UWE: Modelo Conceptual
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 185
28/02/2023
UWE: Modelo Navegacional
<<navigation class>>
TravelAgency
<<navigation class>>
User
TravelAgency
Menu
?
BookingList
0..1
<<process class>>
SignIn
<<process link>>
<<process link>>
UserBookings
<<navigation class>>
Bookings
BookingsItems
<<navigation class>>
BookingItem
0..*
AccountInfo
SelectedBookings
SearchBookings
<<process class>>
FindTravel
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 186
28/02/2023
UWE: Modelo de Presentación: Structural view
<<presentation group>>
FindTravel
<<presentation group>>
Header
<<presentation group>>
Activity
<<presentation class>>
SetPaymentOptions
<<presentation class>>
ConfirmTravel
<<presentation class>>
SetTravelOptions
<<presentation class>>
TravelAgenMenu
<<presentation class>>
Logo
<<presentation class>>
Title
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 187
28/02/2023
UWE: Modelo de Presentación: User Interface
<<presentation group>>
FindTravel
<<presentation class>>
TravelAgenMenu
<< anchor>>
Head
<< anchor>>
NewUser
<< anchor>>
SearchUsers
<< anchor>>
Bookings
<< anchor>>
Home
<<presentation class>>
SetTravelOptions
<<presentation class>>
Header
<< image>>
Logo
<< text>>
Title
<< pulldown menu>>
From
<< pulldown menu>>
Departure
<< pulldown menu>>
Passengers
<< button>>
Continue
<< pulldown menu>>
To
<< pulldown menu>>
Return
<< pulldown menu>>
Class
<< button>>
One-Way
<< button>>
Round-Trip
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 188
28/02/2023
Propuestas de desarrollo de Web-Apps: Resumen
• Web-Apps Modelling (pre-Web Engineering)
▪ Ejemplo: propuesta de Jim Conallen
☺Model Web entities (web pages, servers, forms, etc)
Too low level (basically, useful to model the PSM only)
• MDD Web Engineering (pre-MDA)
▪ Examples: UWE (ArgoUWE), OO-H
(VisualWADE) , OOHDM, OOWS, WSDM
☺Modela los aspectos de presentación y navegación.
☺Sus modelos conceptuales capturan y manejan con
éxito la estructura de la aplicación
No aborda (adecuadamente) otros aspectos: business
processes, choreography, distribution, etc.
Ad-hoc code generation (i.e., model compilation)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 189
28/02/2023
MDA para Web Applications
• “MDA es adecuado para desarrollar sistemas
distribuidos que se componen de
componentes que se ejecutan en diferentes
plataformas/niveles. Por ejemplo, puede
haber una capa web implementada en
ASP.Net, pero que se comunica con un capa
intermedia mediante EJB, con un back-end
que es un RDBMS de Sybase. MDA puede
generar el software para los niveles, además
del código para unirlo todo.”
[Haywood, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 190
28/02/2023
¿Es la MDA una opción adecuada para tí?
• ¿Son los modelos importantes para ti?
▪ es decir, ¿a su empresa le importan los modelos?
• ¿Son sus plataformas tan inestables?
• ¿Puedes hacer frente al proceso de Desarrollo?
▪ Incluido su equipo de desarrollo... Se requieren nuevas habilidades!
• ¿Tu negocio lo compraría?
• ¿No es algo preocupante tener dos sabores diferentes (Escuelas)
de MDA?
▪ Elaboracionalistas (e.g. Optimal/J, ArcStyler) 70% executable annotated
PIMs
▪ Traductores (e.g. Executable UML) 100% executable PIMs
• En condiciones reales de trabajo, – honestamente – ¿crees que
esto funcionaría?
▪ ¿Será capaz de generar código a partir de modelos, incluso cuando
aún no nos pongamos de acuerdo sobre cómo representar el
comportamiento?
[Dan Haywood, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 191
28/02/2023
Los dos enfoques actuales de MDA
• Generativo
▪ Los modelos a menudo se usan para la
generación de código, seguido de la
compilación y luego la ejecución.
▪ Mantiene el modelado y la ejecución
separados.
• Interpretativo
▪ Permite que los modelos se ejecuten
directamente (se relaciona con el enfoque del
lenguaje de programación interpretativo).
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 192
28/02/2023
Los dos enfoques actuales de MDA
• Los modelos no contienen toda la
información(e.g. behaviour)
• La información faltante se agrega como
refinamiento en el PSM o código
• Round-trip engineering a veces es
posible
• Los modelos son una declaración
(statement) completa y ejecutable de una
solución
• Los compiladores de modelos traducen
estos modelos en un sistema en ejecución
• ASL son usados para modelar behaviour
• No requiere intervención manual
Generativo
Interpretativo
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 193
28/02/2023
The MDA way
(el proceso MDA)
• Defina el PIMs del Sistema (structure, behaviour,
navigation, presentation, components, distribution, ...)
• Seleccione la plataforma(s) de destino
▪ Web pages (navigation), Java (Travel Agency), WSDL and
JWSDP (external services: banks, airlines, ...),...
• Defina las transformaciones
▪ Ya sea usando reglas de transformación entre los metamodelos
PIM (los lenguajes PIM) y los metamodelos de las plataformas
de destino
▪ O haciendo marking a los elementos PIM usando las marks
definidas por los mapeos(mappings)
• Aplique los mappings a los elementos PIM
▪ Usando un motor de transformación, o manualmente
▪ Esto producirá un conjunto de elementos de diferentes PSM
• Bridges (e.g., calls) between elements in heterogeneous
target PSMs should be defined!
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 194
28/02/2023
The Travel Agent Example
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 195
28/02/2023
PIM del Sistema (estructura)
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 196
28/02/2023
PIM del Sistema (Procesos – extracto)
(EDOC)
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 197
28/02/2023
Transformando el PIM (estructura)
• Transformaciones de metamodelo
▪ Un enfoque alternativo al uso de marks (tomado
del Perfil UML que define la Plataforma)
• Mas poderoso
• Mas general
▪ La base de las propuestas QVT
▪ Actualmente, la opción preferida
• Veamos cómo transformar el PIM de la
estructura del sistema a implementaciones
Java, WSDL y JWSDP
▪ Deben definirse las transformaciones entre los
diferentes metamodelos:
• UML<~>Java, UML<~>WSDL, UML<~>JWSDP,
1
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 198
28/02/2023
Metamodelo UML (sobre-simplificado)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 199
28/02/2023
Metamodelo Java (simplificado)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 200
28/02/2023
UML to Java transformation (ATL)
P2P
G2s
Ae2F
C2C
I2I
A2F
OM2M
Pr2Pr
Dt2Pt
[Bezivin, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 201
28/02/2023
Metamodelo WSDL
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 202
28/02/2023
UML to WSDL transformation (ATL)
Dt2T
P2D
C2T
P2Part
I2Pt
O2O
[Bézivin, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 203
28/02/2023
Metamodelo JWSDP
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 204
28/02/2023
PSM usando Java, WS, y JWSDP
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 205
28/02/2023
Transformando el PIM (comportamiento)
• Las transformaciones del metamodelo también
parecen ser apropiadas para el comportamiento.
• No hay notación acordada para describir el
comportamiento
▪ State-based approaches (state machines, ASL, SDL)
▪ Declarative approaches (pre-post, contracts)
▪ Protocol-based approaches (diagramas de secuencia e
interacción)
• Ellos no comparten un modelo de comportamiento
común
• Comúnmente se usan vainilla UML o algunos
dialectos UML y perfiles (UML Profile para EDOC,
UML-RT,...)
2
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 206
28/02/2023
PIM del Sistema (Procesos – extracto)
[Bezivin, 2004]
(EDOC)
A
Travel
Agent
System
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 207
28/02/2023
EDOC Process Components to Java
Dt2T
Cd2C
A2F
F2P
O2M
P2I
Pc2C
[Bezivin, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 208
28/02/2023
MDA-based proposals: Summary
• MDA-based (model transformations):
ATLAS’s, Optimal/J, ArcStyler
☺Compilación de modelos estructurados, según
enfoque y disciplinas MDA
☺Muy buen tratamiento de la estructura
empresarial (Modelo Conceptual): modularidad,
independencia de plataforma, separation of
concerns, ....
Tratamiento muy simplista de navegación y
presentación
No existe consenso para modelar el
comportamiento y la secuencia
Optimal/J y ArcStyler están muy enfocados en
tecnologías particulares (J2EE, .NET)
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 209
28/02/2023
¿Y ahora?
• Defina todos los PIM del sistema
• Analice la cobertura de cada propuesta
• Utilice las herramientas actuales, vea hasta dónde
puede llegar y cuánto puede integrarlo dentro de sus
procesos de desarrollo
• Trate de usar cada propuesta y herramienta donde sea
que muestren su fortaleza y beneficios
• Identifique los vacíos no cubiertos por ninguna de las
propuestas actuales
• Actividades de investigación y desarrollo:
▪ Adaptar las propuestas actuales para hacerlas conformes a
MDA (y así hacerlas interoperables, con diseño modular, etc.)
▪ Desarrollar nuevas propuestas que llenen los vacíos
▪ Trabaja en más herramientas
3
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 210
28/02/2023
Modelos (PIMs) de una Web Application
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 211
28/02/2023
Modelos cubiertos por Conallen
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 212
28/02/2023
Modelos cubiertos por UWE
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 213
28/02/2023
Modelos cubiertos por OO-H
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 214
28/02/2023
Models covered by Optimal/J
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 215
28/02/2023
Modelos cubiertos por ATLAS works
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 216
28/02/2023
¡Intentemos hacerlo bien!
✓Defina todos los PIM del sistema
✓Utilice/adapte cada propuesta para modelar los aspectos
que le resulten más adecuados, p.ej.
✓ OO-H o UWE pueden modelar navegación y presentación
Pero adaptarlos para que no generen código de forma ad-hoc,
sino según los principios de la MDA
✓ ATL se puede utilizar para transformaciones de metamodelos
(entre los modelos generados por cada propuesta)
✓ Optimal/J y ArcStyler pueden generar el código EJB o .NET
Pero adáptalos para que puedan generar código de otras
plataformas de forma más natural.
✓ La propuesta de Conallen puede modelar el PSM
• ...y las brechas(gaps)?
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 217
28/02/2023
Contenido
• Introducción
• MDA
• Model-driven Web Engineering
• MDD y MBE
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 218
28/02/2023
Model-Driven Development (MDD)
La Visión
• Ir mucho más allá de la noción de herramientas CASE
(Computer Aided Software Engineering) de los años
80
• Reducir la brecha (gap) entre el problema y el
dominio de realización
▪ modelos como artefacto principal a lo largo del ciclo de
vida en lugar de código
▪ modelos como programa en lugar de modelos como
sketch/blueprint
• Transformaciones sistemáticas de modelos abstractos
a implementaciones concretas
• Estándares para el almacenamiento, intercambio y
transformación uniforme de modelos
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 219
28/02/2023
Model-driven Development (MDD)
• Un desarrollo MDD distingue al menos las siguientes
etapas:
▪ La construcción de un modelo del dominio, denominado
CIM, que expresa la lógica del negocio desde una
perspectiva independiente de la computación.
▪ La construcción de un modelo, denominado PIM, que
expresa la funcionalidad del sistema en forma
independiente de las características de plataformas de
implementación específicas.
▪ La transformación de un PIM en uno o más modelos en
una plataforma específica, denominados PSM.
▪ La transformación de modelos PSM a modelos de
implementación, denominados ISM.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 220
28/02/2023
MDD: Ventajas
• La forma de “representar” los conceptos
ya no es tan relevante. Lo importante son
los conceptos.
• Las relaciones permiten “controlar” la
consistencia de los modelos.
• Las transformaciones son una vía que se
pueden traducir en “procesos” de
transformación.
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 221
28/02/2023
Servicio
Añadir
Servicio
Sacar
Servicio
Servicio Servicio Servicio
Sistemas de Información
= conjunto de servicios independientes
Modelo de la Empresa
MDD: Desarrollo basado en el dominio
Orientado a servicios
Desarrollo basado en el
dominio, trabaja en capas!
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 222
28/02/2023
Ventajas del Model-driven Development
(MDD)
• Desde el punto de vista técnico:
▪ Adaptabilidad y Mantenibilidad más fáciles
• Menos propagación de cambios (por las capas)
• Mejor modularidad
• Funciones (servicios): añadir/sacar
▪ Mejor estimación de costos por modificaciones
• Cambios a las funciones son fáciles de realizar
• Solo cambios en el modelo de la empresa son costosos
• El esfuerzo del mantenimiento es más proporcional al
tamaño del modelo afectado por el cambio
• Desde el punto de vista del negocio:
▪ Conocimiento del dominio centralizado
▪ Conocimiento más profundo del negocio
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 223
28/02/2023
¿Por qué no hay futuro para el MDD?
• El desarrollo no es la parte difícil, el desafío es traducir un problema
comercial en una solución (modelo)
• El desarrollo no es la parte más lenta del desarrollo del software, la
implementación y el despliegue en producción sí lo son
• Ser capaz de cambiar el software es más importante que construirlo
de manera rápida
▪ La importante lección es: las empresas ágiles solicitan un software ágil.
▪ Un entorno cambiante solicita cambios en el software que soporte los
procesos en ese entorno
• Desde una perspectiva económica, el MDD no importa tanto
▪ Más del 90% del costo total de la propiedad del software se gastan en
el mantenimiento del software.
• MDD es una solución para un problema de desarrollo de software,
no tiene valor en sí mismo
▪ Al pensar en su solución MDD, debe pensar en los clientes a los que
desea apuntar. ¿Cuál es su mercado? ¿Quién quiere pagar por su
solución MDD?
http://www.theenterprisearchitect.eu/blog/2011/01/25/why-there-is-no-future-for-model-driven-development/
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 224
28/02/2023
¿Es la MDA una opción adecuada para tí?
• ¿Son los modelos importantes para ti?
▪ es decir, ¿a su empresa le importan los modelos?
• ¿Son sus plataformas tan inestables?
• ¿Puedes hacer frente al proceso de Desarrollo?
▪ Incluido su equipo de desarrollo... Se requieren nuevas habilidades!
• ¿Tu negocio lo compraría?
• ¿No es algo preocupante tener dos sabores diferentes (Escuelas)
de MDA?
▪ Elaboracionalistas (e.g. Optimal/J, ArcStyler) 70% executable annotated
PIMs
▪ Traductores (e.g. Executable UML) 100% executable PIMs
• En condiciones reales de trabajo, – honestamente – ¿crees que
esto funcionaría?
▪ ¿Será capaz de generar código a partir de modelos, incluso cuando
aún no nos pongamos de acuerdo sobre cómo representar el
comportamiento?
[Dan Haywood, 2004]
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 225
28/02/2023
¿Recuerdan MBE?
• MBE describe un proceso donde los modelos software
tienen un papel importante pero donde no son
necesariamente los motores del proceso de desarrollo
(es decir, no “dirigen” el proceso como en MDE).
Ingeniería Web Carrera de Software
Ph.D. Franklin Parrales 226
28/02/2023
Modeling Maturity levels (MML)
Jos B. Warmer and Anneke Kleppe
❖ MML 0: No Specification
❖ MML 1: Textual Specification
❖ MML 2: Text with Models
❖ MML 3: Models with Text
❖ MML 4: Precise Models
❖ MML 5: Models only
requirements
Requirement
analysis
design
implementation
verification
deployment
Validation
Testing
Deve-
lopment
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos

More Related Content

Similar to IW Unidad 3: Ingeniería Web dirigida por modelos

050608 architect academy webcast 1
050608 architect academy webcast 1050608 architect academy webcast 1
050608 architect academy webcast 1juliank13
 
LI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasLI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasEduardo S de Loera
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del softwareJohns Chacon
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdfssuser20fade
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definicionesdettebe
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipJose B Flores P
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 
Ra semana 13 1
Ra semana 13 1Ra semana 13 1
Ra semana 13 1victdiazm
 
Algunas Prioridades en la Enseñanza e Investigación en Ingeniería del Software
Algunas Prioridades en la Enseñanza e Investigación en Ingeniería del SoftwareAlgunas Prioridades en la Enseñanza e Investigación en Ingeniería del Software
Algunas Prioridades en la Enseñanza e Investigación en Ingeniería del SoftwareSteelmood
 

Similar to IW Unidad 3: Ingeniería Web dirigida por modelos (20)

050608 architect academy webcast 1
050608 architect academy webcast 1050608 architect academy webcast 1
050608 architect academy webcast 1
 
Aplicacion mvc entity_framework_factura
Aplicacion mvc entity_framework_facturaAplicacion mvc entity_framework_factura
Aplicacion mvc entity_framework_factura
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
LI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasLI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidas
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
MDE & DSLs
MDE & DSLsMDE & DSLs
MDE & DSLs
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definiciones
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membership
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Asi1 4x01
Asi1 4x01Asi1 4x01
Asi1 4x01
 
Ra semana 13 1
Ra semana 13 1Ra semana 13 1
Ra semana 13 1
 
Algunas Prioridades en la Enseñanza e Investigación en Ingeniería del Software
Algunas Prioridades en la Enseñanza e Investigación en Ingeniería del SoftwareAlgunas Prioridades en la Enseñanza e Investigación en Ingeniería del Software
Algunas Prioridades en la Enseñanza e Investigación en Ingeniería del Software
 

More from Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4Franklin Parrales Bravo
 

More from Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
 

IW Unidad 3: Ingeniería Web dirigida por modelos

  • 1. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 1 28/02/2023 Ingeniería Web dirigida por modelos Unidad 3 Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Ingeniería Web
  • 2. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 2 28/02/2023 Objetivo general de la Unidad 3 Caracterizar la Ingeniería Web dirigida por modelos para la construcción de aplicaciones web independientes de la plataforma.
  • 3. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 3 28/02/2023 Contenido • Introducción • MDA • Model-driven Web Engineering • MDD y MBE
  • 4. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 4 28/02/2023 Web Engineering y Web Applications • Web Engineering ▪ “El enfoque sistemático, disciplinado y cuantificable para el desarrollo, operación y mantenimiento de aplicaciones web.” • Web Application ▪ “Un sistema de información que utiliza tecnologías y plataformas basadas en la web y que admite la interacción a través de interfaces basadas en la web.”
  • 5. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 5 28/02/2023 Categorías de Aplicaciones Web Doc-Centric Interactive Transactional Workflow Based Social Web Collaborative Ubiquitous Portal Oriented Semantic Web Development History Complexity
  • 6. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 6 28/02/2023 Web-based Applications • Web-based Applications Architectural Patterns ▪ Thin Web Client (cliente fino) • Funcionalidades mínimas del lado del cliente (navegador web) • La lógica empresarial reside en el lado del servidor ▪ Thick Web Client (cliente grueso) • Scripting del lado del cliente y objetos personalizados (controles, applets,...) • Una cantidad significativa de lógica empresarial reside en el cliente ▪ “Web Delivery” • Los clientes participan en un sistema de objetos distribuidos
  • 7. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 7 28/02/2023 Web-based Enterprise Layers HTTP Web Server Applications SQL DBMS, Client/Server & Legacy Applications Client Applications Business and data rules go here User interface and application logic go here The data goes here EAI Applications & B2B E-Commerce Web Browser Standard Middleware Connects: applications to components, and components to components XML Corba EJB DCOM MQ Supply Chain Enterprise Components
  • 8. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 8 28/02/2023 Web-based Enterprise Architecture CORBA ORB/CORBA Services Client Tier Server Tier Back-end Systems DB DB DB servlets EJBs JSPs Browsers Móviles Application servers Applets, Applications Web Services clients J2EE Container Client Apps External Web Services External Web Services Middleware
  • 9. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 9 28/02/2023 From three to a six layer architecture Three layers model Six layers model (Refined) Data access Device-independent Presentation / Navigation Process control (Functionality) Business Objects Presentation / Navitation GUI Physical data User interface Business Logic Data
  • 10. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 10 28/02/2023 Introducción La Ingeniería Guiada por modelos es un nuevo paradigma que da más importancia a los conceptos que a la forma de representarlo. La idea es detectar los conceptos y representarlos de manera abstracta. Tras esto se definen las relaciones entre estos conceptos. Basándose en los conceptos se pueden definir transformaciones. Concepto 1 Concepto 2
  • 11. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 11 28/02/2023 ¿Filosofamos un poco? MBE vs MDE vs MDD vs MDA • MBE: “model-based engineering” o “model-based development” ▪ versión más suave de model-driven engineering (MDE). ▪ MBE describe un proceso donde los modelos software tienen un papel importante pero donde no son necesariamente los motores del proceso de desarrollo (es decir, no “dirigen” el proceso como en MDE). ▪ Un ejemplo sería un proceso donde en la fase de análisis se utilizan modelos para especificar el sistema pero después estos modelos no se utilizan para automatizar la creación de código. ▪ El modelo es importante pero no es el “conductor” del proceso. Por lo tanto, MBE puede ser visto como un superconjunto de MDE. ▪ Todos los procesos model-driven (MDE) son model-based (MBE) pero al revés no es cierto.
  • 12. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 12 28/02/2023 ¿Filosofamos un poco? MBE vs MDE vs MDD vs MDA • MDD: Model Driven Development ▪ Es un paradigma de desarrollo que considera los modelos software como principal elemento del proceso de desarrollo. ▪ Normalmente, además, a partir de estos modelos se genera de una forma semi-automática el código. • MDA: Model-Driven Architecture ▪ es la visión particular que tiene OMG de MDD y por lo tanto se basa en el uso de los estándares OMG.
  • 13. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 13 28/02/2023 ¿Filosofamos un poco? MBE vs MDE vs MDD vs MDA • MDA puede ser visto como un subconjunto de MDD. • En cambio, MDE sería un superconjunto de MDD ya que como la E de MDE sugiere, MDE va más allá de las actividades de desarrollo y incluye también otros procesos adicionales de la ingeniería del software como la evolución del sistema o el model-driven reverse engineering de un sistema legado, siempre basándose en el uso de modelos.
  • 14. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 14 28/02/2023 Contenido • Introducción • MDA • Model-driven Web Engineering • MDD y MBE
  • 15. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 15 28/02/2023 ¿Por qué modelamos?
  • 16. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 16 28/02/2023 ¿Por qué modelamos? • Define una vista abstracta de una entidad del mundo real ▪ Encontrar y descubrir objetos/conceptos en un dominio ▪ Asignación de responsabilidades a los objetos • Herramienta de pensamiento ▪ Reducción de la complejidad ▪ Permite documentar las decisiones de diseño • Medio de comunicación en su equipo de desarrollo
  • 17. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 17 28/02/2023 Depues de todo... ¿Por qué modelamos? • El punto real del desarrollo de software es abordar la codificación. • Los diagramas son, después de todo, solo imágenes bonitas. • Ningún usuario te va a agradecer las fotos bonitas; lo que un usuario quiere es un software que ejecute M. Fowler, ”UML Distilled”, 1st edition, Addison Wesley, 1997
  • 18. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 18 28/02/2023 Unified Modeling Language (UML) • “El lenguaje de modelado unificado es un lenguaje visual para especificar y documentar los artefactos de los sistemas.” • Idioma de elección (y estándar ISO) para la notación de diagramas en el desarrollo OO ▪ Estructural – Diagramas de clase(domain models) ▪ Comportamiento – Use Cases, Sequence diagrams • Actualmente en la versión 2.5, aunque muchos analistas y diseñadores aún usan la 1.x
  • 19. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 19 28/02/2023 Ciclo de vida del desarrollo de software: práctica actual Informal Formal Mayormente Texto Diagramas & Texto Diagramas & Texto Código Requerimientos Análisis Diseño Código Pruebas
  • 20. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 20 28/02/2023 Problemas con las prácticas actuales • Productividad ▪ el código es la fuerza impulsora(driving force) ▪ XP: solo codificación y prueba. ¿Cómo puede un extraño entender cómo funciona el código? • Portabilidad ▪ Frecuentemente salen nuevas tecnologías ▪ Adoptado porque lo exigió, resuelve problemas actuales, no admite tecnologías más antiguas ▪ Complejidad empeorada por diferentes versiones, falta de compatibilidad con versiones anteriores • Interoperabilidad ▪ Los sistemas no existen de forma aislada. ▪ Los componentes individuales usan las mejores tecnologías, pero necesitan interactuar • Mantenimiento y documentación ▪ tarea que consume mucho tiempo ▪ el beneficio es “para otros” ▪ “el código es la documentación” pero la documentación de alto nivel es imprescindible para los sistemas complejos
  • 21. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 21 28/02/2023 El rol del modelo en el desarrollo • Modelos como sketch ▪ Para comunicar ideas y alternativas ▪ Esencia: Selectividad ▪ “Sketchers” no tienen que preocuparse mucho por los modelos • Modelos como planos (blueprint) ▪ Expone todas las decisiones de diseño (quizás de un área en particular) ▪ Esencia: Integridad (Completeness) – la programación debería ser bastante sencilla gracias a los modelos. ▪ Issue of reverse engineering • Modelos como programas ▪ Las aplicaciones se generan automáticamente ▪ Esencia : los modelos se convierten en el código fuente grado de model-drivenness
  • 22. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 22 28/02/2023 Modelo - Interacción de código Model Model Model Code Code Code Model Code Code only Code Visualization Roundtrip Engineering Model-centric / Model-driven Model only "Models as Code"
  • 23. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 23 28/02/2023 Model-Driven ... • Desarrollo sistemático en base a modelos • Los modelos se convierten en los artefactos de primera mano en el ciclo de desarrollo de software • Conceptos claves ▪ abstracción del detalle de implementación ▪ transformaciones sistemáticas • Terminología relacionada ▪ Model Driven [Software] Engineering (MDE), ▪ Model Driven [Software] Development (MDD/MDSD), ▪ Model Driven Architecture (MDA) ▪ Model Driven Web Engineering (MDWE)
  • 24. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 24 28/02/2023 MDD: Desarrollo Basado en Modelos • Significa que modelos ejecutables sean el “código fuente” principal de los desarrollos. • Se lo llama Model-Driven Architecture (MDA) o Model-Driven Development (MDD) ▪ “There are many views and opinions about what MDA is and is not.” (Alan Brown, Staff, IBM) • Tratan la provisión de herramientas basadas en modelos, para creación, transformación, testeo, análisis, simulación, ing. inversa, etc. ▪ Ejemplo de MDD para aplicaciones embebidas generales: Telelogic Rhapsody (de IBM) • A este tipo de herramientas antes se las categorizaba como CASE (Computer-Aided Software Engineering) ▪ El término CASE fue tan abusado que ahora se lo utiliza poco.
  • 25. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 25 28/02/2023 Herramientas asistidas por computadora para el desarrollo de sistemas (CASE). • La CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) se emplea con bastante frecuencia en la comunidad de sistemas de información para diseñar la ingeniería de sistemas asistida por computadora o la ingeniería de software asistida por computadora. • Componentes de CASE: Las herramientas de tipo CASE incluyen los siguientes cinco componentes: ▪ Herramientas para diagramación ▪ Un deposito de información ▪ Generadores de interfaces ▪ Generadores de código ▪ Herramientas de administración https://www.enter.co/especiales/enterprise/genexus-permite-crear-apps-sin-saber-de-codigo/
  • 26. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 26 28/02/2023 ¿Qué es Model Driven Architecture? • MDA es definido y desarrollado por el Object Management Group (OMG) desde Marzo del 2001 • MDA es: ▪ "Model-Driven …"-framework para desarrollo de software, definido por el OMG ▪ open, vendor-neutral approach to interoperability using OMG's modeling specifications: • Unified Modelling Language (UML), Meta-Object Facility (MOF) and Common Warehouse Model (CWM) • Principales ideas: ▪ Aborda el ciclo de vida completo del desarrollo del sistema ▪ Especificación separada de la implementación ▪ Especificar un sistema que sea independiente de una plataforma ▪ Generación de código
  • 27. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 27 28/02/2023 MDA: Definición MDA is an approach to system development, which increases the power of models in that work. It is model driven because it provides a means for using models to direct the course of understanding, design, construction, deployment, operation, maintenance and modification. No hay que mezclar los conceptos. MDA no es lo mismo que MDE Model Driven Archietecture (MDA) es la estandarización de la OMG como platarforma para soportar MDD. MDA se basa en separar la especificación de los detalles de implementación. MDA ofrece una aproximación que consiste en paso a paso ir consiguiendo modelos basado en transformaciones.
  • 28. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 28 28/02/2023 ¿MDA es arquitectura? • La arquitectura basada en modelos (MDA) es notable (para mí) porque sus descripciones parecen tener muy poco que ver con la arquitectura. • Prefiero el término “desarrollo dirigido por modelos” (MDD). El concepto fundamental está en la traducción de modelos a soluciones. • Entonces, si este importante nuevo paradigma puede eludir la arquitectura, ¿puede la arquitectura de software ser tan importante?
  • 29. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 29 28/02/2023 ¿MDA es arquitectura? • En algunas comunidades de TI, la arquitectura de software parece haber perdido importancia en la actualidad. • Los “chunks (trozos)" son muy grandes y sofisticados, y van juntos de manera precableada. Crear la arquitectura de software no es una tarea compleja. • Algunas empresas de TI dicen que sus decisiones arquitectónicas consisten en elegir entre las soluciones de dos proveedores competidores. • Una vez que hacen eso, todo lo demás sigue. ¿Puede la arquitectura de software ser tan importante?
  • 30. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 30 28/02/2023 El papel de la arquitectura de software en la ingeniería de software • La historia de la ingeniería de software se puede ver como una espiral cada vez mayor de expresividad del lenguaje, hacia espacios problemáticos y lejos de los detalles de la plataforma. • Cuando aparece una nueva forma de expresar los problemas, los programas son inicialmente muy simples, su estructura es muy simple. • … pero siempre aprendemos a expresar soluciones cada vez más complejas usando los lenguajes que tenemos.
  • 31. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 31 28/02/2023 Palabras finales sobre arquitectura… • A medida que las soluciones escritas con estos nuevos mega-lenguajes de programación se vuelvan cada vez más complejos, la arquitectura estará allí para ayudar a los "arquitectos de soluciones" (el término actual para quienes programan en estos superlenguajes) a ▪ imponer orden en el caos ▪ asegurarse de que se logren los atributos de calidad ▪ estructurar la solución que se está dando a los sistemas informáticos subyacentes. • Veremos un movimiento continuo hacia el soporte de abstracciones de espacio de problemas más grandes, más complejas y más variadas, respaldadas por una tecnología de compilación o traducción más sofisticada que permitirá que los "lenguajes de especificación" o "lenguajes de modelado" de hoy continúen siendo los lenguajes de programación del mañana.
  • 32. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 32 28/02/2023 Volviendo a MDA… • Enfoque de desarrollo basado en modelos ▪ brinda significado al uso de modelos ▪ dirigen el curso del: conocimiento, diseño, construcción, distribución, operación, mantenimiento y modificación del sw • MDA es un estándar que ya no es tan reciente del OMG (Object Management Group) ▪ versión 1.0.1 junio 2003 • Principales objetivos de MDA ▪ Portabilidad ▪ Interoperabilidad ▪ reusabilidad
  • 33. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 33 28/02/2023 MDA: un chico nuevo en la ciudad • Nueva orientación para las actividades de OMG ▪ Nuevo paso más allá de la OMA ▪ Un framework para un conjunto de normas en apoyo de MDD • Los modelos son el ¡punto central! ▪ El middleware de destino no es importante! • Focus on Platform Independent Models (PIM) ▪ Sin detalles del middleware • Abstract Platform Specific Models (PSM) ▪ Incluyendo todos los detalles del middleware • Define las transformaciones de PIM a PSM
  • 34. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 34 28/02/2023 MDA: principios • Inspirado por: ▪ La amplia aceptación pública de UML ▪ OMG va más allá del middleware (CORBA) ▪ La disponibilidad de tecnologías MDD maduras • Propósito: ▪ Permitir el interfuncionamiento entre herramientas complementarias ▪ Fomentar la especialización de herramientas y métodos. ▪ Proporcionar orientación para MDD • MDA overview papers y recursos: ▪ http://www.omg.org/mda
  • 35. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 35 28/02/2023 MDA: beneficios (esperados) • Protege la inversión en software de los cambios y evoluciones tecnológicos ▪ Preserva los PIM cuando aparece un nuevo middleware! • Permite manejar sistemas más grandes y complejos ▪ A través de la separación de niveles/concerns • Permite la integración de aspectos separados desde el principio, y de manera uniforme ▪ security, reliability, performance, ... • Permite que los sistemas heredados se integren en la cadena MDA • Permite la simulación e implementación automática de modelos
  • 36. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 36 28/02/2023 MDA: Conceptos (1/2) • Architecture ▪ “La arquitectura de un sistema es una especificación de las partes y conectores del sistema y las reglas para las interacciones de las partes que usan los conectores.” • Viewpoint ▪ “Un Viewpoint de un sistema es una técnica de abstracción que utiliza un conjunto seleccionado de conceptos arquitectónicos y reglas de estructuración, con el fin de centrarse en preocupaciones particulares dentro de ese sistema.” • View ▪ “A viewpoint model o vista de un sistema es una representación de ese sistema desde la perspectiva de un punto de vista elegido.” • Implementation ▪ “Una implementación es una especificación que proporciona toda la información necesaria para construir un sistema y ponerlo en funcionamiento.”
  • 37. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 37 28/02/2023 MDA: Conceptos (2/2) • Platform ▪ “Un conjunto de subsistemas/tecnologías que brindan un conjunto coherente de funcionalidad a través de interfaces y patrones de uso específicos que cualquier subsistema que dependa de la plataforma puede usar sin preocuparse por los detalles de cómo se implementa la funcionalidad proporcionada por la plataforma.” • Platform Independent Model (PIM) ▪ “Un modelo de un subsistema que no contiene información específica de la plataforma o la tecnología que se utiliza para realizarlo.” • Platform Specific Model (PSM) ▪ “Un modelo de un subsistema que incluye información sobre la tecnología específica que se utiliza en su realización en una plataforma específica y, por lo tanto, posiblemente contiene elementos que son específicos de la plataforma..”
  • 38. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 38 28/02/2023 MDA: modelos (1/5) • Principales conceptos de MDA Computation Independent Model (= modelo de dominio) Platform Independent Model (funcionalidad y comportamiento del sistema, sin detalles de tecnología) Platform Specific Model (mapeo a diversas tecnologías de middleware, generado a partir del PIM, aplicando mapeos standard de la OMG. Código parcialmente autom.) CIM PIM PSM
  • 39. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 39 28/02/2023 MDA: modelos (2/5) MDA contempla cuatro modelos: Platform Specific Models (PSM) ``Big Picture´´ Content Model Platform Independent Design Models (PIM) Business Models (CIM) Navigation Model Process Model Presentation Model Requirements Models Code CIM to PIM Transformation PIM to PIM Transformation PIM to PSM Transformation PSM to Code Transformation Model for J2EE Model for .NET … Platform Specific Models (PSM) ``Big Picture´´ Content Model Platform Independent Design Models (PIM) Business Models (CIM) Navigation Model Process Model Presentation Model Requirements Models Code CIM to PIM Transformation PIM to PIM Transformation PIM to PSM Transformation PSM to Code Transformation Model for J2EE Model for .NET … ✓ CIM: Computation independent model ✓ PIM: Platform independent model ✓ PSM: Platform specific model ✓ Code [Koch, Zhang, Escalona 2006]
  • 40. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 40 28/02/2023 • Ejemplo de MDA ▪ Modelo conceptual UNICO ▪ Modelo funcionalidad y comportamiento UNICO PSM (distintas plataformas) y Deployment (Code) CIM PIM Modelo Corba Modelo Java/EJB Modelo XML/SOAP Otros Modelos Corba Java/EJB XML/SOAP Otros MDA: modelos (3/5)
  • 41. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 41 28/02/2023 MDA: modelos (4/5) • Computation Independent Model (CIM) ▪ A view from a system from the Computational Independent Viewpoint. ▪ Un CIM Se centra en el sistema y su entorno; los detalles de la estructura del sistema están ocultos o aún no se han determinado. ▪ Un CIM a veces se denomina modelo de dominio o modelo de negocio, y se especifica utilizando un vocabulario familiar para los profesionales del dominio en cuestión. ▪ Puede ocultar mucha o toda la información sobre el uso de sistemas automatizados de procesamiento de datos. • Platform Independent Model (PIM) ▪ Un modelo independiente de la plataforma es una vista de un sistema desde un platform independent viewpoint. ▪ Un PIM exhibe independencia de plataforma y es adecuado para su uso con varias plataformas diferentes de tipo similar.
  • 42. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 42 28/02/2023 MDA: modelos (5/5) • Platform Specific Model (PSM) ▪ Un modelo específico de plataforma es una vista de un sistema desde el platform specific viewpoint. ▪ Un PSM combina las especificaciones en el PIM con los detalles que especifican cómo ese sistema usa un tipo particular de plataforma. • Platform Model (PM) ▪ Un modelo de plataforma proporciona un conjunto de conceptos técnicos, que representan los diferentes tipos de partes que componen una plataforma y los servicios proporcionados por esa plataforma. ▪ También proporciona, para su uso en un modelo específico de plataforma, conceptos que representan los diferentes tipos de elementos que se utilizarán para especificar el uso de la plataforma por parte de una aplicación.
  • 43. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 43 28/02/2023 MDA: Ejemplos de modelos • CIM ▪ “Se debe dar prioridad al envío de los entregables más antiguos” • PIM ▪ “Los Entregables se ordenan según fecha de embarque” • PSM/OOD ▪ “Los entregables se ordenan para el envío() en orden creciente, utilizando su atributo de fecha” • PSM/OOP ▪ “Use quicksort() para ordenar Entregables, usando Entregable.fecha como clave de ordenamiento, antes de pasarlos a envío()”
  • 44. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 44 28/02/2023 MDA: Ciclo de vida de desarrollo • PIM: Platform Independent Model ▪ Describe el sistema desde una perspectiva empresarial • PSM: Platform Specific Model ▪ Especifica el sistema en términos de construcciones disponibles en una tecnología de implementación específica • Enfoque transformacional PIM Code Transformation Tool Transformation Tool PSM PSM PSM PSM
  • 45. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 45 28/02/2023 Ciclo de vida del desarrollo de software: práctica de MDA Code Mayormente Texto Requiremientos Análisis Diseño Código Prueba Transformational Steps Informal Formal PSM PIM
  • 46. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 46 28/02/2023 Transformaciones de modelos: MDA Pattern • La transformación de modelos es el proceso de convertir un modelo en otro modelo del mismo sistema • El MDA pattern incluye (al menos): ▪ un PIM, ▪ un Platform Model, ▪ un Transformation, y ▪ un PSM
  • 47. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 47 28/02/2023 Ejemplos de transformaciones MDA UML Model (PIM) <Auto> <Color> Red </Color> <Door> 4 </Door> <Engine> 2 </Engine> </Auto> XMI Document (PSM) XMI <!Element Auto (Color*, Door*, Engine*)> XMI DTD, Schema (PSM) interface Auto { }; IDL, Java… (PSM) Class Auto {public String color; public int Door; public int Engine; }
  • 48. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 48 28/02/2023 Defina las transformaciones Aplicando el MDA pattern • Ya sea haciendo marking a los elementos PIM usando las marks definidas por los mapeos(mappings) • O usando reglas de transformación entre los metamodelos PIM (los lenguajes PIM) y los metamodelos de las plataformas de destino 1
  • 49. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 49 28/02/2023 Marking Aplicando el MDA pattern UML Profiles can be used to define the marks and for marking PIMs MOF QVT languages will define the mappings
  • 50. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 50 28/02/2023 Model mappings y marks • Mappings ▪ Un MDA mapping provee especificaciones para la transformación de un PIM en un PSM para una plataforma particular. El platform model determinará la naturaleza del mapeo. • Marks ▪ Model instance mappings definen marks ▪ Una mark representa un concepto en el PSM, que se puede aplicar a un elemento del PIM para indicar cómo se va a transformar ese elemento • Templates ▪ Un mapeo también puede incluir templates, que son modelos parametrizados que especifican tipos particulares de transformaciones. ▪ Estas plantillas son como patrones de diseño, pero pueden incluir especificaciones mucho más específicas para guiar la transformación.
  • 51. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 51 28/02/2023 Ejemplo del resultado de un mapeo(mapping) interface MyClass { int getAttributeOne(); void setAttributeOne(int v); int oneOperation(); }
  • 52. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 52 28/02/2023 Resultado de una template de transformación usando un Security Profile (ejemplo)
  • 53. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 53 28/02/2023 • Marks distinguen múltiples targets posibles • Clase de marks ▪ Discriminators y enumerators [ isRemote | isBoolean ] ▪ Quantities ( if ( numInstances < Q and frequency < F) LinkedList | HashTable ) ▪ Inputs ( append “db_” to all operation names ) ▪ ... Marks <<isLocal>> PSM <<isRemote>> Invocación Invocación Remota Invocación Local PIM
  • 54. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 54 28/02/2023 ¿Y si no deseo usar marking del PIM? Aplicando el MDA pattern • Hasta ahora hemos visto que se marcan elementos del PIM para indicar los mapeos que se utilizarán para transformar ese PIM en un PSM • Sin embargo, también existe otro enfoque llamado metamodel transformations, donde un transformation engine es usado
  • 55. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 55 28/02/2023 Metamodelado y Metamodelo • Metamodelado: es el análisis, diseño y construcción de los metamodelos necesarios para cubrir un determinado tipo de problemas, así como las reglas y restricciones aplicables. • Metamodelo: conjunto de conceptos del dominio a modelar (metaclases) y las relaciones entre ellos (metasociaciones).
  • 56. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 56 28/02/2023 Metamodelo • Un metamodelo describe la estructura posible de los modelos (o lenguajes) de forma abstracta ▪ Define las construcciones o elementos de un lenguaje de modelado y sus relaciones ▪ Define las restricciones y las reglas de modelado sobre los elementos ▪ No define la sintaxis concreta del lenguaje • Un metamodelo define la sintaxis abstracta y la semántica estática de un lenguaje de modelado
  • 57. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 57 28/02/2023 Metamodelado Un modelo para describir un lenguaje de modelado Clase - nombre: string Atributo -nombre: string - tipo: string Empleado - dni: integer - edad: integer Empresa - cif: string Metamodelo Modelo Nombre de la Clase Nombre Tipo del del Atributo Atributo
  • 58. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 58 28/02/2023 Metamodelado • Los metamodelos y los modelos tienen una relación clase-instancia • Cada modelo es una instancia de un metamodelo • Para definir un metamodelo se necesita un lenguaje de metamodelado que se describe con un metametamodelo • Para habilitar esto necesitamos ▪ Lenguajes de modelado ▪ Definiciones de transformación
  • 59. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 59 28/02/2023 Definición de Lenguajes modelo Está escrito en metamodelo es Definido por Lenguaje Está escrito en meta lenguaje
  • 60. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 60 28/02/2023 MDA Framework Source Model Target Model Transformation tool Transformation definition Lenguaje Lenguaje Está escrito en Es usado por Está escrito en Meta lenguaje Está escrito en Está escrito en
  • 61. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 61 28/02/2023 Definiendo Transformaciones • Una definición de transformación mapea ▪ Elemento(s) desde el lenguaje de origen • a ▪ Elemento(s) del lenguaje de destino • basado en las respectivas definiciones del lenguaje
  • 62. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 62 28/02/2023 Source Model Target Model Transformation tool Transformation definition Lenguaje Lenguaje Está escrito en Es usado por Está escrito en Meta language Está escrito en Está escrito en Transformation definition language Está escrito en
  • 63. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 63 28/02/2023 MDA Framework Completo • Los lenguajes están definidos por modelos ▪ Estos son metamodelos, p.ej. UML • Estos modelos están escritos en un lenguaje de metamodelado: ▪ MOF es el lenguaje de metamodelado de OMG • Transformation Definition Language ▪ MOF RfP para Query/Views/Transformations
  • 64. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 64 28/02/2023 Metamodelos y Transformaciones “es-instancia-de” Refinamiento PIM-PSM Refinamiento PIM-PIMmetamodelo PSM- PSMmetamodelo “es-instancia-de” PIM PSM Metamodelo PIM Metamodelo PSM
  • 65. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 65 28/02/2023 Metaniveles vs. Niveles de Abstracción
  • 66. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 66 28/02/2023 Hacia MOF… • ¿Cómo definir un lenguaje de metamodelado? ▪ Con un lenguaje de meta metamodelado ▪ ¿Y cómo definir un lenguaje de meta metamodelado? • Con un lenguaje de meta metametamodelado – ¿Y cómo definir…? • ¿Hasta cuándo seguir? ▪ Hasta disponer de un lenguaje capaz de describir cualquier otro lenguaje (¡¡incluso a él mismo!!)
  • 67. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 67 28/02/2023 Meta Object Facility (MOF) • Objetivo: Lenguaje “estándar” para especificar metamodelos • Subconjunto de UML • Se utiliza para definir los metamodelos de OMG (como por ejemplo el de UML) • Versión actual: 2.5.1 (basado en UML 2) ▪ http://www.omg.org/spec/MOF/2.5.1/ ▪ (Object Management Group, 2017)
  • 68. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 68 28/02/2023 Arquitectura de 4 niveles y UML 1.x • El metamodelo UML 1.x era compatible pero no se alineaba estrictamente a la arquitectura de 4 niveles en la que cada metamodelo es una instancia de un meta- metamodelo. • UML 2.0 está alineado con MOF, es una instancia de MOF. El núcleo de UML y de MOF comparten los elementos de metamodelado.
  • 69. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 69 28/02/2023 Meta Object Facility (MOF)
  • 70. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 70 28/02/2023 Meta Object Facility (MOF)
  • 71. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 71 28/02/2023 Las cuatro capas de modelado • OMG usa una arquitectura de 4 capas para sus estándares. CWM es un lenguaje de modelado que está diseñado específicamente para modelar aplicaciones de almacenamiento de datos. MOF - un lenguaje especial que se utiliza para definir todos los demás lenguaje
  • 72. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 72 28/02/2023 Vista general de las capas M0-M3 M3 M2 M1 M0 MOF Class Column Address “Bilu” << instance of >> << instance of >> << instance of >> MOF Class Table Employee “Joe” << instance of >> << instance of >> << instance of >> MOF - UML MOF - CWM
  • 73. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 73 28/02/2023 Meta Object Facility MOF • MOF captura la diversidad de estándares de modelamiento para integrar diferentes tipos de modelos y metadatos e intercambiarlos entre diferentes herramientas. • UML 2.0 está alineado con MOF, es una instancia de MOF. El núcleo de UML y de MOF comparten los elementos de metamodelado. • En UML 2.0 los conceptos de MOF y de UML Superstructure derivan de conceptos de UML Infrastructure
  • 74. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 74 28/02/2023 MOF • Las construcciones de modelamiento son un subconjunto del núcleo de UML. • Construcciones de modelamiento ▪ Clases, que modelan metaobjetos MOF. ▪ Asociaciones que modelan relaciones binarias entre metaobjetos. ▪ Tipos de datos, que modelan tipos primitivos (Integer, String,…) ▪ Packages, que modularizan los modelos. • Especificaciones en OCL • Lenguaje natural
  • 75. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 75 28/02/2023 Perfiles UML • Un perfil UML es una agrupación de elementos de modelado (UML) que han sido adaptados para un propósito específico «metaclase» class «metaclase» Association -color : Color -peso : int «enumeración» Color +green +yellow +blue +red <<estereotipo >> Weighed <<profile>> WeightsAndColors <<estereotipo >> Colored
  • 76. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 76 28/02/2023 Perfiles UML • El objetivo de los perfiles es • Proporcionar un mecanismo directo para adaptar un metamodelo existente con constructores que son específicos para un dominio, plataforma o método particular. Dichas adaptaciones se agrupan en un perfil • No es posible eliminar ninguna restricción de los metamodelos de UML, pero es posible añadir nuevas restricciones que son específicas para el perfil • El paquete <<Profiles>> de UML contiene mecanismos que permiten extender las metaclases de metamodelos existentes para adaptarlos a diferentes propósitos. En este paquete se definen los elementos • Estereotipo • Extensión
  • 77. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 77 28/02/2023 Perfiles UML •Elementos que se utilizan en la definición de perfiles • Estereotipo. Define cómo se puede extender una metaclase de UML • Extensión. Se utiliza para indicar que las propiedades de una metaclase se extienden a través de un estereotipo • Definición Etiquetada. Especifican nuevos tipos de propiedades que pueden asociarse a elementos de modelado • Restricción. Pueden asociarse a cualquier elemento de modelado para redefinir su semántica
  • 78. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 78 28/02/2023 Perfiles UML • Ejemplo sencillo de un Perfil UML <<metaclass>> Class -resolution : int <<stereotype>> Clock estereotipo extensión definición etiquetada
  • 79. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 79 28/02/2023 Perfiles UML • Un ejemplo más complejo «metaclase» class «metaclase» Association -color : Color <<profile>> WeighsAndColors <<estereotipo >> Colored -weigh : int <<estereotipo >> Weighed +green +yellow +blue +red «enumeración» Color { context UML::InfrastructureLibrary :: Core::Constructs::Association inv : self.isStereotyped(“Colored”) implies self.connection->forAll(isStereotyped( “Colored”) implies color =self.color)} extensión estereotipo restricción definición etiquetada
  • 80. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 80 28/02/2023 Perfiles UML • Estereotipos • <<Colored>> Proporcionan color a un elemento UML. Solo las clases y las asociaciones pueden colorearse • Definición Etiquetada: color, de tipo Color (tipo Enumerado definido en el perfil). Indica el color de cada clase o asociación que haya sido etiquetada como Colored • <<Weighed>> Proporcionan peso a un elemento UML. Solo las asociaciones pueden tener asociado un peso • Definición Etiquetada: weigh, de tipo integer e indica el peso de cada asociación que haya sido estereotipada como Weighted • Restricción sobre la Asociación • “Si dos o más clases están unidas por una asociación coloreada, el color de las clases debe coincidir con el de la asociación”
  • 81. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 81 28/02/2023 Perfiles UML • Instanciación del Perfil WeighsAndColors <<Colored>> Ciudad <<Colored>> Provincia <<Colored, Weighed>> Pertenece <<Colored>> color = rojo <<Colored>> color = rojo <<Weighed>> weigh = 10 <<Colored>> color = rojo
  • 82. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 82 28/02/2023 Perfiles UML 2.0
  • 83. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 83 28/02/2023 Transformaciones de metamodelo • Un enfoque alternativo al uso de marks (tomado del Perfil UML que define la Plataforma) ▪ Mas poderoso ▪ Mas general • La base de las propuestas QVT • Actualmente, la opción preferida ▪ Deben definirse las transformaciones entre los diferentes metamodelos: • UML<~>Java, UML<~> WSDL, etc.
  • 84. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 84 28/02/2023 Metamodelo UML (sobre-simplificado)
  • 85. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 85 28/02/2023 Metamodelo Java (simplificado)
  • 86. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 86 28/02/2023 UML to Java transformation (ATL) P2P G2s Ae2F C2C I2I A2F OM2M Pr2Pr Dt2Pt [Bezivin, 2004]
  • 87. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 87 28/02/2023 WSDL Metamodel
  • 88. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 88 28/02/2023 UML to WSDL transformation (ATL) Dt2T P2D C2T P2Part I2Pt O2O [Bézivin, 2004]
  • 89. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 89 28/02/2023 Limitaciones de los metamodelos MOF • En MDDs, los diferentes lenguajes de modelado y de programación deben definirse en forma consistente y precisa. • La semántica de MOF está definida mediante UML/OCL: ▪ UML y OCL son imprecisos y ambiguos para verificación, simulación y validación. ▪ Si bien OCL es un lenguaje textual su contexto sintáctico está determinado gráficamente ▪ OCL no tiene el sólido background de los lenguajes formales
  • 90. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 90 28/02/2023 Lenguajes formales versus OCL • Lenguajes formales – Sintaxis – Semántica que describe los modelos asociados a la especificación – Sistema de inferencia que permite describir deducciones que pueden hacerse desde la especificación formal • OCL – El contexto sintáctico de OCL está determinado gráficamente. – Semántica (notación matemática en un estilo de teoría de conjuntos) – No tiene cálculo de pruebas, deducción automatizada
  • 91. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 91 28/02/2023 Lenguajes formales versus OCL • OCL ▪ Análisis sintáctico y de tipos. ▪ Validación dinámica de invariantes, precondiciones y postcondiciones generando “instantáneas” de un modelo y comparándolas con el modelo especificado. Deducciones lógicas Síntesis y verificación de código
  • 92. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 92 28/02/2023 Formalización de MOF • Para lograr un alto grado de automatización en herramientas CASE la semántica de MOF debería ser precisa Automatizar Formalizar • Formalización de MOF ▪ Diagramas estáticos UML ▪ OCL
  • 93. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 93 28/02/2023 Formalización de MOF • En qué lenguaje? ▪ Textual y formal. ▪ Alineado a MOF • MDD involucra diferentes lenguajes de modelado y de programación que deberían estar alineados con MOF y definidos en forma precisa y consistente.
  • 94. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 94 28/02/2023 Formalización de MOF • Interoperabilidad entre diferentes lenguajes formales Metamodelos MOF Leng.Formales Leng.Programación Lenguaje Formal intermedio Transformaciones automáticas
  • 95. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 95 28/02/2023 Metamodel transformation(PIM ➔ PSM) Aplicando el MDA pattern MOF QVT languages define the transformations 2
  • 96. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 96 28/02/2023 Transformaciones MDA — detallado
  • 97. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 97 28/02/2023 Ejemplo de transformación Attribute name: String type: String UML AtoX Element name: String Attribute name: String value: String XML
  • 98. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 98 28/02/2023 La relación y el mapeo relation AtoX { domain { (UML.Attribute) [name = n, type = t] } domain { (XML.Element) [ name = "Attribute", attrs = { (XML.Attribute) [name = "name", value = n], (XML.Attribute) [name = "type", value = t] } ] } } mapping MAtoX refines AtoX { domain { (UML.Attribute) [name = n, type = t] } body { (XML.Element) [ name = "Attribute", attrs = { (XML.Attribute) [name = "name", value = n], (XML.Attribute) [name = "type", value = t] } ] } }
  • 99. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 99 28/02/2023 Una regla de transformación (1/2) Transformation ClassToClass (UML, UML) { source c1: UML::Class; target c2: UML::Class; source condition -- none target condition -- none mapping try PublicToPrivateAttribute on c1.features <~> c2.features; -- everything else remains the same } Transformation PublicToPrivateAttribute (UML, UML) { source sourceAttribute : UML::Attribute; target targetAttribute : UML::Attribute; getter : UML::Operation; setter : UML::Operation; source condition sourceAttribute.visibility = VisibilityKind::public;
  • 100. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 100 28/02/2023 Una regla de transformación (2/2) target condition targetAttribute.visibility = VisibilityKind::private and -- define the set operation setter.name = 'set'.concat(targetAttribute.name) and setter.parameters->exists( p | p.name = 'new'.concat(targetAttribute.name) and p.type = targetAttribute.type ) and setter.type = OclVoid and -- define the get operation getter.name = 'get'.concat(targetAttribute.name) and getter.parameters->isEmpty() and getter.returntype = targetAttribute.type; mapping try StringToString on sourceAttribute.name <~> targetAttribute.name; try ClassifierToClassifier on sourceAttribute.type <~> targetAttribute.type; }
  • 101. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 101 28/02/2023 Aplicar una “template” de transformación
  • 102. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 102 28/02/2023 Model merging Aplicando el MDA pattern 3
  • 103. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 103 28/02/2023 Información adicional Aplicando el MDA pattern ▪ Ejemplo. Un estilo arquitectónico particular puede ser especificado: se puede agregar información a los conectores para especificar la calidad del servicio. 4
  • 104. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 104 28/02/2023 Aplicando el MDA Pattern muchas veces • El MDA pattern puede ser [tiene que ser usualmente] aplicado muchas veces en sucesión ▪ Lo que es un PSM resultante de una aplicación del patrón, será un PIM en la siguiente aplicación
  • 105. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 105 28/02/2023 Ejemplo: Una aplicación multimedia Application’s PIM Application’s CAM Application’s DAOP model Application’s EDOC model CORBA Im- plementation UML Profile for CAM UML Profile for CORBA UML Profile for EDOC UML Profile for DAOP Transf. 2 Transf. 1 Transf. 3 Transf. 4 PIM CORBA model CAM model DAOP model EDOC model CORBA Implem. Transf. 5 [Fuentes et al., 2003]
  • 106. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 106 28/02/2023 Sistemas Multi-plataforma • Muchos sistemas son [pueden ser] construidos para más de una plataforma • Una MDA transformation puede usar marks de varios Platform Models para transformar un PIM en un PSM con partes del sistema sobre muchas plataformas diferentes Platform- Independent Model CORBA Model Java/EJB Model CORBA XML/SOAP Model Java/EJB XML/SOAP Other Other Model Map PSM to application interfaces, code, GUI descriptors, SQL queries, etc.
  • 107. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 107 28/02/2023 Implementaciones Alternativas Application’s PIM Application’s CAM Application’s DAOP model Application’s EDOC model CORBA Im- plementation UML Profile for CAM UML Profile for CORBA UML Profile for EDOC UML Profile for DAOP Application’s DAOP model Application’s EDOC model UML Profile for EDOC CORBA Im- plementation UML Profile for CORBA Application’s DAOP model EJB Im- plementation UML Profile for EJB [Fuentes et al., 2003]
  • 108. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 108 28/02/2023 MDA: Beneficios (1/3) • Productividad ▪ menos código para escribir ▪ cambio de atención del código a PIM ➔ para resolver el problema comercial ▪ PERO: ¡el desarrollo de transformaciones es difícil! • Portabilidad ▪ PIM es por definición completamente portátil ▪ la portabilidad efectiva depende de las transformaciones disponibles • Interoperabilidad • Documentación ▪ PIM cumple el rol de documentación de alto nivel ▪ Herramientas necesarias para mantener las relaciones entre PIM – PSM y Código ▪ Todavía se requiere documentación para PIM, p.ej. motivación de las elecciones
  • 109. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 109 28/02/2023 MDA: Beneficios (2/3) • Productividad ▪ Reducción de Código & pruebas(testing) ▪ Incrementa esfuerzo en el diseño • Cambio de requisitos ▪ Prototipado rápido ➔ detectar cambios tempranamente 0% 10% 20% 30% 40% 50% 60% Effort per project phase 0% 10% 20% 30% 40% 50% Detected Requirements Changes
  • 110. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 110 28/02/2023 MDA: Beneficios (3/3) • Interoperabilidad PIM PSM PSM Code Code PSM Bridge Code Bridge First Transformation First Transformation Second Transformation Second Transformation
  • 111. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 111 28/02/2023 MDA: Ventajas • Cada modelo es independiente del resto ▪ Definido por separado ▪ Cada modelo define sus propias "entidades" y reside en un nivel de abstracción bien definido • El desarrollo de software se convierte en model transformation ▪ Cada paso transforma (uno o más) PIM de un nivel en (uno o más) PSM del siguiente nivel ▪ ...Hasta que se alcance una implementación final del sistema (PSM) • Transformaciones pueden ser automatizadas • Ganamos modularidad, flexibilidad y facilitamos la evolución • Los modelos de aplicaciones que capturan la lógica comercial y la IP(Intellectual property) se convierten en corporate assets, independientes de las tecnologías usadas en la implementación final.
  • 112. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 112 28/02/2023 El proceso MDA: Resumen (1/2) • El CIM de un sistema es preparado mostrando al sistema en el ambiente en el cuál el operará ▪ Ese modelo ayudará a comprender exactamente qué debe hacer el sistema, independientemente de cómo se implemente el sistema. • Un PIM es construido ▪ Describe el sistema, pero no muestra detalles de su implementación en ninguna plataforma • El arquitecto elegirá entonces una Platforma (o varias) ▪ Permiten implementar el sistema con las calidades arquitectónicas deseadas • Luego, a) En el mapeo de instancias de modelo, el PIM está marked: el arquitecto marca elementos del PIM para indicar los mapeos que se utilizarán para transformar ese PIM en un PSM; o b) En Metamodel transformations, un transformation engine es usado
  • 113. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 113 28/02/2023 El proceso MDA: Resumen (2/2) • Transformar el (marked) PIM en un PSM ▪ Esto se puede hacer manualmente, con la ayuda de una computadora o automáticamente ▪ La input a la transformación es el marked PIM, y el mapping ▪ El resultado es el PSM, y el registro de la transformación • Un PSM puede proporcionar más o menos detalles, dependiendo de su propósito ▪ Un PSM será una implementación, si proporciona toda la información necesaria para construir un sistema y ponerlo en funcionamiento ▪ Un PSM puede ser el PIM de la próxima iteración del proceso MDA, hasta que se alcance una implementación adecuada
  • 114. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 114 28/02/2023 MDA: “componentes” Transfor- Mations Editors Model Editors Code Text Generators Transform. Repository Model Validators Models Repository Model Weavers IDE MDA bus: Model Interchange (XMI, IDL o JMI) Transform. Tools Code Files
  • 115. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 115 28/02/2023 MDA: Tecnologías actuales ▪ Meta Object Facility (MOF) ▪ Unified Modelling Language (UML) ▪ XML Model Interchange (XMI) ▪ Common Warehouse Meta-model (CWM) ▪ Software Process Engineering Meta-model (SPEM) ▪ Action Semantics Language (ASL) ▪ Query-View-Transformation (QVT) ▪ Various UML profiles • EDOC (ECA, CCA), • UML-RT, • EJB, • CCM, ... SOAP WSDL XML XML-Schema EDOC .NET BPML XLANG
  • 116. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 116 28/02/2023 MDA: Herramientas • ATL ATLAS Transformation Language is language for general transformation within the MDA framework • MIA Model-in-Action is a tool that implements the concepts of MDA. • OptimalJ is a MDA tool for J2EE. • ArcStyler is a MDA tool for J2EE and .NET. • UMT UML Model Transformation is a tool for model transformation and code generation of UML/XMI models • MTL Model transformation at Inria ModelWare • ModFact is an Open Source project for the MDA at LIP6 • AndroMDA is an open source code generation framework that follows the MDA paradigm • Middlegen is a free general-purpose database-driven code generation engine based on JDBC , Velocity , Ant and XDoclet • OpenModel is a java-based framework for generating executable applications from UML models and it complements ArgoUML • MCC is a MDA tool supporting J2EE and .NET(in the works). • Codagen Architect is MDA tool for J2EE and .NET. • UMLX is an experimental graphical transformation language. • MDA Transf is a MDA transformation engine • GMT (Generative Model Transformer) is a project to build MDA tools such as UMLX • JAMDA (Java Model Driven Architecture) is an open-source framework for building applications generators which create Java code from a model of the business domain • PathMATE Model Automation & Transformation Environment is an industry's MDA environment providing tools for analysis, and model transformation engine • GReAT is a metamodel based graph transformation language useful for the specification and implementation of model-to-model transformation
  • 117. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 117 28/02/2023 Tarea: Comprensión lectora • Leer el artículo y redactar un resumen de máximo 3 página con los aspectos más importantes del mismo. • El resumen deberá ser fruto de vuestra propia síntesis.
  • 118. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 118 28/02/2023 Contenido • Introducción • MDA • Model-driven Web Engineering • MDD y MBE
  • 119. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 119 28/02/2023 Ingeniería web dirigida por modelos (MDWE) • Los enfoques de MDWE tienen como objetivo: ▪ mejorar el proceso de desarrollo de aplicaciones web al enfocarse en el modelado en lugar de codificar ▪ derivar la aplicación final, transformando los modelos conceptuales a código fuente. Rossi, Gustavo, Urbieta, Matias, Distante, Damiano, Rivero, Jose Matias, & Firmenich, Sergio. (2016). 25 Years of Model-Driven Web Engineering. What we achieved, What is missing.. CLEI Electronic Journal, 19(3), 5-57. https://doi.org/10.19153/cleiej.19.3.1
  • 120. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 120 28/02/2023 Recapitulación de aplicaciones web... Las aplicaciones web tienen 3 bloques de construcción principales: • Content ▪ Document-centric, multimediality ▪ Generating, updating, integrating, quality assurance • Hypertext (Navigation) ▪ Non-linear nature of hypertextual documents ▪ Hypertext models: links, nodes (URL), anchors ▪ Disorientation • Presentation ▪ User Interface ▪ Self-explanatory ▪ Aesthetics
  • 121. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 121 28/02/2023 Lógica de Aplicación Interfaz de ususario MDE: Modelado de aplicaciones de software • Niveles – el “cómo” & “que” de una applicación • Aspectos ▪ Estructura: objetos, atributos, y relaciones ▪ Comportamiento: funciones & procesos • Fases – Ciclo de desarrollo Análisis Diseño Implementación Estructura Comportamiento Fases Niveles Aspectos
  • 122. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 122 28/02/2023 MDWE: Modelado de aplicaciones web • Niveles – Información, node/link structure, UI & page layout separate. • Aspectos – Igual que en Aplicaciones de Software • Fases – El enfoque depende del tipo de aplicación • Customization – Context information, personalización Contenido Presentación Análisis Diseño Implementación Estructura Comportamiento Fases Niveles Aspectos Hipertexto Customization
  • 123. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 123 28/02/2023 Requisitos de modelado • Casos de uso para requisitos funcionales (representación gráfica) • Navigational use cases →Ya mismo lo revisaremos en un ejemplo (sistema de conferencias parecido a easychair)! • En Web Engineering, nos preocupa... 1. Modelado de contenido 2. Modelado de hipertexto 3. Modelado de presentación The Conference Review System
  • 124. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 124 28/02/2023 Modelado web (Web Modeling) • Modelado de aspectos estáticos & dinámicos del contenido, el hipertexto y la presentación • Nos centramos en el análisis y el diseño orientados a objetos ▪ Análisis: Encontrar & descubrir clases de objetos/conceptos en un dominio ▪ Diseño: Definición de objetos de software & cómo interactúan para cumplir con los requisitos.
  • 125. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 125 28/02/2023 Objetos • Entidades de software – como las entidades del mundo real – que consisten en estados y comportamientos • Estado: ▪ Las variables almacenan los estados de las propiedades de un objeto ▪ Oculto del mundo exterior (encapsulación de datos) • Comportamiento: ▪ Los métodos definen los comportamientos del objeto ▪ Utilizado por objetos para comunicarse con otros objetos • Clases ▪ Plantillas(blueprints) para crear objetos de un tipo particular
  • 126. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 126 28/02/2023 Objetos Ejemplo de Clase/atributos/métodos Objetos bicicletas Abstraídos en Clase Bicicleta Atributos Tamaño de frame Tamaño de llanta Material ... Métodos Cambio Mover Frenar...
  • 127. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 127 28/02/2023 Clase Instancia 1 Instancia 2 Perro unPerro atributo X valor x1 valor x2 nombre peso Sultán 19 libras unPerro Fido 9 libras operación OPT OPT OPT sentarse girar operaciones de la clase operaciones de la clase Objetos Ejemplo de Clase/atributos/métodos
  • 128. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 128 28/02/2023 Descubrir Objetos en un Dominio • La forma en que representamos el modelo de software de un dominio debe parecerse al modelo físico lo más cerca posible • Para encontrar clases clave de objetos : ▪ Reutilizar los modelos existentes, si existen ▪ Hacer una lista de categorías • Gente, lugares, cosas • Transacciones • Eventos ▪ Identificar sustantivos • Al nombrar clases, use los términos que se usan comúnmente en el dominio ▪ es decir, términos que los usuarios entenderían
  • 129. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 129 28/02/2023 Asignación de responsabilidades • Las responsabilidades son las obligaciones o comportamientos de un objeto relacionados con su papel en el sistema • ¿Qué hace un objeto? ▪ Haciendo algo (para) a sí mismo ▪ Pasar acciones (mensajes) a otros objetos ▪ Controlar & coordinar las actividades en otros objetos • ¿Qué conoce un objeto? ▪ Datos privados y encapsulados ▪ Sus objetos relacionados ▪ Elementos que puede derivar o calcular
  • 130. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 130 28/02/2023 MDWE Diversos métodos de modelado (no todos son MDA) ER 1990 1995 2000 2005 OMT UML RMM HERA WEBML HDM HDM-lite W2000 WSDM OOHDM UWE OO-H OOWS WebSA WAE WAE2 Data- oriented Hypertext -oriented Object- oriented SW-oriented 2001 MDA
  • 131. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 131 28/02/2023 UWE: UML para Web Engineering • Notación UML Web Engineering (UWE) ▪ UML- compatible ▪ Comprensiva herramienta de modelado ▪ Descarguelo aqui: https://uwe.pst.ifi.lmu.de/index.html ▪ Requiere MagicDraw UML (La edición gratuita es suficiente)
  • 132. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 132 28/02/2023 Ejemplo: el sistema de revisión de artículos de conferencia • Este ejemplo tiene como objetivo comparar diferentes métodos de modelado de aplicaciones web • El propósito del sistema es apoyar el proceso de presentación, evaluación y selección de papers(artículos) para una conferencia. The Conference Review System
  • 133. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 133 28/02/2023 Actores I • PC Chair ▪ crea la conferencia ▪ determina los tópicos de la conferencia (o tracks) y temas ▪ establece el Program Committee ▪ define la lista final de papers acceptados y rechazados ▪ define los plazos de la conferencia: submission, review, y notification. • PC Member ▪ evalúa un conjunto de papers que le han sido asignados ▪ indica a otra persona como revisor de un paper ▪ sugiere al PC Chair la lista final de papers aceptados The Conference Review System
  • 134. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 134 28/02/2023 Actores II • Reviewer ▪ Responsable de revisar un paper • Author ▪ Envía(submit) un documento para su aceptación en la conferencia ▪ PC Members y Reviewers pueden además ser Authors, deben tener diferentes identificaciones para cada rol The Conference Review System
  • 135. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 135 28/02/2023 Funciones I: Paper Submission • Cualquier autor registrado puede enviar un paper ▪ El autor debe registrar: el título, el resumen, el track de la conferencia y un conjunto de temas elegidos de una lista previamente determinada por el PC Chair, si hay uno ▪ El sistema, después de verificar los registros de los autores, asigna un ID de paper al nuevo paper, y permite al autor enviarlo(submit) cargando un archivo(file) ▪ En cualquier momento, un autor puede verificar los datos sobre sus papers enviados. Hasta la fecha límite de envío, el autor también puede sustituir el archivo cargado por uno nuevo, o cambiar cualquiera de los datos informados sobre el paper. The Conference Review System
  • 136. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 136 28/02/2023 Funciones II: Asignación de Papers a los PC Members • El PC Chair puede indicar posibles conflictos de intereses entre los PC Members y los papers enviados a la plataforma • Una vez que se ha alcanzado la fecha límite de presentación(deadline) ▪ Los PC Members pueden indicar sus intereses y también conflictos de intereses con algunos papers ▪ En caso de conflicto de intereses, el PC Member no verá ninguna información acerca del paper ▪ El PC Chair asignará papers al PC Members para su revisión (reviewing), se enviará un mensaje de email con el listado de papers, y una y una URL a una página donde puede acceder a estos papers The Conference Review System
  • 137. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 137 28/02/2023 Funciones III: Ingresar una Review • Un PC Member, o un Reviewer, puede ingresar una revisión para un paper asignado a él • La revisión(review) se ingresa accediendo a un formulario que contiene todos los elementos(ítems) de evaluación • Un PC Member puede ver otras reviews (ingresado por otros) para cualquiera de los papers que está revisando, pero solo después de haber ingresado su propia revisión (review) • El PC Chair tiene total acceso a todos los papers y todas las reviews The Conference Review System
  • 138. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 138 28/02/2023 Funciones IV: Elegir papers aceptados y rechazados • Una vez que se ha alcanzado la fecha límite de revisión, el proceso de revisión está cerrado • El PC Chair, teniendo en cuenta las recomendaciones de los PC Members y reviewers, elige los papers que serán aceptados y rechazados • Una vez que el proceso está marcado como finalizado por el PC Chair, el sistema emite un mensaje de notificación a los autores del paper, que incluye las partes apropiadas de las revisiones presentadas por los PC Members y reviewers The Conference Review System
  • 139. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 139 28/02/2023 MDWE: Modelado de contenido Cómo modelar los datos subyacentes a una aplicación web • Propósito: modelar los requisitos de información de una Aplicación Web ▪ Diagrama los aspectos estructurales (es decir, objetos de información) & de comportamiento de la información. ▪ NO está interesado por la navegación o la presentación • Modelos primarios ▪ Diagramas de clases – suficiente para aplicaciones estáticas. ▪ Diagramas de máquinas de estado – captura aspectos dinámicos 1 The Conference Review System
  • 140. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 140 28/02/2023 Modelo de estructura de contenido Class name Class attributes Class operations Relation Invariant Derived attribute Composition The Conference Review System
  • 141. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 141 28/02/2023 Modelo de comportamiento del contenido Initial State Condition Final State The Conference Review System
  • 142. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 142 28/02/2023 MDWE: Modelado de hipertexto Cómo modelar el hipertexto de una aplicación web • Propósito: Modelar las rutas de navegación disponibles para los usuarios • Artefactos UWE* (UML-based Web Engineering) ▪ Modelo de estructura de hipertexto (modelo de navegación) ▪ Modelo de acceso • Se centra en la estructura de los elementos de hipertexto & acceso • Use la anotación “<<navigation class>>” para distinguirse de las clases de contenido • Basado en el modelado de contenido (paso 1) * http://uwe.pst.ifi.lmu.de/index.html 2 The Conference Review System
  • 143. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 143 28/02/2023 Diferentes modelos ... diferentes enlaces(links) ... • HDM (Hypertext Design Model) – Structural links connect elements of the same node (e.g. review summary to review details) – Perspective links put various views of a node in relation (e.g. PS and PDF of a paper) – Application links put different nodes in relation depending on application (e.g. link pointing to best paper) • WebML (Web Modeling Language) – Contextual links carry context information (e.g. ID of reviewer) – Non-contextual links have no associated context information (e.g. link from single review to list of all reviews) – Intra-page links: source and destination are on the same page further down/up – Inter-page links: different pages • UWE – Navigation links (navigate between nodes, e.g. Papers and authors) – Process links (start node of a process, e.g. Beginning of review submission) – External links (external page) • ... The Conference Review System
  • 144. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 144 28/02/2023 Navigation Structure Model The Conference Review System
  • 145. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 145 28/02/2023 Navigation Access Model • Los modelos de estructura de hipertexto describen la navegación, pero no la orientación. • Los modelos de acceso describen ambos a través de patrones de navegación, utilizados para describir constantemente elementos convencionales. ▪ <<index>> (lista de objetos del mismo type) ▪ <<menu>> (lista de objetos heterogeneos) ▪ <<guided-tour>> (secuencia de links) ▪ <<query>> The Conference Review System
  • 146. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 146 28/02/2023 Navigation Access Model The Conference Review System
  • 147. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 147 28/02/2023 MDWE: Modelado de presentación Cómo modelar la apariencia(look&feel) de una aplicación web • Propósito: Modelar el aspecto y la sensación de la aplicación web en el nivel de página. • El diseño debe apuntar a la simplicidad y la auto-explicación. • Describe la estructura de presentación: ▪ Composición & diseño de cada página ▪ Identificar elementos recurrentes (headers/footers) • Describe el comportamiento de presentación: ▪ Elementos => Eventos 3 The Conference Review System
  • 148. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 148 28/02/2023 Niveles de modelos de presentación • Página de Presentación –elemento “root”; equivalente a una página container. • Presentation Unit ▪ Un fragmento de la página lógicamente definido al agrupar elementos relacionados. ▪ Representa un nodo modelo de hipertexto • Presentation Element ▪ A unit’s (node’s) informational components ▪ Text, images, buttons, fields The Conference Review System
  • 149. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 149 28/02/2023 Presentation Structure Model The Conference Review System
  • 150. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 150 28/02/2023 Presentation Behavior Model The Conference Review System
  • 151. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 151 28/02/2023 WebML • WebML (Web Modeling Language) es una notación visual y una metodología para diseñar aplicaciones web complejas con uso intensivo de datos • En 2013, WebML se amplió para cubrir un espectro más amplio de interfaces front-end, lo que resultó en el lenguaje de modelado de flujo de interacción (IFML), adoptado como estándar por Object Management Group (OMG). • Official webpage: http://www.webml.org/ • Tools support: http://www.webratio.com/
  • 152. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 152 28/02/2023 WebML
  • 153. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 153 28/02/2023 Los modelos WebML • WebML ▪ Un lenguaje conceptual para el diseño de alto nivel de sitios web. • Models: ▪ Structure model - data organization ▪ Derivation model - redundant data definition • La derivación es el proceso de agregar información redundante al modelo de estructura, para aumentar su expresividad y definir diferentes vistas y agrupaciones de los mismos datos. ▪ Composition model - definición de las páginas del sitio como conjunto de subpáginas y unidades de publicación elementales ▪ Navigation model: definición de enlaces entre páginas y entre unidades(units) ▪ Presentation model: posicionamiento de las unidades en la página y definición de la apariencia gráfica
  • 154. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 154 28/02/2023 Vista previa de los conceptos de WebML • Site = Data + Composition + Navigation + Presentation data navigation + composition presentation user models entities, relationships units, pages, links site views styles
  • 155. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 155 28/02/2023 Data Model (1) • Pregunta ▪ ¿Cuáles son los objetos publicados en el sitio y cómo se relacionan? • Respuesta ▪ Entity: un tipo de objeto en el dominio de la aplicación ▪ Attribute: propiedad escalar de una entidad ▪ Relationship: Una conexión entre entidades ▪ IS-A hierarchy: clasificación y agrupación • Compatible con Entidad-Relación y diagramas de clase(UML)
  • 156. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 156 28/02/2023 Data Model (2) • Simplified Entity-Relationship model ▪ Binary relationships between entities ▪ IS-A hierarchies ▪ Simple typed attributes in entities ▪ Derivation model can be applied for redundant data Book Author Genre BestSeller
  • 157. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 157 28/02/2023 Derivation Model • Los datos redundantes se pueden especificar fácilmente usando un WebML-OQL (Object Query Language). • Ejemplo: ▪ BestSeller := Book where Book.Sales > 50,000 ▪ Author.BooksNumber = count(self.Author2Book) Book Author BestSeller
  • 158. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 158 28/02/2023 Hypertext Model • Q1: ¿Qué información se publica en los nodos de hipertexto? • Q2: ¿Cómo están conectados los nodos de hipertexto? • Q3: ¿Cómo se sirve al usuario el hipertexto en páginas? • A1: Content units (Composition) • A2: Links (Navigation) • A3: Pages (Composition)
  • 159. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 159 28/02/2023 Composition: examples of Content Units description DATAUNIT INDEXUNIT content content To publish information about A SINGLE object (e.g. AuthorDetail) To publish a list of objects (e.g. IndexOfAuthors)
  • 160. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 160 28/02/2023 Composition: examples of Content Units rendering DATAUNIT INDEXUNIT Author first name:XXX last name:YYY photo: Index of Authors •S. Ceri •P. Fraternali •O.Versand Author Author
  • 161. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 161 28/02/2023 Navigation Model: Links entity: author Book [ author2book ] • Semantics of a link: 1. Moving from one place to another 2. Transporting information from one place to another (navigation context) 3. Activating a computation (side effect) AuthorID is transported
  • 162. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 162 28/02/2023 Composition: Pages • A Page is a structured container of units and links ▪ Possibly structured in and/or sub-pages ▪ Abstraction of screen, frame, card, deck... ▪ Permits one to cluster related information for more efficient communication • E.g.: Author Author index of authors and the selected author are shown together in the same page
  • 163. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 163 28/02/2023 Types of links • Contextual links ▪ Between units ▪ Context transported • Non-contextual links ▪ Between pages ▪ No context transported Voyages Books
  • 164. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 164 28/02/2023 Write access: WebML operations • Some predefined operations are provided • Customized operation can be defined • E.g.:delete of an Author Create Op. X Author Author Delete
  • 165. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 165 28/02/2023 Siteviews • A Siteview is a set of pages that the user can experience as a whole Web site • Different site views can be defined for different devices and different groups of users • Access control and multi-devices delivery is achieved through Siteviews
  • 166. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 166 28/02/2023 Presentation • Presentation dealt with along 3 lines: ▪ Grid model of the page for content positioning no WYSWYG ▪ Gallery of default presentation styles applicable to site views or single pages ▪ Compatibility with best selling tools for presentation editing, for advance page design e.g. WebML extensions for Dreamweaver
  • 167. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 167 28/02/2023 Modeling with WebRatio tool
  • 168. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 168 28/02/2023 Things to keep in mind (or summary) • WebML is Domain Specific Language (DSL) ▪ Is not UML or MDA ▪ But … • WebML is about Model Driven Design and Development ▪ Focus on data intensive Web applications ▪ Automatic code generation of Web applications • One model for each layer ▪ Content ▪ Navigation ▪ Presentation • Tool Support!
  • 169. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 169 28/02/2023 HERA
  • 170. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 170 28/02/2023 The Hera Framework: Design Steps, Models, and Processing Engines Hera Suite Design Methodology Requirements Analysis Conceptual Design Integration Design Application Design Adaptation Design Presentation Design (Search) Agent info request (meta) data Conceptual Model Application Model info request (slice) presentation End User RQL / RDF XSLT / XML User Model Presentation Model Presentation Engine Application Engine Integration Engine Cuypers Engine Adaptation Engine info request HTML/WML Integration Model Semantic Layer Application Layer Presentation Layer
  • 171. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 171 28/02/2023 OOHDM Artist {from a:Artist} name: xsd:string tracks:Idx Tracks By Artist(self) genres:Idx Genres By Artist(self) Genre {from g:Genre} name: xsd:string artists:Idx Artists By Genre(self) 1..* isGenreOf 1..* Track {from t:Track} title: xsd:string artistName: anchor (Ctx Artist Alpha (a:Artist where a plays t)) plays 1..* 1 Genres Artists Tracks Artists Alphabetic By Genre Tracks Alphabetic By Artist Menu
  • 172. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 172 28/02/2023 Ejemplo: Una agencia de viajes A Travel Agent System
  • 173. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 173 28/02/2023 “Modelo conceptual” A Travel Agent System
  • 174. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 174 28/02/2023 Propuestas de Desarrollo de Web-Apps • Actualmente, las aplicaciones Web se pueden generar a partir de modelos ▪ Ellos son buenos generadores de código (i.e., ad-hoc “model compilers”) • Modelado de aplicaciones web (pre-Web Engineering) ▪ Ejemplo: Propuesta de Jim Conallen ☺ Model Web entities (web pages, servers, forms, etc) • MDD Web Engineering (pre-MDA) ▪ Ejemplos: UWE (ArgoUWE), OO-H (VisualWADE), OOHDM, OOWS, WSDM, WebML ☺ Modelar los aspectos de presentación y navegación. ☺ Sus modelos conceptuales capturan y manejan con éxito la estructura de la aplicación.
  • 175. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 175 28/02/2023 Modelo de Jim Conallen (extracto) A Travel Agent System
  • 176. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 176 28/02/2023 OO-H (Object-Oriented Hypermedia) Functional ViewPoint Conceptual View Presentation View Process View Navigational View Object-Oriented Hypermedia Method
  • 177. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 177 28/02/2023 OO-H: Modelo de dominio (Conceptual) A Travel Agent System
  • 178. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 178 28/02/2023 OO-H: Modelo de Navegación A Travel Agent System
  • 179. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 179 28/02/2023 OO-H: Modelo de Presentación A Travel Agent System
  • 180. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 180 28/02/2023 OO-H: Resultado Final A Travel Agent System
  • 181. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 181 28/02/2023 UWE (UML-based Web Engineering) [Koch et al., 2001]
  • 182. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 182 28/02/2023 UWE: Metamodelo (1/2)
  • 183. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 183 28/02/2023 UWE: Metamodelo (2/2)
  • 184. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 184 28/02/2023 UWE: Modelo Conceptual A Travel Agent System
  • 185. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 185 28/02/2023 UWE: Modelo Navegacional <<navigation class>> TravelAgency <<navigation class>> User TravelAgency Menu ? BookingList 0..1 <<process class>> SignIn <<process link>> <<process link>> UserBookings <<navigation class>> Bookings BookingsItems <<navigation class>> BookingItem 0..* AccountInfo SelectedBookings SearchBookings <<process class>> FindTravel A Travel Agent System
  • 186. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 186 28/02/2023 UWE: Modelo de Presentación: Structural view <<presentation group>> FindTravel <<presentation group>> Header <<presentation group>> Activity <<presentation class>> SetPaymentOptions <<presentation class>> ConfirmTravel <<presentation class>> SetTravelOptions <<presentation class>> TravelAgenMenu <<presentation class>> Logo <<presentation class>> Title A Travel Agent System
  • 187. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 187 28/02/2023 UWE: Modelo de Presentación: User Interface <<presentation group>> FindTravel <<presentation class>> TravelAgenMenu << anchor>> Head << anchor>> NewUser << anchor>> SearchUsers << anchor>> Bookings << anchor>> Home <<presentation class>> SetTravelOptions <<presentation class>> Header << image>> Logo << text>> Title << pulldown menu>> From << pulldown menu>> Departure << pulldown menu>> Passengers << button>> Continue << pulldown menu>> To << pulldown menu>> Return << pulldown menu>> Class << button>> One-Way << button>> Round-Trip A Travel Agent System
  • 188. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 188 28/02/2023 Propuestas de desarrollo de Web-Apps: Resumen • Web-Apps Modelling (pre-Web Engineering) ▪ Ejemplo: propuesta de Jim Conallen ☺Model Web entities (web pages, servers, forms, etc) Too low level (basically, useful to model the PSM only) • MDD Web Engineering (pre-MDA) ▪ Examples: UWE (ArgoUWE), OO-H (VisualWADE) , OOHDM, OOWS, WSDM ☺Modela los aspectos de presentación y navegación. ☺Sus modelos conceptuales capturan y manejan con éxito la estructura de la aplicación No aborda (adecuadamente) otros aspectos: business processes, choreography, distribution, etc. Ad-hoc code generation (i.e., model compilation)
  • 189. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 189 28/02/2023 MDA para Web Applications • “MDA es adecuado para desarrollar sistemas distribuidos que se componen de componentes que se ejecutan en diferentes plataformas/niveles. Por ejemplo, puede haber una capa web implementada en ASP.Net, pero que se comunica con un capa intermedia mediante EJB, con un back-end que es un RDBMS de Sybase. MDA puede generar el software para los niveles, además del código para unirlo todo.” [Haywood, 2004]
  • 190. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 190 28/02/2023 ¿Es la MDA una opción adecuada para tí? • ¿Son los modelos importantes para ti? ▪ es decir, ¿a su empresa le importan los modelos? • ¿Son sus plataformas tan inestables? • ¿Puedes hacer frente al proceso de Desarrollo? ▪ Incluido su equipo de desarrollo... Se requieren nuevas habilidades! • ¿Tu negocio lo compraría? • ¿No es algo preocupante tener dos sabores diferentes (Escuelas) de MDA? ▪ Elaboracionalistas (e.g. Optimal/J, ArcStyler) 70% executable annotated PIMs ▪ Traductores (e.g. Executable UML) 100% executable PIMs • En condiciones reales de trabajo, – honestamente – ¿crees que esto funcionaría? ▪ ¿Será capaz de generar código a partir de modelos, incluso cuando aún no nos pongamos de acuerdo sobre cómo representar el comportamiento? [Dan Haywood, 2004]
  • 191. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 191 28/02/2023 Los dos enfoques actuales de MDA • Generativo ▪ Los modelos a menudo se usan para la generación de código, seguido de la compilación y luego la ejecución. ▪ Mantiene el modelado y la ejecución separados. • Interpretativo ▪ Permite que los modelos se ejecuten directamente (se relaciona con el enfoque del lenguaje de programación interpretativo).
  • 192. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 192 28/02/2023 Los dos enfoques actuales de MDA • Los modelos no contienen toda la información(e.g. behaviour) • La información faltante se agrega como refinamiento en el PSM o código • Round-trip engineering a veces es posible • Los modelos son una declaración (statement) completa y ejecutable de una solución • Los compiladores de modelos traducen estos modelos en un sistema en ejecución • ASL son usados para modelar behaviour • No requiere intervención manual Generativo Interpretativo
  • 193. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 193 28/02/2023 The MDA way (el proceso MDA) • Defina el PIMs del Sistema (structure, behaviour, navigation, presentation, components, distribution, ...) • Seleccione la plataforma(s) de destino ▪ Web pages (navigation), Java (Travel Agency), WSDL and JWSDP (external services: banks, airlines, ...),... • Defina las transformaciones ▪ Ya sea usando reglas de transformación entre los metamodelos PIM (los lenguajes PIM) y los metamodelos de las plataformas de destino ▪ O haciendo marking a los elementos PIM usando las marks definidas por los mapeos(mappings) • Aplique los mappings a los elementos PIM ▪ Usando un motor de transformación, o manualmente ▪ Esto producirá un conjunto de elementos de diferentes PSM • Bridges (e.g., calls) between elements in heterogeneous target PSMs should be defined!
  • 194. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 194 28/02/2023 The Travel Agent Example A Travel Agent System
  • 195. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 195 28/02/2023 PIM del Sistema (estructura) A Travel Agent System
  • 196. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 196 28/02/2023 PIM del Sistema (Procesos – extracto) (EDOC) A Travel Agent System
  • 197. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 197 28/02/2023 Transformando el PIM (estructura) • Transformaciones de metamodelo ▪ Un enfoque alternativo al uso de marks (tomado del Perfil UML que define la Plataforma) • Mas poderoso • Mas general ▪ La base de las propuestas QVT ▪ Actualmente, la opción preferida • Veamos cómo transformar el PIM de la estructura del sistema a implementaciones Java, WSDL y JWSDP ▪ Deben definirse las transformaciones entre los diferentes metamodelos: • UML<~>Java, UML<~>WSDL, UML<~>JWSDP, 1
  • 198. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 198 28/02/2023 Metamodelo UML (sobre-simplificado)
  • 199. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 199 28/02/2023 Metamodelo Java (simplificado)
  • 200. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 200 28/02/2023 UML to Java transformation (ATL) P2P G2s Ae2F C2C I2I A2F OM2M Pr2Pr Dt2Pt [Bezivin, 2004]
  • 201. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 201 28/02/2023 Metamodelo WSDL
  • 202. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 202 28/02/2023 UML to WSDL transformation (ATL) Dt2T P2D C2T P2Part I2Pt O2O [Bézivin, 2004]
  • 203. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 203 28/02/2023 Metamodelo JWSDP
  • 204. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 204 28/02/2023 PSM usando Java, WS, y JWSDP A Travel Agent System
  • 205. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 205 28/02/2023 Transformando el PIM (comportamiento) • Las transformaciones del metamodelo también parecen ser apropiadas para el comportamiento. • No hay notación acordada para describir el comportamiento ▪ State-based approaches (state machines, ASL, SDL) ▪ Declarative approaches (pre-post, contracts) ▪ Protocol-based approaches (diagramas de secuencia e interacción) • Ellos no comparten un modelo de comportamiento común • Comúnmente se usan vainilla UML o algunos dialectos UML y perfiles (UML Profile para EDOC, UML-RT,...) 2
  • 206. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 206 28/02/2023 PIM del Sistema (Procesos – extracto) [Bezivin, 2004] (EDOC) A Travel Agent System
  • 207. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 207 28/02/2023 EDOC Process Components to Java Dt2T Cd2C A2F F2P O2M P2I Pc2C [Bezivin, 2004]
  • 208. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 208 28/02/2023 MDA-based proposals: Summary • MDA-based (model transformations): ATLAS’s, Optimal/J, ArcStyler ☺Compilación de modelos estructurados, según enfoque y disciplinas MDA ☺Muy buen tratamiento de la estructura empresarial (Modelo Conceptual): modularidad, independencia de plataforma, separation of concerns, .... Tratamiento muy simplista de navegación y presentación No existe consenso para modelar el comportamiento y la secuencia Optimal/J y ArcStyler están muy enfocados en tecnologías particulares (J2EE, .NET)
  • 209. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 209 28/02/2023 ¿Y ahora? • Defina todos los PIM del sistema • Analice la cobertura de cada propuesta • Utilice las herramientas actuales, vea hasta dónde puede llegar y cuánto puede integrarlo dentro de sus procesos de desarrollo • Trate de usar cada propuesta y herramienta donde sea que muestren su fortaleza y beneficios • Identifique los vacíos no cubiertos por ninguna de las propuestas actuales • Actividades de investigación y desarrollo: ▪ Adaptar las propuestas actuales para hacerlas conformes a MDA (y así hacerlas interoperables, con diseño modular, etc.) ▪ Desarrollar nuevas propuestas que llenen los vacíos ▪ Trabaja en más herramientas 3
  • 210. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 210 28/02/2023 Modelos (PIMs) de una Web Application
  • 211. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 211 28/02/2023 Modelos cubiertos por Conallen
  • 212. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 212 28/02/2023 Modelos cubiertos por UWE
  • 213. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 213 28/02/2023 Modelos cubiertos por OO-H
  • 214. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 214 28/02/2023 Models covered by Optimal/J
  • 215. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 215 28/02/2023 Modelos cubiertos por ATLAS works
  • 216. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 216 28/02/2023 ¡Intentemos hacerlo bien! ✓Defina todos los PIM del sistema ✓Utilice/adapte cada propuesta para modelar los aspectos que le resulten más adecuados, p.ej. ✓ OO-H o UWE pueden modelar navegación y presentación Pero adaptarlos para que no generen código de forma ad-hoc, sino según los principios de la MDA ✓ ATL se puede utilizar para transformaciones de metamodelos (entre los modelos generados por cada propuesta) ✓ Optimal/J y ArcStyler pueden generar el código EJB o .NET Pero adáptalos para que puedan generar código de otras plataformas de forma más natural. ✓ La propuesta de Conallen puede modelar el PSM • ...y las brechas(gaps)?
  • 217. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 217 28/02/2023 Contenido • Introducción • MDA • Model-driven Web Engineering • MDD y MBE
  • 218. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 218 28/02/2023 Model-Driven Development (MDD) La Visión • Ir mucho más allá de la noción de herramientas CASE (Computer Aided Software Engineering) de los años 80 • Reducir la brecha (gap) entre el problema y el dominio de realización ▪ modelos como artefacto principal a lo largo del ciclo de vida en lugar de código ▪ modelos como programa en lugar de modelos como sketch/blueprint • Transformaciones sistemáticas de modelos abstractos a implementaciones concretas • Estándares para el almacenamiento, intercambio y transformación uniforme de modelos
  • 219. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 219 28/02/2023 Model-driven Development (MDD) • Un desarrollo MDD distingue al menos las siguientes etapas: ▪ La construcción de un modelo del dominio, denominado CIM, que expresa la lógica del negocio desde una perspectiva independiente de la computación. ▪ La construcción de un modelo, denominado PIM, que expresa la funcionalidad del sistema en forma independiente de las características de plataformas de implementación específicas. ▪ La transformación de un PIM en uno o más modelos en una plataforma específica, denominados PSM. ▪ La transformación de modelos PSM a modelos de implementación, denominados ISM.
  • 220. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 220 28/02/2023 MDD: Ventajas • La forma de “representar” los conceptos ya no es tan relevante. Lo importante son los conceptos. • Las relaciones permiten “controlar” la consistencia de los modelos. • Las transformaciones son una vía que se pueden traducir en “procesos” de transformación.
  • 221. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 221 28/02/2023 Servicio Añadir Servicio Sacar Servicio Servicio Servicio Servicio Sistemas de Información = conjunto de servicios independientes Modelo de la Empresa MDD: Desarrollo basado en el dominio Orientado a servicios Desarrollo basado en el dominio, trabaja en capas!
  • 222. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 222 28/02/2023 Ventajas del Model-driven Development (MDD) • Desde el punto de vista técnico: ▪ Adaptabilidad y Mantenibilidad más fáciles • Menos propagación de cambios (por las capas) • Mejor modularidad • Funciones (servicios): añadir/sacar ▪ Mejor estimación de costos por modificaciones • Cambios a las funciones son fáciles de realizar • Solo cambios en el modelo de la empresa son costosos • El esfuerzo del mantenimiento es más proporcional al tamaño del modelo afectado por el cambio • Desde el punto de vista del negocio: ▪ Conocimiento del dominio centralizado ▪ Conocimiento más profundo del negocio
  • 223. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 223 28/02/2023 ¿Por qué no hay futuro para el MDD? • El desarrollo no es la parte difícil, el desafío es traducir un problema comercial en una solución (modelo) • El desarrollo no es la parte más lenta del desarrollo del software, la implementación y el despliegue en producción sí lo son • Ser capaz de cambiar el software es más importante que construirlo de manera rápida ▪ La importante lección es: las empresas ágiles solicitan un software ágil. ▪ Un entorno cambiante solicita cambios en el software que soporte los procesos en ese entorno • Desde una perspectiva económica, el MDD no importa tanto ▪ Más del 90% del costo total de la propiedad del software se gastan en el mantenimiento del software. • MDD es una solución para un problema de desarrollo de software, no tiene valor en sí mismo ▪ Al pensar en su solución MDD, debe pensar en los clientes a los que desea apuntar. ¿Cuál es su mercado? ¿Quién quiere pagar por su solución MDD? http://www.theenterprisearchitect.eu/blog/2011/01/25/why-there-is-no-future-for-model-driven-development/
  • 224. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 224 28/02/2023 ¿Es la MDA una opción adecuada para tí? • ¿Son los modelos importantes para ti? ▪ es decir, ¿a su empresa le importan los modelos? • ¿Son sus plataformas tan inestables? • ¿Puedes hacer frente al proceso de Desarrollo? ▪ Incluido su equipo de desarrollo... Se requieren nuevas habilidades! • ¿Tu negocio lo compraría? • ¿No es algo preocupante tener dos sabores diferentes (Escuelas) de MDA? ▪ Elaboracionalistas (e.g. Optimal/J, ArcStyler) 70% executable annotated PIMs ▪ Traductores (e.g. Executable UML) 100% executable PIMs • En condiciones reales de trabajo, – honestamente – ¿crees que esto funcionaría? ▪ ¿Será capaz de generar código a partir de modelos, incluso cuando aún no nos pongamos de acuerdo sobre cómo representar el comportamiento? [Dan Haywood, 2004]
  • 225. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 225 28/02/2023 ¿Recuerdan MBE? • MBE describe un proceso donde los modelos software tienen un papel importante pero donde no son necesariamente los motores del proceso de desarrollo (es decir, no “dirigen” el proceso como en MDE).
  • 226. Ingeniería Web Carrera de Software Ph.D. Franklin Parrales 226 28/02/2023 Modeling Maturity levels (MML) Jos B. Warmer and Anneke Kleppe ❖ MML 0: No Specification ❖ MML 1: Textual Specification ❖ MML 2: Text with Models ❖ MML 3: Models with Text ❖ MML 4: Precise Models ❖ MML 5: Models only requirements Requirement analysis design implementation verification deployment Validation Testing Deve- lopment