TRABAJO DE GRADO PROPUESTA DE PROYECTO



Documentos relacionados
AURELIO ALFONSO BENÍTEZ CAMACHO

TFM Comunicación, Redes y Gestión de Contenidos

Dirección General de Educación Superior Tecnológica

REGISTRO DE EMPRESAS Y PERSONAS BASE DE INFORMACIÓN DE CLIENTES & CONTACTOS

Una Estrategia de Movilización basada en la Reutilización

BearSoft. SitodeCloud. Rafael Rios Bascón Web: Móvil:

Programa de Cátedra Desarrollo de Aplicaciones Cliente Servidor

BeatIt! Especificación de Requerimientos de Software para BeatIt! Versión 1.2.2

GENERACIÓN DE APLICACIONES MEDIANTE LENGUAJES ESPECIFICOS DE DOMINIO

DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID. Ing. Marco Antonio Toscano Freire tw: martosfre

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Sistema informatizado de Trazabilidad alimentaria

Presentación de servicios

Propuesta para la realización de un curso de programación de aplicaciones móviles en HTML 5 en la Universidad de Santiago de Compostela.

Aplicaciones Móviles. Sesión 12: Acceso a datos

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

WEB APP VS APP NATIVA

Consulting, IT Services & Software Development MOBILE CROSS PLATFORM SOLUCIONES DE MOVILIDAD I+D

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

3. Participantes en el diseño y seguimiento curricular del programa. Lugar y fecha de elaboración o revisión

Metodologías de diseño de hardware

ITBA - UPM MAGISTER EN INGENIERIA DEL SOFTWARE ANTEPROYECTO DE TESIS

Java Avanzado Facultad de Ingeniería. Escuela de computación.

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

Elementos requeridos para crearlos (ejemplo: el compilador)

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Durante la determinación del problema dentro de los procesos de mercadeo de R & S Training se pudo notar notables deficiencias en las relaciones con

APPS PARA LA LOGISTICA. Qué es realmente una app? En qué se diferencia de otras soluciones web?

CENTRO DE CONTACTO CON EL CLIENTE MÓDULO DE GESTIÓN DE ACTIVIDADES E INTERACCIONES

Workflows? Sí, cuántos quiere?

Desarrollo Web Front-End utilizando Diseño Adaptativo. Ing. Henry Llanos Carranza

E-learning: E-learning:

Asignaturas antecedentes y subsecuentes

1 EL SISTEMA R/3 DE SAP AG

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

Anteproyecto Fin de Carrera

Visión General de GXportal. Última actualización: 2009

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

TRABAJO DE GRADO PROYECTO PROGRAMA BASE DE DATOS SITUACION ACADEMICA DE LOS ESTUDIANTES DE LA FACULTAD DE CIENCIAS DE LA SALUD UNIVERSIDAD DE LA SALLE

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

Curso de HTML5 y CSS3

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Unidad I. Introducción a la programación de Dispositivos Móviles

Postgrado. Ingeniería MÁSTER EN PROGRAMACIÓN DE APPS PARA SMARTPHONES Y TABLETS

Tribunal Constitucional PLIEGO DE PRESCRIPCIONES TÉCNICAS PARA LA CONTRATACIÓN DE LA ASISTENCIA TÉCNICA PARA LA TRAMITACIÓN JURISDICCIONAL ELECTRÓNICA

APLICACIONES MÓVILES NATIVAS

PROCEDIMIENTO DE PRESTACIÓN DE SERVICIOS TECNOLÓGICOS

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Introducción al desarrollo para plataformas móviles con Phonegap

CONTRATACIÓN DESARROLLO DE APLICACIÓNES PARA DISPOSITIVOS MOVILES

XV Conferencia Colombiana de Usuarios Esri Bogotá, Agosto de 2013

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Prezi: editor de presentaciones

COLEGIO COMPUESTUDIO

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

IDeP. Service Oriented Network Architecture SONA. IDeP SA La Punta, San Luis, Agosto 2008

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 5 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Capitulo 1: Plataforma Android

3. Participantes en el diseño y seguimiento curricular del programa

FICHA DETALLADA DEL PROYECTO

Aplicaciones en Tiempo Real con node.js Por: Oscar Gracia. Aplicaciones en tiempo real con node.js. Marzo

Bechtle Solutions Servicios Profesionales

Capítulo 1 Introducción

Capítulo 5. Cliente-Servidor.

Proyecto Fin de Carrera

CAPITULO III MARCO METODOLÓGICO. La presente investigación plantea como objetivo el diseño de un prototipo

Dirección General de Educación Superior Tecnológica

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día.

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Queremos asegurarnos de que tu sitio aparezca en los resultados de búsqueda.

Capítulo 2. Metodologías de selección de personal

JAVA EE 5. Arquitectura, conceptos y ejemplos.

INVENTARIO DE LOS DOCUMENTOS QUE SOPORTAN LOS PROCESOS DE LA GUÍA METODOLÓGICA ConstruColectiva. Autores: JOHN EDDIE DÍAZ AGUDELO

Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software

Curso Online de Diseño Web Especializado en Dispositivos Móviles con HTML 5, CSS3 y jquery Mobile: Práctico

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Sistema de marketing de proximidad

punto, es que los criterios de evaluación de las medidas antes citadas se ajustan a las medidas señaladas para la toma del indicador VTD.

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0


Historia de revisiones

Actualización de versión a Bizagi 10.x

Capitulo III. Diseño del Sistema.

Yoizen, the software solutions.

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Innova v cio i n o es s ivoted e. Rev e isa s d a o d p o p r: : Isa s a a c a c C as a a s do d 18/01/2011

Tableros de control interactivos para los responsables de la toma de decisiones

Nombre de la asignatura: Desarrollo de aplicaciones para dispositivos móviles Carrera: Licenciatura en Informática

Guía de los cursos. Equipo docente:

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN

Ciclo Formativo de Grado Superior en Desarrollo de Aplicaciones Multiplataforma, Especialista en Diseño Digital y Experiencia de Usuario

Transcripción:

FACULTAD DE INGENIERÍA MAESTRÍA EN INGENIERÍA DE SISTEMAS Y COMPUTACIÓN TRABAJO DE GRADO PROPUESTA DE PROYECTO TÍTULO DEL PROYECTO Construcción de un Lenguaje Específico de Dominio para el Desarrollo de Interfaces de Usuario Multiplataforma en Aplicaciones para Dispositivos Móviles DATOS DEL ESTUDIANTE Aurelio Benítez Camacho CC 73.191.132 CORREO ELECTRÓNICO aurelio.benitez@javeriana.edu.co abenitezc@unal.edu.co DIRECTOR DE TRABAJO DE GRADO ASESOR (opcional) Ing. María Consuelo Franky PhD MODALIDAD Profundización lfranky@javeriana.edu.co ÁREA DE ÉNFASIS Sistemas Información e Ing. Software GRUPO Y LÍNEA DE INVESTIGACIÓN ISTAR Sistemas de Información e Ingeniería de Software Sub-línea - Sistemas de Información OBJETIVO GENERAL Diseñar y construir un lenguaje específico de dominio orientado a dispositivos móviles, que permita el desarrollo de interfaces de usuario independientes de la plataforma y con interfaz de usuario nativa. OBJETIVOS ESPECÍFICOS 1. Diseñar un Lenguaje Específico de Dominio para teléfonos inteligentes y tabletas, que permita el modelado de interfaces de usuario independientes de la plataforma. OBJETIVOS 2. Diseñar y desarrollar una herramienta intermedia que sirva como puente entre el lenguaje específico de dominio y un Framework multiplataforma seleccionado previamente, aportando un transformador por cada plataforma. 3. Implementar el Lenguaje Específico de Dominio, y desarrollar un transformador que permita pasar de éste, a la herramienta intermedia desarrollada. 4. Validar el lenguaje específico de dominio implementado, mediante el desarrollo de una aplicación móvil multiplataforma.

Actualmente, las aplicaciones para dispositivos móviles se pueden clasificar en dos tipos: Aplicaciones Residentes en el Dispositivo (RMA) (Knoernschild, 2012a) y Aplicaciones Web Móviles (MWA) (Knoernschild, 2012a). Las RMAs son aplicaciones que se descargan, instalan y viven en el dispositivo (Knoernschild, 2012a). Las MWAs dependen y están restringidas por el navegador del dispositivo, son más portables a través de los diferentes sistemas operativos móviles, denominados en resto del documento como plataformas. Existen Frameworks que permiten desarrollar RMAs y MWAs, los cuales se pueden clasificar en cinco tipos (Knoernschild, 2012b): PROBLEMA DE INVESTIGACIÓN O APLICACIÓN Nativo: permiten utilizar el kit de desarrollo de software (SDK) del fabricante para construir RMAs nativas. En este enfoque, si se desea poder ejecutar la aplicación en diferentes plataformas, ésta debe ser desarrollada una vez por cada plataforma en la que se desee desplegar (Knoernschild, 2012b). Ejemplos de este tipo de Frameworks son los SDKs de ios, Android y Windows Phone (Knoernschild, 2012b). Compilación Cruzada: permiten crear RMAs, transformando el código escrito al lenguaje de programación nativo del Sistema Operativo. Con este tipo de Frameworks se consigue desarrollar aplicaciones para múltiples plataformas, con rendimiento nativo y experiencia de usuario nativa; sin embargo, se debe desarrollar por separado la interfaz de usuario de cada plataforma (Knoernschild, 2012b; Manes & Knoernschild, 2012a). Ejemplos de este tipo de Frameworks son Appcelerator Titanium, Xamarin, y Haxe (Knoernschild, 2012b; Ortiz, 2012). Contenedores Personalizados: permiten crear RMAs, utilizan un contenedor provisto por el fabricante, el cual puede ser un intérprete o una máquina virtual. Este contenedor abstrae detalles de la plataforma objetivo. Este tipo de Frameworks no permiten crear una interfaz de usuario nativa (Knoernschild, 2012b; Manes & Knoernschild, 2012a). Ejemplos de este tipo de Frameworks son Adobe Flex, Pyxis Mobile y Syclo Agentry (Knoernschild, 2012b). Híbridos: permiten crear RMAs, incluyen un control tipo navegador Web, el cual posee las mismas características que un navegador Web común, excepto, porque permite acceder a controles nativos del dispositivos, tales como el GPS y la cámara. Este tipo de Frameworks no permiten crear una interfaz de usuario nativa (Manes & Knoernschild, 2012a). Ejemplos de este tipo de Frameworks son SAP Sybase, Adobe PhoneGap, y Google RhoMobile (Knoernschild, 2012b). Web Móvil: permiten crear MWAs usando tecnologías como HTML5, CSS3 y JavaScript; permiten ejecutarse en múltiples plataformas. Las aplicaciones desarrolladas con este tipo de Framework no pueden acceder a capacidades nativas del dispositivo, y no poseen una interfaz de usuario nativa (Knoernschild, 2012b). Ejemplos de este tipo de Frameworks son Google Web Toolkit Mobile, jquery Mobile, y Sencha Touch (Knoernschild, 2012b). Para construir un aplicación móvil multiplataforma, con interfaz de usuario nativa y que tenga el rendimiento de una RMA, el único tipo de Framework que se puede utilizar es el de Compilación Cruzada (Manes & Knoernschild, 2012a); sin embargo, al utilizar este tipo de Framework, es necesario desarrollar la interfaz de usuario una vez por cada plataforma

(Knoernschild, 2012a). En conclusión, la pregunta que plantea este proyecto es: Cómo es posible desarrollar una aplicación que posea una interfaz de usuario nativa y multiplataforma al mismo tiempo?, esta pregunta es representada en la figura 1. Figura 1. Un único desarrollo de una interfaz de usuario nativa, múltiples plataformas.

METODOLOGÍA DESCRIPCIÓN GENERAL La Ingeniería Dirigida por Modelos (MDE) promueve la utilización de modelos que se encuentran en diferentes niveles de abstracción, para desarrollar sistemas. La idea es transformar los modelos que se encuentran en un nivel de abstracción alto, a modelos de más bajo nivel, hasta que el modelo pueda ser ejecutable; es posible trabajar con un solo nivel de modelo y contar con transformadores del modelo que produzcan código fuente para distintas tecnologías, el cual es el enfoque general que se va a aplicar en este proyecto. Un modelo es especificado en un lenguaje (notación), y este lenguaje está hecho a la medida de un dominio, es comúnmente llamado Lenguaje Específico de Dominio (DSL) (Andova, Brand, Engelen, & Verhoeff, 2012). Para solucionar la problemática explicada en el punto anterior, este proyecto propone construir un lenguaje específico de dominio orientado a las interfaces de usuario en dispositivos móviles, que permita la abstracción de las diferencias existentes en estas interfaces de usuario, con el fin de poder desarrollar una única vez cada interfaz y poder desplegarla en las diferentes plataformas. Aunque la solución planteada no ha sido abordada para el problema específico que intenta resolver este trabajo, si existen soluciones relacionadas: El trabajo de (Lee & Chae, 2006) que plantea el modelado mediante un DSL de las interfaces de usuario en dispositivos móviles; lo que lo diferencia con el proyecto propuesto, es que este trabajo está enfocado a las interacciones de los usuarios con los diferentes elementos visuales, no a los elementos visuales en sí. El trabajo de (Dunkel & Bruns, 2007), que utiliza una arquitectura basada en MDA (Arquitectura Dirigida por Modelos), para el desarrollo de aplicaciones móviles; esta arquitectura requiere de la utilización de servicios web que implican un sobrecosto en tiempo de respuesta, y de un intérprete de código para la construcción de las interfaces de usuario; adicionalmente, las interfaces de usuario no son nativas. El trabajo de (Balagtas-Fernandez & Hussmann, 2008), que plantea el uso del Desarrollo Dirigido por Modelos en el desarrollo de aplicaciones móviles; este trabajo pretende únicamente dar una serie de buenas prácticas para el modelado de aplicaciones móviles. El Proyecto Applause (Friese & Behrens, 2012), que habilita la construcción de aplicaciones móviles multiplataforma mediante la utilización de un DSL y de generadores de código; el problema con esta aproximación reside en que es necesario mantener actualizada las APIs (Interfaz de programación de aplicaciones) de las diferentes plataformas cada vez que aparezca una nueva versión de un Sistema Operativo; este trabajo ya lo hacen los Frameworks de compilación cruzada (Olson, Hunter, Horgen, & Goers, 2011), por lo que sería más conveniente hacer uso de éstas. Finalmente, el trabajo de (Kramer, Clark, & Oussena, 2010) que aborda la construcción de un DSL para el desarrollo de una aplicación multiplataforma para dispositivos móviles; nuevamente, se pretende desarrollar la totalidad de las aplicaciones utilizando un DSL, lo cual tiene las mismas desventajas del proyecto Applause. Los principales motivos por los cuales la utilización de un Framework de Compilación Cruzada es propuesto en este proyecto son porque estos Frameworks: 1. Ahorran el trabajo de realizar los transformadores de cada plataforma en lenguajes diferentes, es decir, permiten desarrollar todos los transformadores apuntando a un único lenguaje, sea Java, C#, u otro. 2. Se encargan de las actualizaciones de las APIs cada vez que aparece una nueva versión de un Sistema Operativo para dispositivos Móviles.

3. Brindan un único lenguaje de programación para las diferentes plataformas, y conocen la manera de traducir éste, a un lenguaje dependiente de la plataforma. 4. Ofrecen la posibilidad de desarrollar la capa de negocio y la capa de datos de una aplicación una única vez, Independiente de la Plataforma. Sin embargo, estos Frameworks no saben cómo generar interfaces de usuario independientes de la plataforma, el cual es el problema en el que se centra este trabajo (Olson et al., 2011). La solución propuesta consiste en la construcción de un DSL que permita el modelado de interfaces de usuario para dispositivos móviles, y el desarrollo de diversos transformadores que permitan pasar de un modelo construido con el DSL a una interfaz de usuario especifica de una plataforma, la cual es interpretada por un Framework de compilación cruzada, que es el encargado de compilar la aplicación a la plataforma seleccionada (Android, ios, o Windows Phone); esta solución se muestra en la Figura 2, en donde los elementos en verde son los que aportaría el presente proyecto. Antes que el Framework compile la aplicación a una plataforma, se debe escribir el código de las capas de Negocio y Datos, en el mismo lenguaje del Framework; este código es totalmente independiente de la plataforma, o dicho de otra forma, es reutilizable a través de las diferentes plataformas (una de las ventajas de utilizar un Framework de Compilación Cruzada); el Framework conoce la forma de unir este código al código de la interfaz de usuario, y de compilarlo a una plataforma específica. Figura 2. Propuesta de Trabajo de Grado La metodología a desarrollar para la construcción del lenguaje específico de dominio se dividirá en 4 fases principales: Modelado de interfaces de usuario. (Responde al Objetivo 1) Diseño y desarrollo de la herramienta intermedia. (Responde al Objetivo 2) Implementación del lenguaje especifico de dominio. (Responde al Objetivo 3) Evaluación del DSL. (Responde al Objetivo 4) A continuación se detallan cada una de estas fases. FASE 1 MODELADO DE INTERFACES DE USUARIO En esta fase se requiere el análisis y trabajos relacionados de cada una de las tecnologías en sí; para esto se analizará la bibliografía disponible en las bases de datos ISI Web of Knowledge, Scopus, IEEE, ACM y Google Scholar. Las tecnologías utilizadas en este proyecto, y la bibliografía inicial que se analizará de cada una de ellas son: 1. Lenguajes específicos de dominio (Dantra, Grundy, & Hosking, 2009; Fowler, 2011; Groenewegen & Visser, 2010; Karsai et al., 2009; Kramer et al., 2010; Levendovszky, Lengyel, & Mészáros, 2009; Mellor, Scott, Uhl, & Weise, 2004;

Mernik, Heering, & Sloane, 2005; Mora, García, Ruiz, & Piattini, 2010; Ranabahu & Maximilien, 2011). 2. Sistemas Operativos para dispositivos móviles (Clark, Finley, & Chuang, 2012; Debeasi, 2013; Dulaney, 2013; Knoernschild, Krikken, & Manes, 2012; Manes & Knoernschild, 2012b) 3. Frameworks de Compilación Cruzada (Clark et al., 2012; Dasnois, 2012; Knoernschild, 2011, 2012a, 2012b; Malek et al., 2010; Manes & Knoernschild, 2012a; Ortiz, 2012) 4. Interfaces de Usuario en Aplicaciones Móviles (Kramer et al., 2010; Lee & Chae, 2006; McClure, Blevins, Croft IV, Dick, & Hardy, 2012). La siguiente tarea de esta fase consiste en el diseño del lenguaje específico de dominio, para lo cual se utilizarán las directrices enfocadas a: propósito del lenguaje, definición del meta-modelo del lenguaje, contenido del lenguaje, y sintaxis concreta y abstracta del lenguaje (Karsai et al., 2009). Finalmente, como principal entregable de esta fase, se construirá un documento de especificación del lenguaje específico de dominio. FASE 2 DISEÑO Y DESARROLLO DE LA HERRAMIENTA INTERMEDIA Durante la fase de Diseño de la herramienta intermedia, se elegirá el Framework de compilación cruzada, esto se hará teniendo en cuenta el método de evaluación de Frameworks Multiplataforma presentado en (Manes & Knoernschild, 2012a); se diseñará la herramienta intermedia para éste. En el diseño de la herramienta intermedia se seguirán las buenas prácticas al respecto dadas por Joshua Bloch de Google Inc (Bloch, 2006). En esta fase se desarrollará la herramienta intermedia encargada de abstraer los aspectos específicos de cada plataforma y brindar una interfaz única para el desarrollo multiplataforma. Asimismo, se construirán tres transformadores encargados de traducir el código escrito en la herramienta intermedia a un lenguaje específico de la plataforma, que pueden ser: Android, ios, y Windows Phone. Para lograr la máxima reutilización de código durante el desarrollo de la herramienta intermedia y de los transformadores se utilizarán las buenas prácticas mencionadas en (McClure et al., 2012; Olson et al., 2011). Los entregables de esta fase corresponden a la Herramienta Intermedia implementada, los transformadores para Android, ios y Windows Phone Implementados, y el Framework de Compilación Cruzada elegido; en la Figura 3 se pueden observar las partes de la solución a la que se refieren estos entregables, en donde los elementos en verde son los que aportaría la presente fase. Figura 3. Entregables Fase 2 Para el desarrollo de esta fase se realizarán las siguientes etapas y actividades: A. Elección del Framework de Compilación Cruzada B. Diseño: En esta etapa se espera que a partir de las buenas prácticas de diseño cómo patrón MVC, patrón MVVM, y reutilización de código en aplicaciones multiplataforma,

se completen las siguientes actividades (Freeman & Freeman, 2013; Polyak, 2012; Raja, 2012). 1) Diseño de la Herramienta Intermedia 2) Diseño del transformador para Android 3) Diseño del Transformador para ios 4) Diseño del transformador para Windows Phone C. Desarrollo: En esta etapa se espera que a partir del diseño definido en la etapa anterior y del Framework de elegido, se realice las siguientes actividades. 1) Desarrollo de la Herramienta Intermedia 2) Desarrollo del transformador para Android 3) Desarrollo del Transformador para ios 4) Desarrollo del transformador para Windows Phone FASE 3 IMPLEMENTACIÓN DEL LENGUAJE ESPECIFICO DE DOMINIO Para la implementación del DSL se seguirán los lineamientos propuestos por Martin Fowler en su libro Domain Specific Languages (Fowler, 2011); se implementará el DSL de acuerdo al diseño definido en la Fase 1 de este proyecto; finalmente, se diseñará y desarrollará el transformador encargado de pasar del DSL a la Herramienta Intermedia. Los entregables de esta fase corresponden al lenguaje específico de dominio implementado, y al transformador del DSL a la Herramienta Intermedia; en la Figura 4 se puede observar las partes de la solución a la que se refieren estos entregables. Figura 4. Entregables Fase 3 Para el desarrollo de esta fase se realizarán los siguientes etapas y actividades: 1) Implementación del DSL. 2) Diseño del Transformador del DSL a la Herramienta Intermedia 3) Desarrollo del Transformador del DSL a la Herramienta Intermedia FASE 4 EVALUACIÓN DEL DSL Para la fase de evaluación del DSL, será definido un caso de estudio, y se implementará un prototipo funcional para este caso, utilizando el DSL construido. Este prototipo deberá poder ejecutarse en las tres plataformas seleccionadas en este trabajo: Android, ios y Windows Phone. Para el desarrollo del prototipo funcional, se utilizará la metodología XP y se tendrán en cuenta las siguientes actividades (Serena, 2007): A. Historias de usuario. B. Planeación. C. Iteraciones D. Pruebas de aceptación Finalmente, en esta fase se elaborará un artículo en el cual se plasmarán las conclusiones del proyecto y su evaluación mediante el caso de estudio definido.

GLOSARIO Movilidad: Es un ecosistema complejo de componentes interdependientes, las organizaciones deben elegir un Framework que permita soportar sus decisiones arquitectónicas, y enlazar sus aplicaciones móviles con los objetivos del negocio (Debeasi, 2013). Framework: Es una estructura de software utilizada para el desarrollo de una aplicación, está compuesta de componentes, lo cuales tienen como característica principal que son intercambiables y personalizables (Gutiérrez, 2010). MISyC TG Propuesta RESULTADOS ESPERADOS ASIGNATURA MISyC PROYECTO 1 Documento de diseño del lenguaje específico de dominio. (FASE 1) Documento soporte de elección del Framework de Compilación Cruzada. (FASE 2) Documento de Diseño de la Herramienta Intermedia. (FASE 2) Documento de diseño de Transformadores de Android, ios y WP. (FASE 2) Herramienta Intermedia implementada. (FASE 2) Transformadores para Android, ios y WP implementados. (FASE 2) ASIGNATURA MISyC PROYECTO 2 Lenguaje Específico de Dominio implementado. (FASE 3) Aplicación móvil multiplataforma construida con el DSL (FASE 4) Artículo que presenta los resultados del proyecto. Este artículo será sometido a una conferencia o revista científica. (FASE 4) Memorias de trabajo de grado. Página web publicada en el sitio de Pegasus.

PROSPECTIVA DE INNOVACIÓN POTENCIAL DE INNOVACIÓN En la actualidad, existen diferentes trabajos que proponen la utilización de un DSL para construir aplicaciones móviles independientes de la plataforma, algunos de estos trabajos fueron mencionados en la sección de Descripción, resaltando las ventajas del enfoque del presente proyecto respecto a esos trabajos.; sin embargo, la mayor parte de estos trabajos promueven el uso del DSL para el desarrollo total de la aplicación. Tal enfoque presenta un gran problema, ya que es responsabilidad del DSL y de sus transformadores, mantener actualizado el lenguaje conforme vayan cambiando las APIs de los Sistemas Operativos (SO), lo cual sucede con cada cambio de versión o actualización de los SO; por este motivo, muchos de los entregables de estos trabajos, se encuentran desactualizados. El anterior problema es manejado por los Frameworks de Compilación Cruzada, los cuales permiten el desarrollo móvil multiplataforma manteniendo las últimas versiones de las APIs de los SO. Estos Frameworks presentan como principal inconveniente, que no pueden construir interfaces de usuario independientes de la plataforma. En este trabajo se plantea mediante el uso de un Framework de Compilación Cruzada y de un DSL, lograr la construcción de aplicaciones móviles independientes de la plataforma, con rendimiento y experiencia de usuario nativos. La posibilidad de desarrollar aplicaciones móviles multiplataforma, sin sacrificar el rendimiento ni la experiencia de usuario, es el principal aporte de innovación de este proyecto, ya que no existe ninguna herramienta en el mercado de herramientas de desarrollo multiplataforma que logre esto, hasta donde se ha analizado en este proyecto. El hecho de poder potenciar herramientas líderes en el mercado del desarrollo multiplataforma para dispositivos móviles, brindándoles a éstas la posibilidad de contar con una interfaz nativa sin la necesidad de desarrollarla varias veces, permitirá simplificar el desarrollo, los cambios, y la administración de las aplicaciones para dispositivos móviles. PROPIEDAD INTELECTUAL El presente Trabajo de Grado se llevará a cabo dentro del marco del grupo de investigación ISTAR de la Pontificia Universidad Javeriana de Bogotá y su resultado estará a disposición del grupo ISTAR para futuros trabajos en el área.

BIBLIOGRAFÍA Andova, S., Brand, M. G. J. Van Den, Engelen, L. J. P., & Verhoeff, T. (2012). MDE Basics with a DSL Focus. Balagtas-Fernandez, F. T., & Hussmann, H. (2008). Model-Driven Development of Mobile Applications. 2008 23rd IEEE/ACM International Conference on Automated Software Engineering, 509 512. doi:10.1109/ase.2008.94 Bloch, J. (2006). How to Design a Good API and Why it Matters. Google Inc (pp. 506 507). Clark, W., Finley, I., & Chuang, S. (2012). Magic Quadrant for Mobile Application Development Platforms. Gartner - Burton IT1 Research, (April), 40. doi:g00230529 Dantra, R., Grundy, J., & Hosking, J. (2009). A domain-specific visual language for report writing using Microsoft DSL tools. 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 15 22. doi:10.1109/vlhcc.2009.5295308 Dasnois, B. (2012). haxe 2 Beginner s Guide. Debeasi, P. (2013). 2013 Planning Guide : Mobility. Gartner - Burton IT1 Research, (November 2012), 1 29. doi:g00239707 Dulaney, K. (2013). Windows Embedded 8 Handheld Is the Future Choice for Ruggedized Handhelds. Gartner, (January), 7. doi:g00247521 Dunkel, J., & Bruns, R. (2007). Model-Driven Architecture for Mobile Applications *, 464 477. Fowler, M. (2011). Domain Specific Languages (Firts Edit., p. 413). Addison-Wesley Professional. Retrieved from http://www.informit.com/ Freeman, E., & Freeman, E. (2013). Head First Design Patterns. Carcinogenesis (Vol. 34, p. 619). doi:10.1093/carcin/bgt051 Friese, P., & Behrens, H. (2012). Applause Project. Retrieved from https://github.com/applause/applause Groenewegen, D. M., & Visser, E. (2010). Integration of data validation and user interface concerns in a DSL for web applications. Software & Systems Modeling. doi:10.1007/s10270-010-0173-9 Gutiérrez, J. J. (2010). Qué es un framework web? Universidad de Sevilla, 1 4. Retrieved from http://www.lsi.us.es/~javierj/investigacion_ficheros/framework.pdf Karsai, G., Krahn, H., Pinkernell, C., Rumpe, B., Schindler, M., & Völkel, S. (2009). Design Guidelines for Domain Specific Languages. 9th OOPSLA Workshop on Domain-Specific Modeling, 7. Knoernschild, K. (2011). Cross-Platform Mobile Development Frameworks. Gartner - Burton IT1 Research, (November), 1 29. Retrieved from http://www.gartner.com/id=1848214 Knoernschild, K. (2012a). A Guidance Framework for Delivering a Mobile Application to Multiple Platforms. Gartner - Burton IT1 Research, (April), 1 53. Retrieved from http://www.gartner.com/id=1980716

Knoernschild, K. (2012b). Mobile Application Frameworks. Gartner - Burton IT1 Research, (March), 1 23. Retrieved from http://www.gartner.com/id=1952116 Knoernschild, K., Krikken, R., & Manes, A. T. (2012). Mobile Application Architecture. Gartner - Burton IT1 Research, (August), 1 24. Retrieved from http://www.gartner.com/id=2119218 Kramer, D., Clark, T., & Oussena, S. (2010). MobDSL: A Domain Specific Language for multiple mobile platform deployment. 2010 IEEE International Conference on Networked Embedded Systems for Enterprise Applications, 1 7. doi:10.1109/nesea.2010.5678062 Lee, J., & Chae, H. S. (2006). Domain-specific language approach to modelling UI architecture of mobile telephony systems, 231 240. doi:10.1049/ip-sen Levendovszky, T., Lengyel, L., & Mészáros, T. (2009). Supporting domain-specific model patterns with metamodeling. Software & Systems Modeling, 8(4), 501 520. doi:10.1007/s10270-009-0118-3 Malek, S., Edwards, G., Brun, Y., Tajalli, H., Garcia, J., Krka, I., Medvidovic, N., et al. (2010). An architecture-driven software mobility framework. Journal of Systems and Software, 83(6), 972 989. doi:10.1016/j.jss.2009.11.003 Manes, A. T., & Knoernschild, K. (2012a). Decision Point for Selecting Mobile Application Development Frameworks. Gartner - Burton IT1 Research, (July), 52. doi:g00235099 Manes, A. T., & Knoernschild, K. (2012b). Mobile Application Metaplatform. Gartner - Burton IT1 Research (pp. 1 13). Retrieved from http://www.gartner.com/id=2105915 McClure, W., Blevins, N., Croft IV, J., Dick, J., & Hardy, C. (2012). PROFESSIONAL ANDROID PROGRAMMING WITH MONO FOR ANDROID AND.NET/C# (p. 556). Mellor, S., Scott, K., Uhl, A., & Weise, D. (2004). MDA Distilled: Principles of Model-Driven Architecture (1st ed., p. 176). Addison Wesley. Mernik, M., Heering, J., & Sloane, A. M. (2005). When and how to develop domain-specific languages. ACM Computing Surveys, 37(4), 316 344. doi:10.1145/1118890.1118892 Mora, B., García, F., Ruiz, F., & Piattini, M. (2010). Graphical versus textual software measurement modelling: an empirical study. Software Quality Journal, 19(1), 201 233. doi:10.1007/s11219-010-9111-x Olson, S., Hunter, J., Horgen, B., & Goers, K. (2011). PROFESSIONAL CROSS-PLATFORM MOBILE DEVELOPMENT IN C#. (Wrox, Ed.) (First Edit., p. 388). Wrox. Retrieved from http://www.wrox.com/wileycda/ Ortiz, S. (2012). Computing Trends Lead to New Programming Languages. IEEE Computer Society, (July), 17 20. Polyak, N. (2012). MVVM Pattern Made Simple. CodeProject. Retrieved from http://www.codeproject.com/articles/278901/mvvm-pattern-made-simple Raja, A. (2012). Introduction to the Model-View-ViewModel Pattern. INFRAGISTICS. Retrieved from http://www.infragistics.com/community/blogs/anand_raja/archive/2012/02/20/the-model-viewviewmodel-101-part-1.aspx

Ranabahu, A., & Maximilien, E. M. (2011). A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications, 77 83. Serena, S. (2007). An IntroductIon to AgIle SoftwAre development, (June). Retrieved from http://www.serena.com/docs/repository/solutions/intro-to-agile-devel.pdf