Ingeniería de Sistemas, Universidad Cooperativa de ...
Transcript of Ingeniería de Sistemas, Universidad Cooperativa de ...
Moneda Virtual
Seminario de profundización en aplicaciones Móviles
Jhon Fredy Ladino Medina, Cristian Camilo Escobar Vela y Brayan Javier Corredor Sabogal
Ingeniería de Sistemas, Universidad Cooperativa de Colombia, Villavicencio
Ing. Gustavo Moreno, Ing. Francy Patiño, Ing. Juan Fajardo
Villavicencio
Septiembre de 2021
Resumen
El sistema económico se encuentra pasando por una crisis, esto ha hecho que se genere una
desconfianza por parte de la población, con el avance de la tecnología se han creado una gran cantidad
de alternativas para realizar transacciones virtuales, donde el dinero o moneda que conocemos pasa a un
segundo plano.
Las criptomonedas se han presentado como una nueva herramienta alterna que se puede usar en el
mercado financiero, que, mediante la plataforma en línea, se pueda utilizar como un medio de cambio
para adquirir bienes o servicios.
El proyecto sobre “Aplicaciones para dispositivos móviles”, desarrollado en el seminario de
profundización, en el cual se implementa lo visto en el seminario de profundización en aplicaciones
Móviles, como en la carrera. El crecimiento de las monedas virtuales en la actualidad ha sido significativo,
observando la acogida que han tenido en los últimos años por una gran comunidad, este proyecto está
basado en una lista de las criptomonedas más conocidas, donde permite al usuario ver el estado de
variación en el crecimiento o devaluación de la moneda a la que se quiera conocer más detalle. El proyecto
tiene como objetivo la creación de una aplicación la cual toma la información a través de una API, que es
pública, libre de uso y permite conocer el estado de las monedas virtuales, su implementación se realizó
mediante el framework React Native.
Abstract
The economic system is going through a crisis, this has generated a distrust on the part of the population,
with the advance of technology a large number of alternatives have been created to carry out virtual
transactions, where the money or currency we know goes to the background.
Cryptocurrencies have been presented as a new alternative tool that can be used in the financial market,
which through the online platform, can be used as a means of exchange to acquire goods or services.
The project on "Applications for mobile devices", developed in the deepening seminar, in which what
was seen in the seminar of deepening in Mobile applications, as in the career, is implemented. The growth
of virtual currencies in the news has been significant, observing the reception they have had in recent
years by a large community, this project is based on a list of the best known cryptocurrencies, where it
allows the user to see the state of variation in the growth or devaluation of the currency to which you
want to know more detail. The project aims to create an application which takes the information through
an API, which is public, free of use and allows to know the status of virtual currencies, its implementation
was carried out through the framework React Native.
Tabla de contenido
Resumen ....................................................................................................................................................... 2 Abstract ......................................................................................................................................................... 3
Capítulo 1 Definición del tema ...................................................................................................................... 7 1.1 Problema............................................................................................................................................. 7 1.2 Objetivos.............................................................................................................................................. 8
1.2.1 Objetivo General ......................................................................................................................... 8 1.2.2 Objetivos específicos ................................................................................................................... 8
1.3 Justificación ......................................................................................................................................... 9 1.4 Metodología ingenieril ...................................................................................................................... 10
1.4.1 Roles ........................................................................................................................................... 11 Capítulo 2. Marco de teórico ...................................................................................................................... 12
2.1 Criptomonedas ................................................................................................................................. 12 2.2 Conceptos ingenieril ......................................................................................................................... 15
Capítulo 3. Desarrollo Ingenieril ................................................................................................................. 17 3.1 Requerimientos ................................................................................................................................ 17
3.1.1 Requerimientos Funcionales ..................................................................................................... 17 3.1.2 Requerimientos no funcionales................................................................................................. 18
3.2 Modelado .......................................................................................................................................... 20 3.2.1 Diagrama de casos de uso .......................................................................................................... 20 3.2.2 Descripción de casos de uso ...................................................................................................... 20
3.3. Mockups ........................................................................................................................................... 23
Capítulo 4. Análisis y discusión.................................................................................................................... 24 Conclusiones ............................................................................................................................................... 26 Referencias .................................................................................................................................................. 27
Lista de ilustraciones
Ilustración 1. Ciclo Scrum ............................................................................................................................ 10
Ilustración 2. Diagrama casos de uso .......................................................................................................... 20
Ilustración 3. Pantalla principal ................................................................................................................... 23
Ilustración 4. Vista detalle ........................................................................................................................... 23
Ilustración 5. Lista de favoritos ................................................................................................................... 23
Ilustración 6. Vista detalle eliminar favorito ............................................................................................... 23
Lista de Tablas
Tabla 1: Requerimiento de código RF01, diseño de una interfaz amigable ................................................ 17
Tabla 2: Requerimiento de código RF02, valor de las cripto monedas ....................................................... 17
Tabla 3: Requerimiento de código RF03, lista de favoritas ......................................................................... 18
Tabla 4: Requerimiento de código RNF01, tener una cuenta en una tienda de Apps. ............................... 18
Tabla 5: Requerimiento de código RNF02, conexión a internet ................................................................. 18
Tabla 6: Requerimiento de código RNF03, conexión a la Api, que ofrece los datos ................................... 18
Tabla 7: Requerimiento de código RNF04, tener un equipo celular o Tablet ............................................. 19
Tabla 8. Caso de uso 1 visualizar las cripto monedas ................................................................................. 20
Tabla 9. Caso de uso 2 buscar moneda de interés ...................................................................................... 21
Tabla 10. Caso de uso 3 mostrar detalle de la moneda .............................................................................. 21
Tabla 11. Caso de uso 4 agregar moneda a favoritos ................................................................................. 22
Tabla 12. Caso de uso 5 eliminar moneda de favorito ................................................................................ 22
Capítulo 1 Definición del tema
1.1 Problema
La economía a nivel mundial ha sufrido diversas crisis, que han generado desconfianza por parte
del consumidor a la hora de conocer y adaptar las nuevas alternativas que ha traído la tecnología, para
renovar el sistema monetario que conocemos hoy en día. Las criptomonedas han sido una manera de
demostrar, la independencia que podría tener la economía, con el fin de ejecutar transacciones de manera
virtual y a su vez realizar un seguimiento en tiempo real del manejo que le estoy dando a dichos recursos,
sin tener la necesidad de acudir a un lugar físico. Sin embargo, en Colombia a pesar de la llegada de la
globalización, aún se desconoce el funcionamiento de los nuevos medios virtuales que han traído el
desarrollo tecnológico para la mejora de la economía de una población. (Díaz, 2018)
En el año 2008, una o varias personas, bajo el seudónimo de Satoshi Nakamoto, publicaron un
trabajo en la lista de correo de criptografía metzdowd.com que describía un sistema P2P de dinero digital.
El trabajo se llamó “Bitcoin: A Peer-to-Peer Electronic Cash System” (Nakamoto, 2008), buscando una
solución para evitar el doble gasto que genera una tercera persona dentro de las transacciones.
Todo esto se estaba pensando bajo un concepto denominado Blockchain, dando esto como
resultado a la primera criptomoneda, el Bitcoin. Lo que hace Lo que hace, es acumular los datos de
transacciones y los va registrando en un libro de contabilidad virtual que es compartido por varias
personas. (Cortes, 2008).
Las criptomonedas nacen como una alternativa para evitar a un tercero (entidad financiera)
confiable que certifique una transacción de pago, lo que se propone con este nuevo método de pago es
evitar el doble gasto que genera una tercera persona en los movimientos virtuales y que los dos actores,
tanto como el vendedor y el comprador estén completamente seguros de que el pago es cierto y valido.
1.2 Objetivos
1.2.1 Objetivo General
Diseñar y desarrollar una aplicación móvil creada a partir de Cryptocurrency Api, la cual es libre y
publica, que nos permite tener más conocimiento Criptomonedas, usando tecnologías nuevas como lo es
React Native.
1.2.2 Objetivos específicos
• Generar un acercamiento conceptual y funcional de las criptomonedas.
• Diseñar la App para móviles Android como IOS.
• Uso de la API para consumo de la información.
• Generar el backend de la API con formato JSON.
1.3 Justificación
La aplicación móvil “moneda virtual” permite que el usuario pueda observar las fluctuaciones
(cambio de estado) que tiene cada moneda en el transcurso de una hora, lo que le permite tomar
decisiones como la inversión o venta de esta moneda.
Los usuarios que se dedican a los mercados a través del cual se intercambian activos financieros
entre agentes económicos, son los principales beneficiados al tener en tiempo real el movimiento de la
moneda de su interés y en el que se definen los precios de dichos activos en los cuales están regidos por
la ley de la oferta y la demanda.
La realización del trabajo de grado tiene como fin, contextualizar a la población colombiana acerca
del nuevo medio virtual que se ha vinculado en el mercado económico, como lo han sido las
criptomonedas, generando un acercamiento a la nueva modalidad de transar, ya sea para realizar un
intercambio de productos o servicio, o para incursionar en el campo de los negocios.
1.4 Metodología ingenieril
Teniendo en cuenta la necesidad para el desarrollo de este proyecto se hace necesario la
utilización del marco de trabajo SCRUM, en el cual se pueden iniciar o atacar problemas complejos
adaptativos, a lo cual permite la entrega de productos con un máximo valor posible de productividad, este
marco de trabajo de procesos se ha utilizado desde los comienzos de los años 90, con la aplicación de este
marco de trabajo se facilita la utilización de varias técnicas y procesos.
Este marco de trabajo emplea una guía interactiva e incremental para optimizar la predictibilidad
y el control del riesgo, son tres pilares los que soportan la implementación del control de los procesos:
− Transparencia.
− Inspección
− Adaptación
Ilustración 1. Ciclo Scrum
Nota: Adaptada de https://www.programaenlinea.net/conoces-en-que-consiste-la- arquitectura-de-software-en-scrum/
El equipo Scrum: Aquí se definen como está conformado el equipo de trabajo, como son el dueño
del trabajo (Product Owner), el equipo de desarrollo (Development Team) y un Scrum Master.
Hay que resaltar que, en los equipos autoorganizados, siempre se opta por la mejor manera de
realizar el trabajo, en cuanto a quienes dirigen el proyecto siempre serán personas que están en el equipo,
cuando los equipos on multifuncionales se tienen todas las competencias para llevar a cabo el desarrollo,
sin depender de otras personas que no estén dentro del equipo.
Tamaño del equipo de Desarrollo: en cuanto al tamaño, está definido por esta guía que es lo
suficientemente pequeño para permanecer ágil y lo adecuadamente grande para cumplir con cada uno
de los artefactos que se desarrollen dentro del trabajo. Tener menos de tres personas se reduce la
interacción que se debe emplear, aunque esto resulta beneficioso para el desarrollo del proyecto. Contar
con nueve o más participantes dentro del proyecto se puede presentar demasiada complejidad ya que se
requiere de mayor coordinación. (Sutherland, 2020).
1.4.1 Roles
Product owner
CryptoMonedas, Aplicativo basado en las Monedas Virtuales.
Scrummaster
Estudiante Jhon Fredy Ladino Medina, responsable que el equipo siga las prácticas y valores
descritos en el modelo Scrum.
Team
• Cristian Camilo Escobar desarrollador encargado de velar por los objetivos del aplicativo
teniendo en cuenta las instrucciones emitidas por el ScrumMaster llevando a cabo la
recopilación de la información necesaria.
• Brayan Javier Corredor quien lleva a cabo el desarrollo del código fuente para hacer
entrega de los avances del proyecto los entregables en cada Sprint.
Capítulo 2. Marco de teórico
2.1 Criptomonedas
Block: Es la pieza fundamental de las criptomonedas y consiste en una colección de transacciones,
es decir, cada bloque almacena las transacciones hechas en un período de tiempo. Cada transacción
almacenada contiene toda la información, por ejemplo, desde dónde se envió, a dónde se envió, fecha de
la transacción y cualquier información relevante para el Blockchain. Cada transacción en un bloque es
inmutable. (Graterol, 2017)
Blockchain: La Cadena de bloques (Blockchain) lleva el registro y el orden de cada bloque. Una
cadena de bloques comienza con un bloque Génesis, que por lo general está escrito en el software que
controla la cadena de bloque. Esto es así porque cada bloque debe contener la información del bloque
que lo precede de esta forma se genera una cadena. (Graterol, 2017)
POW (Proof of Work): Consiste en un tipo de trabajo que realiza un cliente, que por lo general es
la realización de un cómputo en un ordenador, ese trabajo es verificado en el servidor. Lo común es que
estos cómputos deben ser difíciles para el cliente, pero debe ser fácil de verificar por el servidor. En Bitcoin
se usa POW para verificar transacciones y generar nuevos bloques, este proceso se conoce como minado
(mining). (Graterol, 2017)
Mining: Es proceso que se utiliza en criptomonedas para generar nuevas unidades, con cada
bloque se generan nuevas monedas. (Graterol, 2017)
Wallet: Un software que se comunica con la red para poder realizar operaciones de envío y
recepción de la criptomoneda. (Graterol, 2017)
Client: Es un software que implementa todas las funciones y características del protocolo de la
criptomoneda y que en conjunto conforman una red distribuida de nodos que permite tener una
criptomoneda descentralizada. (Graterol, 2017)
Altcoins / Alternative Currency: Bitcoin es la primera criptomoneda en el mundo, pero ahora
mismo no es la única: existen cientos de criptomonedas y se les conoce como “Altcoins” o monedas
alternativas, el nombre es solo como referencia porque cada moneda tiene muchas veces características
que las hacen ser únicas. (Graterol, 2017)
ASIC Mining: Al ser difícil para el cliente el cómputo verificar transacciones (POW), se crearon
Application Specific Integrated Circuit (ASIC) que son equipos especializados para resolver a gran
velocidad cada desafío que se genera en POW, de esta manera se hace rentable minar por ejemplo Bitcoin.
(Graterol, 2017)
POS (Proof of Stake): A diferencia de POW, POS propone validar transacciones no con un poder
de cómputo sino con la cantidad de unidades que poseas de una criptomoneda en específico. Es decir,
mientras más unidades poseas, más posibilidades tienes de recibir una recompensa. Esto podría tener
analogía a depósito a término fijo, en el que dejando tu dinero una cantidad de tiempo recibes una
recompensa en intereses. POS se usa en algunas criptomonedas en conjunto con POW para hacer más
segura la red. (Graterol, 2017)
Confirmation: Cuando un bloque es creado, todas las transacciones dentro de ese bloque son
consideradas “confirmadas” y con cada nuevo bloque se “re-confirman” o “re-validan” las transacciones
de bloques anteriores. La confirmación se utiliza para verificar si una transacción es efectuada. En
blockchain una transacción se debe considerar “completa” cuando es confirmada dentro de un bloque.
(Graterol, 2017)
Difficulty: La red de cada criptomoneda tiene una dificultad de minado que hace más difícil el
problema a resolver a través de POW en la mayoría de los casos. Esto provoca que se creen ASIC más
potentes que reemplazan ASIC obsoletos y lentos que ya no generan suficientes soluciones para poder
verificar transacciones. (Graterol, 2017)
Exchange: Es un servicio que usan los poseedores de Bitcoin o cualquier otra criptomoneda para
poder comprar/vender las criptomonedas por otras o por dinero FIAT (dólar, euro, pesos). (Graterol, 2017)
Hash (Hash Function): Un Hash es una función matemática que asigna un dato de entrada de
cualquier tamaño a otro dato de un tamaño fijo. En criptomonedas se usa mucho para asignar un ID único
a cada transacción, bloque y para el proceso de minado. Cada minero con una función hash intenta con
valores aleatorio conseguir el resultado correcto que es determinado por la red, si lo consigue obtiene un
nuevo bloque y su recompensa. (Graterol, 2017)
Alza: tendencia a la elevación de precios de mercancías o de dinero. (Graterol, 2017)
Bolsa de Valores: es el mercado centralizado y regulado en donde personas calificadas realizan
operaciones de compraventa de títulos valores por orden de sus clientes o a nombre propio. (Graterol,
2017)
Broker: es aquella persona o entidad, que actúa como intermediario entre un comprador y un
vendedor en transacciones de valores, cobrando una comisión. El Broker actúa como agente es decir no
toma ninguna posición propia ni siquiera con duración temporal, si no que se limita a unir dos posiciones
(compra-venta) al precio que resulte satisfactorio para las dos partes. (Graterol, 2017)
Divisa: término que engloba la moneda de curso legal de terceros países, medios de pago y activos
financieros denominados en moneda extranjera, e ingresos de monedas extranjeras originados por
transacciones con el exterior. (Graterol, 2017)
Devaluación: es la depreciación de una moneda frente a otra moneda de referencia. Es el
concepto opuesto a la revaluación. (Graterol, 2017)
Revaluación: es la apreciación de la moneda de a la que se refiere frente a otra moneda de
referencia. Es el concepto opuesto a la devaluación. (Graterol, 2017)
Mercado de divisas: es el que corresponde a la negociación de monedas extranjeras.
Mercado monetario: es el que corresponde a la negociación de activos financieros a corto plazo
que como convención general es el periodo inferior a un año. (Graterol, 2017)
Tasa de Cambio: es la tasa que relaciona los precios de dos monedas, es decir lo que se tiene que
dar de una moneda para recibir cierta cantidad de otra. (Graterol, 2017)
La criptomoneda o criptodivisa: Es una de las nuevas herramientas que han incursionado en el
marcado financiero, que permiten a través de una plataforma conectada al internet, ser utilizado como
un medio de cambio para adquirir un bien o servicio. (Graterol, 2017)
Bitcoin: Es la criptomoneda descentralizada con el valor más alto en el mercado de
criptomonedas, es transparente y confiable, que permite el intercambio de valor que no puede ser
falsificado gracias a las soluciones de problemas de doble pago, también tiene la posibilidad del acceso
financiero libre en todo el mundo. (Graterol, 2017)
2.2 Conceptos ingenieriles
Diagrama de casos de uso: Es una descripción de un proceso fin-a-fin, relativamente largo, que
incluye varias etapas o transacciones
Front-end: Es todo lo que se puede observar del lado del cliente, es decir, el apartado visual de la
aplicación. Por lo general se ocupan tecnologías como: HTML5, CSS3, JavaScript entre otros para la
construcción de las interfaces. En este proyecto se utiliza Angular como herramienta de desarrollo para el
Front-end.
Back-end: El trabajo del desarrollador en la parte de back-end es todo lo que va anclado al servidor
de la aplicación, al core del negocio, sin este la aplicación desarrollada en el front-end no tendría una
funcionalidad
Javascript: JavaScript es un lenguaje de desarrollo de aplicaciones enfocadas a la web. En la
actualidad es muy utilizado por las funciones que permite realizar, con el paso del tiempo los navegadores
han implementado nuevos motores de interpretación, haciendo así que JavaScript tenga la capacidad de
alcanzar velocidades de ejecución similares a las aplicaciones de escritorio, además pueden realizar
muchas tareas que antes difícilmente se conseguían, como manejar eventos un ejemplo claro de esto es
controlar los clics del mouse y además se pueden realizar validaciones en el navegador.
NodeJs: Node.js es un entorno de ejecución para JavaScript construido con el motor de JavaScript
V8 de Chrome, este utiliza un modelo asíncrono y dirigido por eventos.
Node Package Manager (NPM): Node Package Manager es un gestor de paquetes, al momento de
trabajar con node, ya que gracias a esta podremos utilizar cualquier librería disponible con solo una línea
de código.
JSON: Es un formato ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos,
mientras que para las máquinas es simple interpretarlo y generarlo. Dentro de la aplicación se utiliza este
tipo de objetos para el intercambio de información entre el back-end y front-end.
React Native: Es un Framework que facilitan la creación de dichas aplicaciones el cual ofrece la
creación de aplicaciones móviles nativas para distintos sistemas operativos como IOS y Android, también
permite a muchos desarrolladores web familiarizarse con el desarrollo de aplicaciones móviles gracias al
uso que hace de JavaScript como lenguaje de programación.
Framework (armazón): Es una abstracción en la que cierto código común provee una
funcionalidad genérica que puede ser sobrescrita o especializada de forma selectiva por medio de código
con funcionalidad específica provisto por los clientes del framework (desarrolladores de software /
programadores)
CRUD: Es el acrónimo de "Crear, Leer, Actualizar y Borrar", que se usa para referirse a las funciones
básicas en bases de datos o la capa de persistencia en un software.
Capítulo 3. Desarrollo Ingenieril
3.1 Requerimientos
3.1.1 Requerimientos Funcionales
Tabla 1: Requerimiento de código RF01, diseño de una interfaz amigable
Código del Requerimiento RF01
Nombre Interfaz amigable
Propósito Diseñar y crear una interfaz amigable al usuario que le permita visualizar las monedas virtuales.
Descripción Lo primero es inicializar la App, esperar unos segundos mientras cargan los datos tomados de la API a la cual se conecta.
Entrada Buscar la moneda virtual de su interés, la cual puede revisar al detalle y agregar a una lista de favoritos.
Salida
Teniendo la moneda virtual en el listado de favoritos, también está la opción de incluir más o eliminarlas.
Prioridad Alta
Tabla 2: Requerimiento de código RF02, valor de las cripto monedas
Código del Requerimiento RF02
Nombre Valor de las cripto monedas
Propósito Visualizar el valor que tiene cada moneda virtual.
Descripción
Una vez seleccionada la moneda virtual, podrá ver el precio que tiene actualmente la misma, de igual manera se observa la variación que tiene en un tiempo de una hora.
Entrada Seleccionar la moneda virtual de su preferencia.
Salida La información completa y detallada de la moneda virtual.
Prioridad Alta
Tabla 3: Requerimiento de código RF03, lista de favoritas
Código del Requerimiento RF03
Nombre Lista de favoritos
Propósito Almacenar las monedas virtuales en una sección especifica.
Descripción
Con las monedas virtuales ya agregadas en la sección de favoritos, tendremos un acceso rápido y sencillo a cada una.
Entrada Ingresar a la sección donde se encuentra la lista de favoritos.
Salida Todas las monedas virtuales de interés almacenadas
Prioridad Alta
3.1.2 Requerimientos no funcionales
Tabla 4: Requerimiento de código RNF01, tener una cuenta en una tienda de Apps.
Código del Requerimiento RNF01
Nombre Cuenta Google Play y App Store
Descripción Es indispensable contar con la cuenta para alojar nuestra App, donde los usuarios puedan descargarla de manera fácil.
Prioridad Alta
Tabla 5: Requerimiento de código RNF02, conexión a internet
Código del Requerimiento RNF02
Nombre Conexión a internet
Descripción Para el consumo de la información es indispensable contar con acceso a internet.
Prioridad Alta
Tabla 6: Requerimiento de código RNF03, conexión a la Api, que ofrece los datos
Código del Requerimiento RNF03
Nombre Conexión a la Api
Descripción Al consumir la información de la Api es necesario contar con el acceso a internet.
Prioridad Alta
Tabla 7: Requerimiento de código RNF04, tener un equipo celular o Tablet
Código del Requerimiento RNF04
Nombre Dispositivo Móvil
Descripción
Teniendo en cuenta que la aplicación se desarrolló pensando en los dispositivos móviles, es necesario contar con un Celular o Tablet con sistema operativo IOS o Android.
Prioridad Alta
3.2 Modelado
3.2.1 Diagrama de casos de uso
Ilustración 2. Diagrama casos de uso
Nota: La imagen fue creada por los desarrolladores.
3.2.2 Descripción de casos de uso
Tabla 8. Caso de uso 1 visualizar las cripto monedas Caso de uso Visualizar monedas
Identificador 1
Descripción El usuario debe ejecutar la App, para poder visualizar la información de las monedas virtuales
Actor principal Usuario Actor secundario Usuario
Precondiciones Tener instalada la App y conexión a internet
Flujo principal 1. El usuario inicia la App. 2. La App carga las Monedas virtuales. 3. La App muestra las Monedas Virtuales.
Post condiciones Erro de conexión a Internet y la App no cargue las Monedas Virtuales.
Flujos alternativos N/A.
Tabla 9. Caso de uso 2 buscar moneda de interés
Caso de uso Buscar moneda de interés
Identificador 2
Descripción El usuario puede buscar la moneda virtual de su interés
Actor principal Usuario
Precondiciones Haber iniciado la App
Flujo principal 1. Seleccionar el buscador de la App, que permite buscar una en específico.
2. Escribir Nombre o siglas de la moneda virtual que desea encontrar
3. Una vez encontrada se selecciona y la App muestra su detalle
Post condiciones N/A
Flujos alternativos Si no encuentra la moneda deseada en el paso 2, debe iniciar en el paso 1
Tabla 10. Caso de uso 3 mostrar detalle de la moneda Caso de uso Mostrar Detalle de la moneda
Identificador 3
Descripción Podrá ver información detallada de cada moneda virtual
Actor principal Usuario Precondiciones Ubicar la moneda deseada
Flujo principal Seleccionar la moneda deseada La App carga la información detallada de la moneda virtual. La App muestra toda la información relacionada.
Post condiciones Falla con la conexión a internet y no muestra la información relacionada con la moneda.
Flujos alternativos No selecciona ninguna moneda
Tabla 11. Caso de uso 4 agregar moneda a favoritos Caso de uso Agregar moneda a favoritos
Identificador 4
Descripción El usuario podrá ubicar monedas virtuales en una lista de favoritos
Actor principal Usuario
Precondiciones Seleccionar la moneda virtual
Flujo principal Del listado de las monedas virtuales que carga la App el usuario debe seleccionar la moneda deseada En la parte superior derecha seleccionar el icono de la estrella para Agregar al listado de favorito. Ir a la sección de favoritos
Post condiciones No se agrega al listado de favoritos
Flujos alternativos En el paso 2, si el usuario no selecciona el icono de la estrella no se agrega a lista de favoritos, de lo contrario debe seleccionar el icono de la estrella para agregar a la lista de favoritos.
Tabla 12. Caso de uso 5 eliminar moneda de favorito
Caso de uso Eliminar moneda de favorito
Identificador 5
Descripción El usuario podrá eliminar monedas de la lista de favoritos
Actor principal Usuario
Precondiciones Tener monedas en lista de favoritos
Flujo principal Ingresar a lista de favoritos Seleccionar la moneda virtual En la parte superior derecha seleccionar el icono que permite quitar de la lista de favoritos
Post condiciones No tener ninguna moneda virtual en la lista de favoritos
Flujos alternativos En el paso 3, cuando desea quitar de la lista y sale el mensaje de alerta de confirmación si realmente desea eliminarla, si es así debe seleccionar la opción de “si”.
3.3. Mockups
Ilustración 3. Pantalla principal
Nota: Pantallazo de App creada
Ilustración 4. Vista detalle
Nota: Pantallazo de App creada
Ilustración 5. Lista de favoritos Ilustración 6. Vista detalle eliminar favorito
Nota: Pantallazo de App creada Nota: Pantallazo de App creada
Capítulo 4. Análisis y discusión
El ser humano siempre ha utilizado dos métodos para solucionar sus necesidades, además de su
trabajo: la violencia (guerras, robos, estafas, engaños, etc.) y el intercambio. Este último permitió y
desarrolló el comercio, el mercado y el dinero, elementos de unión entre las personas. El dinero ha
evolucionado de lo voluminoso y pesado -ganado, oro, plata etc. a lo más ligero y volátil: las
criptomonedas, pasando por el papel moneda y el llamado «dinero plástico» -las tarjetas de débito y
crédito.
Las criptomonedas, físicamente, son una combinación de impulsos eléctricos representados como
ceros y unos en la comunicación digital. No pueden verse, tocarse, olerse, ni probarse; ni siquiera
podemos afirmar que se guardan en forma de información en nuestra computadora. En materia de dinero,
es lo más volátil que ha creado el ser humano: solo existen en las redes de computadoras, son el dinero
fiduciario llevado a su máxima expresión. Su seguridad y confianza se basan en rigurosos y complejos
métodos criptográficos.
Aunque muchos consideran que la primera criptomoneda fue el bitcoin, creado por el mítico y
también volátil y difuso Satoshi Nakamoto en 2008, la realidad es que antes surgieron el Liberty dólar, el
eGold y el Goldmoney, intentos agotados y desactivados.
Las criptomonedas, como todo dinero, son mercancías que se pueden intercambiar por otras
monedas, bienes materiales, servicios, etc. en el hoy desarrollado mercado global. Y como todo dinero
fiduciario (por ejemplo, el papel moneda o las tarjetas), se basa en la confianza entre los elementos que
conforman la cadena de intercambio. Sin embargo, esa confianza se consolida con un sofisticado sistema
de control que incluye, por supuesto, métodos criptográficos.
El producto final que se desarrollo es una aplicación móvil tanto para dispositivos con sistemas
operativos IOS y Android, donde podrás consultar y estar al tanto de las monedas virtuales existentes en
el mercado, como nuevas alternativas a la moneda que rige en cada país.
Como resultado del proyecto “Moneda Virtual” se verán beneficiados todos los usuarios que
desean descargar e instalar la aplicación y quieran conocer los mercados financieros ya sea el cambio del
valor de las diferentes monedas virtuales que existen, esto le permite al usuario saber en tiempo real en
qué momento entrar o salir del mercado.
Durante el desarrollo del proyecto se encuentran varios factores que ocasionaron un retraso en
el proceso de construcción, uno de ellos es el uso de los equipos de cómputo que no cuentan con el
hardware óptimo para la ejecución de las librerías que usa Node js y visualización de la aplicación en el
emulador virtual de Android, otro factor es la curva de aprendizaje del FrameWork, para poder seguir
adelante con el avance del proyecto fue necesario realizar ajustes a los equipos donde se desarrollaba la
aplicación, para ello fue necesario cambiar el disco duro Mecánico (HDD) a un disco duro de estado sólido
(SSD), nueva generación de dispositivos de almacenamiento que permite el acceso a la información en un
menor tiempo, al comparar lo con el disco duro mecánico, para evitar el uso del emulador de Android en
computador se optó por ejecutar la aplicación desde el mismo dispositivo móvil (celular), esto permitió
que no se consumieran los recursos del computador al momento de la construcción de la App.
Conclusiones
En el desarrollo de la aplicación móvil tanto para Android como IOS, se contó con un FrameWork
React Native creado por la empresa de Facebook, de uso libre (open source), es decir nos brinda la libertad
a los desarrolladores de adquirirlo y usarlo, esto permite que la implementación y el desarrollo se facilite
para generar las aplicaciones multiplataformas además de las librerías y herramientas que posee creadas
por la misma comunidad de desarrolladores en React Native, también se nos facilitó ya que el FrameWork
emplea el lenguaje de Java, con el cual estamos familiarizados durante el transcurso de nuestra carrera.
Este proyecto nos ayuda a ampliar conocimientos sobre monedas virtuales que existen
actualmente, adicionalmente nos facilita la utilización de las criptomonedas.
Hoy en día el mercado financiero ha venido evolucionando debido, a la economía ya no se trata
de dinero real sino también lo tenemos virtual, más conocido como criptomonedas es una forma donde
los mineros qué son las personas que están en la búsqueda de tener mayores ingresos.
Los mineros son personas que por medio de las monedas virtuales buscan la resolución de
algoritmos lógicos y matemáticas resuelve para poder tener dichas monedas, en la cual lo han hecho
importante y es una ventaja del mercado ya que es imposible de falsificar.
Aplicativo móvil permite al minero hacer el estudio y poder analizar los diferentes valores de las
monedas para poder tomar una decisión correcta.
Bitcoin propuso una solución a la transaccionalidad basada en Blockchain. Esto permitió la
descentralización para evitar que las funciones de asegurar el dinero existente y validar que las
transacciones se realicen correctamente, se remitiera únicamente a los bancos. Superó, por tanto, el que
una sola entidad le estableciera políticas y tasas exageradas como pago por su trabajo. Bitcoin privilegió
el rol de la validación a aquellos que quisieran participar a cambio de una recompensa y entregó la
protección del dinero a los propietarios de las carteras.
Referencias
Andrés Felipe Arias Díaz, A. R. (24 de 5 de 2019). UNIVERSIDAD COOPERATIVA DE COLOMBIA. Obtenido
de UNIVERSIDAD COOPERATIVA DE COLOMBIA:
https://repository.ucc.edu.co/bitstream/20.500.12494/10954/1/%282019%29_Especificaci%C3
%B3n_de_Requisitos_de_Software_Petic.pdf
Cortes, M. A. (1 de 10 de 2008). UNIVERSIDAD NACIONAL DEL CENTRO DE LA PROVINCIA DE BUENOS
AIRES. Obtenido de UNIVERSIDAD NACIONAL DEL CENTRO DE LA PROVINCIA DE BUENOS AIRES:
https://www.ridaa.unicen.edu.ar/xmlui/bitstream/handle/123456789/1979/34535218_CORTES
_MAURO_ALBERTO.pdf?sequence=1&isAllowed=y
Díaz, P. A. (2018). Las Criptomonedas. Bogota: Universidad La Gran Colombia.
Graterol, Y. (15 de 10 de 2017). PLATZI. Obtenido de PLATZI: https://platzi.com/blog/glosario-de-bitcoin-
criptomonedas/?utm_source=google&utm_medium=cpc&utm_campaign=12915366154&utm_
adgroup=&utm_content=&gclid=Cj0KCQjws4aKBhDPARIsAIWH0JUt3B3RGs3KpzhyyDJcrOJJ-
rMd65zBAsBjuOx2wdU8yULscJI2iOsaAg_wEALw_wcB&gclsrc=aw.ds
Nakamoto, S. (2008). Bitcoin: un sistema de dinero en efectivo electrónico peer-to-peer1. Seúl:
Decentralized Business Review.
Rosa, J. L., & Peña de Carrillo, C. I. (10 de 07 de 2019). Universitat de Girona. Obtenido de Universitat de
Girona: https://www.tdx.cat/handle/10803/668018
Sutherland, K. S. (10 de 08 de 2020). SCRUM GUIDES. Obtenido de https://scrumguides.org/scrum-
guide.html#team