Académique Documents
Professionnel Documents
Culture Documents
MEMORIA
Que para obtener el Ttulo de:
Ingeniero en Software
P R E S E N T A:
Daniel Alonso Flores Novelo
Matrcula: 201300063
Generacin: 2013 - 2016
Asesor acadmico: Ing. Manuel Alejandro Flores Barrera
Empresa: Universidad Politcnica de Quintana Roo
Asesor empresarial: Ing. Carlos Alberto Ramrez Velzquez
Diciembre de 2016
NDICE
INTRODUCCIN ............................................................................................ 11
VI.
CONCLUSIONES. ....................................................................................... 40
DESCRIPCIN DE LA EMPRESA
La Universidad Politcnica de Quintana Roo, es una institucin pblica que
imparte educacin superior basada en competencias para preparar a
profesionales con una slida formacin cientfica y un liderazgo tecnolgico
basado en valores que coadyuve al progreso econmico y social del estado de
Quintana Roo respetando el medio ambiente y la cultura.
Las carreras que ofrece la Universidad Politcnica de Quintana Roo son:
Ingeniera en Biotecnologa.
Ingeniera en Software.
Ingeniera Financiera.
Licenciatura en Administracin y Gestin de Pymes.
Licenciatura en Terapia Fsica.
Polticas de Cultura.
Polticas de Inclusin Social.
Polticas de Desarrollo Acadmico.
Polticas de Privacidad.
Objetivos
El objetivo del Programa Educativo de Ingeniera de Software es:
Aplicar mtodos y tcnicas para resolver los problemas de construccin y de
proyectos informticos, especficamente de desarrollo de software, utilizando
normas, metodologas, procedimientos y herramientas modernas y
estandarizadas.
Estructura organizacional
I.
INTRODUCCIN
12
II.
Objetivos generales
Objetivos especficos
Disear la vista y las opciones del men desplegable y del men de tabs
mediante XML para despus, poder desarrollar la funcionalidad necesaria e
implementarla en la aplicacin.
Justificacin:
Actualmente, el restaurante Hong Kong realiza sus ventas mediante 2 vas,
fsicamente a travs de las instalaciones y va remota mediante llamadas
telefnicas. La problemtica de sta situacin es que muchas empresas estn
optando por las aplicaciones mviles para facilitar el proceso de pedido al usuario,
14
Windows:
Impacto.
A corto plazo, se espera que el desarrollo de la aplicacin permita al restaurante
ganar clientela as como popularidad, ya que con la aplicacin se est abriendo
nuevos canales de comunicacin con otro tipo de clientes y se hace ms prctico
la solicitud comida a domicilio.
15
16
III.
MARCO TERICO
Programacin
Se conoce como programacin a la implementacin de un algoritmo en un
determinado lenguaje de programacin, conformando un programa. Mientras que
un algoritmo se ejecuta en una mquina abstracta que no tiene limitaciones de
memoria o tiempo, un programa se ejecuta en una mquina real, que s tiene esas
limitaciones. El lenguaje de programacin puede ser de alto nivel, medio nivel o
bajo nivel, en funcin del grado de abstraccin.
Existe una tendencia a identificar el proceso de creacin de un programa
informtico con la programacin, que es cierta cuando se trata de programas
pequeos para uso personal, y que dista de la realidad cuando se trata de grandes
proyectos.
El proceso de creacin de software desde el punto de vista de la Ingeniera tiene
los siguientes pasos:
otras aplicaciones como incorporar una funcionalidad en concreto sin tener que
proporcionar informacin acerca de cmo se realiza el proceso internamente.
Prototipo
Los prototipos son una representacin limitada de un producto, permite a las
partes probarlo en situaciones reales o explorar su uso, creando as un proceso de
diseo de iteracin que genera calidad.
Un prototipo puede ser cualquier cosa, desde un trozo de papel con sencillos
dibujos a un complejo software.
Son tiles para comunicar, discutir y definir ideas entre los diseadores y las
partes responsables. Los prototipos apoyan la evaluacin de productos, clarifican
requisitos de usuario y definen alternativas.
Existen prototipos de baja fidelidad, que utilizan materiales distintos al del producto
final, son baratos, simples y fciles de producir. Son particularmente tiles en las
fases iniciales del desarrollo, durante el diseo conceptual.
Tambin, los prototipos de alta fidelidad son aquellos que se parecen al producto
final y utiliza sus mismos materiales.
Modelo de desarrollo evolutivo
Los evolutivos son modelos iterativos, permiten desarrollar versiones cada vez
ms completas y complejas, hasta llegar al objetivo final deseado; incluso
evolucionar ms all, durante la fase de operacin. Los modelos Iterativo
Incremental y Espiral (entre otros) son dos de los ms conocidos y utilizados del
tipo evolutivo.
La idea detrs de este modelo es el desarrollo de una implantacin del sistema
inicial, exponerla a los comentarios del usuario, refinarla en N versiones hasta que
se desarrolle el sistema adecuado. Una ventaja de este modelo es que se obtiene
una rpida realimentacin del usuario, ya que las actividades de especificacin,
desarrollo y pruebas se ejecutan en cada iteracin.
Existen dos tipos de desarrollo evolutivo:
19
entre ellos para realizar tareas. Es en este modo de ver un programa donde este
paradigma difiere del paradigma imperativo o estructurado, en los que los datos y
los mtodos estn separados y sin relacin. El paradigma OO surge para
solventar los problemas que planteaban otros paradigmas, como el imperativo,
con el objeto de elaborar programas y mdulos ms fciles de escribir, mantener y
reutilizar. Entre los lenguajes que soportan el paradigma OO estn C++, Java y
C#.
Desarrollo mvil
El desarrollo de aplicaciones mviles es el proceso en el que un software para
realizar determinada tarea es desarrollado para dispositivos mviles. Estas
aplicaciones pueden venir pre-instaladas en los telfonos desde su manufactura,
ser descargadas por los usuarios desde las distintas plataformas mviles (Android,
iOS, Windows Phone), o ser accedidas a travs de la web desde un navegador.
Una aplicacin mvil es un programa de computadoras diseado para utilizarse en
telfonos inteligentes, tablets y otros dispositivos mviles. Las aplicaciones
mviles usualmente estn disponibles a travs de plataformas de distribucin de
aplicaciones, las cules empezaron a aparecer en el 2008 y son tpicamente
proporcionadas por el dueo del sistema operativo, tal como la App Store de
Apple, Google Play, Tienda de Windows Phone y el App World de Black Berry.
Algunas aplicaciones son gratuitas mientras otras deben ser compradas.
Arquitectura Cliente Servidor.
Consiste en un cliente que realiza peticiones a otro programa (el servidor) que le
da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan
sobre una sola computadora es ms ventajosa en un sistema operativo
multiusuario distribuido a travs de una red de computadoras. La interaccin
cliente-servidor es el soporte de la mayor parte de la comunicacin por redes.
Ayuda a comprender las bases sobre las que estn construidos los algoritmos
distribuidos.
El servidor debe negociar con su Sistema Operativo un puerto (casi siempre bien
conocido) donde esperar las solicitudes. El servidor espera pasivamente las
peticiones en un puerto bien conocido que ha sido reservado para el servicio que
ofrece. El cliente tambin solicita, a su sistema operativo, un puerto no usado
desde el cual enviar su solicitud y esperar respuesta. Un cliente ubica un puerto
arbitrario, no utilizado y no reservado, para su comunicacin.
23
En una interaccin se necesita reservar solo uno de los dos puertos, asignados un
identificador nico de puerto para cada servicio, se facilita la construccin de
clientes y servidores.
Los servidores por lo general son ms difciles de construir que los clientes pues
aunque se implantan como programas de aplicacin deben manejar peticiones
concurrentes, as como reforzar todos los procedimientos de acceso y proteccin
del sistema computacional en el que corren, y protegerse contra todos los errores
posibles. El cliente y el servidor pueden interactuar en la misma mquina.
Framework.
Un Framework ofrece componentes como una librera, pero adems provee de
plantillas o esqueletos que definen el funcionamiento de las aplicaciones. Para una
aplicacin basada en documentos, la plantilla se encarga de cada uno de los
documentos abiertos como ttulos de las ventanas, cambios en el contenido de
cada una o notificar si el documento que se va a cerrar tiene cambios sin guardar.
Estas plantillas que ofrece el Framework se pueden adaptar a diferentes
necesidades. Y, en el caso de que sus capacidades bsicas no basten, se puede
crear una subclase (de la clase que provee la plantilla) y agregar las
modificaciones deseadas. Dichas plantillas ahorran trabajo a la hora de escribir
una aplicacin. Adems de que hacen relativamente fcil entender otras
aplicaciones hechas con el mismo Framework, ya que comparten un esqueleto
similar.
Una vez definida la interfaz grfica, queda por decidir cmo se manejara la
informacin del usuario y el posterior procesamiento y presentacin que la
aplicacin har con esa informacin.
24
IV.
Metodologa.
Debido a que el Grupo Hong Kong nicamente tena un conjunto de objetivos
generales para la aplicacin mvil y no tena bien definidos los requerimientos
detallados para las funciones de la misma, ni su estructuracin se opt por
escoger una metodologa de desarrollo de software de modelo de proceso
evolutivo basada en prototipos. Esto es debido a que los modelos evolutivos se
caracterizan por la manera en la que permiten el desarrollo de productos cada vez
ms completos. Lo anterior nos ayudar a mejorar la comprensin de lo que se
tena que elaborar.
Como bien lo indica el paradigma gil de desarrollo de software todo el desarrollo
comenz con una serie de definicin de requerimientos detectando las reas
imprescindibles y las que requieren una definicin detallada, para esto se realiz
un anlisis de las dems aplicaciones que hay en el mercado para recabar ciertas
funcionalidades e ir definiendo las de nuestra aplicacin.
Por medio del prototipado se hicieron entregas en las cuales recibimos una
retroalimentacin para mejorar los requerimientos.
Anlisis
El primer mdulo trabajado fue el Login con Facebook, se analizaron qu datos del
usuario era pertinente guardar, y cmo obtenerlos de Facebook, se tuvo que
25
Desarrollo.
Se inici con el desarrollo de la funcionalidad del registro y login con Facebook, se
trabaj de forma separada al proyecto inicial, para despus de terminado y
probado, poder adaptarlo al proyecto de forma correcta. Para poder desarrollar
ste mdulo fue necesario documentarse sobre el API de Facebook conforme al
manejo y la privacidad de los usuarios. El objetivo inicial era poder conectarse con
Facebook y una vez estableciendo la conexin, lo siguiente fue manejar las
peticiones, la respuesta y la informacin obtenida y el manejo correcto de errores
y excepciones.
Se procedi al desarrollo de la vista principal de la aplicacin, diseada en 4 TABS
y un men lateral desplegable. Se procedi a programar la funcionalidad y los
enlaces, los colores, conos y textos apropiados. Al concluir, el siguiente paso fue
adaptarlo al proyecto, siendo el siguiente punto de la aplicacin despus del login.
El siguiente desarrollo realizado fue la seccin de informacin relevante sobre el
uso de la aplicacin denominada acerca de. La informacin de sta se dividi en
1 men de una ventana modal con 3 opciones y cada una llevando al texto
correspondiente.
La siguiente actividad realizada, consista en enviar el pedido del usuario al
servidor situado en las instalaciones del restaurante, pero esta actividad estaba
compuesta de 4 actividades para poder llevarse a cabo, la estructuracin del
pedido, la escritura en un archivo de texto, la vista previa detallada al cliente y el
envo. En la estructuracin del pedido, se fue formateando en una cadena de
texto la informacin del pedido y del cliente para poder proceder a escribirla en el
archivo de texto, creado en la memoria temporal en caso de no existir, de lo
contrario toma el existente y lo sobrescribe. Una vez obtenido el pedido, se
presenta el cliente en una forma visualmente cmoda en una ventana modal,
mostrando los datos necesarios para que el cliente pueda decidir si continuar y
enviar su pedido o cambiarlo. El ltimo paso era enviarlo al servidor por medio del
protocolo FTP, configurando la direccin, las credenciales y la conexin se pudo
lograr.
Se aadi un paso ms al proceso de pedido, que era la confirmacin de
aceptacin de trminos y condiciones mediante un checkbox, el pedido no poda
enviarse a menos que el cliente marcara el checkbox para aceptar los trminos.
27
de texto no eran los datos del pedido todava, pero, se comprob en mltiples
veces con diferentes textos. Al incluir el prototipo al proyecto, lo que segua era
escribir los datos del pedido en el archivo de texto, se termin y se comprob el
envo de nuevo. Con la validacin de aceptar trminos y condiciones, se tuvo un
problema con la vista que generaba un error que detena la aplicacin, se pudo
corregir y la funcionalidad qued completa y correcta.
Para la seccin de ayuda no fue necesario hacer pruebas, puesto que slo es el
mostrado de la informacin.
La barra de ayuda consta de 3 partes, el nombre de la seccin actual, el nmero
de artculos seleccionados y el total de la compra hasta el momento, como se
mencion anteriormente. Se prob primero que la seccin mostrada sea la
correcta en cada punto y segundo, que tanto el nmero de artculos como el total
sean correctos y se actualicen en el momento.
La ltima actividad realizada fue la funcin para editar la cantidad de un producto
seleccionado en el carrito. Las pruebas realizadas para esta actividad fueron,
primero, verificar que se est editando el artculo correcto, y segundo, que los
valores nuevos sean correctos y se vean reflejados en la barra de ayuda.
29
V.
30
Men
lateral
desplegable
Funcionalidad
de
vistas
principales de Fragments
en el inicio de la aplicacin
31
Seccin
compuesta
Acerca
de
secciones:
privacidad,
de,
3
sub
Aviso
de
Trminos
condiciones y Contacto
32
33
Vista de la informacin de
contacto
34
Toolbar de informacin
Ilustracin 13 Toolbar
35
Nombre
de
la
seccin
actual.
Cantidad de artculos
seleccionados en el carrito.
36
Total de compra.
Vista de numberPicker
para editar cantidad del
artculo seleccionado.
37
los
costos
por
que
del
envi
la
orden.
38
39
VI.
CONCLUSIONES.
41
FUENTES DE CONSULTA
42
ANEXOS
43
GLOSARIO
Activity: una actividad un componente de la aplicacin que provee al usuario de
una interfaz grfica para interactuar con ella y realizar una accin especfica, en
comparacin con una aplicacin de escritorio, sera como una ventana.
Android: es un sistema operativo inicialmente pensado para telfonos mviles, al
igual que iOS, Symbian y Blackberry OS. Lo que lo hace diferente es que est
basado en Linux, un ncleo de sistema operativo libre, gratuito y multiplataforma.
API key: es un cdigo que utilizan las aplicaciones de interfaz programable
API: por sus siglas en ingls application programable interface.
App: tipo de programa informtico diseado como herramienta para permitir a un
usuario realizar diversos tipos de trabajos, del ingls aplication.
BlackBerry: es una marca de telfonos inteligentes desarrollada por la compaa
canadiense BlackBerry, que integra el servicio de correo electrnico mvil desde
1999; aunque incluye las aplicaciones tpicas de un telfono inteligente: libreta de
direcciones, agenda, calendario, lista de tareas, bloc de notas y navegador.
C#: es un lenguaje de programacin orientado a objetos desarrollado y
estandarizado por Microsoft como parte de su plataforma .NET, que despus fue
aprobado como un estndar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270).
C++: es un lenguaje de programacin orientado a objetos que toma la base del
lenguaje C y le agrega la capacidad de abstraer tipos como en Smalltalk. La
intencin de su creacin fue el extender al exitoso lenguaje de programacin C
con mecanismos que permitieran la manipulacin de objetos.
Conexin: Punto exacto en el que se realiza un enlace entre dispositivos o
sistemas.
Credenciales: Datos sensibles del usuario utilizados para identificarse en la
aplicacin.
Enlaces: Expresin que conecta una informacin con otra.
Facebook: Facebook es un sitio web de redes sociales creado por Mark
Zuckerberg y fundado junto a Eduardo Saverin, Chris Hughes y Dustin Moskovitz.
44
45
.txt : Un archivo de texto llano, texto simple, texto plano, texto sencillo o texto
pelado es un archivo informtico compuesto nicamente por texto sin formato, slo
caracteres, lo que lo hace tambin legible por humanos.
47