ingeniería de sistemas, universidad cooperativa de

27
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

Upload: others

Post on 02-Aug-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 3: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 4: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 5: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 6: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 7: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 8: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 9: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 10: Ingeniería de Sistemas, Universidad Cooperativa de

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/

Page 11: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 12: Ingeniería de Sistemas, Universidad Cooperativa de

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)

Page 13: Ingeniería de Sistemas, Universidad Cooperativa de

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)

Page 14: Ingeniería de Sistemas, Universidad Cooperativa de

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)

Page 15: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 16: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 17: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 18: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 19: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 20: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 21: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 22: Ingeniería de Sistemas, Universidad Cooperativa de

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”.

Page 23: Ingeniería de Sistemas, Universidad Cooperativa de

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

Page 24: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 25: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 26: Ingeniería de Sistemas, Universidad Cooperativa de

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.

Page 27: Ingeniería de Sistemas, Universidad Cooperativa de

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