Actualizado el 2 de Junio del 2018 (Publicado el 11 de Marzo del 2018)
1.270 visualizaciones desde el 11 de Marzo del 2018
4,7 MB
118 paginas
Creado hace 11a (30/07/2012)
Desarrollo de
software dirigido
por modelos
Francisco Durán Muñoz
Javier Troya Castilla
Antonio Vallecillo Moreno
PID_00184466
CC-BY-NC-ND • PID_00184466
Desarrollo de software dirigido por modelos
Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de
Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España de Creative Commons. Podéis copiarlos, distribuirlos
y transmitirlos públicamente siempre que citéis el autor y la fuente (FUOC. Fundación para la Universitat Oberta de Catalunya),
no hagáis de ellos un uso comercial y ni obra derivada. La licencia completa se puede consultar en http://creativecommons.org/
licenses/by-nc-nd/3.0/es/legalcode.es
CC-BY-NC-ND • PID_00184466
Índice
Desarrollo de software dirigido por modelos
Introducción...............................................................................................
Objetivos.......................................................................................................
1. Desarrollo dirigido por modelos (MDA y MDE).........................
1.1.
Introducción ................................................................................
1.2. Conceptos básicos .......................................................................
1.2.1. Abstracción ....................................................................
1.2.2.
Expresividad ...................................................................
1.2.3. Complejidad ...................................................................
1.2.4.
Reutilización ..................................................................
1.2.5. Modelos ..........................................................................
1.2.6. Uso y utilidad de los modelos .......................................
1.2.7. Metamodelos ..................................................................
1.2.8.
Transformaciones de modelos en MDA .........................
Terminología ................................................................................
1.3.
Los modelos como piezas clave de ingeniería ............................
1.4.
Tipos de modelos en MDA .........................................................
1.5.
1.6.
El proceso de desarrollo MDA ....................................................
1.7. Actuales retos de MDD y MDA ...................................................
1.8. Un caso de estudio .....................................................................
1.9. Conclusiones ...............................................................................
2. El lenguaje de restricciones y consultas OCL..............................
2.1. Características de OCL ................................................................
2.2. Usos de OCL ...............................................................................
2.3. Restricciones de integridad en OCL ...........................................
2.4. Creación de variables y operaciones adicionales ........................
2.5. Asignación de valores iniciales ...................................................
2.6. Colecciones ..................................................................................
2.6.1. Navegaciones que resultan en Sets y Bags...................
2.6.2. Navegaciones que resultan en OrderedSets y
Sequences......................................................................
Especificación de la semántica de las operaciones .....................
2.7.
2.8.
Invocación de operaciones y señales ..........................................
2.9. Algunos consejos de modelado con OCL ...................................
2.9.1. Uso de la representación gráfica de UML frente a
OCL ................................................................................
2.9.2. Consistencia de los modelos .........................................
2.9.3. Compleción de los diagramas UML ..............................
2.9.4.
La importancia de ser exhaustivo .................................
7
8
9
9
10
10
10
11
12
13
15
16
18
19
23
28
29
30
31
34
35
36
37
38
44
44
45
45
46
46
48
51
51
51
52
52
CC-BY-NC-ND • PID_00184466
Desarrollo de software dirigido por modelos
2.9.5. Navegación compleja .....................................................
2.9.6. Modularización de invariantes y condiciones ...............
2.10. Conclusiones ...............................................................................
3.2.1.
3.2.2.
3.2.3.
3.2.4.
3. Lenguajes específicos de dominio..................................................
3.1.
Introducción ................................................................................
3.2. Componentes de un DSL ............................................................
Sintaxis abstracta ...........................................................
Sintaxis concreta ............................................................
Semántica .......................................................................
Relaciones entre sintaxis abstracta, sintaxis concreta
y semántica ....................................................................
3.3. Metamodelado .............................................................................
Sintaxis concreta para metamodelos .............................
3.3.1.
Formas de extender UML ..............................................
3.3.2.
3.3.3.
Los perfiles UML ............................................................
3.3.4. Cómo se definen perfiles UML ......................................
3.4. MDA y los perfiles UML .............................................................
3.4.1. Definición de plataformas .............................................
3.4.2. Marcado de modelos .....................................................
3.4.3.
Plantillas .........................................................................
3.5. Consideraciones sobre la definición de DSL ...............................
3.5.1. Uso de DSL frente a lenguajes de uso general ya
conocidos .......................................................................
3.5.2. Uso de perfiles UML ......................................................
3.5.3.
Lenguajes de modelado frente a lenguajes de
programación .................................................................
4. Transformaciones de modelos........................................................
4.1.
La necesidad de las transformaciones de modelos .....................
4.2. Conceptos básicos .......................................................................
Tipos de transformaciones ..........................................................
4.3.
Lenguajes de transformación modelo-a-modelo (M2M) .............
4.4.
4.4.1. QVT: Query-View-Transformation .................................
4.4.2. ATL: Atlas Transformation Language ............................
4.4.3. Distintos enfoques para las transformaciones M2M .....
4.4.4. Caso de estudio de transformación M2M (ATL) ............
4.4.5. ATL Matched rules............................................................
4.4.6. ATL Lazy rules.................................................................
4.4.7. ATL Unique Lazy rules.....................................................
4.4.8.
Bloques imperativos ......................................................
Lenguajes de transformación modelo-a-texto (M2T) ..................
4.5.1.
TCS: Textual Concret Syntax .........................................
4.5.2. Caso de estudio de M2T ................................................
4.6. Conclusiones ...............................................................................
4.5.
Resumen.......................................................................................................
53
54
54
55
55
56
56
56
59
61
63
64
65
67
71
74
74
74
75
77
77
78
80
82
82
83
84
85
86
88
90
92
94
97
99
101
101
102
102
104
105
CC-BY-NC-ND • PID_00184466
Desarrollo de software dirigido por modelos
Actividades..................................................................................................
Ejercicios de autoevaluación..................................................................
Solucionario................................................................................................
Glosario........................................................................................................
Bibliografía.................................................................................................
107
107
108
116
118
CC-BY-NC-ND • PID_00184466
Introducción
7
Desarrollo de software dirigido por modelos
El desarrollo de software dirigido por modelos (denominado MDD por su acró-
nimo en inglés, model-driven development) es una propuesta para el desarrollo
de software en la que se atribuye a los modelos el papel principal, frente a las
propuestas tradicionales basadas en lenguajes de programación y plataformas
de objetos y componentes software.
El propósito de MDD es tratar de reducir los costes y tiempos de desarrollo de
las aplicaciones software y mejorar la calidad de los sistemas que se constru-
yen, con independencia de la plataforma en la que el software será ejecutado
y garantizando las inversiones empresariales frente a la rápida evolución de
la tecnología.
Los pilares básicos sobre los que se apoya MDD son los modelos, las transfor-
maciones entre modelos y los lenguajes específicos de dominio. Estos son pre-
cisamente los temas que se cubren en este módulo. También discutiremos las
ventajas que ofrece MDD, así como los principales retos y riesgos que implica
su adopción en la actualidad.
CC-BY-NC-ND • PID_00184466
Objetivos
8
Desarrollo de software dirigido por modelos
Este módulo introduce los principales conceptos, mecanismos y procesos rela-
cionados con el desarrollo de software dirigido por modelos, centrándose so-
bre todo en una propuesta concreta como es model-driven architecture (MDA®
Comentarios de: Desarrollo de software dirigido por modelos (0)
No hay comentarios