• No results found

Chapter 2 Research Process I Introduction

G. Compliance and Internalization: Actors and Processes

Estos lenguajes son más parecidos al humano. No dependen de la máquina y sirven

principalmente para crear programas informáticos que puedan solucionar distintos

tipos de necesidades.

Ahora bien, algunos de los lenguajes de programaciónn máss utilizados son SQL, PHP,

C

++

y Java.

SQL: son las siglas de Structured Query Language (Lenguaje Estructurado de

Consulta). Su función principal es actuar sobre una base de datos y extraer

su contenido para almacenar, introducir, actualizar, eliminar y consultar

información. Suele ser usado en la construcciónn de páginas web y

aplicaciones de escritorio.

PHP: es un acrónimo recursivo que significa PHP Hypertext Pre-processor. Es

utilizado para el desarrollo de sitios online, ya que es posible combinarlo

con HTML. Es un lenguaje de lado del servidor, es decir, que primero se

ejecuta en éste y posteriormente regresa al navegador del usuario como

resultado una página web.

xxxiv

C

++

: lenguaje orientado principalmente a los sistemas operativos. Se puede crear un

software para sistemas operativos como Windows o Linux, también es

muy usado en robótica para crear simuladores o para experimentos

informáticos, físicos, matemáticos, etc.

Java: es uno de los lenguajes favoritos ya que permite construir programas que

gestionan la memoria del dispositivo donde reside la aplicación, como

por ejemplo herramientas, juegos y apps. Es utilizado en dispositivos

móviles, aparatos de televisión y computadores personales. Suele ser

asociado a Java Script, que es otro tipo de lenguaje para crear pequeños

programas encargados de realizar acciones dentro de páginas webs, como

por ejemplo crear efectos especiales o para definir la interactividad con los

usuarios.

Con esto nos damos una idea del sistema con el que funcionan muchas de las

aplicaciones que usamos a diario y, aunque son diferentes, casi todos los lenguajes de

programación tienen fundamentos o bases comunes que hacen que aprenderlo sea fácil,

una vez se conoce lo básico. Si quiere saber más sobre el tema, es necesario ahondar

en este mundo y entender por quéé cuando en un juego presiona el botón 'Play' puede

empezar a jugar. (Morales, 2014)

xxxv

ANDROID STUDIO

Android estudio es un entorno de desarrollo para plataformas Android que permite por

medio de diferentes aplicaciones y gracias a su framework crear apps para dispositivos

movibles en un ambiente de lenguaje java. (Android, 2018)

Android estudio proporciona una serie de aplicaciones que permiten integrar de manera

más sutil y sencilla las diferentes actividades de manera individual, proporcionando y

garantizando funcionalidad para cada una de ellas, permitiendo que el programador o

ingeniero certifique a cada paso la calidad de lo que desarrolla. Entre estas funciones

tenemos:

No firma de aplicaciones la cual permite realizar apps piloto, instalarlas y

manipularlas sin ninguna restricción política.

Renderizado en tiempo real y un editor de diseño que son herramientas que

permite ubicar, arrastrar, soltar y manipular botones, colores, formas y todo el

entorno visual sin necesidad de una serie de leguaje programal y ubicarlos

fácilmente en el interfaz.

Consola de desarrollador: sistema que permite consejos de optimización, lo cual

es una ayuda puntual para los profesionales que no están educados en el

lenguaje de programación, ayuda para la traducciónn, y genera estadísticas de

uso.

Soporte para construcción basada en Gradle (sistema de automatización de

construcciónn de ccódigo abierto) que permite determinar el orden en el que las

tareas pueden ser ejecutadas dando una estructura lógica a la aplicación.

identifica errores y genera arreglos rápidos (concejos o posibles cambios).

detectar compatibilidad de versiones y actualizarlas.

Plantillas base para creación de muck ups o estructuras visuales.

Un dispositivo virtual de Android que se utiliza para ejecutar y probar

aplicaciones

Plantillas de código e integración con GitHub el cual permite buscar ejemplo

de códigos.

Si el usuario es un experto en programación tiene un editor de código inteligente

el cual permite realizar modificaciones y versiones nuevas de la app de modo

avanzado y con mayor estructuración. (Android, 2018).

xxxvi

Imagen 18 Android Studio

Fuente: https://developer.android.com

Android estudio se creó como alternativa de diseño de aplicaciones ya que la demanda

de necesidades tecnologías interdisciplinarias y del diario vivir crecieron

exponencialmente en la última década, por lo cual se observó que muchos

programadores no tenían un conocimiento general muy amplio para satisfacer las

necesidades tecnológicas de los usuarios en general, por lo tanto el entorno amigable

se genera para todos aquellos que con un poco de comprensión de la sintaxis java

puedan manejar un ambiente visual, animado y didáctico, que gracias a una serie de

aplicaciones permite crear apps simples y que el usuario poco a poco desarrolle

habilidades de modulación y estructuración de códigos. (Android, 2018).

Repositorios

¿Qué es un repositorio?

Un repositorio o archivo deposito es un documento digital que almacena, preserva y

difunde abiertamente en la red, estos recursos digitales se comparten de tal manera que

cualquier persona, estudiante y/o profesional tenga la posibilidad y la facilidad de

adquirir dichos documentos, archivos, procesos, métodos y códigos que le permitan

facilitar sus actividades o investigaciones de manera eficaz y rápida, sin ningún tipo de

restricción. (Pené, 2011).

¿Por qué de los accesos abiertos a la información?

“Con el anhelo de democratizar y centralizar el conocimiento surge a principios de la

década del 90 los repositorios digitales que Aboga por la supresión de las barreras que

limitan el acceso al fruto de los esfuerzos de la investigación como un bien universal

al que todos tienen derecho”. (Pené, 2011).

xxxvii

Para llegar al AA (acceso abierto) se presentaron dos vías básicas:

-

vía dorada: Publicar en revistas de acceso abierto (accesos para unos pocos)

-

vía verde: Autoarchivar documentos en un repositorio institucional o disciplinar

(modo más simple y 100% confiable). (Pené, 2011).

Tipología de repositorios

-

Repositorios institucionales:

Son creados por las instituciones o la academia donde almacenan, preservan y brindan

acceso a la producción intelectual y académica, pueden contener la producción

académico-científica y también colecciones especiales con acceso libre al estudiantado,

docentes y otros. (PoliScience, 2018)

-

Repositorios temáticos:

Son creados por institutos, laboratorios, industrias o entidades gubernamentales que

brindan acceso a contenidos de una disciplina o área temática especifica. (PoliScience,

2018).

- Repositorios de datos

Son repos que almacenan y comparten datos de investigaciones o elementos ya

creados y puestos a servicio del conocimiento común. (PoliScience, 2018).

¿Dónde se puede almacenar?

Los repositorios al ser archivos digitales libres podemos cargarlos en páginas web

personales, institucionales o temáticas, la diferencia entre ellos es las restricciones que

se tienen como persona natural ya que de esta manera no tenemos un permiso web que

permita emitir información sin ningún tipo de control intelectual, ya que los buscadores

evitan paginas poco veraces, por lo cual la carga de archivos de tipo personal se limita

a formatos html, pdf, doc y xlm; por otro lado no permite realizar búsquedas avanzadas,

metadatos, y no garantiza permanencia. A diferencia de pagas web de supervisión

académica o científica real garantiza confianza en los datos, variedad de formatos,

búsquedas, metadatos y permanencias garantizadas. (PoliScience, 2018).

xxxviii

Ejemplos en la aplicación móvil

Teniendo en cuenta que la aplicación VERTEX requiere de una serie de códigos tipo

datapicker extensos como lo son la selección de hora, fecha, departamentos y

municipios de la república de Colombia se descargan los respectivos repos de cada una

de estas extensiones en el capítulo correspondiente a la metodología se muestran estos

los repositorios usados en el desarrollo de nuestra aplicación. (GitHub, 2018) ,

(Sequelpro, 2018) y (DEPARTAMENTO NACIONAL DE ESTADISTICA, 2018)

API (Interfaz de programación de aplicaciones)

Actualmente con el creciente desarrollo informático en materia de conectividad,

asociada a internet, muchos desarrolladores y programadores en todo el mundo han

contribuido con esta democratización de la información con códigos en lenguaje JAVA

llamados biblioteca de clases de JAVA, los cuales son simplemente interfaces de

programación de aplicaciones(Paul Deitel, 2012).

Por ejemplo, si se requiere que una aplicación muestre una localización en Google

maps, la aplicación Route Tracker utiliza las API de Android maps permitirán

incorporar Google maps en la futura aplicación.

ANDROID SOFTWARE DEVELOPMENT KIT (SDK)

Una cosa es ANDROID STUDIO como plataforma, pero no se puede desarrollar

ninguna aplicación móvil solamente con ANDROID STUDIO, es necesario descargar

el kit de desarrollo para Android (desarrollo para móviles) llamado SDK, y el kid de

desarrollo para JAVA llamado JDK. Una comparación para comprender lo

anteriormente expuesto seria:

para hacer un traje es necesario una herramienta como la máquina de coser, adicional

los materiales y la mano de obra, la máquina de coser seria ANDROID STUDIO, la

tela y botones serian el SDK y el JDK, y el operador sería el desarrollador, no es posible

hacer el traje sin la máquina y sin los materiales, lo mismo sucede con las aplicaciones

para ANDROID.

xxxix

Interface de Usuario Android – Layout

Los layouts son elementos no visuales destinados a controlar la distribución, posición

y dimensiones de los controles que se insertan en su interior (Botones, textos,

spinners...), así que podemos decir que los Layouts son los contenedores de estos

elementos. Estos Layouts pueden pueden distribuir a sus "hijos" de forma Horizontal

o Vertical (dependiendo de su propiedad 'Orientacion'). (Aprendeandroid, 2018).

Hay varios tipos de Layouts, cada uno tiene unas ventajas respecto a los otros, pero se

pueden combinar todos dentro de nuestro diseño. La siguiente imagen ilustra los

diferentes tipos de Layout.

Imagen 19 Tipos de Layout

Fuente: (Aprendeandroid, 2018)

Estos Layout tienen propiedades que permiten acondicionar estos elementos a nuestras

necesidades a continuación, se muestran algunas de las propiedades con las que pueden

contar estos Layout

android:id

Se trata de un número entero que sirve para identificar cada objeto view de forma única

dentro de nuestro programa, cuando lo declaramos a través de un xml de resource

podemos hacer referencia a la clase de recursos R usando una @, esto es

imprescindible, ya que, si no, no podremos identificar nuestros elementos en nuestro

programa para después usarlos y/o modificarlos, veamos algunos ejemplos:

android:id=”@id/boton”. Hace referencia a un id ya existente asociado a la etiqueta

xl

elementos, lo hacemos indicando por ejemplo que un botón lo insertamos a la derecha

de otro, pues bien ese otro se pone así.

android:id=”@+id/boton2”. Esto crea una nueva etiqueta en la clase R llamada

“boton2”.

Atributos, height, width (Altura y Ancho)

Otra propiedad importante es el Alto y el Ancho de los controles y Layouts, ya que

para que Android sepa dibujar un objeto View debemos proveerle estos datos, y

podemos hacerlo de 3 formas:

android:layout_width="40dp". Indicando un número exacto que definamos,

usaremos 40dp como unidad de medida, dp significa: Densidad de píxeles

independientes, una unidad abstracta que se basa en la densidad física de la pantalla.

Esta unidad es perfecta para buscar la compatibilidad con TODAS las pantallas de

móvil o tables, ya que es una medida proporcional.

Imagen 20 Ejemplo de atributo de vertex (Layout) Fuente: propia

Otras Unidades que podemos usar

px. Píxeles, corresponde a píxeles reales en la pantalla.

en. Cm - basado en el tamaño físico de la pantalla.

mm. Milímetros - en función del tamaño físico de la pantalla.

pt. Puntos - 1/72 de una pulgada en función del tamaño físico de la pantalla.

sp. Escala de píxeles independientes - esto es como la unidad de DP, pero también es

escalado por la preferencia del usuario tamaño de la fuente. Se recomienda utilizar esta

xli

unidad al especificar tamaños de fuente, por lo que se ajusta tanto para la densidad de

pantalla y preferencias del usuario.

La constante FILL_PARENT que indica que la vista intentará ser tan grande como su

padre (menos el padding)

La constante WRAP_CONTENT que indica que la vista intentará ser lo

suficientemente grande para mostrar su contenido.

android:layout_weight. Esta propiedad nos va a permitir dar a los elementos

contenidos en el layout unas dimensiones proporcionales entre ellas. Si incluimos en

un LinearLayout vertical dos cuadros de texto (EditText) y a uno de ellos le

establecemos un layout_weight=”1” y al otro un layout_weight=”2” conseguiremos

como efecto que toda la superficie del layout quede ocupada por los dos cuadros de

texto y que además el segundo sea el doble (relación entre sus propiedades weight) de

alto que el primero, si ponemos 1 para los dos, el tamaño será exactamente igual. Esto

se usa mucho, ya que así nos aseguramos una proporcionalidad para todos los tamaños

de pantalla.

android:layout_gravity="center". Esta propiedad es la que se usa para centrar, es la

'gravedad' una vez más cuando estén entre las comillas, pulsa Control+Espacio para

ver todas las opciones que te da este control, además las puedes combinar, es

decir, Center_Horizontal|Top. <-- Esto te lo centra horizontal y lo ajusta en

vertical arriba.

Para el resto de Atributos, cada elemento tendrá los propios, basta con poner el cursor

dentro de la etiqueta del Layout que estemos colocando y pulsar las

teclas Ctrl+Espacio para que Eclipse te recomiende las propiedades del elemento que

estamos insertando. (Aprendeandroid, 2018)

LinearLayout

Este tipo de layout apila uno tras otro todos sus elementos hijos de forma horizontal o

vertical según se establezca su propiedad android:orientation="vertical" y

android:orientation="Horizontal" .

Normalmente una pantalla contiene un LinearLayout con orientacion vertical, y con

sus propiedades de alto y ancho FILL PARENT, para que actúe como contenedor

principal ajustándose a la pantalla del móvil, y dentro de este se suelen introducir otros

LinearLayout con orientacion Horizontal para contener las "filas" con los otros

elementos como botones. A continuación, se muestra un ejemplo. Es importante que

xlii

para introducir un texto o cualquier elemento, botón etc, es necesario contar con un

Linearlayout,

Imagen 21 Uso de Linearlayout en android studio

Fuente: (Aprendeandroid,

2018)

Como se puede apreciar en la imagen anterior no hace falta introducir un linear layout

para el primer texto, pero si quiero introducir botones es necesario otro linearlayout

pero esta vez horizontal, la siguiente imagen ilustra el ejemplo anterior de cómo se

debe seguir este código en Android Studio.

xliii

Imagen 22 Código ejemplo de un Linearlayout

Fuente: (Aprendeandroid,

xliv

BASES DE DATOS

Son muchas las aplicaciones en las que son usadas las bases de datos, desde los bancos,

líneas aéreas, educación, telecomunicación, finanzas, producción etc. Este aumento o

creciente uso se dio gracias al desarrollo computacional de mediados del siglo XX, y

sumado a la revolución de la internet democratizo no solo el interés sino también el uso

y desarrollo. (Abraham Silberschatz, 2002).

¿Qué Es SQLite?

Es un suave motor de bases de datos de código abierto, que se caracteriza por mantener

el almacenamiento de información de forma sencilla. A diferencia de otros Sistemas

gestores de bases de datos como MySQL, SQL Server y Oracle DB, SQLite tiene las

siguientes ventajas: No requiere el soporte de un servidor: SQLite no ejecuta un

proceso para administrar la información, si no que implementa un conjunto de librerías

encargadas de la gestión (Revelo, 2014).

No necesita configuración: Libera al programador de todo tipo de

configuraciones de puertos, tamaños, ubicaciones, etc.

Usa un archivo para el esquema: Crea un archivo para el esquema completo de

una base de datos, lo que permite ahorrarse preocupaciones de seguridad, ya

que los datos de las aplicaciones Android no pueden ser accedidos por

contextos externos.

Es de Código Abierto: Esta disponible al dominio público de los desarrolladores

al igual que sus archivos de compilación e instrucciones de escalabilidad.

Es por eso que SQLite es una tecnología cómoda para los dispositivos móviles.

Su simplicidad, rapidez y usabilidad permiten un desarrollo muy amigable.

Imagen 23 SQLite

Fuente: https://openwebinars.net/blog/sqlite-para-android-la-

herramienta-definitiva/

xlv

2.

METODOLOGÍA

METODOLOGIA SCRUM

SCRUM es una metodología de desarrollo ágil para dar forma de manera sencilla y

eficiente a una aplicación o software que se basa en desarrolladores de programación,

ya que esta permite que el avance no solo sea eficiente, si no que permite que los

tiempos sean cortos en función de creación y funcionalidad. esta metodología es

aconsejada por todos los desarrolladores principiantes en el mundo de la programación.

Teniendo en cuenta que los ingenieros topográficos no tienen una metodología

conceptual avanzada o procesos puntuales para desarrollar aplicaciones móviles y

redacción de lenguaje de programación avanzado, y el fuerte académico de estos

profesionales es el modelamiento, diseño e interpretación geográfica de la tierra. Se

investigó teniendo en cuenta los lineamientos de nuestro director de proyecto

encontramos una manera fácil, sencilla, y sobre todo funcional para manejar diferentes

etapas del proceso de creación de la app, la ya mencionada metodología de desarrollo

ágil SCRUM.

La aplicación de esta metodología se adopta por la poca experiencia en desarrollo de

aplicaciones y/o software por medio de lenguaje de programación que tenían los

presentes desarrolladores (estudiantes), el conocimiento previo es adquirido por

asignaturas impartidas en la institución educativa (universidad distrital) como lógica

de programación e ingeniería de software, donde el lenguaje programal es sencillo y

exige crear herramientas, ecuaciones, y procedimientos simples desde el punto de vista

de un desarrollador, mientras que para un estudiante de topografía es algo complejo y

poco usual en su naturaleza académica. A pesar de ello se generó un conocimiento

básico el cual ayudó para el desarrollo del presente documento. Scrum aparece como

alternativa de desarrollo de software desde el punto de vista metodológico para una

aplicación que requiere diferentes operaciones unidas en una sola presentación, por

tanto, permite al desarrollador crear, revisar, mejorar, presentar, incluir nuevas ideas o

quitar las funciones de bajo rendimiento dentro de la aplicación.

1.

Lo primero que se debe tener claro es el producto que se quiere mostrar al usuario

o al consumidor, por lo cual gracias al problema planteado inicialmente se pretende

crear una aplicación móvil que facilite al profesional en topografía o geodesia

minimizar el uso de formatos análogos y registrar cualquier punto o vértice para

uso personal, profesional o empresarial, garantizando a futuro una base de datos

geodésica centralizada, compartida y digitaliza.

2.

Teniendo en cuenta lo que se quiere lograr se encamina a un listado de

requerimientos los cuales se dividen en tres campos; posibles usuarios,

características y por último historias de usuario o user story.

xlvi

Posibles Usuarios

Empresas privadas que manejan información de datos GNSS.

Empresas públicas que manejan información de datos GNSS.

Profesionales independientes que manejan información de datos GNSS.

Centros de educación superior donde se imparten cátedras relacionadas con

información GNSS.

Estudiantes y docentes.

Características de la Aplicación

Aplicación móvil compatible con sistemas operativos Android superiores a

4.0, con posibilidades futuras de actualización y migración a otros sistemas

como iOS, Linux y Windows Mobile.

Instalación simple y versátil para cualquier tipo de usuario.

Aplicación fácil de manipular e interfaz amigable con el usuario.

Capacidad de almacenamiento para fotografías.

Archivos básicos y bajo tamaño en bites para almacenamiento.

Geolocalización por medio de un api.

Historias de usuario

Existe el problema de trascripción de los datos en campo a un sistema

digital, ya que genera errores humanos.

El uso de papel genera una serie de archivos y contaminación.

Perdida de la información en campo, así como la redundancia de datos y

repetición de registros.

Unificación de formularios para la toma de información GNSS.

Descentralización de la información.

Compartir archivos o registros fácilmente.

Crear varios registros en una sola sesión sin pérdida de la información.

Generar una nube para almacenamiento masivo de data.

Crear una base de datos compartida de datos GNSS con todos los

profesionales.

Establecer un servidor y a su vez una plataforma web para administración

de datos.