Índice
1. Introducción
1.1. Objetivos
1.2. Motivación
1.3. Herramientas analizadas
2. Conceptos básicos
2.1. MDD (Model Driven Development)
2.2. MDA (Model Driven Architecture)
2.3. Modelos
2.4. Metamodelos
2.5. Transformación
2.5.1. OMG (Object Management Group)
2.5.2. MOF y la arquitectura de cuatro capas
2.5.3. MOFM2T
2.6. Sistema Operativo Android
2.6.1. Características
2.6.2. Arquitectura
2.6.3. SDK de Android
2.6.4. Android Development Tools (ADT)
2.6.5. Android API Level
3. Arctis
3.1. Bloques de construcción reactiva
3.2. Máquina de estado externo (ESM)
3.3. Tipos de bloques
3.4. Beneficios
3.5. Instalando Arctis en Eclipse
3.6. Construyendo una simple aplicación
3.7. Tesis: “Desarrollo de aplicaciones Android con Arctis”
3.7.1. Descripción abstracta
3.7.2. Contribución
3.7.3. Conclusión
4. App Inventor
4.1. Historia
4.2. Estructura
4.3. Más sobre MIT App Inventor
4.4. Requisitos del sistema para App Inventor
4.5. Configuración de App Inventor 1
4.6. Desventajas
4.6.1. Desventajas solucionadas en App Inventor 2
4.7. Componentes
4.8. Seleccionar los componentes para diseñar la aplicación
4.9. Bloques
4.10. Comprensión de bloques y cómo funcionan
4.10.1. Bloques controladores de eventos
4.10.2. Comandos y expresiones
4.11. Manipular el estado de los componentes
4.12. Novedades de App Inventor 2
4.12.1. Dropdowns (menú desplegable)
4.12.2. Mutadores
4.12.3. Variables globales y locales
4.12.4. AI2 colores
4.12.5. Otras características modificadas
4.13. Configuración de App Inventor 2
4.14. Diseñador y editor de bloques
4.14.1. Diseñador de App Inventor 2
4.14.2. Editor de bloques de App Inventor 2
4.15. Desarrollo incremental con el editor de bloques
4.15.1. Do it
4.15.2. Observación de las variables
4.16. Advertencias y errores
4.17. Compartir y empaquetar aplicaciones
4.17.1. Compartir su aplicación para que otros puedan editarlo (.aia)
4.17.2. Empaquetar su aplicación para su uso por otros (.apk)
4.18. Consejos y trucos de App Inventor 2
5. IBM Rational Rhapsody
5.1. Historia
5.2. Características
5.3. Instalar el SDK de Android y vincularlo con Eclipse
5.3.1. Instalando el JDK
5.3.2. Instalando Eclipse
5.3.3. Instalar el SDK de Android
5.3.4. Instalar el plugin ADT
5.4. Descarga e instalación de IBM Rational Rhapsody Developer para Java
5.4.1. Preparación de la instalación de Rational Rhapsody Developer para Java
5.4.2. Instalar Rational Rhapsody para Windows
5.4.3. Instalación de la clave de licencia (Original)
5.4.4. Instalación de la clave de licencia (evaluación por 30 días)
5.5. Configuración de Eclipse y de Rational Rhapsody
5.5.1. Requisitos de integración de la plataforma
5.5.2. Vinculación de Rational Rhapsody para Eclipse
5.5.3.Instalando los plugins para integración con Eclipse
5.5.4. Comprobación de la configuración de Eclipse
5.6. Utilizando la plataforma de integración con Eclipse
5.6.1. Perspectivas de Rational Rhapsody en Eclipse
5.7. Configuración de Rational Rhapsody con propiedades
5.8. Proyecto
5.8.1. Perfiles del proyecto
5.8.2. Perfil para aplicaciones Android
5.8.3. El uso de unidades de proyecto
5.9. Diseño de proyectos
5.9.1. Agregando elementos al modelo Rational Rhapsody
5.9.2. Agregar elementos a las aplicaciones Android
5.9.3. Creación de paquetes
5.9.4. Creación de componentes bajo un paquete
5.9.5. Crear diagramas
5.9.6. Definición de los atributos de una clase
5.9.7. Administración de operaciones y creación de constructores
5.9.8. Adición de enumeraciones de Java a un modelo
5.9.9. Bloques estáticos de clases en un modelo
5.9.10. Comentarios Javadoc
5.9.11. Definición de los estereotipos
5.9.12. El establecimiento de la herencia de estereotipos
5.9.13. La asociación de los estereotipos con un elemento
5.9.14. Definición de librerías de modelos
5.9.15. Rational Rhapsody API
5.9.16. Características de la API de Java
5.10. Proyectos Android y Rational Rhapsody sobre Eclipse
5.10.1. Crear proyecto Rhapsody y asociarlo a un nuevo proyecto Android
5.10.2. Crear proyecto Rhapsody y asociarlo a un proyecto Android importado
5.10.3. Importar un proyecto Rhapsody y asociarlo a un nuevo proyecto Android
5.10.4. Importar y asociar proyectos Rhapsody y Android
5.10.5. Ejemplo de Android Home Alarm
5.11. Generación de código a partir de un modelo de Rational Rhapsody
5.11.1. Sincronización entre modelos y código
5.11.2. Código roundtripping
5.11.3. Generación de código de forma incremental
5.11.4. La generación de código en paralelo
5.11.5. Generación de código en proyectos multilingües
5.12. Generar y compilar el código de una Aplicación Rational Rhapsody integrada a Eclipse
5.12.1. Ejecutar y testear una aplicación de Android en Eclipse
5.12.2. Configuración de un emulador
5.12.3. Configuración de un dispositivo móvil
5.12.4. Google USB Driver
5.12.5. Descarga del Google USB Driver
5.12.6. Uso del dispositivo de hardware
5.12.7. Activación de opciones para desarrolladores en el dispositivo
5.12.8. Configuración de un dispositivo para el desarrollo
5.13. Animación de aplicaciones Rational Rhapsody en Eclipse
5.13.1. Preparación para la animación
5.13.2. Ejecución de animación
5.13.3. La validación de un sistema
5.13.4. Verificación del modelo
6. Acceleo
6.1.1. Definición
6.1.2. Fundamento
6.2. Historia y desarrollo
6.2.1. La entrada en la fundación Eclipse
6.2.2. El código fuente
6.2.3. Licencia
6.3. Compatibilidad
6.3.1. Los cambios de comportamiento entre las versiones
6.3.2. Compatibilidad entre Eclipse y Acceleo
6.3.3. Plataformas compatibles
6.4. Instalación de Acceleo
6.4.1. Proyecto de Fusión
6.4.2. Sitio de actualización
6.5. El lenguaje Acceleo
6.5.1. Módulos
6.5.2. Plantillas
6.5.3. Anulaciones
6.5.4. Pre-Condiciones
6.5.5. Post-Tratamiento
6.5.6. Consultas (Query)
6.6. Elementos del lenguaje
6.6.1. Módulos Main y clase Launcher
6.6.2. Generación de archivos
6.6.3. Estructuras de control
6.6.4. Servicios Java
6.6.5. Archivos de propiedades
6.7. Características
6.7.1. Dominio
6.7.2. Construido con las herramientas de su elección
6.7.3. Tipo de tecnología a generar
6.7.4. Resumen de características
6.7.5. Características del editor Acceleo
6.7.6. El lado oscuro del estándar
6.7.7. Depurador
6.7.8. Perfilador
6.7.9. Trazabilidad (localizar los orígenes de su código generado)
6.7.10. Stand-alone
6.7.11. Editor reflexivo
6.7.12. Bloques de código de usuario
6.8. Vistas de la perspectiva Acceleo
6.8.1. Vista Result (muestra la sincronización del modelo, los módulos y el código generado)
6.8.2. Vista Overrides (para anular un comportamiento existente en una plantilla)
6.8.3. Vista Generation Patterns (para definir su propia propuesta de finalización)
6.8.4. Vista Interpreter
6.9. Proyecto Acceleo
6.9.1. Dependencias
6.9.2. Creación de un Proyecto Acceleo "desde cero"
6.9.3. La transformación de un proyecto existente en un proyecto Acceleo
6.9.4. Creación de un Proyecto Acceleo UI
7. Comparación de las herramientas
7.1. Aspectos teóricos
7.2. Ejemplo práctico concreto “Stopwatch”
7.2.1. Implementación con App Inventor 2
7.2.2. Implementación con Rational Rhapsody
7.2.3. Implementación con Acceleo
7.2.4. Conclusiones Prácticas
8. Conclusiones y trabajos futuros
8.1. Conclusiones
8.2. Trabajos futuros
Referencias bibliográficas
Apéndice: Glosario