Capítulo 1: Introducción
1.1 - Objetivo
1.2 - Motivación
1.3 - Desarrollos propuestos
1.4 - Resultados esperados
1.5 - Organización de la tesina
Capítulo 2: Desarrollo de Software dirigido por modelos
2.1- Desarrollo de software dirigido por modelos (MDD)
2.2.1 - Elementos clave
2.2.1.1 - Abstracción
2.2.1.2 - Automatización
2.2.1.3 - Estándares
2.2 - Problemas que el MDD viene a resolver
2.3 - Tipos de modelos
2.3.1 - Modelo independiente de la computación (CIM)
2.3.2 - Modelo independiente de la plataforma (PIM)
2.3.3 - Modelo específico de la plataforma (PSM)
2.3.4 - El modelo de implementación (Código)
2.3.5 - Ciclo de vida
2.3.6 - Otras clasificaciones
2.4 - Metamodelos
2.4.1 - Qué es un metamodelo?
2.4.2 - Transformaciones
2.4.3 - Arquitectura de 4 capas
2.4.4 - MOF
2.4.4.1 - ECORE
2.4.4.2 - EMF
Capítulo 3: Lenguajes
3.1 - Definición
3.2 - Clasificación
3.2.1 - Lenguaje Natural
3.2.2 - Lenguaje Formal
3.2.3 - Diferencias entre Lenguaje Natural y Lenguaje Formal
3.3 - Gramática
3.4 - Jerarquía de Chomsky
3.5 - Representación de gramáticas libres de contexto
3.5.1 - BNF
3.5.2 - EBNF
3.5.2.1 - Reglas en EBNF
3.5.2.2 - Recursión en EBNF
3.5.2.3 - Validación de reglas EBNF
3.6 - Lenguaje Natural
3.6.1 - Castellano
3.6.2 - Lenguaje natural limitado o reducido
Capítulo 4: Lenguaje Formal, OCL
4.1 - Definición
4.2 - Descripción de OCL
4.3 - Restricciones en OCL
4.3.1 - Precondición
4.3.2 - Postcondición
4.3.3 - Body
4.3.4 - Definición
4.4 - Expresión de valor inicial
4.5 - Valores básicos y tipos
4.5.1 - Valores indefinidos
4.5.2 - Ajustes de tipos
4.5.3 - Uso de operadores infijos
4.5.4 - Expresiones Let
4.6 - Colecciones
4.6.1 - Operaciones en colecciones
4.7 - Tipos predefinidos en OCL
4.8 - Propiedades y Objetos
4.8.1 - Propiedades
4.8.2 - Atributos
4.8.3 - Operaciones
4.8.4 - Asociaciones y navegación
4.8.5 - Características de clases
4.8.6 - Propiedades predefinidas en todos los objetos
4.9 - Package Context
Capítulo 5: Transformación de modelos
5.1 - Transformaciones de modelos
5.2 - Tipos de transformaciones
5.2.1 - Nivel de abstracción de los modelos de entrada y salida
5.2.2 - Tipo de lenguaje que se utiliza para especificar las reglas
5.2.3 - Direccionalidad en las transformaciones
5.2.4 - Dependiendo de los modelos origen y destino
5.2.5 - Tipo de modelo destino
5.3 - M2M
5.3.1 - Manipulación Directa
5.3.2 - Relacional
5.3.3 - Grafos
5.3.4 - Enfoques basados en la estructura
5.3.5 - Híbridos
5.3.6 - Herramientas
5.3.6.1 - ATL
5.3.6.2 - QVT
5.3.6.3 - Viatra
5.3.6.4 - Epsilon
5.4 – M2T
5.4.1 - Visitante
5.4.2 - Plantilla
5.4.3 - Herramientas
5.4.3.1 - MOFScript
5.4.3.2 - Acceleo
5.4.3.3 - XPAND
5.5 – Conclusiones
Capítulo 6: Herramientas
6.1 - Transformación de Modelos en ATL
6.1.1 - Visión general de las transformaciones ATL
6.1.2 - Estructura de las transformaciones ATL, Modules
6.1.2.1 - Header
6.1.2.2 - Import
6.1.2.2 - Helpers
6.1.2.3 - Tipo de dato, ATL Module
6.1.3 - Reglas de transformación
6.1.3.1 - Tipos de reglas
6.1.3.2 - Semántica de la ejecución de reglas
6.1.3.3 - Características imperativas de ATL
6.2 - Xtext
6.2.1 - Introducción
6.2.2 - Estructura Xtext
6.2.3 - Gramática
6.2.3.1 - Generar artefactos del lenguaje
6.2.3.2 - Ejecutar el plug-in generado
6.2.4 - El generador
6.2.4.1 - Arquitectura General
6.2.5 - Serialización
6.2.5.1 - Parse Tree Constructor
6.3 - Plugin OCL
6.3.1 - Classic OCL
6.3.2 - Complete OCL
6.3.3 - Metamodelo Unificado o Pivot
Capítulo 7: Traducción
7.1 - Modelo Ecore - Biblioteca
7.2 - Reglas de traducción - ATL
7.3 - Gramática - Lenguaje Natural Reducido
7.4 - Invariante simple
7.5 - Invariante compuesta
7.6 - Invariante operación de colección (size, isEmpty, notEmpty)
7.7 - Invariante con iterador
7.7.1 - Valor booleano como salida
7.7.2 - Nueva Colección como salida
Capítulo 8: Herramienta Desarrollada
8.1 - Diseño
8.2 - Implementación
8.3 - Manual de uso
Capítulo 9: Trabajos Relacionados
9.1 - UML/OCL a especificaciones SBVR: Transformación desafiante
9.2 - Parafraseando expresiones OCL con SBVR
9.3 - Verbalización de reglas: Aplicación a restricciones OCL en el dominio Utility
9.4 - De especificaciones de software de lenguaje natural a modelos de clase UML
9.5 - Generación de restricciones OCL a partir de una especificación en LN
9.6 - Usabilidad de OCL: un gran desafío en la adopción de UML 1
9.7 – Conclusiones
Capítulo 10: Conclusiones y Trabajos Futuros
10.1 - Conclusiones
10.2 - Trabajos Futuros
Referencias Bibliográficas
Glosario