Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Jordi Cabot
http://modeling-languages.com
@softmodeling
Me Presento (por educación)
Me presento
Pq MDD? – Beneficios:
Mejora la productividad
Aumenta la calidad
Mejor comprensión del sistema a desarrollar
Facilita evolución y mantenimiento
Facilita reuso/reimplementación en otras tecnologías
…
Un proceso MDD
MDE Grammarware
MOF EBNF.g
(metametamodel)
UML Java.g
(metamodel)
ABank.uml MyProgram.java
MMa2MMb.atl
Ma Mb
Ma is the source model Mb is the target model
Reality Check – Estado de adopción en la
industria
¿Implantación en la industria?
UML?
¿Y porqué?
Estándares de facto.
Se “palpa en el ambiente” que hay que estar ahí -> mucho interés
por parte de las empresas en dar MDD una segunda oportunidad
Miedo a perderse algo importante
El resto de la presentación hablaremos de
las mejoras estrategias MDD pero
por si quedan escépticos…
MDD es algo natural
D !!
D
M
e n Qué tienen todos
g u ellos en
S i común?????
…
En la práctica no lo es tanto
– Pocas herramientas ofrecen esta posibilidad
– Hay que ser cuidadoso al hacer los cambios
– Trabajo addicional de anotaciones para marcar las zonas a no
modificar
Esto puede ser necesario, por ej., para modelar interfaces gráficas
complicadas, una de las limitaciones del UML
Ej. DSL - MOSKitt User Interface Modeling
UML Ejecutable
Programar con UML ya es ahora posible
– Estándard fUML (Foundational UML specification)
– Notación textual Alf (para escribir “pseudocódigo” de forma
independiente al lenguaje de programación
Model
interpretation Code
generation
object:B
ClassA
-Fin1
* -Fin2 *
Comprar licencia
Modelado colaborativo?
Control de versiones?
Gestión de modelos?
Flexibilidad de la herramienta?
A human judge examines the code generated by one programmer and one
code-generation tool for the same formal specification. If the judge
cannot reliably tell the tool from the human, the tool is said to have
passed the test
Open Source
Template-based
(adaptable!)
Algunas
predefinidas
Ejemplo 2: WebML
Web applications
Code-generation
Java
Ejemplo 3: Modeling-Languages.com
Filosofia Common-
sense MDD
Web applications
Code-generation
SQL &
PHP/Symfony &
Python/Django
Ejemplo 4: Mendix
Web applications
Model Interpretation
Ejemplo 5: OutSystems
Web applications
Code-generation
C# and Java
Ejemplo 6: Novulo
Web applications
Code-generation
.NET
3. Mis consejos sobre el proceso MDD
MDD se integra en cualquier tipo de proceso de desarrollo
Por ejemplo:
– Modelado adaptado a Agile: Agile Modeling
– MDD adaptado a Agile: Agile MDA
Más info en: Agile and Modeling / MDE : friends or foes? (en el portal de
modelado)
pero hay que hacer las cosas bien
Y tener paciencia
Toda nueva tecnología disminuye la productividad al principio
http://modeling-languages.com
@softmodeling
jcabot@acm.org