1. Introducción
2. Motivación
2.1. Aportes
3. UML, MOF y Metamodelos
3.1. UML
3.2. Concepto de meta-metamodelo y metamodelo
3.3. MOF
3.3.1. Arquitectura MOF
3.3.2. Construcciones básicas utilizadas por MOF
3.4. Paquetes principales del metamodelo de UML
4. Uso de OCL en modelos basados en MOF
4.1. Restricciones en OCL
4.1.1. Invariante
4.1.2. Definición
4.1.3. Precondición
4.1.4. Postcondición
4.1.5. Reglas a nivel metamodelo
4.2. Expresión de valor inicial
4.3. Expresión de valor derivado
4.4. Expresión de consulta
5. Arquitectura dirigida por modelos
5.1. Introducción a MDA
5.2. Modelos en MDA
5.2.1. PIM
5.2.2. PSM
5.3. Desarrollo tradicional Vs. Desarrollo con MDA
5.3.1. Problemas de desarrollo tradicional
5.3.2. Beneficios del MDA
5.3.3. El nuevo proceso de desarrollo
5.4. Importancia del metamodelado en MDA
6. Estrategias de evaluación para las condiciones de refinamiento de
modelos MOF
6.1. Condiciones de refinamiento
6.2. Relación de refinamiento en UML
6.3. Estrategia de verificación para patrones de refinamiento UML
6.3.1. Patrón State
6.3.2. Patrón Object Descomposition
6.3.3. Patrón Atomic Operation
6.4. Micromundos para la evaluación de las condiciones de refinamiento
7. Generación de micromundos representativos
7.1. Conceptos
7.1.1. Criterio de testeo para diagramas UML
7.1.2. Conclusiones
7.2. Generando las particiones
7.3. Combinando las particiones
7.4. Fragmentos de modelo y fragmentos de objeto
7.5. Criterios de test
7.5.1. Criterios de cobertura simple
7.5.2. Criterios de cobertura clase por clase
7.6. Conclusiones
8. ePlatero. Módulo Generador de Micromundos
8.1. Arquitectura de ePlatero
8.2. Módulo Generador de Micromundos
8.3. Componentes
8.4. Metamodelo utilizado
8.5. Propiedad de dualidad y función de abstracción
8.5.1. Problemas y decisiones
8.5.2. Función de abstracción
8.5.3. Ejemplo de función de abstracción
8.6. Estructura del componente
8.6.1. Generación de particiones
8.6.2. Generación del fragmento de modelo y creación del micromundo
8.7. Patrones de diseño utilizados
8.7.1. Strategy
8.7.2. Visitor
9. Caso de estudio
9.1. Dominio
9.2. Creación del modelo
9.3. Definición de reglas OCL
9.4. Parseo del archivo OCL
9.5. Generación del micromundo
9.5.1. Micromundo para OneRangeCombination y sin límite de instancias
9.5.2. Micromundo para AllRangesCombination y sin límite de instancias
9.5.3. Micromundo para OneRangeCombination y con límite de instancias
9.5.4. Micromundo para AllRangesCombination y con límite de instancias
9.5.5. Conclusiones
9.6. Evaluación del refinamiento
9.7. Comparación con Alloy Analyser
10. Conclusiones
10.1. Futuros trabajos
11. Referencias
12. Anexo I - Metamodelo de la sintaxis abstracta de OCL 2.0
12.1. Paquete types
12.2. Paquete expressions
12.2.1. Metaclase ExpressionInOcl
12.3. Ejemplo de instanciación del metamodelo de OCL
13. Anexo II - Descripción de los módulos de ePlatero
13.1. Analizador léxico y sintáctico
13.2. Descripción del editor de fórmulas OCL
13.2.1. Diseño del editor OCL
13.3. Descripción del evaluador OCL
13.3.1. Diseño del evaluador OCL
13.4. Descripción del evaluador de refinamientos