TESIS - biblio.uabcs.mxbiblio.uabcs.mx/tesis/te2950.pdf · Para apoyar a los procesos de...
Transcript of TESIS - biblio.uabcs.mxbiblio.uabcs.mx/tesis/te2950.pdf · Para apoyar a los procesos de...
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR
ÁREA DE CONOCIMIENTO DE CIENCIAS DEL MAR
DEPARTAMENTO ACADÉMICO DE SISTEMAS COMPUTACIONALES
QUE COMO REQUISITO PARA OBTENER EL TÍTULO DE:
PRESENTA:
GABRIEL HERAS MOLDRANO
DIRECTOR:
M.S.C. MÓNICA ADRIANA CARREÑO LEÓN
La paz, Baja California Sur, Junio de 2013
TESIS
DISEÑO DE LAS INTERFACES DE LA APLICACIÓN
MÓVIL DE PESCA RIBEREÑA
LICENCIADO EN COMPUTACIÓN.
AGRADECIMIENTOS
Antes que nada quiero agradecerle a dios por haberme dado la fortaleza y la salud
para concluir mi carrera.
Quiero agradecer también a mis maestros que me brindaron su apoyo durante los
momentos difíciles, en especial quiero agradecer a la maestra Mónica Carreño
León, por todo el apoyo brindado durante el transcurso de la carrera, por haber
creído en mi persona, por su tiempo y por la dirección de este trabajo.
Gracias también a mis compañeros, Martha Gaxiola, Aníbal Meza, Bernardo
Chaparro, que me apoyaron y me permitieron compartir con ellos, esta etapa de
sus vidas durante estos cuatro años de convivir dentro y fuera del salón de clases,
y en especial a mis amigos Flavio I. nava Y Francisco Salazar que sin su apoyo
esto no hubiera sido posible.
A mi familia por apoyarme, a mi madre Hilda Moldrano que siendo padre y madre
al mismo tiempo, logro encausarnos por el buen camino, con todo el amor y
comprensión que solo una madre tan maravillosa como ella pudo haberlo hecho.
A mi hermano Silvestre Heras, que siempre estuvo y está para mi cuando mas lo
necesito, a mi hermano Fernando Heras, por quererme y aguantarme durante los
momentos difíciles de mi vida, y en especial a Macedonio Verdugo, que sin su
invaluable apoyo y comprensión en todos esos malos momentos, nada de esto
hubiera sido posible, gracias por que desde un principio hasta el día de hoy sigues
creyendo en mi y sigues brindándome esas palabras de aliento para seguir
adelante y seguir creciendo a nivel personal y profesional.
Gracias a todos.
Contenido
CAPÍTULO 1 ...................................................................................................................... 5
INTRODUCCIÓN ............................................................................................................... 5
1.1 Antecedentes ........................................................................................................... 5
1.2 Descripción del problema ......................................................................................... 6
1.3 Propuesta de solución .............................................................................................. 6
1.4 Objetivos .................................................................................................................. 6
CAPÍTULO 2 ...................................................................................................................... 7
SISTEMAS DE INFORMACIÓN E INGENIERÍA DE SOFTWARE ..................................... 7
2.1.1 Definición de sistemas de información. .................................................................. 7
2.1.2 Elementos de los sistemas de información. ........................................................... 7
2.1.3 Ejemplos de sistemas de información.................................................................... 8
2.1.4 Clasificaciones de los sistemas de información. .................................................... 8
2.2 Ingeniería de software. ........................................................................................... 10
2.2.1 Definición de ingeniería de software. ............................................................... 10
2.2.2 Definición de la metodología. ........................................................................... 10
2.2.3 Metodología de la ingeniería del software. ....................................................... 11
2.2.4 objetivos de cada etapa. .................................................................................. 11
2.2.5 Clasificación de la metodología. ....................................................................... 12
2.2.6 Modelos de ciclo de vida. ................................................................................. 13
2.2.6.2 ciclo de vida en cascada puro. ...................................................................... 14
2.2.6.3 ciclo de vida en V .......................................................................................... 15
2.2.6.4 Ciclo de vida tipo Sashimi. ............................................................................ 16
2.2.6.5 Ciclo de vida en cascada con subproyecto. .................................................. 17
2.2.6.6 Ciclo de vida Iterativo. ................................................................................... 18
2.2.6.7 Ciclo de vida por prototipos. .......................................................................... 19
2.2.6.8 Ciclo de vida evolutivo. ................................................................................. 20
2.2.6.9 Ciclo de vida incremental. ............................................................................. 21
2.2.6.10 Ciclo de vida en espiral. ............................................................................... 23
2.2.6.11 Ciclo de vida orientado a objetos. ............................................................... 24
CAPÍTULO 3 .................................................................................................................... 26
SISTEMAS WEB Y LENGUAJES DE PROGRAMACIÓN WEB ....................................... 26
3.1 Definición de sistema web ...................................................................................... 26
3.2 Lenguaje de programación. .................................................................................... 26
3.3 Lenguajes de programación web más comunes. ................................................... 28
3.3.1 Lenguaje HTML ............................................................................................... 28
3.3.2 Lenguaje JavaScript ........................................................................................ 29
3.3.3 Lenguaje PHP .................................................................................................. 30
3.4 Manejadores de Bases de Datos. ........................................................................... 31
3.4.1 MySQL ............................................................................................................. 31
3.4.2 Oracle ............................................................................................................. 32
3.4.3 MS SQL Server ............................................................................................... 33
CAPÍTULO 4 .................................................................................................................... 34
DISPOSITIVOS MÓVILES Y DISEÑO DE INTERFACES ................................................ 34
4.1. Introducción a los dispositivos móviles. ................................................................. 34
4.2 Mecanismos de entrada ......................................................................................... 35
4.3 Clasificación de los dispositivos móviles................................................................. 37
4.4 Teléfono móvil ........................................................................................................ 40
4.5 PDA (Personal Digital Assistant) ............................................................................ 41
4.6 “Smartphone” o teléfonos inteligentes .................................................................... 42
4.7 Sistemas operativos para dispositivos móviles ....................................................... 43
4.8 Diseño de interfaces. .............................................................................................. 46
CAPÍTULO 5 .................................................................................................................... 49
DESARROLLO DE INTERFACES DE LA APLICACIÓN MÓVIL ..................................... 49
5.1 Diagramas de casos de uso. .................................................................................. 49
5.2 Diagrama entidad – relación. .................................................................................. 52
5.3 Diseño de interfaces. .............................................................................................. 53
5.4 Pantalla de inicio de la aplicación móvil .............................................................. 53
5.5 Pantalla de opciones de la aplicación móvil ........................................................ 54
5.6 Pantalla de captura de avisos de arribo de la aplicación móvil ............................ 55
5.7 Pantalla de la opción Especies de la aplicación móvil ......................................... 56
5.8 Pantalla de la opción Embarcaciones de la aplicación móvil ............................... 57
5.9 Pantalla de la opción Campo pesquero de la aplicación móvil ............................ 58
CAPÍTULO 6 .................................................................................................................... 59
RESULTADOS Y CONCLUSIONES ................................................................................ 59
BIBLIOGRAFIA ................................................................................................................ 60
INTRODUCCIÓN
Los dispositivos móviles representan una nueva oportunidad de acceso para los
sistemas de información. Sin embargo, la diversidad de características de
hardware y software que presentan estos dispositivos complica el diseño de
interfaces.
En este trabajo se presenta el diseño de interfaces para una aplicación móvil de la
pesca ribereña en Baja California Sur.
El documento se compone de seis capítulos que se describen a continuación:
En el capítulo uno se explica el propósito del proyecto así como la descripción del
problema y su solución así como los beneficios y alcances de este proyecto.
En el capítulo dos se mencionan los fundamentos en los cuales se basa todo
diseño de software (ingeniería de software) así como también, los diferentes
modelos de ciclos de vida en los que el desarrollador de software debe basarse
para llevar cabo un diseño de calidad.
En el capítulo tres se mencionan las definiciones de sistemas web y diferentes
lenguajes de programación web así como también los manejadores de base de
datos más usados en el desarrollo de software.
En el capítulo cuatro se describen conceptos básicos de dispositivos móviles, así
como del diseño de interfaces.
En el capítulo cinco se muestra el desarrollo de las interfaces para la aplicación
móvil de la pesca ribereña en Baja California Sur.
En el capítulo seis se presentan los resultados y las conclusiones del desarrollo
del proyecto.
Página | 5
CAPÍTULO 1
INTRODUCCIÓN
1.1 Antecedentes
Baja California Sur cuenta con una superficie territorial de 73 677 km2, la cual
representa 3.8 por ciento del área del país. Ocupa el noveno lugar en extensión y
el primero en litorales, con 2 220 km, que constituye 22 por ciento del litoral
nacional total; de éstos, 1 400 corresponden al océano Pacífico y 820 al golfo de
California.
La región cuenta con una diversidad de ecosistemas marinos que lo hacen único
en el mundo, ya que alberga especies tropicales, templadas y de transición
templado-tropical. Se presentan en esta región procesos oceánicos conocidos
como surgencias, que contribuyen a mantener una productividad primaria alta
durante casi todo el año, y son la base del sostenimiento de pesquerías masivas,
tales como las sardinas y las anchovetas.
Los recursos pesqueros en BCS son vastos; en las aguas que la circundan, se
han identificado 650 especies que pueden utilizarse para consumo humano e
industrialización. Actualmente, se explotan 122 grupos de especies comestibles,
entre las que destacan la sardina, túnidos, almejas, abulón, langosta y camarón.
Para apoyar a los procesos de planificación, ordenamiento y manejo pesquero se
requiere contar con información confiable y oportuna que sirva como apoyo en el
proceso de toma de decisiones.
Página | 6
1.2 Descripción del problema
La información estadística sobre la producción pesquera en México depende del
sistema que se basa en la recopilación de datos en formatos denominados “avisos
de arribo”. Actualmente se reconoce que los avisos constituyen la principal fuente
de información sobre las pesquerías. También se reconoce que debido a
problemas del sistema de recolección la información es poco confiable, lo que a la
fecha hace que los trabajos que los utilizan para definir y caracterizar ciclos de
producción sean escasos.
1.3 Propuesta de solución
Se propone el diseñar una aplicación móvil que permita registrar la información
generada por “los avisos de arribo” de la pesca ribereña en Baja California Sur,
que se apegue a los estándares de calidad y de usabilidad para que la interfaz sea
consistente, fácil de aprender, legible y con poca carga cognitiva para el usuario.
1.4 Objetivos
El objetivo principal de este proyecto es llevar a cabo el diseño de las interfaces de
la aplicación móvil para facilitar el proceso de registro de los “avisos de arribo” de
la pesca ribereña en Baja California Sur.
En el siguiente capítulo se describen las bases teóricas del área de los sistemas
de información e ingeniería de software, para el diseño de las interfaces de la
aplicación móvil
Página | 7
CAPÍTULO 2
SISTEMAS DE INFORMACIÓN E INGENIERÍA DE SOFTWARE
2.1.1 Definición de sistemas de información.
Un sistema de información (SI) es un conjunto de elementos interrelacionados con
el propósito de prestar atención a las demandas de información de una
organización, para elevar el nivel de conocimientos que permitan un mejor apoyo a
la toma de decisiones y desarrollo de acciones. [2]
2.1.2 Elementos de los sistemas de información.
Los componentes más importantes de un sistema de información son los
siguientes:
Financieros. Es el aspecto económico que permite la adquisición, contratación y
mantenimiento de los demás recursos que integran un sistema de información.
Administrativos. Es la estructura orgánica de objetivos, lineamientos, funciones,
procedimientos, departamentalización, dirección y control de las actividades; que
sustenta la creación y uso de los sistemas.
Humanos. Está compuesto por dos grupos:
El técnico, que posee los conocimientos especializados en el desarrollo de
sistemas, siendo estos los: Administradores, Líderes de Proyecto, Analistas,
Programadores, Operadores y Capturistas.
El usuario, representado por las personas interesadas en el manejo de
información vía cómputo, como apoyo al mejor desempeño de sus actividades,
siendo estos los: Funcionarios, Contadores, Ingenieros, Empleados, Público, etc.
Materiales. Son aquellos elementos físicos que soportan el funcionamiento de un
sistema de información, por ejemplo: local de trabajo, instalaciones eléctricas y de
aire acondicionado, medios de comunicación, mobiliario, maquinaria, papelería,
etc.
Tecnológicos. Es el conjunto de conocimientos, experiencias, metodologías y
técnicas; que orientan la creación, operación y mantenimiento de un sistema. [2]
Página | 8
2.1.3 Ejemplos de sistemas de información.
Existe gran cantidad y variedad de sistemas de información orientados a diversos
campos de la actividad humana, algunas de sus aplicaciones son las siguientes:
• Científicas: control de vuelos espaciales, estudios sobre energía nuclear, etc.
• Militares: control y operación de armas, sistemas de defensa, etc.
• De Ingeniería: diseño industrial de autos y maquinaria; control de procesos de
producción y siderúrgicos, etc.
• Comunicaciones y Transportes: diseño de carreteras, control de tráfico aéreo y
terrestre, transmisión remota de datos, etc.
• Administrativas: nómina, inventarios, almacenes, contabilidad, presupuesto,
ventas, etc.
• En la educación. Apoyo en la enseñanza, referencias bibliográficas, etc.
• Médicas: diagnóstico, terapéuticas, aparatos biónicos, etc.
• Artísticas: música, poesía, pintura, etc. [2]
2.1.4 Clasificaciones de los sistemas de información.
De acuerdo a determinado enfoque los sistemas de información se pueden
agrupar en una cierta clasificación, que brinda una idea esencial de su estructura y
funcionamiento.
A continuación se mencionan tres enfoques:
De acuerdo al elemento principal de proceso de la información.
Manuales: cuando el hombre auxiliado por cierto equipo (máquinas de escribir,
sumadoras, archivos, etc.) realiza las principales funciones de recopilación,
registro, almacenamiento, cálculo y generación de información. [2]
Página | 9
Mecanizadas: cuando cierta maquinaria realiza las principales funciones de
procesamiento.
Para los sistemas mecanizados que hacen uso de un computador, de acuerdo al
tipo de interacción Hombre-Máquina.
Batch: el usuario proporciona los datos necesarios para la ejecución de un
proceso y espera a que el computador termine la tarea para recibir los resultados.
En Línea: existe un diálogo directo entre el usuario y el computador durante la
ejecución de un proceso.
En cuanto a la organización física de los principales recursos de procesamiento de
datos.
Procesos centralizados: los recursos se encuentran ubicados en un área física
determinada, por lo que su acceso se realiza en las misma instalación o desde
lugares retirados, mediante líneas de comunicación de datos (telefónicas,
microondas, satélite, etc.).
Proceso distribuido: los recursos se encuentran diseminados en diversos
lugares de una zona territorial (ciudad, país, continente, etc.), por lo que el
procesamiento se realiza en el propio lugar donde se originan los datos, existiendo
la posibilidad de compartir información entre las diversas instalaciones, mediante
la información de una “Red de Comunicación”.
Los sistemas manuales son adecuados en procesos sencillos, que manejan
pequeños volúmenes de datos, sin realizar cálculos complejos y que mantener
actualizada la información no es problemático. En cambio, los mecanizados
tienden a sistematizar aquellas actividades complejas, que requieren manipular
altos volúmenes de datos en tiempos cortos de respuesta.
Cuando la organización es pequeña o tiene grandes necesidades de procesar
altos volúmenes de información en tiempos cortos de respuesta, es conveniente
integrar los recursos en forma centralizada. Por el contrario, si la empresa es
grande y tiene altos requerimientos de proceso, es deseable hacer uso del
concepto distribuido. [2]
Página | 10
2.2 Ingeniería de software.
2.2.1 Definición de ingeniería de software.
Ingeniería de software es la aplicación práctica del conocimiento científico al
diseño y construcción de programas de computadora y a la documentación
asociada requerida para desarrollar, operar y mantenerlos.
La ingeniería de software requiere llevar a cabo numerosas tareas agrupadas en
etapas, al conjunto de estas etapas se le denomina ciclo de vida. [2]
2.2.2 Definición de la metodología.
La metodología para el desarrollo de software es un modo sistemático de realizar,
gestionar y administrar un proyecto para llevarlo a acabo con altas posibilidades
de éxito. Esta sistematización nos indica como dividiremos un gran proyecto en
módulos más pequeños llamados etapas, y las acciones que corresponden en
cada una de ellas, nos ayuda a definir entradas y salidas para cada una de las
etapas y, sobre todo normaliza el modo en que administraremos el proyecto.
Entonces, una metodología para el desarrollo de software son los procesos a
seguir sistemáticamente para idear, implementar y mantener un producto software
desde que surge la necesidad del producto hasta cumplimos el objetivo por el cual
fue creado.
Desde un punto de vista general puede considerarse que el ciclo de vida de un
software tiene tres etapas claramente diferenciadas, las cuales se detallan a
continuación:
Planificación: idearemos un planteamiento detallado que guie la gestión
del proyecto, temporal y económicamente.
Implementación: acordaremos el conjunto de actividades que componen la
realización del producto.
Puesta en producción: El proyecto entra en la etapa de definición, allí donde se
lo presentamos al cliente o usuario final, sabiendo que funciona correctamente y
responde a los requerimientos solicitados en su momento. Esta etapa es muy
importante no solo por representar la aceptación o no del proyecto por parte del
cliente o usuario final sino por las múltiples dificultades que suele presentar en la
práctica, alargándose excesivamente y provocando costos no previstos. [2]
Página | 11
2.2.3 Metodología de la ingeniería del software.
En cada una de las etapas de un modelo de ciclo de vida, se pueden establecer
una serie de objetivos, tareas y actividades que los caracterizan. Existen distintos
modelos de ciclos de vida, y la elección de un modelo para un determinado tipo de
proyecto es realmente importante. [2]
Las etapas comunes a casi todos los modelos de ciclo de vida son las siguientes:
Expresión de necesidades.
Especificaciones.
Análisis.
Diseño.
Implementación.
Debuggin.
Validación.
Evolución.
2.2.4 objetivos de cada etapa.
Expresión de necesidades: Esta etapa tiene como objetivo el armado de un
documento en el cual se reflejan los requerimientos y funcionalidades que ofrecerá
al usuario el sistema a implementar (que y no como, se va a implementar).
Especificaciones: Formalizamos los requerimientos; el documento obtenido en la
etapa anterior se tomara como punto de partida para esta etapa.
Diseño: Se tiene que determinar cómo se debe hacer (se define a detalle las
entidades y relaciones de las bases de datos, seleccionamos el lenguaje que
vamos a utilizar, el sistema gestor de base de datos etc.).
Implementación: Empezamos a codificar algoritmos y estructuras de datos,
definidos en las etapas anteriores, en el correspondiente lenguaje de
programación o para un determinado sistema gestor de base de datos. [2]
Página | 12
Debuggin: El objetivo de esta etapa es garantizar que nuestro programa no
contiene errores de diseño o codificación. En esta etapa no deseamos sabes s
nuestro programa realiza lo que solicitó el usuario, esa tarea le corresponde a la
etapa de implementación.
Validación: Esta etapa tiene como objetivo la verificación de que el sistema
desarrollado cumple con los requerimientos expresados inicialmente por el cliente
y que han dado lugar al presente proyecto.
Evolución: en la mayoría de los proyectos se considera esta etapa como
mantenimiento y evolución, y se le asigna, no solo el agregado de nuevas
funcionalidades (evolución); sino la corrección de errores que surgen
(mantenimiento). [2]
2.2.5 Clasificación de la metodología.
Existen dos metodologías que tienen analogía en la práctica con los paradigmas
de programación. Metodología estructurada y metodología orientada a objetos.
Metodología estructurada: la orientación de esta metodología se dirige
hacia los procesos que intervienen en el sistema a desarrollar, es decir,
cada función a realizar por el sistema se descompone en pequeños
módulos individuales. Es más fácil resolver problemas pequeños, y luego
unir cada una de estas soluciones, que abordar un problema grande.
Metodología orientada a objetos: Esta no comprende los procesos como
funciones que arma módulos basados en componentes, es decir, casa
componente es independiente del otro. [2]
Página | 13
2.2.6 Modelos de ciclo de vida.
Las principales diferencias entre distintos modelos de ciclo de vida están divididas
en tres grandes visiones:
El alcance del ciclo de vida, que depende de hasta donde deseamos llegar
con el proyecto: o solo saber si es viable el desarrollo de un producto, el
desarrollo completo o el desarrollo más las actualizaciones y el
mantenimiento.
La cualidad y la cantidad de las etapas en que dividiremos el ciclo de
vida: según el ciclo de vida que adoptemos, y el proyecto para el cual lo
adoptemos.
La estructura y la sucesión de las etapas, si hay realimentación entre
ellas, y si tenemos libertad de repetirlas (iterar). [2]
2.2.6.1 Ciclo de vida lineal.
Figura 2.1 ciclo de vida lineal.
Es el más sencillo de todos los modelos. Consiste en descomponer la actividad
global del proyecto en etapas separadas que son realizadas de manera lineal, es
decir cada etapa se realiza una sola vez, a continuación de la etapa anterior y
antes de la etapa siguiente. Con un ciclo de vida lineal es muy fácil dividir las
tareas, y prever los tiempos (sumando linealmente los de cada etapa). [2]
Página | 14
Las actividades de cada una de las etapas mencionadas deben ser
independientes entre sí, es decir, que es condición primordial que no haya
retroalimentación entre ellas, aunque si pueden admitirse ciertos supuestos de
realimentación correctiva. Desde el punto de vista de la gestión, requiere también
que se conozca desde el primer momento, con excesiva rigidez, lo que va a ocurrir
en cada una de las distintas etapas antes de comenzarla. Esto último minimiza
también, las posibilidades de errores durante la codificación y reduce al mínimo la
necesidad de requerir información del cliente o del usuario. [2]
2.2.6.2 ciclo de vida en cascada puro.
Figura 2.2 ciclo de vida en cascada puro.
Es un ciclo de vida que admite iteraciones, contrariamente a la creencia de que es
un ciclo de vida secuencial como el lineal. Después de cada etapa se realiza una
o varias revisiones para comprobar si se puede pasar a la siguiente. Es un modelo
rígido, poco flexible, y con muchas restricciones. Aunque fue uno de los primeros,
y sirvió de base para el resto de los modelos de ciclo de vida. [2]
Página | 15
Una de sus ventajas, además de su planificación sencilla, es la de proveer un
producto con un elevado grado de calidad sin necesidad de un personal altamente
califica- do. Se pueden considerar como inconvenientes: la necesidad de contar
con todos los requerimientos (o la mayoría) al comienzo del proyecto, y, si se han
cometido erro- res y no se detectan en la etapa inmediata siguiente, es costoso y
difícil volver atrás para realizar la corrección posterior.
Además, los resultados no los veremos hasta que no estemos en las etapas
finales del ciclo, por lo que, cualquier error detectado nos trae retraso y aumenta
el costo del desarrollo en función del tiempo que insume la corrección de éstos.
Es un ciclo adecuado para los proyectos en los que se dispone de todos los
requerimientos al comienzo, para el desarrollo de un producto con funcionalidades
conocidas o para proyectos, que aun siendo muy complejos, se entienden
perfectamente desde el principio. [2]
2.2.6.3 ciclo de vida en V
Figura 2.3 ciclo de vida en V.
Las ventajas y desventajas de este modelo son las mismas del ciclo anterior, con
el agregado de los controles cruzados entre etapas para lograr una mayor
corrección.
Página | 16
Podemos utilizar este modelo de ciclo de vida en aplicaciones, que si bien son
simples (pequeñas transacciones sobre bases de datos por ejemplo), necesitan
una confiabilidad muy alta. Un ejemplo claro en el que no nos podemos permitir el
lujo de cometer errores es una aplicación de facturación, en la que si bien los
procedimientos vistos individualmente son de codificación e interpretación sencilla,
la aplicación en su conjunto puede tener matices complicados. [2]
2.2.6.4 Ciclo de vida tipo Sashimi.
Figura 2.4 ciclo de vida tipo sashimi.
Este ciclo de vida es parecido al ciclo de vida en cascada puro, con la diferencia
de que en el ciclo de vida en cascada no se pueden solapar las etapas, y en éste
sí. Esto suele, en muchos casos, aumentar su eficiencia ya que la
retroalimentación entre etapas se encuentra implícitamente en el modelo.
Se hace notar como ventajas la ganancia de calidad en lo que respecta al
producto final, la falta de necesidad de una documentación detallada (el ahorro
proviene por el solapado de las etapas). Sus desventajas también se refieren al
solapamiento de las etapas: es muy difícil gestionar el comienzo y fin de cada
etapa y los problemas de comunicación, si aparecen, generan inconsistencias en
el proyecto. [2]
Página | 17
2.2.6.5 Ciclo de vida en cascada con subproyecto.
Figura 2.5 ciclo de vida en cascada con subproyecto.
Sigue el modelo de ciclo de vida en cascada. Cada una de las cascadas se divide
en sub-etapas independientes que se pueden desarrollar en paralelo.
La ventaja es que se puede tener más gente trabajando al mismo tiempo, pero la
desventaja es que pueden surgir dependencias entre las distintas subetapas que
detengan el proyecto temporalmente si no es gestionado de manera correcta.
Podemos utilizar este modelo para administrar cualquier proyecto mencionado en
los modelos anteriores. Pero cuidando de administrar muy bien los tiempos. [2]
Página | 18
2.2.6.6 Ciclo de vida Iterativo.
Figura 2.6 ciclo de vida iterativo.
También derivado del ciclo de vida en cascada puro, este modelo busca reducir el
riesgo que surge entre las necesidades del usuario y el producto final por malos en-
tendidos durante la etapa de solicitud de requerimientos.
Es la iteración de varios ciclos de vida en cascada. Al final de cada iteración se le
entrega al cliente una versión mejorada o con mayores funcionalidades del producto.
El cliente es quien luego de cada iteración, evalúa el producto y lo corrige o propone
me- joras. Estas iteraciones se repetirán hasta obtener un producto que satisfaga al
cliente.
Se suele utilizar en proyectos en los que los requerimientos no están claros de par-
te del usuario, por lo que se hace necesaria la creación de distintos prototipos para
presentarlos y conseguir la conformidad del cliente.
Podemos adoptar el modelo mencionado en aplicaciones medianas a grandes, en
las que el usuario o cliente final no necesita todas las funcionalidades desde el
principio del proyecto. Quizás una empresa que debe migrar sus aplicaciones
hacia otra arquitectura, y desea hacerlo paulatinamente, es un candidato ideal
para este tipo de modelo de ciclo de vida. [2]
Página | 19
2.2.6.7 Ciclo de vida por prototipos.
Figura 2.7 ciclo de vida por prototipos.
El uso de programas prototipo no es exclusivo del ciclo de vida iterativo. En la
práctica los prototipos se utilizan para validar los requerimientos de los usuarios en
cualquier ciclo de vida.
Si no se conoce exactamente cómo desarrollar un determinado producto o cuáles
son las especificaciones de forma precisa, suele recurrirse a definir
especificaciones iniciales para hacer un prototipo, o sea, un producto parcial y
provisional. En este modelo, el objetivo es lograr un producto intermedio, antes de
realizar el producto final, para conocer mediante el prototipo cómo responderán las
funcionalidades previstas para el producto final.
Antes de adoptar este modelo de ciclo debemos evaluar si el esfuerzo por crear un
prototipo vale realmente la pena adoptarlo.
Se utiliza mayoritariamente en desarrollos de productos con innovaciones
importantes, o en el uso de tecnologías nuevas o poco probadas, en las que la
incertidumbre sobre los resultados a obtener, o la ignorancia sobre el
comportamiento, impiden iniciar un proyecto secuencial.
La ventaja de este ciclo se basa en que es el único apto para desarrollos en los
que no se conoce a priori sus especificaciones o la tecnología a utilizar. Como
contra- partida, por este desconocimiento, tiene la desventaja de ser altamente
costoso y difícil para la administración temporal. [2]
Página | 20
2.2.6.8 Ciclo de vida evolutivo.
Figura 2.8 ciclo de vida evolutivo.
Este modelo acepta que los requerimientos del usuario pueden cambiar en
cualquier momento.
La práctica nos demuestra que obtener todos los requerimientos al comienzo del
proyecto es extremadamente difícil, no sólo por la dificultad del usuario de
transmitir su idea, sino porque estos requerimientos evolucionan durante el
desarrollo y de esta manera, surgen nuevos requerimientos a cumplir.
El modelo de ciclo de vi- da evolutivo afronta este problema mediante una iteración
de ciclos requerimientos-desarrollo-evaluación.
Resulta ser un modelo muy útil cuando desconocemos la mayoría de los
requerimientos iniciales, o estos requerimientos no están completos. [2]
Página | 21
2.2.6.9 Ciclo de vida incremental.
Figura 2.9 ciclo de vida incremental.
Este modelo de ciclo de vida se basa en la filosofía de construir incrementando las
funcionalidades del programa. Se realiza construyendo por módulos que cumplen
las diferentes funciones del sistema. Esto permite ir aumentando gradualmente las
capacidades del software.
Este ciclo de vida facilita la tarea del desarrollo permitiendo a cada miembro del
equipo desarrollar un módulo particular en el caso de que el proyecto sea realizado
por un equipo de programadores.
Es una repetición del ciclo de vida en cascada, aplicándose este ciclo en cada
funcionalidad del programa a construir. Al final de cada ciclo le entregamos una
versión al cliente que contiene una nueva funcionalidad. Este ciclo de vida nos
permite realizar una entrega al cliente antes de terminar el proyecto. [2]
Página | 22
El modelo de ciclo de vida incremental nos genera algunos beneficios tales como
los que se describen a continuación:
• Construir un sistema pequeño siempre es menos riesgoso que construir un
sistema grande.
• Como desarrollamos independientemente las funcionalidades, es más fácil
relevar los requerimientos del usuario.
• Si se detecta un error grave, sólo desechamos la última iteración.
• No es necesario disponer de los requerimientos de todas las funcionalidades en el
comienzo del proyecto y además facilita la labor del desarrollo con la conocida
filosofía de divide & conqueror.
Este modelo de ciclo de vida no está pensado para cierto tipo de aplicaciones, sino
que está orientado a cierto tipo de usuario o cliente. Podremos utilizar este modelo
de ciclo de vida para casi cualquier proyecto, pero será verdaderamente útil cuando
el usuario necesite entregas rápidas, aunque sean parciales. [2]
Página | 23
2.2.6.10 Ciclo de vida en espiral.
Figura 2.10 ciclo de vida en espiral.
Este ciclo puede considerarse una variación del modelo con prototipado, el
modelo se basa en una serie de ciclos repetitivos para ir ganando madurez en el
producto final. Toma los beneficios de los ciclos de vida incremental y por
prototipos, pero se tiene más en cuenta el concepto de riesgo que aparece debido
a las incertidumbres e ignorancias de los requerimientos proporcionados al
principio del proyecto o que surgirán durante el desarrollo. A medida que el ciclo
se cumple (el avance del espiral), se van obteniendo prototipos sucesivos que van
ganando la satisfacción del cliente o usuario. A menudo, la fuente de
incertidumbres es el propio cliente o usuario, que en la mayoría de las
oportunidades no sabe con perfección todas las funcionalidades que debe tener el
producto. [2]
Página | 24
En este modelo hay cuatro actividades que envuelven a las etapas.
• Planificación: Relevamiento de requerimientos iniciales o luego de una iteración.
• Análisis de riesgo: De acuerdo con el relevamiento de requerimientos decidimos si
continuamos con el desarrollo.
• Implementación: desarrollamos un prototipo basado en los requerimientos.
• Evaluación: El cliente evalúa el prototipo, si da su conformidad, termina el
proyecto. En caso contrario, incluimos los nuevos requerimientos solicitados por el
cliente en la siguiente iteración. [2]
2.2.6.11 Ciclo de vida orientado a objetos.
Figura 2.11 ciclo de vida orientado a objetos.
La característica principal de este modelo es la abstracción de los requerimientos
de usuario, por lo que este modelo es mucho más flexible que los restantes, que son
rígidos en requerimientos y definición, soportando mejor la incertidumbre que los
anteriores, aunque sin garantizar la ausencia de riesgos. La abstracción es lo que
nos permite analizar y desarrollar las características esenciales de un objeto
(requerimiento), despreocupándonos de las menos relevantes. [2]
Página | 25
Favorece la reducción de la complejidad del problema que deseamos abordar y per-
mite el perfeccionamiento del producto.
En este modelo se utilizan las llamadas fichas CRC (clase-responsabilidades-
colaboración) como herramienta para obtener las abstracciones y mecanismos
clave de un sistema analizando los requerimientos del usuario. En la ficha CRC se
escribe el nombre de la clase u objeto, sus responsabilidades (los métodos) y sus
colaboradores (otras clases u objetos de los cuales necesita). Estas fichas, además,
nos ayudan a confeccionar los denominados casos de uso. [2]
En el siguiente capítulo se describen las bases teóricas de los sistemas web y de
los principales lenguajes de programación usados para la construcción de los
mismos
Página | 26
CAPÍTULO 3
SISTEMAS WEB Y LENGUAJES DE PROGRAMACIÓN WEB
3.1 Definición de sistema web
En la ingeniería de software se denomina aplicación web a aquellas herramientas
que los usuarios pueden utilizar accediendo a un servidor web a través de Internet
o de una intranet mediante un navegador. En otras palabras, es una aplicación
software que se codifica en un lenguaje soportado por los navegadores web en la
que se confía la ejecución al navegador.
Es importante mencionar que una página Web puede contener elementos que
permiten una comunicación activa entre el usuario y la información. Esto permite
que el usuario acceda a los datos de modo interactivo, gracias a que la página
responderá a cada una de sus acciones, como por ejemplo rellenar y enviar
formularios y acceder a gestores de base de datos de todo tipo. [1]
3.2 Lenguaje de programación.
Un lenguaje de programación es un idioma artificial diseñado para expresar
procesos que pueden ser llevadas a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y
lógico de una máquina, para expresar algoritmos con precisión, o como modo de
comunicación humana. [1]
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso
por el cual se escribe, se prueba, se depura, se compila y se mantiene el código
fuente de un programa informático se le llama programación. [1]
Página | 27
También la palabra programación se define como el proceso de creación de un
programa de computadora, mediante la aplicación de procedimientos lógicos, a
través de los siguientes pasos:
1. El desarrollo lógico del programa para resolver un problema en particular.
2. Escritura de la lógica del programa empleando un lenguaje de
programación específico (codificación del programa).
3. Ensamblaje o compilación del programa hasta convertirlo en lenguaje de
máquina.
4. Prueba y depuración del programa.
5. Desarrollo de la documentación. [1]
En la actualidad existen un gran número de lenguajes de programación con los
cuales podemos desarrollar sistemas orientados en un entorno web, cada uno fue
creado y evolucionado debido a la gran demanda de la resolución de nuevos
problemas y necesidades dentro de los nuevos sistemas. [1]
Al inicio de los tiempos de los sistemas web, surgieron distintas demandas en
cuanto a las soluciones de los sistemas. A estas demandas se le dio solución
mediante programación estática la cual cubrió las necesidades de los usuarios por
un tiempo. A medida que fueron creciendo los problemas a resolver fue necesario
crear problemas más avanzados que soportan programación web dinámica
además de que pudieran interactuar con bases de datos desde un sitio web. [1]
Página | 28
3.3 Lenguajes de programación web más comunes.
3.3.1 Lenguaje HTML
Desde el inicio del internet se ha utilizado el lenguaje HTML (en inglés
HyperTextMarkupLanguaje), (en español Lenguaje de Marcas de Hipertextuales),
para lograr publicar sitios web con contenido estático prácticamente informativo.
[1]
Ventajas
Todos los exploradores lo admiten pudiendo así procesar su sintaxis sin
problemas mayores.
Es de una estructura sencilla por lo tanto es de fácil aprendizaje
Es muy ligero provocando un despliegue de información prácticamente
rápido.
Debido a su sencilla estructura el texto presentado es de fácil y agradable
lectura.
Permite utilizar hipertexto el cual nos da la facilidad de navegar entre
páginas en sitios. [1]
Desventajas
Las etiquetas que utiliza son muy básicas por lo tanto tienen
beneficios muy limitados.
Cada navegador puede interpretarlo de diferente manera.
Su lenguaje es estático. [1]
Página | 29
3.3.2 Lenguaje JavaScript
Este lenguaje no requiere de compilación, es utilizado principalmente en páginas
web. Se utiliza principalmente por su mejora en la interfaz web, por el manejo del
lado del cliente, aunque tiene otras áreas donde se puede desempeñar, el
ambiente web es el más utilizado. Todos los navegadores tienen la capacidad de
interpretarlo. [1]
Ventajas
El código se ejecuta de lado del cliente por lo tanto su interfaz es más
agradable.
Es seguro, ya que tiene capacidades limitadas por las mismas razones de
seguridad.
Desventajas
El código debe descargarse completamente en cada llamada de la
página.
El código puede ser visto por cualquier usuario [1]
Página | 30
3.3.3 Lenguaje PHP
Este lenguaje es utilizado principalmente para la creación de sitios web que
interactúan de forma dinámica. PHP es un acrónimo de “PHP Hypertext
preprocesor “, surgió en 1985 y fue desarrollado por PHP group.
Este lenguaje es interpretado del lado del servidor y es utilizado para la creación
de sitios web dinámicos, concentrado en HTML y ejecutados en el servidor. Este
lenguaje no tiene la necesidad de ser compilado para ejecutarse, pero para su
funcionamiento es necesario tener instalado apache o IIS con las librerías de PHP.
[1]
Ventajas
No requiere de la definición de los tipos de las variables.
Contempla una gran cantidad de funciones.
Es de uso libre, lo cual lo presenta como una alternativa de fácil acceso
para todos.
Incluye documentación sobre su funcionamiento en su sitio oficial.
Puede conectarse con un gran número de bases de datos como MySQL,
Oracle, MS SQL SERVER, entre los más populares.
Es un lenguaje multiplataforma como Linux, Windows entre otros.
Soporta la orientación a objetos, clases y herencias.
Desventajas
la programación es orientada a objetos aun es un poco deficiente.
La lectura de la sintaxis es un poco complicada al mezclar
HTML y PHP.
Página | 31
3.4 Manejadores de Bases de Datos.
3.4.1 MySQL
MySQL es la base de datos open source más popular y, posiblemente, mejor del
mundo. De hecho. MySQL es un competidor cada vez más directo de los gigantes
en esta materia como Oracle o SQL server de Microsoft.
Es un sistema de administración de bases de datos relacional, multihilo además
de ser multiusuario. MySQL es de código abierto aunque MySQL AB distribuye su
versión comercial lo cual tiene como diferencia el soporte técnico que ofrece la
comercial y la posibilidad de integrarlo en un software propietario, de otra manera
se vulneraria de licencia libre.
La velocidad es uno de los principales objetivos para este gestor de base de datos
además de que soporta gran cantidad de tipos de datos. Otro gran beneficio lo
podemos encontrar en la portabilidad que tiene entre sistemas ya que puede
trabajar en distintas plataformas y varios sistemas operativos. También es capaz
de aprovechar la potencia de sistemas multiproceso gracias a su capacidad
multihilo. [1]
Ventajas
Soporta gran variedad de sistemas operativos.
Prácticamente sencilla instalación.
No exige gran cantidad de recursos lo cual lo hacen muy ligero para
trabajar en computadoras sin gran cantidad de recursos.
Muy buena velocidad la hora de realizar sus operaciones.
Desventajas
No es uno de los sistemas más intuitivos.
Muchas de sus utilidades no están documentadas.
Página | 32
3.4.2 Oracle
Es una plataforma integral de base de datos para datawarehousing (colección de
datos orientados a un cierto ámbito) e inteligencia de negocios. Ofrece una de las
mejores funcionalidades de su clase para el almacenamiento de datos con
escalabilidad probada en cientos de terabytes. [1]
Ventajas
Oracle desde un principio fue gestor de datos con más orientación hacia
internet.
Es un sistema multiplataforma, puede ser utilizado desde una pc hasta un
supercomputador.
Es el gestor de base de datos más utilizado a nivel mundial.
Desventajas
No hay muchos buenos libros sobre este administrador de base de
datos como su competencia.
Posiblemente el mayor inconveniente sea por sus altos costos en el
mercado.
Página | 33
3.4.3 MS SQL Server
Es un sistema de gestión de bases de datos relacionales basados en el lenguaje
Transact-SQL capaz de mostrar a muchos usuarios grandes cantidades de datos
simultáneamente.
Microsoft SQL Server es la potente alternativa para la administración de bases de
datos que ofrece Microsoft. [1]
Ventajas
Permite administrar información de otros servidores de datos.
Escalabilidad, estabilidad y seguridad.
Incluye un potente entorno grafico administración, que permite el uso
de comandos DDL y DML gráficamente.
Desventajas
Tiene altos costos comparados con algunos competidores.
En el siguiente capítulo se describen las bases teóricas de los dispositivos móviles
así como los principios que deben seguirse para el diseño de interfaces.
Página | 34
CAPÍTULO 4
DISPOSITIVOS MÓVILES Y DISEÑO DE INTERFACES
4.1. Introducción a los dispositivos móviles.
Un dispositivo móvil se puede definir como un aparato de pequeño tamaño, con
algunas capacidades de procesamiento, con conexión permanente o intermitente
a una red, con memoria limitada, que ha sido diseñado específicamente para una
función, pero que puede llevar a cabo otras funciones más generales.
La movilidad de un dispositivo móvil está condicionada por la necesidad de utilizar
una batería. Esto representa un inconveniente debido a que la batería necesita
recargas periódicas, lo que dificulta en muchos casos la portabilidad del dispositivo
móvil.
Un dispositivo móvil se caracteriza, en general, por su reducido tamaño, el cual
aporta una ventaja notable: favorece la movilidad de los dispositivos móviles. A su
vez, presenta una serie de inconvenientes, como son que han de utilizar un
procesador más simple y una memoria pequeña.
Además, las interfaces con el usuario también son reducidas, ya que la mayor
parte de los dispositivos móviles tienen una pantalla reducida, un teclado muy
pequeño, o carecen de él, reconocimiento de voz limitado, entre otros.
Un dispositivo móvil ofrece recursos tanto a nivel personal como a nivel
empresarial. Es en este último caso en el que los dispositivos móviles no
disponen de la capacidad requerida para sus necesidades (poco espacio de
almacenamiento de datos, introducción de datos poco eficaz, visualización
limitada, etc.).
Con todo esto, las aplicaciones de un dispositivo móvil, a primera vista, son más
reducidas y menos potentes que las que se pueden desarrollar sobre una PC.
Para intentar solucionar esta problemática y conseguir que los dispositivos móviles
Página | 35
tengan más funcionalidad, se aprovecha la gran capacidad de comunicación de la
que disponen. De esta manera la “lógica pesada” de las aplicaciones estaría
ubicada en un servidor remoto potente y el dispositivo móvil dispondría de ella
cuando fuese necesario. Pero esto no es tan fácil de realizar, ya que el dispositivo
consumiría más energía, con lo que la batería debería cargarse más
frecuentemente o aumentar el tamaño del dispositivo móvil para llevar una más
potente. Si a esto se le añade el hecho de que también aumentaría el precio del
dispositivo móvil, estas soluciones, por el momento, no son muy viables aunque sí
utilizadas.
4.2 Mecanismos de entrada
Los dispositivos móviles requieren el uso de mecanismos de entrada, que
permitan la comunicación del usuario con el dispositivo móvil. Estos mecanismos
pueden variar de acuerdo al modelo y a la marca del dispositivo. A continuación
se muestran los principales:
a) Botones.- Un botón o pulsador es un dispositivo utilizado para activar
alguna función. Los botones son de diversa forma y tamaño y se
encuentran en la mayoría de los dispositivos. Los botones son por lo
general activados al ser pulsados, normalmente con un dedo.
Figura 4.1 Ejemplo de botones en un dispositivo móvil
Página | 36
b) Pantalla táctil.- Es una pantalla que mediante un toque directo sobre su
superficie permite la entrada de datos y órdenes al dispositivo, y a su vez
muestra los resultados introducidos previamente; actuando como periférico
de entrada y salida de datos, así como emulador de datos interinos
erróneos al no tocarse efectivamente. Este contacto también se puede
realizar por medio de un lápiz óptico u otras herramientas similares.
Figura 4.2 Ejemplo de pantalla táctil en un dispositivo móvil
c) Acelerómetro o vibración.- Es un dispositivo que mide la aceleración y las
fuerzas inducidas por la gravedad, es decir, permite detectar el movimiento
y el giro. Algunos dispositivos móviles permiten rotar automáticamente la
pantalla dependiendo de la aplicación en la que se encuentre.
Figura 4.3 Ejemplo de acelerómetro en un dispositivo móvil
Página | 37
d) Teclado Qwerty.- El teclado QWERTY facilita la escritura en dispositivos
móviles, no sólo por la distribución de las letras, sino también por la
comodidad de usar una configuración de escritura que es habitual y, en
muchos casos, casi natural.
Figura 4.4 Ejemplo de teclado Qwerty en un dispositivo móvil
4.3 Clasificación de los dispositivos móviles
Los dispositivos móviles según la funcionalidad o servicio principal se pueden
clasificar en:
a) Dispositivo de comunicación.- Es aquel dispositivo móvil cuyo cometido
principal es ofrecer una infraestructura de comunicación, principalmente
telefónica. Estos dispositivos ofrecen además servicios como el envío de
mensajes SMS y MMS, o acceso WAP. En esta categoría se incluye el
tradicional teléfono móvil, precursor indiscutible dentro de los dispositivos
móviles, la BlackBerry y el Smartphone, que amplía considerablemente las
prestaciones del primero mediante pantalla táctil, conexión a Internet o la
ejecución de aplicaciones (por ejemplo, iPhone o HTC G1).
b) Dispositivo de computación.- Son aquellos dispositivos móviles que ofrecen
mayores capacidades de procesamiento de datos y cuentan con una
pantalla y teclado más cercanos a una computadora de sobremesa. Dentro
de este grupo se encuentran los PDA, muy populares a finales de los años
Página | 38
90 y que permitían al usuario disponer de un organizador mucho más
completo que los ofrecidos por los teléfonos móviles del momento, e incluso
en ocasiones la visualización de documentos o acceso a Internet. Las
computadoras portátiles o laptop también se encuentran en esta
clasificación. Las calculadoras gráficas pueden ser igualmente incluidas en
este grupo de dispositivos de computación.
c) Reproductor multimedia.- Es aquel dispositivo móvil que ha sido
específicamente diseñado para proporcionar al usuario la reproducción de
uno o varios formatos de datos digitales, ya sea audio, vídeo o imágenes.
Dentro de estos dispositivos se encuentran reproductores de MP3, los DVD
portátiles, los eBooks, y en los últimos años los reproductores multimedia
de la popular familia iPod de Apple, que ofrecen tanto audio y como vídeo.
Estos dispositivos son con frecuencia los de más reducido tamaño y, junto a
los teléfonos móviles y smartphones, los más extendidos.
d) Grabador multimedia.- Dentro de los dispositivos móviles, un grabador
multimedia es aquel dispositivo que posibilita la grabación de datos en un
determinado formato digital, principalmente de audio y vídeo. En esta
categoría se hallan las cámaras fotográficas digitales o las cámaras de
vídeo digital.
e) Consola portátil.- Una consola portátil es un dispositivo móvil cuya única
función es la de proporcionar al usuario una plataforma de juego. Las
consolas portátiles fueron, junto a los teléfonos, los primeros dispositivos
móviles en convertirse en un producto de masas. Hoy en día representan
un importantísimo volumen de ventas dada su gran aceptación en la
sociedad y son objeto de auténticas guerras comerciales entre las
principales compañías del sector. Algunos ejemplos de esta categoría son
la Nintendo DS de Nintendo, o la PSP de Sony.
Página | 39
Figura 4.5 Clasificación de los dispositivos móviles
Dado el variado número de niveles de funcionalidad asociado con dispositivos
móviles, era necesario hacer una clasificación de los mismos, por ello en el 2005,
T38 y DuPont Global Mobility Innovation Team propusieron los siguientes
estándares para la definición de dispositivos móviles.
Dispositivo Móvil de Datos Limitados (Limited Data Mobile Device):
teléfonos móviles clásicos. Se caracterizan por tener un pantalla pequeña
de tipo texto. Ofrecen servicios de datos generalmente limitados a SMS y
acceso WAP.
Página | 40
Dispositivo Móvil de Datos Básicos (Basic Data Mobile Device): se
caracterizan por tener una pantalla de mediano tamaño, menú o
navegación basada en iconos, y ofrecer acceso a emails, lista de
direcciones, SMS, y, en algunos casos, un navegador web básico. Un típico
ejemplo de este tipo de dispositivos son los teléfonos inteligentes
(“smartphones”).
Dispositivo Móvil de Datos Mejorados (Enhanced Data Mobile Device): se
caracterizan por tener pantallas de medianas a grandes (por encima de los
240 x 120 pixels), navegación de tipo stylus, y que ofrecen las mismas
características que el "Dispositivo Móvil de Datos Básicos" (Basic Data
Mobile Devices) más aplicaciones nativas como aplicaciones de Microsoft
Office Mobile (Word, Excel, PowerPoint) y aplicaciones corporativas
usuales, en versión móvil, como Sap, portales intranet, etc. Este tipo de
dispositivos incluyen los S.O. como Windows Mobile
4.4 Teléfono móvil
Un teléfono móvil es un teléfono portátil, sin hilos, conectado a una red celular.
Este dispositivo permite a los usuarios la conversación telefónica en tiempo real y
en ambos sentidos de transmisión en cualquier lugar cubierto por la red.
Su principal característica es su portabilidad, ya que la realización de llamadas no
es dependiente de ningún terminal fijo y no requiere ningún tipo de cableado para
llevar a cabo la conexión a la red telefónica. Aunque su principal función es la
comunicación de voz, como el teléfono convencional, su rápido desarrollo ha
incorporado funciones adicionales como mensajería instantánea (sms), agenda,
juegos, cámara fotográfica, agenda, acceso a Internet, reproducción de video e
incluso GPS y reproductor mp3.
La evolución del teléfono móvil ha permitido disminuir su tamaño y peso, desde el
Página | 41
Motorola DynaTAC, el primer teléfono móvil en 1983 que pesaba 780 gramos, a
los actuales más compactos y con mayores prestaciones de servicio. Además a lo
largo de estos años se ha llevado a cabo el desarrollo de baterías más pequeñas y
de mayor duración, pantallas más nítidas y de colores, la incorporación de
software más amigable. Inicialmente los teléfonos móviles sólo permitían realizar
llamadas de voz y enviar mensajes de texto. Conforme la tecnología fue
avanzando se incluyeron nuevas aplicaciones como juegos, alarma, calculadora y
acceso WAP (acceso a Internet mediante páginas web especialmente diseñadas
para móviles).
4.5 PDA (Personal Digital Assistant)
Las PDA son agendas personales electrónicas que tienen capacidad para
almacenar datos ya que poseen mayor memoria que los teléfonos móviles.
También disponen de una pantalla más grande (visualización mejorada) y tienen
una mayor capacidad de proceso. Los PDA se pueden considerar como una
computadora de mano originalmente diseñada como agenda electrónica con un
sistema de reconocimiento de escritura. Actualmente estos dispositivos, pueden
realizar muchas de las funciones de una computadora de escritorio pero con la
ventaja de ser portátil. Inicialmente los PDAs incluían aplicaciones estrictamente
relacionadas con su función como agenda electrónica, es decir, se reducían a
calendario, lista de contactos, block de notas y recordatorios. Con el paso de
tiempo han ido evolucionando hasta los dispositivos actuales que ofertan un
rango mucho más extendido de aplicaciones, como juegos, acceso al correo
electrónico o la posibilidad de ver películas, crear documentos, navegar por
Internet o reproducir archivos de audio.
Página | 42
Las características del PDA moderno son pantalla sensible al tacto, conexión a
una computadora para sincronización, ranura para tarjeta de memoria, y al menos
Infrarrojo, Bluetooth o WiFi.
Existe una gran variedad de PDA’s en el mercado, debido al éxito que están
teniendo en los últimos años. La aparición de Microsoft Windows CE (2000) y
Windows Mobile (2003) en el sector los dotó de mayores capacidades multimedia
y conectividad. Las PDA’s de hoy en día traen multitud de comunicaciones
inalámbricas (Bluetooth, WiFi, IrDA, GPS).
4.6 “Smartphone” o teléfonos inteligentes
Un “Smartphone” (teléfono inteligente en español) es un dispositivo electrónico
que funciona como un teléfono móvil con características similares a las de un
computador personal. Es un dispositivo intermedio entre un teléfono móvil clásico
y una PDA, ya que permite hacer llamadas y enviar mensajes de texto como un
móvil convencional pero además incluye características cercanas a las de una
computadora personal. Una característica importante de casi todos los teléfonos
inteligentes es que permiten la instalación de programas para incrementar el
procesamiento de datos y la conectividad. Estas aplicaciones pueden ser
desarrolladas por el fabricante del dispositivo, por el operador o por un tercero.
Los teléfonos inteligentes se distinguen por muchas características, entre las que
destacan las pantallas táctiles, un sistema operativo así como la conectividad a
Internet y el acceso al correo electrónico. Otras aplicaciones que pueden encontrar
son las cámaras integradas, la administración de contactos, el software multimedia
para reproducción de música y visualización de fotos y video-clips y algunos
programas de navegación así como, ocasionalmente, la habilidad de leer
documentos de negocios en variedad de formatos como PDF y Microsoft Office.
Una característica común a la mayoría de “smartphones” es una lista de contactos
capaz de almacenar tantos contactos como la memoria libre permita, en contraste
Página | 43
con los teléfonos clásicos que tienen un límite para el número máximo de
contactos que pueden ser almacenados. Casi todos los teléfonos inteligentes
también permiten al usuario instalar programas adicionales.
4.7 Sistemas operativos para dispositivos móviles
Los dispositivos móviles necesitan de un sistema operativo que se encargue de
controlar todos los recursos con que cuenta. Los smartphones más actuales tienen
un sin número de cualidades que pueden ser usadas cuando se desee por eso es
importante contar con un sistema operativo que lleve el control del dispositivo.
“Un sistema operativo móvil o SO móvil es un sistema operativo que controla un
dispositivo móvil al igual que los PCs utilizan Windows o Linux entre otros. Sin
embargo, los sistemas operativos móviles son mucho más simples y están más
orientados a la conectividad inalámbrica, los formatos multimedia para móviles y
las diferentes maneras de introducir información en ellos.”[5]
Algunos de los sistemas operativos más usados se enumeran a continuación:
Android: es un sistema operativo basado en Linux, diseñado
principalmente para móviles con pantalla táctil como teléfonos inteligentes o
tabletas inicialmente desarrollados por Android, Inc., que Google respaldó
económicamente y más tarde compró en 2005. Android fue presentado en
2007 junto la fundación del Open Handset Alliance: un consorcio de
compañías de hardware, software y telecomunicaciones para avanzar en
los estándares abiertos de los dispositivos móviles. El primer móvil con el
sistema operativo Android se vendió en octubre de 2008.
IOS: es un sistema operativo móvil de la empresa Apple Inc. Originalmente
desarrollado para el iPhone (iPhone OS), siendo después usado en
Página | 44
dispositivos como el iPod Touch, iPad y el Apple TV. Apple, Inc. no permite
la instalación de iOS en hardware de terceros. La interfaz de usuario de iOS
está basada en el concepto de manipulación directa, usando gestos
multitáctiles. Los elementos de control consisten de deslizadores,
interruptores y botones. La respuesta a las órdenes del usuario es
inmediata y provee de una interfaz fluida. La interacción con el sistema
operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen
definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan
acelerometros internos para hacer que algunas aplicaciones respondan a
sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en
tres dimensiones (un resultado común es cambiar de modo vertical al
apaisado u horizontal). iOS se deriva de Mac OS X, que a su vez está
basado en Darwin BSD, y por lo tanto es un sistema operativo Unix.
Windows Phone: es un sistema operativo móvil desarrollado por Microsoft,
como sucesor de la plataforma Windows Mobile. A diferencia de su
predecesor, está enfocado en el mercado de consumo generalista en lugar
del mercado empresarial por lo que carece de muchas funcionalidades que
proporcionaba la versión anterior. Microsoft ha decidido no hacer
compatible Windows Phone con Windows Mobile por lo que las
aplicaciones existentes no funcionan en Windows Phone haciendo
necesario desarrollar nuevas aplicaciones. Con Windows Phone, Microsoft
ofrece una nueva interfaz de usuario que integra varios servicios en el
sistema operativo. Microsoft planeaba un estricto control del hardware que
implementaría el sistema operativo, para evitar la fragmentación con la
evolución del sistema, pero han reducido los requisitos de hardware de tal
forma que puede que eso no sea posible.
Página | 45
BlackBerry OS: es un sistema operativo móvil desarrollado por BlackBerry
para sus dispositivos BlackBerry. El sistema permite multitarea y tiene
soporte para diferentes métodos de entrada adoptados por RIM para su uso
en computadoras de mano, particularmente la trackwheel, trackball,
touchpad y pantallas táctiles. Su desarrollo se remonta la aparición de los
primeros handheld en 1999. Estos dispositivos permiten el acceso a correo
electrónico, navegación web y sincronización con programas como
Microsoft Exchange o Lotus Notes aparte de poder hacer las funciones
usuales de un teléfono móvil.
Figura 4.6 Tendencia del uso de los sistemas operativos móviles
En la gráfica 4.6 se muestran las tendencias actuales del uso de los sistemas
operativos móviles para 15 países. En donde se puede observar que Android
Página | 46
ocupa el primer lugar en los países: Alemania, España, Brasil, Argentina, Perú,
México, Rusia, Corea del Sur y China. IOS ocupa el primer lugar en los países:
Estados Unidos, Inglaterra, Francia, Australia y Japón, y Nokia ocupa el primer
lugar en India. También se puede observar que en Latinoamérica el sistema
operativo más utilizado es Android.
4.8 Diseño de interfaces.
Un diseño cuidadoso de la interfaz de usuario es parte fundamental del proceso de
diseño general del software. Si un sistema de software debe alcanzar su potencial
máximo, es fundamental que su interfaz de usuario sea diseñada para ajustarse a
las habilidades, experiencia y expectativas de sus usuarios previstos. [3]
La interfaz de usuario es uno de los componentes más importantes de cualquier
sistema computacional, pues funciona como el vínculo entre el humano y la
máquina. La interfaz de usuario es un conjunto de protocolos y técnicas para el
intercambio de información entre una aplicación computacional y el usuario. La IU
es responsable de solicitar comandos al usuario, y de desplegar los resultados de
la aplicación de una manera comprensible. [3]
El diseño de interfaces para dispositivos móviles suele ser difícil debido a las
siguientes causas:
1) El gran número y variedad de dispositivos móviles
2) La amplia gama de navegadores que utilizan
3) Los límites de entrada y salida
4) La falta de directrices y recursos en materia de diseño
5) La falta de normas.
Página | 47
Los dispositivos móviles se han convertido en un elemento clave del mundo
actual, y se estima que en los próximos tres años habrá más de mil millones en
uso. El principal atractivo de estos aparatos es la movilidad: el acceso a la
información a cualquier hora y en cualquier lugar.
Estos dispositivos cuentan con su propio protocolo, el Protocolo de Acceso
Inalámbrico (WAP, Wireless Application Protocol) WAP es un protocolo de
comunicaciones y un ambiente de aplicaciones que proporciona a los dispositivos
móviles recursos de información, servicios avanzados de telefonía y acceso a
Internet.
Si bien los dispositivos inalámbricos cuentan con el atractivo de la movilidad,
también presentan algunas desventajas con respecto a las computadoras
tradicionales. Estos aparatos tienen un ancho de banda muy pequeño; su
capacidad de almacenamiento es muy limitada; generalmente tienen pantallas
pequeñas donde suelo pueden desplegarse pocas líneas de texto; y algunos
utilizan reconocimiento de voz, no el teclado tradicional, como mecanismo de
entrada/salida. Debido a estas diferencias, las interfaces diseñadas para
ejecutarse en computadoras tradicionales no funcionan correctamente en estos
dispositivos.
Para desarrollar interfaces que funcionaran correctamente en todos los
dispositivos, al principio se creaban diferentes versiones de código para cada tipo
de dispositivo. A este enfoque se le considero de fuerza bruta. Esto motivo el
desarrollo de una metodología que permitiera la generación de interfaces sin
tomar en cuenta las características físicas de los dispositivos ni la modalidad de
interacción. Como consecuencia, posteriormente surgió el concepto de interfaces
genéricas: interfaces que varían su aspecto en diferentes dispositivos
conservando su funcionalidad.
Página | 48
Para que las interfaces diseñadas para ejecutarse en computadoras
convencionales funcionen correctamente en dispositivos móviles se han propuesto
varias soluciones. Hasta el momento las propuestas más sobresalientes han sido:
1. Métodos que resumen el contenido de las páginas WEB para que se
desplieguen sin problema en pantallas pequeñas.
2. Herramientas de conversión, las cuales transforman una interfaz genérica
en código escrito en cada uno de los lenguajes de los diferentes
dispositivos.
3. Aplicaciones que manejan eficientemente los recursos (CPU, memoria y
ancho de banda de los dispositivos computacionales móviles)
4. Controles universales
En el siguiente capítulo se describe el diseño de las interfaces de la aplicación
móvil, así como también, los casos de uso y el diagrama entidad relación de esta.
Página | 49
CAPÍTULO 5
DESARROLLO DE INTERFACES DE LA APLICACIÓN MÓVIL
5.1 Diagramas de casos de uso.
En la figura 5.1 se muestra el diagrama de casos de uso de la aplicación integral,
donde se pueden observar tres tipos de aplicaciones:
1) Aplicación WEB.- Esta aplicación se encarga del mantenimiento de
catálogos necesarios como embarcaciones, campos pesqueros,
localidades, permisionarios, especies, entre otros. Además a través de la
aplicación WEB es posible también hacer la captura de avisos de arribo.
2) Aplicación Móvil.- A través de esta aplicación es posible hacer la captura de
los avisos de arribo directamente en los sitos de desembarque.
3) DSS.- A través de esta aplicación para la toma de decisiones es posible
obtener información estadística de las capturas de especies.
Figura 5.1 Diagrama casos de uso de la aplicación integral
Página | 50
En la figura 5.2 se muestra el diagrama de casos de uso de la aplicación móvil,
donde se pueden observar dos actores principales:
1) El permisionario.- Es la persona encargada de elaborar los avisos de arribo
de sus embarcaciones.
2) El encargado.- Es el encargado de la oficina de pesca encargado de
recopilar los avisos de arribo.
Los casos de uso de la aplicación móvil son:
1) Capturar aviso de arribo.- Este caso de uso permite la captura de los datos
contenido en el aviso de arribo. Esta acción la puede llevar a cabo el
permisionario directamente y/o el encargado de la oficina de pesca. El aviso
de arribo se almacena en el dispositivo, para ser enviado posteriormente.
2) Enviar aviso de arribo.- Este caso de uso permite que los avisos de arribo
almacenados en el dispositivo se envíen al servidor donde se almacena la
información. Esta operación solo puede hacerse cuando existe conexión.
3) Consultar embarcaciones.- Este caso de uso permite que el permisionario
consulte la información del permiso de pesca. Si el usuario es el encargado
puede consultar la información de todos los permisionarios.
4) Consultar especies.- Este caso de uso permite que se pueda consultar
información detallada de las especies que se encuentran en los litorales de
Baja California Sur.
5) Consultar localidades.- Este caso de uso permite consultar información
detallada de los campos pesqueros del estado de Baja California Sur.
Página | 51
Figura 5.2 Diagrama casos de uso de la aplicación móvil
Página | 52
5.2 Diagrama entidad – relación.
En la figura 5.3 se muestra el diagrama entidad – relación que utiliza la aplicación móvil de pesca ribereña.
Embarcación
PK id_embarcación
RNP
num_embarcación
nombre_unidad_economica
tipo_empresa
actividad_pesquera
Especie
PK id_especie
pesqueria
familia
Localidad
PK id_localidad
nombre_localidadAviso_Arribo
PK,FK4 id_Campo_Pesquero
PK,FK1 id_especie
PK,FK3 id_embarcación
PK fecha_aviso
FK2 id_ubicación
peso
precio
esfuerzo
total_embarcaciones
hora_llegada
hora_arribo
dias_efectivos
periodo_dias
Permiso-Especie
PK id_permiso
fecha_permiso
vigencia_permiso
FK1 id_especie
FK2 id_embarcación
Zona
PK id_zona
descripción
Campo_Pesquero
PK id_Campo_Pesquero
nombre_campo
area_manejo
SIMAVI
FK1 id_zona
Figura 5.3 Diagrama Entidad – Relación de la aplicación móvil
Página | 53
5.3 Diseño de interfaces.
En la figura 5.4 se muestra la pantalla de inicio de la aplicación móvil, donde es necesario introducir el nombre de usario y su contraseña para ingresar a la aplicación.
Figura 5.4 Pantalla de inicio de la aplicación móvil
Página | 54
En la figura 5.5 se muestran las opciones que presenta la aplicación móvil: captura de avisos de arribo, consulta de embarcaciones, consulta de especies y consultas de ubicaciones.
Figura 5.5 Pantalla de opciones de la aplicación móvil
Página | 55
En la figura 5.6 se muestra la pantalla que permite la captura de los avisos de arribo de cada permisionario que llega al sitio de desembarque.
Figura 5.6 Pantalla de captura de avisos de arribo de la aplicación móvil
Página | 56
En la figura 5.7 se muestra la pantalla que permite mostrar información de las especies capturadas.
Figura 5.7 Pantalla de la opción Especies de la aplicación móvil
Página | 57
En la figura 5.8 se muestra la pantalla que permite mostrar información de las embarcaciones.
Figura 5.8 Pantalla de la opción Embarcaciones de la aplicación móvil
Página | 58
En la figura 5.9 se muestra la pantalla que permite mostrar información de los campos pesqueros.
Figura 5.9 Pantalla de la opción Campo pesquero de la aplicación móvil
Página | 59
CAPÍTULO 6
RESULTADOS Y CONCLUSIONES
Al integrar los principios, de evaluación durante el proceso de diseño de
interfaces, permite la creación de interfaces que satisfacen las expectativas de los
usuarios, el cual es el punto de vista más importante para garantizar la aceptación
de un sistema.
Entre las características o principios que ayudan a construir una interfaz sencilla
de utilizar, sobresale la utilización de iconos o imágenes como ayuda para
simplificar al usuario en la operación del sistema.
La prototipación es un proceso frecuente durante el diseño de las interfaces, es
decir usando el ciclo de vida por prototipos ya que través diferentes niveles
evolutivos de prototipos se pueden lograr simulaciones del sistema que se está
construyendo con los detalles que serán aceptado o adecuados a las
necesidades del usuario.
Página | 60
BIBLIOGRAFIA
[1] Fundamentos, desarrollo web con PHP6. Apache y MySql/ Timothy
Boronczyk,Elizabeth Naramore, Jason Gerner---Anaya.
[2] Ingeniería de software, manuales users. code/cantone dante—mp ediciones
[3] Análisis y diseño de sistemas. sexta edición/Kenneth E. Kendall, Julie E.
Kendall--Pearson Educación, México, 2005
[4] Dispositivos móviles, Arturo Baz Alonso, Irene Ferreira Artime, María Álvarez
Rodríguez, Rosana García Baniello. Universidad de Oviedo.
[5] El sector pesquero en Baja California Sur: un enfoque de insumo-producto.
Rocío Areli Cortés Ortiz, Germán Ponce Díaz, Manuel Ángeles Villa. Región
y Sociedad Vol. XVIII 2006. ISSN 1870-3925.
[6] Manejo eficiente de la información sobre la producción pesquera a partir de
los “avisos de arribo”: Baja California Sur, casos de estudio. Hernández-
Herrera, Agustín y Ramírez-Rodríguez, Mauricio. Foro Científico de Pesca
Ribereña 2002.