La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Software en Dispositivos Móviles

Presentaciones similares


Presentación del tema: "Ingeniería de Software en Dispositivos Móviles"— Transcripción de la presentación:

1 Ingeniería de Software en Dispositivos Móviles
Se debe dar una cordial bienvenida, introduciendo el tiempo. M.C. Juan Carlos Olivares Rojas Morelia, Michoacán a 30 de abril de 2008

2 Planteamiento del Problema
Agenda Introducción Planteamiento del Problema Solución El objetivo de este trabajo es utilizar las recomendaciones para el diseño accesible de páginas Web y aplicarlas para la correcta visualización de recursos Web en dispositivos móviles. Se realizó un pequeño estudio tomando en cuenta dichas consideraciones, obteniendo que es factible aplicar dichas recomendaciones o prácticas de buen diseño para su uso en dispositivos móviles. También se presenta una propuesta para solucionar el problema de la correcta visualización de páginas Web en dispositivos móviles. Conclusiones

3 Evolución de la Computación
Los paradigmas en la computación han evolucionado a través del tiempo: 50’s-70’s: “Una computadora múltiples usuarios” 80’s-90’s: “Una computadora un usuario” 2000’s: “Un usuario múltiples computadoras”

4 ¿Qué es el cómputo móvil?
Parte de la computación que está relacionada con la “movilidad” de los datos, las aplicaciones y los dispositivos. Se debe tener movilidad y conectividad desde cualquier punto. Es decir el cómputo debe de ser omniprescente o ubiquo. En inglés recibe el nombre de mobicomp o ubicomp

5 Dispositivos Móviles

6 Dispositivos Móviles Smartphone Communicator PalmSize Handheld Tablet
Movilidad (tamaño) PalmSize Handheld Tablet Notebook Laptop Propósito primario de uso Comunicación Procesamiento de datos

7 Redes inalámbricas Tipo de red WWAN (Celulares) WLAN (Wireless LAN)
WPAN (Bluetooth) Estándar GSM/GPRS/EvDo IEEE b/g/a IEEE Ancho de Banda 9.6/170/2000 Kb/s 1, 2, 11, 54 Mb/s 721 Kb/s Frecuencia 0.9/1.8/2.1 GHz 2.4 y 5 GHz Infrarrojos 2.4 GHz Rango 35 Km m 10 m La interfaz del alumno se creará con los siguientes módulos: Acceso al sistema, permitirá al alumno ingresar al sistema, previa alta en el módulo administrador de cursos. Visualizador de diapositivas, mostrará al alumno la información del curso en base a lo programado en el grafo instruccional. Visualizador de ejercicios, tomará la consulta escrita por el alumno, la ejecutará en las tablas de ejercicios del servidor y mostrará los resultados obtenidos. Visualizador de exámenes,realizará las evaluaciones al alumno, programadas en el grafo instruccional, y enviará los resultados al módulo pedagógico para que el planificador actualice el grafo instruccional. Modo de operación Desde un navegador, ya sea en Internet o Intranet. El usuario entrará al módulo de acceso al sistema, el cuál revisará el nombre de la cuenta y su contraseña. Dependiendo de la información registrada en la BD, el planificador determinará la acción a seguir, continuar con el despliegue de información a través del visualizador de diapositivas, realizar un ejemplo interactivo a través del visualizador de ejercicios, o la aplicación de una evaluación a través del visualizador de exámenes..

8 Áreas de aplicación

9 Ejemplos de Aplicaciones

10 ¿Qué no es cómputo móvil?

11 Grado de penetración de los dispositivos móviles en nuestra sociedad
Introducción Llaves Cartera Celulares Credenciales Tarjetas Llaves del trabajo Periódico Espejo MP3/Walkman Actualmente gracias al avance de tecnologías como las redes inalámbricas (acaparan el 52% de las conexiones en los hogares en los Estados Unidos) y la miniaturización de componentes electrónicos, han traído como consecuencia que los dispositivos móviles se usen cada vez con mayor frecuencia por el público en general en diversas actividades en especial la Web. De acuerdo con [4], para el 2010 se espera 1,300 millones de usuarios de PCs, por 2,500 millones de usuarios móviles. Por otra parte, en Estados Unidos sólo se utiliza 15 minutos (en la gran mayoría menos, salvo algunos países asiáticos como Japón o Corea) al mes para navegación en la Web a través de un dispositivo móvil [2]. Como puede observarse existe una gran contradicción dado que por una parte, el uso de dispositivos móviles está creciendo vertiginosamente; por otra parte, el acceso a la Web en dispositivos móviles es mínimo. Ante todo esto salta una pregunta al aire: ¿Por qué el acceso a la Web a través de dispositivos móviles es tan bajo? Esto se debe a diversos factores como: diferentes lenguajes de marcado (HTML, CHTML, WML, etc.) que son incompatibles entre sí y que no pueden ser visualizados de forma correcta, limitaciones inherentes a los dispositivos móviles (resoluciones de pantalla pequeña, pocos colores, poco espacio de almacenamiento, poco ancho de banda, altos costos de las redes de telecomunicación), pero sobre todo a que los sitios se encuentran estructuralmente mal diseñados. Todo esto conlleva a una mala experiencia de navegación por parte de los usuarios y a que elijan métodos alternos de acceso a la Web. Siempre Videojuego Frecuentemente Cámara 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Grado de penetración de los dispositivos móviles en nuestra sociedad

12 Estadísticas 2,000 millones de celulares (400 millones de celulares con capacidad de Internet) vs. 500 millones de computadoras conectadas a Internet (54% laptops y 46% escritorio) “Para el año 2009, más de la mitad de los microprocesadores fabricados en el mundo estarán destinados a dispositivos móviles.”

13 Estadísticas Ajax 22% 20,900 Flex 2% 21,100 Perl 6% 21,300
J2ME 4% 22,000 .NET 16% 24,500 COBOL 4% 29,800

14 Estadísticas DOS 13% 17,300 Linux 39% 19,500 Apple 7% 19,600
Win 89% 19,800 Win CE 9% 21,800 AS400 6% 24,200 Unix 28% 25,800 Mainframe 4% 32,400

15 Estadísticas Diseño Gráfico 21% 15,600 Redes 35% 17,500 UML 45% 21,000
BI 25% 21,800 ERP 58% 21,800 Testing 20% 23,600 Mejora de Procesos 31% 24,900 EDI 3% 31,700

16 Certificaciones Oracle 28,600 Sw. Quality Eng. 29,000 Solaris 29,100
MS System Eng. 29,200 SEI 29,500 IBM DB2 29,500 SAP 30,200 Seguridad 33,200 IBM Websphere 33,900 PMI 40,300

17 Ingeniería del Software
El desarrollo de software es un proceso artesanal dado que a la programación de computadoras se le denomina arte. El objetivo fundamental de la ISw es lograr la calidad del software. La ISw es un conjunto de “mejores prácticas” que si no se llevan a la práctica no sirven de nada.

18 Construcción de una casa para “wendo”
Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software).

19 Construcción de una casa
Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software). Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas

20 Construcción de un rascacielos
I. Introducción: Modelado de SW Construcción de un rascacielos No cualquier persona o grupo de persona lo realiza. Imposible sin técnicas de Ingeniería Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software). Obviamente el debe ser el contexto de desarrollo (envergadura del proyecto) el que determine la configuración adecuada del proceso y los recursos necesarios. Existen propuestas radicales que promueven un proceso/modelado más “ligth”, tales como: Extreme Programming (Kent Beck) y Agile Modeling (Scott Ambler). Sin embargo, en muchos proyectos es difícil eludir un proceso y modelado más rigurosos, debido por ejemplo a relaciones contractuales, envergadura del proyecto en tiempo y participantes, etc. Una lectura interesante: Extreme Programming in the Quick-change Era 'Beware of the religion of the code-generating modeling tool.‘by Alexandra Weber Morales About 30 years ago, Barry Boehm theorized that the cost of software change increased exponentially over time; that is, if an error caught in requirements gathering cost $1, an error caught during deployment would cost $1000. "What if," said Robert Martin, a former preacher who now uses his persuasive speaking skills to promote Smalltalk guru Kent Beck's Extreme Programming (XP) methodology, "you took a moment to suspend disbelief and considered that--due to today's technology--the cost of change is essentially flat. When costs don't change over time, up-front speculative work is a liability. Ambiguity and volatility are reasons to delay." In such a world, Martin told a packed room at the UML World conference in New York city on June 14, developers need a process that exploits a flat change/cost curve?and XP is that process. The five-year-old methodology values communication (but not on paper), simplicity, feedback and courage. It's designed for small to medium-sized teams of no more than 12 people who work in a common area, integrate and test their code constantly, pair program on single computers and use whiteboards hung on the periphery to hash out designs. Source code is the preferred archival medium, and cards containing "user stories"(requirements written by customers) and tasks are the "high-density storage mechanism," according to Martin, who runs a training firm called Object Mentor out of Green Oaks, IL. "Where does modeling fit in?“ asked an audience member, reminding Martin that his talk, at this point nearly over, had promised to describe the interaction between the UML and XP. "Paper and pencil or whiteboards are the best CASE tools I know of. In Kent's case, he uses CRC cards, not the UML," said Martin. "But whether it's Booch notation or UML, you do the highest-level map you can, but you don't do all your design up front. Remember, in XP it's not an archival resource, it's a communication device. The only archive I want is the code and a few poignant, incisive documents explaining why I made certain decisions." Does this mean that ever more sophisticated modeling tools have no place in XP? Not exactly, said Martin. "If a code-generating tool works for you, use it. After all, that's what a compiler does. But beware of the religion of modeling tools that spit out executable prototypes. Sometimes getting the code from the tool is more time-consuming than writing it yourself."

21 Tipos de Software Pressman clasifica el software de la siguiente manera: Software empotrado Software para PCs Software de Inteligencia Artificial Software de Gestión Software de Tiempo Real Software Científico Software de Sistemas

22 Planteamiento del Problema
Agenda Introducción Planteamiento del Problema Solución El objetivo de este trabajo es utilizar las recomendaciones para el diseño accesible de páginas Web y aplicarlas para la correcta visualización de recursos Web en dispositivos móviles. Se realizó un pequeño estudio tomando en cuenta dichas consideraciones, obteniendo que es factible aplicar dichas recomendaciones o prácticas de buen diseño para su uso en dispositivos móviles. También se presenta una propuesta para solucionar el problema de la correcta visualización de páginas Web en dispositivos móviles. Conclusiones

23 Problemática

24 Problemática 800 600 La gran mayoría de las aplicaciones móviles no están diseñados tomando en cuenta las características y limitaciones de los dispositivos móviles 176 212 240 320 Hablar de toda la problemática en los dispositivos móviles. Hablar de costos y demás características

25 Problemática Se tiene la creencia de que se trata de desarrollos tradicionales pero en “chiquito”. Las herramientas y entornos de programación intentan ser semejantes a los utilizados en aplicaciones tradicionales. Se tiene una gran heterogeneidad de dispositivos y sistemas operativos No existe una metodología para el desarrollo de esta clase de aplicaciones.

26 Problemática 96% de los internautas poseen celular: Nokia 26%
SonyEricsson 23% Motorola 21% LG 6% Ericsson 5% Samsung 4% Siemens, BenQ, Blackberry 1% c/u Otros 8% Fuente AMIPCI-AMECE

27 Problemática PalmOS Windows CE (Windows Mobile) Symbian Linux embedded
RIMOS

28 Problemática Existen pocos estudios formales y metodologías para el desarrollo de aplicaciones móviles. Los libros tradicionales de ISw no tratan este tópico.

29 Tipos de aplicaciones Stand-alone (autónomas)
Online (clientes ligeros, desarrollos Web móviles) Smart client (aquellos que son sensibles al contexto) Stand-alone: se desarrollan para ser instaladas y ejecutadas en el dispositivo móvil y funcionan sin conexión a Internet o sin depender de un servidor central. Online: es una solución a través de Internet, utilizando páginas Web para la interfaz del equipo, y toda la ejecución se realiza en el servidor. Smart client: junta lo mejor de las aplicaciones Stand-alone y Online, ya que consta de aplicaciones que se distribuyen e instalan en los equipos, pero que también utilizan la conexión para comunicarse e interactuar con un servidor.

30 Herramientas J2ME (Java 2 Micro Edition) .NET Compact Framework
Aplicaciones Nativas (C, C++): eMbedded Visual Tools: está conformada por eMbedded Visual Basic y eMbedded Visual C++. SDK de Symbian, etc.

31 .NET CF Programación Smart Device Controles ASP.NET Mobile
Navegador Web móvil .NET Compact Framework Código Local Páginas Web remotas Sistema Operativo

32 J2ME

33 Linux embedded

34 Linux embedded

35 Planteamiento del Problema
Agenda Introducción Planteamiento del Problema Solución El objetivo de este trabajo es utilizar las recomendaciones para el diseño accesible de páginas Web y aplicarlas para la correcta visualización de recursos Web en dispositivos móviles. Se realizó un pequeño estudio tomando en cuenta dichas consideraciones, obteniendo que es factible aplicar dichas recomendaciones o prácticas de buen diseño para su uso en dispositivos móviles. También se presenta una propuesta para solucionar el problema de la correcta visualización de páginas Web en dispositivos móviles. Conclusiones

36 Solución Estudiar las capacidades y limitaciones de los dispositivos móviles para saber que se puede hacer en el dispositivo y que cosas son imposibles de implementar. Desarrollar una interfaz adecuada que minimice las acciones por parte del usuario y que se adapte al tamaño de las pantallas de despliegue. Las interfaces deben ser intuitivas. Diseño sencillo.

37 Solución El acceso a los datos debe de ser en forma estructurada utilizando XML, o bien si se permite un manejador de BD empotrado. Utilizar herramientas de profiling para medir el rendimiento. Hacer hincapié en el reuso.

38 Solución Utilizar servicios Web (SOA) para la implementación de los procesos de negocio. Esto permite consumirlo en diversas clases de aplicaciones. Se debe construir tarde (entender todos los requerimientos). Usar datos reales. Nada de datos de prueba, se necesitaría invertir dos veces más tiempo.

39 Solución Realizar refactorización de código para mantener las aplicaciones más entendibles o bien consumir menos espacio en aplicaciones Web. Usar implementaciones reales. No utilizar emuladores. Mezclar siempre programadores con probadores de software. Probar con muchos usuarios de distintos tipos.

40 Solución Evitar lo más posible el copy & paste (utilizar métodos de refactorización). Tomar en consideración todos los warnigs, de preferencia tratarlos como errores. Codificar con propósito. Realizar funciones que se van a ocupar. No realizar código de más.

41 Solución Se deben tomar en cuenta factores de usabilidad, accesibilidad y ergonomía de las interfaces de usuario. Los mensajes de salida deben de ser breves. Se deben considerar interfaces en donde el usuario escriba menos. Reducir el número de interfaces. Entre menos más fácil de usar y encontrar errores.

42 Implementación del Patrón Singletón
Solución Utilizar patrones de diseño en la solución. Se recomienda utilizar el patrón MVC (Modelo-Vista-Controlador). Existen muchos tipos de patrones para problemas conocidos. Implementación del Patrón Singletón Patrón MVC

43 Solución Activar las opciones de optimización de los compiladores que de manera predeterminada vienen desactivada por que lo hacen más lento. Realizar código que sea portable para utilizarlo en distintas plataformas. Las aplicaciones deben basarse en estándares (en Web utilizar MobileOk)

44 Solución Utilizar conexiones a las BD el menor tiempo posible (cerrar conexiones innecesarias) De ser posible, utilizar procedimientos almacenados. Paginar los Recordsets. Las aplicaciones para dispositivos móviles deben de estar optimizadas en dos aspectos cruciales: tamaño y velocidad.

45 Optimización del tamaño
Evitar el uso de objetos siempre que sea posible. Cuando usamos objetos, debemos reciclarlos siempre que se pueda. Limpiar objetos explícitamente cuando se dejen de usar. Los recolectores de basura no son del todo eficientes.

46 Optimización del tamaño
Usar un ofuscador para reducir tamaño y hacer ilegible nuestro código. Realizar empaquetamiento de las clases a través de un archivo jar o mecanismos similares. La optimización de velocidad es muy importante. A continuación se muestran ejemplos muy sencillos.

47 Optimización de velocidad
Eliminar evaluaciones innecesarias: for(int i=0; i<size(); i++) a = (b+c) / i; Optimizado: int tmp = b+c; int s = size(); for(int i=0; i<s; i++) a = tmp / i;

48 Optimización de velocidad
Eliminar subexpresiones comunes: b = Math.abs(a) * c; d = e / (Math.abs(a) + b); Optimizado: int tmp = Math.abs(a); b = tmp * c; d = e / (tmp + b);

49 Optimización de velocidad
Aprovechar las variables locales: for (int i=0; i <1000; i++) a = obj.b * i; Optimizado: int localb = obj.b; a = localb * i;

50 Optimización de velocidad
Expandir los ciclos: for(int i=0; i <1000, i++) a[i] = 25; Optimizado: for(int i=0; i <100; i++) { a[i++] = 25; a[i++] = 25; //8 veces más }

51 Optimización de velocidad
Si se usan métodos gráficos solo actualizar las partes de la pantalla que cambian. Evitar la creación de objetos intermedios. Por ejemplo: cada vez que se concatena una cadena se crea un objeto intermedio. En Java en lugar de String se recomienda StringBuffer. Utilizar metodologías de software libre (ej. La Catedral y el Bazar de Erick S. Raymond)

52 Planteamiento del Problema
Agenda Introducción Planteamiento del Problema Solución El objetivo de este trabajo es utilizar las recomendaciones para el diseño accesible de páginas Web y aplicarlas para la correcta visualización de recursos Web en dispositivos móviles. Se realizó un pequeño estudio tomando en cuenta dichas consideraciones, obteniendo que es factible aplicar dichas recomendaciones o prácticas de buen diseño para su uso en dispositivos móviles. También se presenta una propuesta para solucionar el problema de la correcta visualización de páginas Web en dispositivos móviles. Conclusiones

53 Conclusiones El cómputo móvil llegó para quedarse y es toda una realidad (ya no es una tecnología emergente). El cómputo móvil apenas se empieza a desarrollar por lo que existen muchas áreas de oportunidad ($). La mayoría de las aplicaciones son para el área de entretenimiento.

54 Conclusiones El cómputo móvil no va sustituir otra clase de cómputo pero si está modificando el actual. Se deben tomar consideraciones muy particulares para el desarrollo de software en dispositivos móviles ya que no es cierto que sean “aplicaciones en chiquito”.

55 ¿Preguntas? jcolivar@itmorelia.edu.mx juancarlosolivares@hotmail.com


Descargar ppt "Ingeniería de Software en Dispositivos Móviles"

Presentaciones similares


Anuncios Google