SlideShare una empresa de Scribd logo
1 de 55
Jornadas Sistemas Computacionales
Ingeniería de Software en
Dispositivos Móviles
M.C. Juan Carlos Olivares Rojas
Morelia, Michoacán a 30 de abril de 2008
2
Agenda
Introducción
Solución
Conclusiones
Planteamiento del
Problema
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”
¿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
Dispositivos Móviles
Dispositivos Móviles
SmartphoneSmartphone
CommunicatorCommunicator
PalmSizePalmSize
HandheldHandheld
TabletTablet
NotebookNotebook
LaptopLaptop
Movilidad
(tamaño)
Propósito primario de uso
Comunicación Procesamiento de datos
Tipo de red
WWAN
(Celulares)
WLAN
(Wireless
LAN)
WPAN
(Bluetooth)
Estándar
GSM/GPRS/E
vDo
IEEE
802.11b/g/a
IEEE 802.15
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 70 - 150 m 10 m
Redes inalámbricas
Áreas de aplicación
Ejemplos de Aplicaciones
¿Qué no es cómputo móvil?
11
Introducción
Grado de penetración de los dispositivos móviles en nuestra sociedad
Llaves
0%
Cartera
Celulares
Tarjetas
Llaves del trabajo
Periódico
Espejo
MP3/Walkman
Videojuego
Cámara
Credenciales
80% 90% 100%50% 60% 70%10% 20% 30% 40%
Siempre
Frecuentemente
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.”
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
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
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
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
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.
Construcción de una casa para “wendo”
Puede hacerlo una sola persona
Requiere:
Modelado mínimo
Proceso simple
Herramientas simples
Construcción de una casa
Construida eficientemente y en un tiempo
razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas más sofisticadas
Construcción de un rascacielos
I. Introducción: Modelado de SW
No cualquier persona o grupo de persona lo realiza.
Imposible sin técnicas de Ingeniería
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
Agenda
Introducción
Solución
Conclusiones
Planteamiento del
Problema
Problemática
24
Problemática
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
800
600
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
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%
26Fuente AMIPCI-AMECE
Problemática
• PalmOS
• Windows CE (Windows Mobile)
• Symbian
• Linux embedded
• RIMOS
27
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.
28
Tipos de aplicaciones
• Stand-alone (autónomas)
• Online (clientes ligeros, desarrollos
Web móviles)
• Smart client (aquellos que son
sensibles al contexto)
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.
.NET CF
ProgramaciónProgramación
Smart DeviceSmart Device
ProgramaciónProgramación
Smart DeviceSmart Device
Controles ASP.NETControles ASP.NET
MobileMobile
Controles ASP.NETControles ASP.NET
MobileMobile
Navegador WebNavegador Web
móvilmóvil
Navegador WebNavegador Web
móvilmóvil
.NET Compact.NET Compact
FrameworkFramework
.NET Compact.NET Compact
FrameworkFramework
Código LocalCódigo Local
Páginas WebPáginas Web
remotasremotas
Sistema OperativoSistema OperativoSistema OperativoSistema Operativo
J2ME
Linux embedded
Linux embedded
35
Agenda
Introducción
Solución
Conclusiones
Planteamiento del
Problema
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.
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.
37
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.
38
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.
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.
40
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.
41
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.
42
Implementación del
Patrón Singletón
Patrón MVC
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)
43
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.
44
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.
45
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.
46
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;
47
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);
48
Optimización de velocidad
• Aprovechar las variables locales:
for (int i=0; i <1000; i++)
a = obj.b * i;
• Optimizado:
int localb = obj.b;
for (int i=0; i <1000; i++)
a = localb * i;
49
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
}
50
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)
51
52
Agenda
Introducción
Solución
Conclusiones
Planteamiento del
Problema
Conclusiones
53
• 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.
Conclusiones
54
• 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
• http://antares.itmorelia.edu.mx/~jcolivar/

Más contenido relacionado

Destacado

Nomenclature baert debusschere
Nomenclature baert debusschereNomenclature baert debusschere
Nomenclature baert debusschereFabrice Carlier
 
Cr Reunion Filiere 18 Nov 2008
Cr  Reunion Filiere 18 Nov 2008Cr  Reunion Filiere 18 Nov 2008
Cr Reunion Filiere 18 Nov 2008cdtsomme
 
Cliquez sur la destination de votre choix
Cliquez sur la destination de votre choixCliquez sur la destination de votre choix
Cliquez sur la destination de votre choixJean Christophe Coppee
 
Informe Comunidad De Practica Enero 2009
Informe Comunidad De Practica Enero 2009Informe Comunidad De Practica Enero 2009
Informe Comunidad De Practica Enero 2009Liz Pagan
 
Temple
TempleTemple
TempleNick C
 
Plataformasvirtuales 090930175741 Phpapp01
Plataformasvirtuales 090930175741 Phpapp01Plataformasvirtuales 090930175741 Phpapp01
Plataformasvirtuales 090930175741 Phpapp01Wilma Gavilanes
 
Rapport du Président à l'Assemblée de Polynésie Française - année 2008
Rapport du Président à l'Assemblée de Polynésie Française - année 2008Rapport du Président à l'Assemblée de Polynésie Française - année 2008
Rapport du Président à l'Assemblée de Polynésie Française - année 2008Jean-Olivier Begouin
 
Centenaire du Gallia Club Lunel
Centenaire du Gallia Club LunelCentenaire du Gallia Club Lunel
Centenaire du Gallia Club LunelAlexandre Alves
 
amandine-adore-la-cuisine
amandine-adore-la-cuisineamandine-adore-la-cuisine
amandine-adore-la-cuisineDiya Lim
 
PMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapter
PMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapterPMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapter
PMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapterPMI Cameroon Chapter
 
Historia primaria
Historia primariaHistoria primaria
Historia primariaEuler
 
Palmares 2014 de l'espoir officiel
Palmares 2014 de l'espoir officielPalmares 2014 de l'espoir officiel
Palmares 2014 de l'espoir officielFabrice Carlier
 
Les 6 Influences de la Semaine #2
Les 6 Influences de la Semaine #2Les 6 Influences de la Semaine #2
Les 6 Influences de la Semaine #26co
 
La monnaie du vietnam le dong agence de voyage au vietnam - horizon vietnam...
La monnaie du vietnam le dong   agence de voyage au vietnam - horizon vietnam...La monnaie du vietnam le dong   agence de voyage au vietnam - horizon vietnam...
La monnaie du vietnam le dong agence de voyage au vietnam - horizon vietnam...Horizon-Vietnam-Voyage
 
Chirurgie cardiaque fp 12 06 12
Chirurgie cardiaque fp 12 06 12Chirurgie cardiaque fp 12 06 12
Chirurgie cardiaque fp 12 06 12raymondteyrouz
 

Destacado (20)

Nomenclature baert debusschere
Nomenclature baert debusschereNomenclature baert debusschere
Nomenclature baert debusschere
 
Cr Reunion Filiere 18 Nov 2008
Cr  Reunion Filiere 18 Nov 2008Cr  Reunion Filiere 18 Nov 2008
Cr Reunion Filiere 18 Nov 2008
 
Academico
AcademicoAcademico
Academico
 
Cliquez sur la destination de votre choix
Cliquez sur la destination de votre choixCliquez sur la destination de votre choix
Cliquez sur la destination de votre choix
 
Soutenance
SoutenanceSoutenance
Soutenance
 
la colombophilie en 3 d
la colombophilie en 3 dla colombophilie en 3 d
la colombophilie en 3 d
 
Informe Comunidad De Practica Enero 2009
Informe Comunidad De Practica Enero 2009Informe Comunidad De Practica Enero 2009
Informe Comunidad De Practica Enero 2009
 
Temple
TempleTemple
Temple
 
Plataformasvirtuales 090930175741 Phpapp01
Plataformasvirtuales 090930175741 Phpapp01Plataformasvirtuales 090930175741 Phpapp01
Plataformasvirtuales 090930175741 Phpapp01
 
Rapport du Président à l'Assemblée de Polynésie Française - année 2008
Rapport du Président à l'Assemblée de Polynésie Française - année 2008Rapport du Président à l'Assemblée de Polynésie Française - année 2008
Rapport du Président à l'Assemblée de Polynésie Française - année 2008
 
Centenaire du Gallia Club Lunel
Centenaire du Gallia Club LunelCentenaire du Gallia Club Lunel
Centenaire du Gallia Club Lunel
 
amandine-adore-la-cuisine
amandine-adore-la-cuisineamandine-adore-la-cuisine
amandine-adore-la-cuisine
 
PMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapter
PMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapterPMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapter
PMI Cameroon Chapter October 4th 2014 : Pmief Presentation for cameroun chapter
 
Historia primaria
Historia primariaHistoria primaria
Historia primaria
 
Palmares 2014 de l'espoir officiel
Palmares 2014 de l'espoir officielPalmares 2014 de l'espoir officiel
Palmares 2014 de l'espoir officiel
 
Boda juanlas
Boda juanlasBoda juanlas
Boda juanlas
 
Les 6 Influences de la Semaine #2
Les 6 Influences de la Semaine #2Les 6 Influences de la Semaine #2
Les 6 Influences de la Semaine #2
 
La monnaie du vietnam le dong agence de voyage au vietnam - horizon vietnam...
La monnaie du vietnam le dong   agence de voyage au vietnam - horizon vietnam...La monnaie du vietnam le dong   agence de voyage au vietnam - horizon vietnam...
La monnaie du vietnam le dong agence de voyage au vietnam - horizon vietnam...
 
Actividad Nro
Actividad  NroActividad  Nro
Actividad Nro
 
Chirurgie cardiaque fp 12 06 12
Chirurgie cardiaque fp 12 06 12Chirurgie cardiaque fp 12 06 12
Chirurgie cardiaque fp 12 06 12
 

Similar a Iswmovil

Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software142918
 
Desarrollo INGENIERIA EN SOFTWARE.pptx
Desarrollo INGENIERIA EN SOFTWARE.pptxDesarrollo INGENIERIA EN SOFTWARE.pptx
Desarrollo INGENIERIA EN SOFTWARE.pptxMoises Martinez
 
Introducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareIntroducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareBarbara brice?
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
Auditoria de redes, herramientas CASE .pptx
Auditoria de redes, herramientas CASE .pptxAuditoria de redes, herramientas CASE .pptx
Auditoria de redes, herramientas CASE .pptxGerenciaEfran
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittJavier Muñoz
 
CONDICIONES DE TRABAJO.pptx
CONDICIONES DE TRABAJO.pptxCONDICIONES DE TRABAJO.pptx
CONDICIONES DE TRABAJO.pptxMiguelStar1
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosJosé Antonio Sandoval Acosta
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECmrojas_unitec
 
Tecnologias futuras
Tecnologias futurasTecnologias futuras
Tecnologias futurasManuelmora77
 

Similar a Iswmovil (20)

Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 
Desarrollo INGENIERIA EN SOFTWARE.pptx
Desarrollo INGENIERIA EN SOFTWARE.pptxDesarrollo INGENIERIA EN SOFTWARE.pptx
Desarrollo INGENIERIA EN SOFTWARE.pptx
 
Software
SoftwareSoftware
Software
 
Introducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareIntroducción al Desarrollo de Software
Introducción al Desarrollo de Software
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
WebDom
WebDomWebDom
WebDom
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Auditoria de redes, herramientas CASE .pptx
Auditoria de redes, herramientas CASE .pptxAuditoria de redes, herramientas CASE .pptx
Auditoria de redes, herramientas CASE .pptx
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
CONDICIONES DE TRABAJO.pptx
CONDICIONES DE TRABAJO.pptxCONDICIONES DE TRABAJO.pptx
CONDICIONES DE TRABAJO.pptx
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 
Tecnologias futuras
Tecnologias futurasTecnologias futuras
Tecnologias futuras
 

Más de Juan Carlos Olivares Rojas

Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersJuan Carlos Olivares Rojas
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasJuan Carlos Olivares Rojas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...Juan Carlos Olivares Rojas
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoJuan Carlos Olivares Rojas
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteJuan Carlos Olivares Rojas
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoJuan Carlos Olivares Rojas
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainJuan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityJuan Carlos Olivares Rojas
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Juan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionJuan Carlos Olivares Rojas
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Juan Carlos Olivares Rojas
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Juan Carlos Olivares Rojas
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Juan Carlos Olivares Rojas
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesJuan Carlos Olivares Rojas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Juan Carlos Olivares Rojas
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesJuan Carlos Olivares Rojas
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Juan Carlos Olivares Rojas
 

Más de Juan Carlos Olivares Rojas (20)

Ieee itmsb20
Ieee itmsb20Ieee itmsb20
Ieee itmsb20
 
Ropec20neural stick
Ropec20neural stickRopec20neural stick
Ropec20neural stick
 
Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board Computers
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las Cosas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en México
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobility
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer Interaction
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas Inteligentes
 
Estrategias didacticas
Estrategias didacticasEstrategias didacticas
Estrategias didacticas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas Inteligentes
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
 

Iswmovil

  • 1. Jornadas Sistemas Computacionales Ingeniería de Software en Dispositivos Móviles M.C. Juan Carlos Olivares Rojas Morelia, Michoacán a 30 de abril de 2008
  • 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
  • 7. Tipo de red WWAN (Celulares) WLAN (Wireless LAN) WPAN (Bluetooth) Estándar GSM/GPRS/E vDo IEEE 802.11b/g/a IEEE 802.15 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 70 - 150 m 10 m Redes inalámbricas
  • 10. ¿Qué no es cómputo móvil?
  • 11. 11 Introducción Grado de penetración de los dispositivos móviles en nuestra sociedad Llaves 0% Cartera Celulares Tarjetas Llaves del trabajo Periódico Espejo MP3/Walkman Videojuego Cámara Credenciales 80% 90% 100%50% 60% 70%10% 20% 30% 40% Siempre Frecuentemente
  • 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
  • 19. Construcción de una casa 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 No cualquier persona o grupo de persona lo realiza. Imposible sin técnicas de Ingeniería
  • 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
  • 24. 24 Problemática 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 800 600
  • 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
  • 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% 26Fuente AMIPCI-AMECE
  • 27. Problemática • PalmOS • Windows CE (Windows Mobile) • Symbian • Linux embedded • RIMOS 27
  • 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. 28
  • 29. Tipos de aplicaciones • Stand-alone (autónomas) • Online (clientes ligeros, desarrollos Web móviles) • Smart client (aquellos que son sensibles al contexto)
  • 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ónProgramación Smart DeviceSmart Device ProgramaciónProgramación Smart DeviceSmart Device Controles ASP.NETControles ASP.NET MobileMobile Controles ASP.NETControles ASP.NET MobileMobile Navegador WebNavegador Web móvilmóvil Navegador WebNavegador Web móvilmóvil .NET Compact.NET Compact FrameworkFramework .NET Compact.NET Compact FrameworkFramework Código LocalCódigo Local Páginas WebPáginas Web remotasremotas Sistema OperativoSistema OperativoSistema OperativoSistema Operativo
  • 32. J2ME
  • 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.
  • 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. 37
  • 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. 38
  • 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. 40
  • 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. 41
  • 42. 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. 42 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) 43
  • 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. 44
  • 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. 45
  • 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. 46
  • 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; 47
  • 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); 48
  • 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; for (int i=0; i <1000; i++) a = localb * i; 49
  • 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 } 50
  • 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) 51
  • 53. Conclusiones 53 • 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 54 • 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”.

Notas del editor

  1. Se debe dar una cordial bienvenida, introduciendo el tiempo.
  2. 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.
  3. 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..
  4. 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.
  5. Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software).
  6. Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software).
  7. 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 &amp;apos;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. &amp;quot;What if,&amp;quot; said Robert Martin, a former preacher who now uses his persuasive speaking skills to promote Smalltalk guru Kent Beck&amp;apos;s Extreme Programming (XP) methodology, &amp;quot;you took a moment to suspend disbelief and considered that--due to today&amp;apos;s technology--the cost of change is essentially flat. When costs don&amp;apos;t change over time, up-front speculative work is a liability. Ambiguity and volatility are reasons to delay.&amp;quot; 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&amp;apos;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 &amp;quot;user stories&amp;quot;(requirements written by customers) and tasks are the &amp;quot;high-density storage mechanism,&amp;quot; according to Martin, who runs a training firm called Object Mentor out of Green Oaks, IL. &amp;quot;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. &amp;quot;Paper and pencil or whiteboards are the best CASE tools I know of. In Kent&amp;apos;s case, he uses CRC cards, not the UML,&amp;quot; said Martin. &amp;quot;But whether it&amp;apos;s Booch notation or UML, you do the highest-level map you can, but you don&amp;apos;t do all your design up front. Remember, in XP it&amp;apos;s not an archival resource, it&amp;apos;s a communication device. The only archive I want is the code and a few poignant, incisive documents explaining why I made certain decisions.&amp;quot; Does this mean that ever more sophisticated modeling tools have no place in XP? Not exactly, said Martin. &amp;quot;If a code-generating tool works for you, use it. After all, that&amp;apos;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.&amp;quot;
  8. 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.
  9. Hablar de toda la problemática en los dispositivos móviles. Hablar de costos y demás características
  10. No existe una metodología para el desarrollo de esta clase de aplicaciones.
  11. 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.
  12. 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.
  13. Diseño sencillo.
  14. 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.