7. MDE: Model Driven Engineering
▪El uso de modelos como ciudadanos de primer nivel en el ciclo
de vida del software (u otros dominios)
8. Niveles de abstracción
Machine Code
COBOL / C / Basic / Java
Assembler
4GL
Models / Specs
Application
Domain
Semantic
Gap
Abstraction
level
The entire history of software engineering is one of
rising levels of abstraction (abstraction is the
primary way we as humans deal with complexity).
Grady Booch
9. ¿Qué es un modelo?
▪ A model allows
▪ the description of a family of problems for a domain
▪ Having the abstraction level carefully selected to:
▪ Discard irrelevant details (reduce complexity)
▪ Discard constant details (reduce complexity)
▪ Explicit important details (variables part)
▪ What’s a meta-model?
▪ A model describing model.
Customer Credit Card
1 *
Class
Properties
Relation
Cardinality
Source
Target
10. Separation of Concerns (SoC)
Know-Howcapturado en dos bloques separados:
Cómo
▪ Technological Know-How:
encapsulado en forma de mejores
practicas, frameworks, plantillas,
patrones de Código en generadores e
interpretes
Qué
▪ Business Know-How:
capturado en forma de
modelos (especificaciones):
aislado de aspectos técnicos
11. MDE: Economic Model
Domain Engineering
Application Engineering
Application Development
Environment
Applications
Feedback:
▪ Customers suggestions
▪ Improvements for the
development environment
ROI (development cost saving)
Investment
12. MDE: Economic Model
▪ Traditional Cost = N * CT
▪ MDD cost = Inv + N * CF
Family members
1 2 3 4 5
5 CT
4 CT
3 CT
2 CT
CT
Accumulated
costs
Inv
Saving AF = CT - CF
13. Técnicas de MDE
▪ DSL (Domain Specific Languages)
▪ Gramáticas: Parsing / ASTs, compiladores, optimizaciones
▪ Validación de modelos
▪ Transformaciones de modelos: M2M, M2T,
▪ Ingeniería hacia adelante / ing. Inversa
▪ Generación de código, Interpretes de modelos
▪ Mineria de modelos
14. Marco de trabajo con MDE
Textual Model Editor
Modelos
Visual Model Editor
IDE
Model Checker
Model Transformation
Model
M2M M2T
Code
Doc, etc.
Reverse
Engineering
Tools
Metamodelos
15. Conceptual Map for Code Generation
Metamodel
Model
Templates
Code
Transformations
Higher Abstraction Level Lower
Instances
Types
Code Generator
16. Técnicas de MDE
▪DSLs / Lenguajes
▪ Textuales
▪ Gráficos
▪ Basados en plantillas
▪ Proyeccionales
▪ Hibridos
26. Belastingdienst
Autoridad de Impuestos en Holanda
▪ https://twitter.com/pmolinam/status/1729953985514098923
▪ Leyes modeladas con MPS
▪ Se deriva documentación, explicaciones,
simuladores y código a partir de las leyes
28. CARE Technologies
1999 – 2004, Dénia
▪ Herramienta CASE de modelado
▪ Basado en OASIS: UML + Modelo de presentación JUST-UI
▪ 2 patentes en USPTO
▪ Olivanova Model Execution
▪ Generación de Código complete para aplicaciones de gestion a: VB, Java,
Coldfusion, C#
29. Olivanova Model Execution
CARE Technologies, 1999-2004
Web Server
Mobile
Spec
XML Translators
Swing JSP
Cold
Fusion
VB ASP
EJB
VB/MTS
DBMS
Client Side
Server Side
30. Proyecto PISA
2006-08, Capgmeni para Bancaja, Valencia
▪Migración de software bancario a Windows XP
▪Enfoque MDE
▪Ingenieria inversa, descubrimiento de dependencias
▪Modelado de operaciones bancarias
35. Windows Phone App Studio
Icinetic, 2013
▪Buildup.io, Icinetic 2013
▪ IBM Bluemix Mobile App Studio, Icinetic 2013
25% of Windows Phoneapps published in CY2013 were
created with Windows Phone AppStudio
• Over 290,000 registered users
• More than 135,000 apps created
• 17,000 published apps
In just 5 months…
36. Windows Phone App Studio
▪ Creado por Icinetic (Sevilla) para Microsoft en 2013
▪ AppBuilder https://www.youtube.com/watch?v=OkyONTls0mQ
37. Windows Phone App Studio
Icinetic, 2013
• Over 290,000 registered users
• More than 135,000 apps created
• 17,000 published apps
In just 5 months…
39. Fundada el 2016
Foco en construir:
▪Modelos conceptuales
▪DSLs en la Web
▪Herramintas nocode/lowcode para diferentes dominios
HQ en Sevilla
https://metadev.pro
49. MDE / DSL / Lowcode / Nocode
▪ Reduce la barrera de entrada la tecnología
50. Oportunidades para aplicar MDE
▪ Aeroespacial
▪ Automoción
▪ Gemelos digitales
▪ Desarrollo de software Software
▪ Integración de modelos de Inteligencia
Artificacial
▪ Seguridad de aplicaciones
▪ Orquestación de aplicaciones
▪ Legislación
▪ Química
▪ Desarrollode farmacos
▪ Modelado y monitorización de
protocolos medicos
▪ Banca y Seguros
▪ Telecomunicaciones
▪ SmartContracts y dinerodigital
51. Algunos datos
Nº de desarolladores mundiales 27 M (2021)
Nº de CitizenDevelopersmundiales x 4 in (2024)
Fuente:
https://venturebeat.com/business/gartner-citizen-developers-will-soon-outnumber-professional-coders-4-to-1/
52. Lecturas recomendadas
▪ DSLs, Fowler
▪ DLS Engineering, Markus Vöelter
▪ Model Driven SW Engineering, Brambilla et al.
▪ Building User-Friendly DSLs, Boersma
▪ Antlr, Terrence Parr
53. Conclusiones
▪ DSLs & MDE llevan más de 40 años de desarrollo
▪ DSLs incrementanlos niveles deabstraccióny ponen el foco en lo
esencial
▪ LowCode yNoCodeson DSLs
▪ La generaciónde códigoy la interpretaciónde modelostraen el
códigoa la vida
▪ Progreso: Nuevas herramientas proporcionanmás con menos