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]
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/
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!
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