2017-20

Semestre 2017-20

Nombre del curso: Construcción de Aplicaciones Móviles
Course Name: ——
Créditos: 3
Profesor: Claudia Jimenez.
Versión PDF Click Aquí

Descripción

El objetivo de este curso es generar en el estudiante las habilidades necesarias para diseñar y construir soluciones informáticas sobre plataformas de computación móviles. Para ello, se estudian las particularidades de estos dispositivos, de la infraestructura de computación móvil, de los ambientes y el proceso de desarrollo.

Objetivos

La computación móvil exige hoy en día estrategias de diseño y construcción diferentes a las utilizadas en el software convencional. Cambian los procesos, metodologías, ambientes de desarrollo y esquemas de puesta en marcha. En particular, es necesario integrar en ese proceso estrategias de diseño no convencionales, que tengan en cuenta las restricciones de este entorno.

Se entiende por no convencional la restricción impuesta por los ambientes de ejecución de una solución, tales como: hardware especializado, funcionamiento en tiempo real, limites en la capacidad de almacenamiento, límites en la capacidad de procesamiento, visualización en condiciones limitadas y transmisión de información por medio de canales y anchos de banda limitados.

Además de las restricciones antes planteadas, se trabaja con soluciones que requieren manejar posición y movilidad como requerimientos básicos.

De esta forma, los objetivos específicos del curso son:
Generar en el estudiante habilidades de diseño de software sobre plataformas computacionales con restricciones
A partir del conocimiento de las plataformas computacionales móviles, sus particularidades y diferencias, generar experiencia de desarrollo que permita tener criterio sobre la selección de plataformas móviles para la solución de problemáticas específicas donde la movilidad representa valor agregado y nuevos paradigmas de computación.
Concebir y construir aplicaciones sobre plataformas móviles, que ofrezcan soluciones innovadoras en cuanto al uso de tales dispositivos en contextos de valor agregado para las organizaciones

Objetivos pedagógicos transversales

Objetivo Pedagógico Metas específicas
OT1 Integrar herramientas de desarrollo en ambientes móviles no heterogéneos
OT2 Seleccionar plataformas, priorizar requerimientos y atributos de calidad
OT3 Realizar evaluación de pares
OT4 Desarollar aplicaciones de manera grupal
OT6 Proponer y analizar soluciones innovadoras para un entorno definido
OT8 Completar soluciones preconcebidas a partir de la investigación sobre la tecnología

Categorías de habilidades y objetivos pedagógico

Objetivo Pedagógico Metas específicas %
O1 Entender el valor agregado e impacto de una solución en el contexto de los usuarios de ambientes restringidos 2%
O2 Entender el contexto de desarrollo de aplicaciones móviles desde el punto de vista técnico y de negocio 1%
O3 Entender el mercado existente y los elementos diferenciadores frente al mercado objetivo 2%
O4 Definir una aplicación diferenciadora teniendo en cuenta la diversidad de plataformas 5%
O5 Especificar los requerimientos del proyecto, de acuerdo con las restricciones que se deben abordar 3%
O6 Definir el valor agregado de una aplicación móvil para un grupo de usuarios objetivo 3%
O7 Definir las etapas de desarrollo de un proyecto teniendo en cuenta restricciones tecnológicas y diversidad de ambientes objetivo 3%
O8 Diseñar una arquitectura global de solución que hace explícitos los elementos funcionales y escenarios de calidad para el producto esperado en diferentes arquitecturas de dispositivos 17%
O9 Realizar el diseño detallado de una aplicación móvil en diferentes configuraciones de dispositivos 12%
O10 Definir de manera incremental los resultados esperados para una aplicación dadas unas restricciones marco que se esperan en la solución 6%
O13 Desarrollar una aplicación móvil en iteraciones que reflejen la incorporación de las restricciones de arquitectura e infraestructura 35%
O14 Documentar el desarrollo de una aplicación móvil 2%
O15 Desplegar la aplicación en dispositivos reales, incluyendo varias plataformas 5%
O17 Presentar de manera adecuada los resultados del proyecto para un público externo al curso 2%

Perfil del Estudiante

Este curso es obligatorio en el ciclo profesional de la carrera de Ingeniería de Sistemas y Computación. Puede ser tomado como materia electiva por estudiantes de otras carreras de pregrado, en la medida en que cumplan con los prerrequisitos establecidos.
Para estudiantes de Ingeniería de Sistemas y Computación, con carnets anteriores a 2010-2, el curso puede ser visto como electiva profesional, previo lleno de los requisitos establecidos en el esquema de transición curricular. En particular, este curso no debe ser tomado por quienes tomaron en 2010-1 el curso ISIS 3508 – Pervasive Information.
En casos excepcionales, el curso puede ser tomado por estudiantes de maestría que requieran formación específica en el tema para adquirir habilidades requeridas por su formación de investigación. En ese caso es necesario contactar previamente al profesor del curso y a la Coordinación de la Maestría de Ingeniería de Sistemas y Computación para estudiar el caso y la autorización respectiva.

Metodología

El curso gira alrededor del desarrollo de software sobre dispositivos móviles y su integración con otras plataformas computacionales. El desarrollo de los temas está organizado en 4 niveles pedagógicos, donde se presentan los temas de forma incremental y complementaria.

Durante el curso los estudiantes desarrollan un proyecto, consistente en la concepción, diseño y construcción de una aplicación móvil. El desarrollo incremental de ese proyecto es articulado a través de talleres y laboratorios. Al final del curso se espera que los estudiantes hayan diseñado y puesto en marcha una aplicación móvil completa y funcional.

En cada uno de los niveles se tienen actividades que permiten a los estudiantes:

  • Estructurar el conocimiento sobre los temas a desarrollar. Esto se realiza mediante actividades de exploración bibliográfica, presentaciones y discusiones en clase, tutoriales, revisión de ejemplos.
  • Entender y plantear arquitecturas para soluciones construidas sobre ambientes móviles y con restricciones
  • Seleccionar apropiadamente ambientes de desarrollo de acuerdo con las restricciones de la plataforma objetivo
  • Utilizar la tecnología de computación móvil para solucionar problemas no convencionales
  • Reconocer y gestionar la calidad de una solución móvil

La evaluación de los productos y entregables del software desarrollado pueden incluir en los mecanismos:

  • Presentaciones orales
  • Demostración práctica del producto
  • Evaluación de pares
  • Publicación de código desarrollado
  • Publicación de documentación producida

En todos los casos, es indispensable que el software desarrollado corra de forma efectiva sobre dispositivos móviles reales.

Manejo de los Aspectos Transversales

Aspecto Descripción
Calidad El proceso de desarrollo seguido presenta estrategias para el aseguramiento de la calidad,El producto cumple con las restricciones y aprovecha los recursos definidos en el alcance del proyecto
Sector externo Los proyectos están enmarcados por oportunidades reales de uso de tecnología de punta,Los entregables del curso son fácilmente presentados al sector externo
Innovación El curso fomenta el uso novedoso de la tecnología
Seguridad Se considera la seguridad como un atributo de calidad principal en el proceso y en el producto, que guía y determina el resultado de la solución

Evaluación

  • Si el promedio de parciales > = 3.25
Evaluación Porcentaje
Exámenes
(40%)
Parcial 1 20%
Parcial 2 20%
Proyecto
(50%)
Taller 0 (T0) 5%
Taller 1 (T1) 10%
Taller 2 (T2) 25%
Taller 3 (T3) 10%
Laboratorios, quices, preparación y participación en clase 10%
  • Si ( 2.80 < = Promedio de parciales < 3.25) y al menos uno de los parciales >= 3.0
Evaluación Porcentaje
Exámenes
(50%)
Parcial 1 25%
Parcial 2 25%
Proyecto
(40%)
Taller 0 (T0) 4%
Taller 1 (T1) 8%
Taller 2 (T2) 20%
Taller 3 (T3) 8%
Laboratorios, quices, preparación y participación en clase 10%
  • Si Promedio de parciales < 2.8 ó (2.8 < = Promedio de parciales < 3 y los 2 parciales < 3.0)
Evaluación Porcentaje
Exámenes
(60%)
Parcial 1 30%
Parcial 2 30%
Proyecto
(30%)
Taller 0 (T0) 3%
Taller 1 (T1) 6%
Taller 2 (T2) 15%
Taller 3 (T3) 6%
Laboratorios, quices, preparación y participación en clase 10%

Las reglas de juego para cada uno de los talleres son definidas con el enunciado correspondiente. Pueden incluir pre-entregas o puntos de bono por desarrollos o actividades complementarios.

El hecho de no mostrar habilidades de desarrollo en al menos dos plataformas móviles, penaliza la nota final del estudiante en un 20%.

Así mismo, se espera que calidad de la documentación generada, tanto escrita como en software. El no cumplimiento de estas características conlleva a penalizaciones en las evaluaciones correspondientes. Estas penalizaciones serán indicadas en los enunciados correspondientes.

Para aprobar el curso el total de la nota lograda en las evaluaciones debe ser al menos de 3.0 / 5.0. No hay nota final aprobatoria para promedios de notas inferiores a 3.0

Calendario Global del Curso

El calendario propuesto para el curso se presenta de forma general y puede tener modificaciones a lo largo del semestre. Se actualiza con la bitácora de los temas cubiertos a medida que avanza el semestre.

Semana Nivel Actividades
1, 2, 3 y 4 Nivel 0: Introducción y contexto de ambientes móviles,
ambientes embebidos y ambientes restringidos
Enunciado Proyecto
Enunciado T0
Entrega T0
Laboratorio 1
Presentación T0
Laboratorio 2
5, 6, 7 y 8 Nivel 1: Manejo de características relacionadas con el dispositivo:
Memoria, capacidad de procesamiento, potencia, interacción básica.
Enunciado T1
Laboratorio 3
Laboratorio 4
Entrega T1
Presentación T1
Parcial 1
Receso Semana de Trabajo Individual
9, 10, 11 y 12 Nivel 2: Manejo de características relacionadas con
una arquitectura que trasciende al dispositivo:
Almacenamiento, comunicación, localización, integración
Enunciado T2
Laboratorio 5
13 y 14 Nivel 3: Manejo de interacción sobre
dispositivos móviles de última generación
y gestión de sensores
Entrega T2
Enunciado T3
15 Parcial 2
Fecha registro examen final Entrega T3
Presentación T3

FAQ, librerias útiles y tutoriales

A continuación encuentra un conjunto de preguntas fecuentes y tutoriales que le pueden ayudar en el desarrollo del curso. Si tiene alguna pregunta o solución a algun problema no dude en comunicarnos para publicarlo. El canal regular para hacer las preguntas es el foro SicuaPlus del curso.

FAQ (Preguntas frecuentes)

Puede consultar preguntas frecuentes en el FAQ del laboratorio de computación móvil.

Librerías útiles

Se presentan algunas librerias utiles para el desarrollo de aplicaciones móviles.

Nombre MidMaps: Google Maps Java ME library
Enlace MidMaps
Descarga de Respaldo Respaldo MidMaps midmapsrespaldo
Descripción Permite integrar las funcionalidades ofrecidas por Google Maps en cualquier aplicación JME. Además, facilita al programador el acceso a este API creando de manera automática los elementos de conexión con servicios externos al dispositivo. Para mayor información puede consultar el API.
Nombre KSOAP
Enlace KSOAP 2
Descarga de Respaldo respaldoksoap
Descripción Permite integrar las funcionalidades ofrecidas por Google Maps en cualquier aplicación JME. Además, facilita al programador el acceso a este API creando de manera automática los elementos de conexión con servicios externos al dispositivo. Para mayor información puede consultar el API.

Tutoriales

Nokia

Symbian S60
integrar_emulador_s60_netbeans
monitorear_uso_de_recuros_emulador_nokia_s60
ejecucion_emulador_s60_desde_escritorio_remoto
Qt
recomendaciones_qt_windows_7

BlackBerry

JDE Eclipse plugin
firma_de_aplicaciones_blackberry

Adobe Air

introadobeair_12_10

Laboratorio

El curso tiene su apoyo en el Laboratorio de Computación Móvil del Departamento.
El desarrollo en los equipos móviles se complementa con los recursos disponibles en los laboratorios Mac, Wuaira y servidores del Departamento.
Para el desarrollo de sus proyectos, los estudiantes cuentan con máquinas virtuales configuradas para los objetivos específicos del curso, disponibles en servidores.