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.
In document
An institutional and compliance approach to labour standards in Central America and the Dominican Republic
(Page 129-134)