prototipo de aplicaciÓn web para la …repository.udistrital.edu.co/bitstream/11349/7329/1... ·...

120
PROTOTIPO DE APLICACIÓN WEB PARA LA PREDICCIÓN EN LA TOMA DE DECISIONES AGRÍCOLAS EN EL ALTIPLANO CUNDIBOYACENSE IMPLEMENTANDO INFORMACIÓN GEOGRÁFICA. Proponente: Sergio Andrés Rodríguez Rodríguez UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR INGENIERÍA DE SISTEMAS BOGOTÁ, COLOMBIA 2017

Upload: haanh

Post on 08-May-2018

220 views

Category:

Documents


2 download

TRANSCRIPT

PROTOTIPO DE APLICACIÓN WEB PARA LA PREDICCIÓN EN LA TOMA

DE DECISIONES AGRÍCOLAS EN EL ALTIPLANO CUNDIBOYACENSE

IMPLEMENTANDO INFORMACIÓN GEOGRÁFICA.

Proponente:

Sergio Andrés Rodríguez Rodríguez

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR INGENIERÍA DE SISTEMAS

BOGOTÁ, COLOMBIA

2017

PROTOTIPO DE APLICACIÓN WEB PARA LA PREDICCIÓN EN LA TOMA

DE DECISIONES AGRÍCOLAS EN EL ALTIPLANO CUNDIBOYACENSE

IMPLEMENTANDO INFORMACIÓN GEOGRÁFICA.

Proponente:

Sergio Andrés Rodríguez Rodríguez

Proyecto de grado en modalidad de monografía para optar por el título

de Ingeniero de Sistemas

Director

Ing. Julio Barón Velandia

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR INGENIERÍA DE SISTEMAS

BOGOTÁ, COLOMBIA

2017

“Los únicos interesados en cambiar el mundo son los pesimistas, porque los

optimistas están encantados con lo que hay.”

― José Saramago

AGRADECIMIENTOS

• A la Universidad Distrital Francisco José de Caldas, por haberme

aceptado como parte de ella y a los docentes que la conforman por

haberme formado con su dedicación y profesionalidad.

• Al profesor director Julio Barón, director de esta monografía por su

colaboración, apreciaciones, comentarios y sugerencias durante el

desarrollo de este proyecto.

• Al profesor revisor Anselmo Vega, por su valioso seguimiento del trabajo

realizado, por compartir su tiempo y ofrecer sus aportes los cuales han

sido de mucha importancia para la definición y elaboración de este

proyecto.

• A mi familia, mi base de formación y mi mayor inspiración para continuar

alcanzando mis sueños. Gracias por su confianza.

• A mi padre Víctor Manuel, su actitud en la adversidad me ha enseñado

más de lo que enseñan las palabras.

• A mi madre Flor Marina, por su apoyo constante incluso en los momentos

más difíciles, lo que me permitió perseverar a lo largo de este proceso.

Gracias por darme amor, valor y la fortaleza para superar cada obstáculo.

CONTENIDO

Contenido __________________________________________________ 4

INTRODUCCIÓN _____________________________________________ 5

1. PLANTEAMIENTO DEL PROBLEMA ___________________________ 7

1.1 Descripción del problema ________________________________________________ 7 1.2 Características del problema _____________________________________________ 9 1.3 Formulación del problema ______________________________________________ 10

2. OBJETIVOS ______________________________________________ 11

2.1 Objetivo general ______________________________________________________ 11 2.2 Objetivos específicos __________________________________________________ 11

3. JUSTIFICACIÓN ___________________________________________ 12

4. ALCANCES Y LIMITACIONES _______________________________ 13

4.1 Alcances ____________________________________________________________ 13 4.2 Limitaciones _________________________________________________________ 13

5. MARCO TEÓRICO CONCEPTUAL ____________________________ 14

5.1 Agroecología y agroecosistemas _________________________________________ 14 5.2 Oportunidades de la agroecología ________________________________________ 14 5.3 Características destacadas en la implementación del enfoque de la agroecología __ 15 5.4 Contribución de una aplicación web en el fomento de la agroecología ____________ 19 5.5 ISO 14001 – Sistema de gestión para el manejo ambiental ____________________ 20 5.6 Geomática y ciencia geoespacial _________________________________________ 21 5.7 Sistema de información geográfica de suelos Soilgrids. _______________________ 25 5.8 Ciencias de la agricultura _______________________________________________ 29 5.9 Arquitectura de software _______________________________________________ 35

6. FUENTES DE DATOS ______________________________________ 44

7. METODOLOGÍA ___________________________________________ 45

7.1 Metodología de estudio, análisis de los agroecosistemas. _____________________ 45 7.2. Metodología híbrida para el desarrollo de software. __________________________ 49 7.3 Características tomadas de la metodología SCRUM__________________________ 49

8. DEFINICIÓN DE REQUERIMIENTOS __________________________ 54

Requerimientos funcionales (RF) ____________________________________________ 54 Requerimientos no funcionales (RNF) ________________________________________ 54 Clasificación de requerimientos _____________________________________________ 54 Listado de requerimientos _________________________________________________ 55

9. MODELADO DEL SISTEMA _________________________________ 61

9.1 Arquitectura MVC _____________________________________________________ 61 9.2 Roles de usuario______________________________________________________ 68 9.3 Desarrollo guiado por pruebas (TDD- Test Drive Development) _________________ 69 9.4 Especificación del modelo conceptual del prototipo en UML. ___________________ 70 9.5 UML en el diseño de la arquitectura de la aplicación. _________________________ 71 9.6 Diagrama de casos de uso ______________________________________________ 72 9.7 Descripción de casos de uso ____________________________________________ 74 9.8 Diagrama de clases __________________________________________________ 100 9.9 Diagrama de objetos _________________________________________________ 102 9.10 Diagrama de componentes. ___________________________________________ 104 9.11 Diagrama de despliegue _____________________________________________ 105

10. TALENTO HUMANO Y RECURSOS TECNOLÓGICOS __________ 108

10.1 TALENTO HUMANO ________________________________________________ 108 10.2 RECURSOS TECNOLÓGICOS ________________________________________ 109

14. CONCLUSIONES ________________________________________ 110

15. RECOMENDACIONES Y TRABAJOS FUTUROS _______________ 111

BIBLIOGRAFÍA ____________________________________________ 112

TABLA DE FIGURAS ________________________________________ 118

5

INTRODUCCIÓN

El presente trabajo tiene como objeto la obtención de un prototipo de aplicación

Web. Se pretende que dicho prototipo sirva como soporte para la toma de

decisiones en proyectos del sector agrario en el área del altiplano

cundiboyacense, evaluando información del terreno tal como su composición

química, la climatología, el nivel de humedad, su altura sobre el nivel del mar y

la temperatura, entre otras características. Todo esto con la intención de realizar

la estimación de la selección del tipo de cultivo más adecuado para el

agroecosistema, de forma que permita al productor optimizar la producción

esperada del cultivo, teniendo en cuenta las necesidades del suelo.

Se describe por tanto en este documento el desarrollo de un prototipo de

aplicación Cloud que derive en la base para un servicio de tecnología accesible

para pequeños y medianos productores, así como para grupos asociados en

cooperativas agrícolas o entidades productoras de mayor nivel. Se generan

entonces conjuntos de herramientas que permitan la colaboración entre

profesionales de diversos roles dentro de la cadena de producción, tales como

geólogos, meteorólogos, biólogos, ingenieros agrícolas y agrónomos. El objeto

de la distribución por roles es facilitar la integración del conocimiento

interdisciplinario de los distintos profesionales relacionados en el área, de forma

que el usuario del software pueda realizar la toma de decisiones de su proyecto

agrícola basado en la combinación de conocimiento experto y la estimación

propuesta por la aplicación.

El proyecto se plantea como una propuesta tecnológica, económica y social.

Obtener del prototipo una herramienta tecnológica para colaborar con el

desarrollo de la agricultura en la región con la implementación de una plataforma

para facilitar el acceso a la información, por medio de la condensación de los

datos disponibles de organizaciones tales como el IDEAM y el Ministerio de

Agricultura junto con la propuesta de la estimación de producción generada en

la aplicación. A nivel social y económico, aportar con un desarrollo agrario

sostenible, tanto ecológicamente, como económicamente. Contribuyendo al

fortalecimiento del sector agrícola en la región, el cual provee importantes

ingresos para los habitantes del sector y es uno de los motores de desarrollo

económico fundamentales tanto del gobierno nacional como de las

administraciones locales.

El marco teórico abarca la descripción del concepto de agroecosistema y su

caracterización por medio componentes bióticos y abióticos para entender el

impacto de la agricultura como un agente de cambio en un entorno natural. Se

realiza una contextualización en la norma ISO 14001 como marco referencial

para reconocer el impacto de un proyecto agrícola a nivel medioambiental. A

nivel de la implementación se describen las características de una aplicación

6

Web, sus ventajas y los requerimientos logísticos para la implementación del

prototipo de aplicación, tales como el manejo de la arquitectura de software, la

gestión y almacenamiento de datos geográficos, organización y estructura de la

base de datos, así como el consumo de servicios de información externos.

La metodología de investigación se basa en la propuesta de Conceptos básicos

sobre agroecosistemas [1], en el que se describe la base conceptual necesaria

para la investigación agrícola dirigida a proyectos para pequeños agricultores

tomando en cuenta la ecología propia de la región y la implementación de un

enfoque sistémico para el manejo de la información.

Como metodología de investigación se describen los aspectos del uso de una

metodología SCRUM-Like que permite flexibilizar el modelo de desarrollo

SCRUM para la adopción de su marco de desarrollo por etapas, hibridándolo con

la metodología RUP, y cómo se realiza el manejo y distribución de tareas y los

esfuerzos estimados asociados al proceso de desarrollo del prototipo.

Los alcances y limitaciones tanto del proceso de investigación como del prototipo

de aplicación Web contienen la descripción del proceso de desarrollo por fases

y los recursos tecnológicos y de talento humano implicados, así como la

estimación de presupuestos y tiempos por cada fase del desarrollo.

7

1. PLANTEAMIENTO DEL PROBLEMA

1.1 Descripción del problema

El emprendimiento de proyectos agrícolas es una tarea altamente compleja en

la cual se debe considerar un amplio número de variables interrelacionadas,

como lo son: las propiedades geográficas que posee la localización

seleccionada; las características biológicas (el tiempo de crecimiento de la

especie a cultivar y parámetros fisicoquímicos, es decir, humedad y niveles de

nutrientes del suelo, etc.); aspectos del sistema de cultivo (fertilización y

fumigación), entre otras. Además, se requiere comprender el funcionamiento del

mercado para estimar los ingresos a obtener, de acuerdo a la inversión de tiempo

y dinero en el proyecto.

Asimismo, es importante tener en cuenta inconvenientes como la violencia en

las regiones rurales y, los que quizá sean los más críticos para el sector agrícola

en el país: la relación entre costes de producción, los bajos ingresos relacionados

a la pérdida de los cultivos y las constantes variaciones en los precios. Estos

últimos, ante todo, llevan a los pequeños productores a asumir grandes pérdidas,

muy comunes en proyectos de pequeña envergadura. Este no es un problema

aislado, ya que la falta de capacidad competitiva por parte de estos pequeños

productores afecta múltiples sectores económicos en la región, especialmente al

transporte, la comercialización y el procesamiento de alimentos [2].

Por último, y no menos relevante, la seguridad alimentaria supone un problema

a nivel social, puesto que, tanto en Colombia, como a nivel global, el acceso a

una buena alimentación es un privilegio del que gran parte de la población debe

prescindir. En los últimos 55 años, el crecimiento demográfico se ha duplicado,

crecimiento que no ha sido proporcional al aumento de tierras cultivables y

cultivadas, las cuales, durante el mismo lapso de tiempo, han incrementado en

un escaso 1,1%. Esto se debe a numerosas razones, entre ellas, el

decrecimiento en el número de agricultores causado por la migración masiva del

campesinado hacia centros urbanos y la pérdida de terrenos cultivables por un

manejo incompetente de los suelos, que asolan la estructura natural del suelo y

aceleran la pérdida de la materia orgánica [4]. Ahora, si se tiene en cuenta que

el sector agrícola es uno de los principales en materia económica y laboral en

nuestro país (solamente en Cundinamarca alcanzó el 23% del PIB de la región

con un aporte de $633 mil millones de pesos para el año 2010 [5] [6]) resulta

fundamental ofrecer soluciones que ayuden a la conservación y buena utilización

de los terrenos cultivables.

8

Fig. 1 Población global en miles de millones de personas (1960-2016). Fuente: [2].

Fig. 2 Porcentaje de terrenos cultivables a nivel global (1960-2016). Fuente: [3].

9

1.2 Características del problema

Colombia se ha caracterizado desde sus inicios por ser un país agrario. Según

estadísticas del banco mundial [4] y el Censo Nacional Agropecuario realizado

por el DANE en el 2014 [5]. Si bien el área dedicada a uso agropecuario alcanza

40,6 % del territorio. Solo 7,1 millones de hectáreas equivalentes al 6,3 % son

áreas cultivadas con lo cual el país se encuentra en riesgo de una crisis en

seguridad alimentaria ante el uso extensivo de tierras para cultivos de

biocombustibles, los cuales aportan a disminuir el consumo de combustibles

fósiles, pero compiten con los cultivos alimenticios no solo por el terreno sino

también por sus insumos como pesticidas y fertilizantes [6].

El abandono del sector agrícola en el país se ha dado tanto por parte del sector

público, donde se ha fallado en ofrecer soluciones a largo plazo al problema del

decaimiento progresivo del campo. Como por parte del sector privado el cual

favorece la importación de productos extranjeros los cuales ofrecen precios

competitivos y para los cuales la producción nacional no se ha encontrado en la

capacidad técnica de ofrecer una respuesta competitiva que llame la atención de

los inversores en el sector.

El ministerio de agricultura se comprometió a lograr para el año 2018 un aumento

en un millón de hectáreas en las tierras cultivadas, con lo cual se espera mejorar

las condiciones de vida de 1,7 millones de personas que viven del sector agrario

en el país [7]. Gran parte de estos recursos se esperan enfocar en el

otorgamiento de créditos blandos y el fortalecimiento de sistemas de riego que

si bien son necesarios para el éxito de los proyectos de producción agrícola no

son suficientes por sí solos. Debido a que estos proyectos carecen de las

herramientas tecnológicas para la toma de decisiones eficientes, lo que los hace

altamente vulnerables a problemas de implementación y ejecución.

El altiplano Cundiboyacense es, por lo tanto, un espacio ideal para el desarrollo

y financiación de proyectos agrícolas, puesto que se conforma de tierras en su

mayoría de cultivo con una altura superior a los dos mil metros sobre el nivel del

mar. Este es un territorio rico en recursos hídricos y con una temperatura

promedio de 14 grados centígrados. Contiene un amplio mercado objetivo

incluyendo las ciudades de Bogotá y Tunja junto con otras varias con

poblaciones superiores a los cincuenta mil habitantes, con su ubicación céntrica

en el país ofrece tanto los espacios necesarios como una oportunidad

socioeconómica altamente llamativa.

10

1.3 Formulación del problema

¿Cómo estimar las alternativas de desarrollo de los proyectos agrícolas en la

región cundiboyacense a partir de información disponible de diversas fuentes de

datos geográficas y estadísticas, para contribuir con el desarrollo sostenible de

la región a nivel económico y de sus agroecosistemas?

11

2. OBJETIVOS

2.1 Objetivo general

Establecer el modelo de un prototipo de aplicación web que implemente la

incorporación de resultados de múltiples fuentes de datos de acceso libre, en

diversos formatos de información geográfica, meteorológica y demás variables

relacionadas al proceso de producción agrícola. Combinando datos de factores

relevantes tales como características geográficas, niveles de precipitaciones,

características biológicas de las variedades de plantas y costos asociados al

proceso del cultivo. Para obtener una herramienta que contribuya con la

estimación de los niveles de producción de un proyecto agrícola en el altiplano

cundiboyacense y las ganancias a esperar como resultado al poner en el

mercado el producto. Así como el impacto agroecológico resultado del proceso

tomando como base la norma NTC-ISO 14001:2015 para sistemas de gestión

ambiental.

2.2 Objetivos específicos

• Identificar los requerimientos de información analizando sus

características para determinar su nivel de importancia en el desarrollo de

un proyecto agrícola.

• Analizar los procedimientos requeridos para la obtención y extracción de

datos de diversos orígenes de datos, tales como informes nacionales de

producción, servicios de información climatológica, propiedades

biológicas de las plantas e históricos de precios.

• Generar un prototipo de aplicación web con la capacidad de servir como

estructura base para el desarrollo de una aplicación de mayor complejidad

y contener las características generales del producto objetivo del proceso

de forma que retorne una respuesta aproximada del nivel de producción

de un proyecto agrícola.

• Proponer un modelo que permita mejorar la toma de decisiones en la

selección de cultivos para un determinado agro ecosistema.

12

3. JUSTIFICACIÓN

Debido a la competitividad a nivel global de la producción agrícola, se tiene la

necesidad de implementar un sistema de toma de decisiones que ofrezca a los

productores una mayor certeza en la selección de los productos a cultivar, así

como la inversión necesaria para el cuidado, recolecta y puesta en distribución

del producto. Y con esta información estimar el margen de ganancias esperado

al realizar una inversión y las probabilidades de los distintos riesgos que se han

de afrontar en el desarrollo del proyecto.

El país vive un periodo de gran oportunidad para el desarrollo del campo

colombiano. Los tratados de libre comercio han beneficiado fundamentalmente

a los sectores de la producción de bienes y han beneficiado la prestación de

servicios. El país cuenta con la ventaja de poseer todos los recursos necesarios

para una industria agraria potente. El beneficio del aumento en la demanda en

los países en desarrollo, siendo uno de los siete países en Latinoamérica con

mayor potencial de tierras cultivables.

Aprovechar la oportunidad de convertir al país en una potencia agrícola del

sector requiere del desarrollo de tecnologías para el área. Este proyecto

pretende dar uso de los conjuntos de información disponible en el país ofertados

por diversas organizaciones gubernamentales y de carácter privado. Para

ofrecer a los productores de la región la información necesaria que mejore la

toma de decisiones en los proyectos agrícolas que emprenden.

El campo es el sector más golpeado por la pobreza y la violencia en el país. El

44,7% de la población en el campo vive en la pobreza, casi tres veces más que

en las ciudades. Más del 80% de los cultivadores no tiene acceso a la tecnología

necesaria [9]. El mayor potencial para enfrentar estas dificultades está en el 16%

de terrenos que obedecen a cultivos transitorios como maíz arroz papa y

hortalizas y desde el cual se pueden solventar las necesidades de importación

en comida y garantizar la seguridad alimentaria en el país [8].

El proyecto implementa los conocimientos de la ingeniería de sistemas para

apoyar la producción de cultivos a partir de estimación de datos, para la

obtención de análisis e información relevante en la selección de cultivos, la

medición de los niveles de humedad y pesticidas requeridos, el impacto climático

y estacional sobre los cultivos, así como los niveles de producción esperados del

desarrollo de un proyecto agrícola.

13

4. ALCANCES Y LIMITACIONES

En este capítulo se realiza la estimación de qué se espera alcanzar con el

proyecto propuesto y la generación del prototipo de aplicación web. Se considera

el alcance y limitaciones en términos de las características del prototipo y el

resultado de las etapas y esfuerzos contemplados en el proyecto.

4.1 Alcances

Se establece la distancia a la cual se espera llegar con esta propuesta de

proyecto, incluyendo el estado de desarrollo del software.

• El planteamiento, análisis y diseño del prototipo con el manejo de las

variables de mayor relevancia para el proyecto de las cuales existe

información disponible.

• El desarrollo exploratorio del prototipo evolutivo con base en los

requerimientos y entendimiento del sistema obtenidos en la etapa de

análisis.

• La revisión de los resultados obtenidos por medio del proceso y el

producto (prototipo) para formalizar y evaluar la experiencia obtenida del

problema.

4.2 Limitaciones

El proyecto se limita a:

• El desarrollo del software hasta la obtención de un prototipo evolutivo

funcional para un conjunto restringido de datos e interacciones

disponibles.

• El consumo de fuentes de datos externas, tales como los servicios en la

nube, se encuentra restringido a su disponibilidad, tanto de software libre,

como de accesibilidad, actualización y disponibilidad de datos.

• La precisión y exactitud de los resultados dependerá de la calidad de los

datos obtenidos a la entrada del sistema.

• Las necesidades y funcionalidades de la aplicación, estas pueden

redefinirse durante las etapas del proyecto, tal como se estima con la

implementación de una metodología ágil.

14

5. MARCO TEÓRICO CONCEPTUAL

El presente capítulo contiene la investigación realizada de las características del

mercado agrícola en general y de la región cundiboyacense, así como sus

necesidades en el contexto tecnológico. Los componentes de datos requeridos

para la formulación de los modelos de las entidades que componen el modelado

de los cultivos.

5.1 Agroecología y agroecosistemas

La agroecología se define como una disciplina científica, un conjunto de prácticas

y un movimiento social. Como ciencia, estudia cómo los diferentes componentes

del agroecosistema interactúan. Cómo un conjunto de prácticas, busca sistemas

agrícolas sostenibles que optimizan y estabilizan la producción. Cómo

movimiento social, persigue papeles multifuncionales para la agricultura,

promueve la justicia social, nutre la identidad y la cultura, y refuerza la viabilidad

económica de las zonas rurales. Los agricultores familiares son las personas que

tienen las herramientas para practicar la Agroecología [9]. La agroecología

procura por encima de las prácticas de manejo, interrelacionar las diversas

propiedades de los agro ecosistemas. Productividad, estabilidad, sostenibilidad

y equidad [10].

5.2 Oportunidades de la agroecología

Debido a que la actividad de cultivar es una acción de mayor importancia en la

influencia de los ecosistemas naturales [11], el cultivo influencia tanto el clima

como los procesos desarrollados en el suelo y la cuota de material orgánico

presente dependiendo del tipo de cultivo producido. Entre mayores son estos

cambios al ecosistema, mayores se hacen los esfuerzos requeridos por el ser

humano para mantener el equilibrio en el sistema agrícola.

Se ha encontrado que el sistema tradicional de cultivo basado en la labranza del

suelo resulta en mayores desequilibrios ecológicos y puede decaer en una menor

sostenibilidad a largo plazo, comparado con sistemas de agricultura de menor

perturbación (Low External Input Agriculture, LEIA).

Los sistemas LEIA se caracterizan por una alta diversidad genética y el uso

eficiente de los nutrientes y el reciclaje mineral [11]. Existen múltiples

aproximaciones a la agricultura sostenible con la meta de reducir la degradación

ambiental, por medio de las tecnologías de cultivo adecuadas.

La investigación de alternativas biológicas para mantener y optimizar los cultivos

se ha convertido en una necesidad de alta prioridad en vista del incremento de

15

problemas tales como el filtrado de nitrato en el suelo, el manejo de fuentes de

agua, la degradación del suelo y el decremento en los niveles de producción.

Para poder encontrar alternativas para diferentes entornos con distintas

prácticas en el manejo de cultivos es requerido analizar sus funciones y su

influencia en la nutrición de las plantas y la estabilidad del suelo. Por otra parte,

para comprender cómo las prácticas en la agricultura pueden contribuir a una

fertilidad y productividad sostenida de los suelos productivos requiere del

conocimiento de las redes de comportamientos del interior del suelo.

La importancia de la biota del suelo para sostener la fertilidad y productividad de

éste ha sido el objetivo de múltiples programas en la ecología de los suelos

cultivables. Tanto la agroecología como sus sistemas de cultivo, han contribuido

enormemente a lo largo de unos cuantos años al diseño sostenible de

agroecosistemas.

Más recientemente el análisis espacial ha sido usado para predecir suelos en

regiones con terrenos de diversos niveles de productividad para ayudar a los

cultivadores a decidir qué tipo de cultivos realizar con qué densidad y en qué

épocas del año.

La revolución de la biodiversidad y la agroecología debería resultar en la

definición de un nuevo conjunto de principios-guía para optimizar los parámetros

en las técnicas de la agricultura, las cuales apuntan a que la preservación de la

biodiversidad tanto como a la productividad, deben ser capaces de balancear su

rendimiento contra las limitaciones tanto ecológicas como socio económicas.

5.3 Características destacadas en la implementación

del enfoque de la agroecología

La base de la agroecología se encuentra en aplicar conceptos y principios

ecológicos con el fin de optimizar las interacciones entre las plantas, los animales,

los seres humanos y el medio ambiente, teniendo en cuenta al mismo tiempo los

aspectos sociales que deben abordarse para lograr un sistema alimentario justo

y sostenible. Mediante la creación de sinergias, la agroecología puede apoyar la

producción de alimentos, la seguridad alimentaria y la nutrición a la vez que

restaura los ecosistemas y la biodiversidad que son esenciales para una

agricultura sostenible. En consonancia con el enfoque de la agroecología la FAO

determino 10 elementos clave, derivados de los principios generales

establecidos para la agroecología que incluyen los factores ecológicos y

socioeconómicos más determinantes en la formulación [12].

16

5.3.1 Eficiencia

Si se usan los insumos con mayor eficiencia, se necesitarán menos recursos

externos y se reducirán los efectos negativos de su uso. Esto no solo permitirá

proteger la biodiversidad sino también reducir los costos de producción. Este ha

sido el centro de la atención de gran parte de la investigación agrícola tradicional,

que ha facilitado el desarrollo de muchas tecnologías y prácticas agrícolas.

Puede ser un primer paso en la transición a sistemas agroecológicos,

especialmente cuando se usa para mejorar los procesos biológicos. La eficiencia,

cuando se logra por medio de la optimización de los procesos biológicos, no es

una función de la producción económica por unidad de insumo, sino una cualidad

emergente de un ecosistema que usa y genera sus recursos internos y, en

consecuencia, no permite “fugas” al medio ambiente de recursos no utilizados,

tales como nutrientes, que ocasionan una contaminación grave [13].

5.3.2 Equilibrio

Los ecosistemas naturales tienen la capacidad de autorregularse y de lograr un

equilibrio natural entre las plagas, las enfermedades y los enemigos naturales.

Los enfoques agroecológicos (y muchos enfoques tradicionales) consideran los

problemas relacionados con las plagas como un síntoma de un sistema

desequilibrado y se preguntan cómo se puede restablecer el equilibrio por medio

del diseño del sistema, de manera que la explotación agrícola pueda funcionar

basándose en principios ecológicos. La agroecología, en lugar de centrarse

exclusivamente en controlar y regular una plaga específica, busca mejorar la

comunidad de organismos que pueden ofrecer retroalimentación e interacciones

complejas para amortiguar los brotes de plagas [14].

5.3.3 Diversidad

En un sistema agrícola, la diversificación es una condición en la que diferentes

elementos funcionan de manera armónica, cumpliendo cada uno de ellos una

función ecológica específica. Esta diversificación puede lograrse de diferentes

maneras: aumentando las especies y los recursos genéticos, en múltiples niveles

o estratos (diversidad vertical), y aumentando la diversidad espacial y temporal.

El valor de la diversificación para velar por la sostenibilidad de la agricultura es

un campo en crecimiento, y diversos estudios han demostrado que, en áreas

sujetas a escasez de agua, la diversidad de los cultivos reduce el riesgo de malas

cosechas y otras crisis relacionadas con el clima [15].

5.3.4 Creación conjunta de conocimientos

La agroecología se basa en la combinación de conocimientos tanto científicos

como tradicionales a modo de procesos complementarios. Combina diferentes

disciplinas y agentes con miras a encontrar soluciones innovadoras para

17

sistemas de producción sostenibles. Se precisa la creación conjunta de

conocimientos para facilitar las transiciones agroecológicas, y la titularidad de los

conocimientos debería protegerse por medio de instrumentos adecuados. La

educación, ya sea formal o informal, desempeña un papel fundamental en la

promoción de la creación conjunta de conocimientos y debería compartirse en

forma horizontal [16].

5.3.5 Reciclado de nutrientes

La agroecología se basa en el principio de que el flujo y ciclo de nutrientes de un

sistema agrícola debería mejorar el sistema por medios biológicos. La biomasa

por encima del suelo se gestiona para mantener y restaurar la fertilidad natural,

aun en suelos degradados. La diversidad funcional por debajo del suelo se

mejora por medio de la amplificación de los ciclos biogeoquímicos del suelo,

reciclando los nutrientes del perfil del suelo y aumentando la actividad microbiana

[17].

5.3.6 Sinergias medioambientales

Sacar provecho de las sinergias en los sistemas alimentarios, tales como las

sinergias entre las personas y en la gestión de los diferentes componentes del

sistema, puede aportar una gran fortaleza. La agroecología hace hincapié en una

cuidadosa atención al diseño de los sistemas. Por ejemplo, mediante el

ensamblaje de cultivos, animales, árboles, suelos y otros factores en esquemas

diversificados en el tiempo y el espacio, el agroecosistema puede favorecer su

propia capacidad para aumentar la fertilidad del suelo, la regulación natural de

plagas, la productividad de los cultivos y el empoderamiento de la comunidad

[18].

5.3.7 Economía circular

Los ingresos (sean monetarios o no monetarios) deben ser justos y suficientes

para sostener los medios de vida y garantizar la seguridad alimentaria y el

bienestar. La agroecología es un enfoque multifuncional respecto a la agricultura

que produce bienes y servicios de manera justa y sostenible, promoviendo las

economías locales. El concepto de economía circular va más allá de la

producción y el consumo de bienes y servicios exclusivamente: busca soluciones

justas basadas en las necesidades, los recursos y las capacidades locales,

creando mercados equitativos y sostenibles [19].

18

5.3.8 Cultura y tradiciones alimentarias

La agricultura es una parte esencial del patrimonio de la humanidad. En este

sentido, las tradiciones alimentarias cumplen una función esencial en la sociedad.

No obstante, en muchos lugares, nuestros sistemas alimentarios actuales han

creado una desconexión entre los hábitos alimentarios y la cultura. Esta

desconexión ha contribuido a una situación en la que coexisten la malnutrición y

la obesidad, en un mundo que produce alimentos suficientes para alimentar a

toda su población. Aumentar exclusivamente la producción no es suficiente para

eliminar el hambre y la inseguridad alimentaria. La agroecología desempeña un

papel importante con vistas a volver a conectar la tradición y los hábitos

alimentarios modernos, uniéndolos de una manera armoniosa que promueve la

producción y el consumo de alimentos saludables y respalda el derecho a una

alimentación adecuada [20].

5.3.9 Gobernanza de la tierra y los recursos naturales

A fin de garantizar que los sistemas alimentarios sean justos e inclusivos, los

agricultores y los productores de alimentos deben tener acceso a los recursos

naturales y genéticos, entre ellos las tierras y el agua. El acceso al agua es

fundamental: la agricultura usa el 70 % de las extracciones de agua mundiales,

a menudo en forma ineficiente, y esta situación está poniendo en peligro los

sistemas alimentarios y la seguridad hídrica de las poblaciones rurales. Por otro

lado, la agroecología promueve el uso justo y eficiente de las aguas superficiales

y subterráneas. Garantizar la tenencia de la tierra es esencial para mantener un

sistema alimentario funcional y sostenible [21].

5.3.10 Valor humano y social

Los valores humanos y sociales deben ocupar un lugar esencial en la

determinación de nuestros sistemas alimentarios. No obstante, a menudo se los

descuida. La agroecología hace hincapié en los valores humanos y sociales,

tales como los conocimientos locales y empíricos de los agricultores y las

comunidades situados en el mismo centro de la producción de alimentos, y en el

intercambio de estos conocimientos para empoderar a las comunidades. Para

determinar los niveles para la transición a sistemas alimentarios más justos y

equitativos, se requieren cambios en las percepciones y las acciones. Estos

cambios deberían respetar un abanico de valores, tales como costos externos y

beneficios, que son una consideración importante para la adopción de decisiones

sobre los sistemas alimentarios sostenibles [22].

19

5.4 Contribución de una aplicación web en el fomento

de la agroecología

La contribución de la aplicación web permite la implementación y fomento de

tecnologías sostenibles para la agricultura en la región del altiplano

cundiboyacense. Por medio de la implementación de esta aplicación es posible

ofrecer plataforma tecnológica que actúe como puente entre profesionales con

conocimientos transversales al área de la agricultura y cultivadores de la región.

Mejorando la disponibilidad de la información.

5.4.1 Eficiencia

El manejo de una propuesta en los niveles de aplicación tanto de fertilizantes

como de plaguicidas, ofrece a los agricultores la capacidad de optimizar la

inversión en los insumos requeridos disminuyendo sus costos a la vez que se

disminuye la exposición del suelo a agentes químicos adicionales.

5.4.2 Equilibrio

El manejo de información local acerca de las plagas y características del

ecosistema permite un mejor manejo general del impacto del cultivo en el

ecosistema.

5.4.3 Sinergias

El manejo de la información de los cultivos de una comunidad de forma

simultánea otorga la capacidad de regular la proporción de cultivos existentes

para mejorar la fertilidad del suelo y los tiempos de los cultivos que interactúan

en una región.

5.4.4 Cultura y tradiciones alimentarias

La inclusión de información nutricional de los cultivos en una comunidad permite

contribuir con la seguridad alimentaria creando una red de contribución para

garantizar la disponibilidad de alimentos en una población.

20

5.5 ISO 14001 – Sistema de gestión para el manejo

ambiental

La norma ISO 14001 y la familia de normas ISO 1400 proveen un conjunto de

estándares para el manejo de todo tipo de responsabilidades medio ambientales.

El estándar actual ISO 14001:2015 se enfoca en el sistema ambiental necesario

para lograr cumplir responsabilidades específicas de los desafíos relacionados

a la conservación ecológica [23].

5.5.1 Sistema de manejo ambiental

Un sistema de manejo ambiental ayuda a la identificación manejo y monitoreo

de sistemas ambientales por medio de una aproximación holística al problema

[24]. Su aplicación es por tanto adecuada para proyectos de diversas escalas

relacionados con interacciones con el entorno tal como el manejo del agua y la

contaminación de los suelos.

5.5.2 Beneficios claves de la ISO 14001

Algunos de los beneficios claves de la implementación de la ISO 14001 en el

desarrollo de un proyecto son [24]:

• Demostrar cumplimiento con el presente y futuro requisitos legales y

reglamentarios.

• Mejorar la reputación y la confianza de los interesados a través de la

comunicación estratégica.

• Lograr objetivos comerciales estratégicos incorporando problemas

ambientales en la gestión.

• Proporcionar una ventaja competitiva y financiera a través de eficiencias

mejoradas y costos reducidos.

5.5.3 Modelo PLANIFICAR - HACER - VERIFICAR - ACTUAR

La base para el enfoque que subyace a un sistema de gestión ambiental se

fundamenta en el concepto de Planificar, Hacer, Verificar y Actuar (PHVA). El

modelo PHVA proporciona un proceso iterativo usado por las organizaciones

para lograr la mejora continua. Se puede aplicar a un sistema de gestión

ambiental y a cada uno de sus elementos individuales, y se puede describir

brevemente así [25]:

21

• Planificar: establecer los objetivos ambientales y los procesos necesarios

para generar y proporcionar resultados de acuerdo con la política

ambiental de la organización.

• Hacer: implementar los procesos según lo planificado.

• Verificar: hacer el seguimiento y medir los procesos respecto a la política

ambiental, incluidos sus compromisos, objetivos ambientales y criterios

operacionales, e informar de sus resultados.

• Actuar: emprender acciones para mejorar continuamente.

5.6 Geomática y ciencia geoespacial

La Geomática es una disciplina que engloba las Geociencias con la integración

y aplicación de las tecnologías de la información y la comunicación (TIC). Esta

suma de Geociencias con las TIC hace posible la captura, procesamiento,

análisis, interpretación, almacenamiento, modelización, aplicación y difusión de

información digital geoespacial o localizada, aplicable en los ámbitos de la

ingeniería, el territorio y la sociedad [26].

5.6.1 Sistemas de información geográfica (GIS)

Un sistema de información geográfica (GIS) es un sistema para capturar,

almacenar, verificar y mostrar datos relacionados con posiciones en la superficie

de la Tierra. Al relacionar datos aparentemente diversos, un GIS puede ayudar

a las personas y organizaciones a comprender mejor los patrones espaciales y

las relaciones. La tecnología GIS es una parte crucial de la infraestructura de

datos espaciales.

La tecnología GIS permite que todos estos tipos de información diferentes, sin

importar su fuente o formato original, se superpongan uno encima del otro en un

solo mapa. Los GIS utilizan la ubicación como la variable de índice clave para

relacionar estos datos aparentemente no relacionados.

Poner información en un SIG se llama captura de datos. Los datos que ya están

en formato digital, como la mayoría de las tablas e imágenes tomadas por

satélites, pueden simplemente cargarse en GIS. Sin embargo, los mapas primero

se deben escanear o convertir a formato digital [27].

5.6.2 QGIS

QGIS es un sistema de información geográfica (GIS) el cual permite ver editar y

analizar información geográfica para el análisis geoespacial en distintos formatos

tanto ráster como vectoriales. Para la implementación de este proyecto se

implementó QGIS para la extracción de datos geográficos gracias a sus módulos

para obtención de tablas para base de datos relacionales (PostgreSQL y MySQL).

22

5.6.2.1 Licenciamiento de QGIS

Como software bajo la licencia GNU (tanto QGIS como sus módulos adicionales)

QGIS permite la exportación de datos para su consumo y análisis en las demás

etapas del proyecto, sin restricciones legales para publicación libre.

5.6.2.2 QGIS server

QGIS server es una aplicación que usa QGIS para la implementación del

backend. Facilita la capacidad de exportar capas o tablas de datos para

proveerse como servicio en un proyecto en la nube.

5.6.2.3 QGIS Cloud Hosting

QGIS Cloud es una infraestructura en la nube para el manejo de datos espaciales

(SDI) en Internet. Publicar proyectos QGIS como mapas y datos, compartir datos

espaciales con otros sin la implementación directa de un servidor, infraestructura

o conocimiento experto. Con QGIS Cloud Free, todos los mapas publicados en

Internet son de libre acceso para cualquiera, sin costo alguno [28].

5.6.3 Información geográfica de la región del altiplano

cundiboyacense y la región andina oriental

Esta región está conformada por los departamentos de Boyacá, Cundinamarca,

Norte de Santander, Santander, Tolima, Huila y la ciudad de Bogotá. Comprende

el 37% de la población de Colombia, en 450 municipios y dos distritos, abarcando

un territorio de casi 145.000 kilómetros cuadrados, el 12.7% del total del país.

Su relieve, típico andino, es tan abrupto como variado. Comprende las cordilleras

Oriental y Central, parte de la Occidental, los altiplanos y las superficies medias

y bajas que se encuentran entre ellas como son los valles de diversos ríos y la

planicie aluvial del Magdalena, también una porción del Piedemonte Llanero y

algunas subregiones independientes. De la misma manera, está rodeada y por

lo tanto integrada con las regiones de la Amazonía, al sur, la Orinoquía, al oriente,

la Pacífica al occidente, la Andina Occidental al occidente y la Caribe al norte, y

comparte una dinámica frontera terrestre internacional con Venezuela, al

nororiente. Sin embargo, tal como sucede con el paisaje físico, al interior de la

región hay una gran diversidad en todos los aspectos sociales y económicos,

pese a girar alrededor de la capital del país y sus principales mercados [29].

23

5.6.3.1 Mapa de uso de suelos

El mapa de uso propuesto del suelo rural, fue generado mediante contrato de

consultoría adelantado en el año 2007 por la Secretaría de Planeación de la

Gobernación de Cundinamarca, el cual buscaba articular la información

producida en cada uno de los 116 planes de ordenamiento municipal que

conforman el departamento de Cundinamarca [30]. El mapa contiene

información de áreas protegidas, clasificación de suelo, usos propuestos del

suelo y áreas definidas para vivienda de interés social (VIS), entre otras y se

generó en escala 1:25.000.

Fig. 3 Mapa de la representación del uso de suelos propuesto para Cundinamarca en el año 2007. Fuente: [31].

5.6.3.2 Mapa de tipos de suelos

Los suelos en Colombia son diversos y frágiles, cuenta con 11 de los 12 órdenes

de suelos existentes en el mundo a excepción de Gelisoles. Se destacan los

suelos incipientes, poco evolucionados con un 58.11 % correspondientes a los

órdenes entisoles e inceptisoles (IGAC, 2012). Igualmente, tienen una

representación considerable del 28.79% los suelos muy evolucionados, pocos

fértiles como los Ultisoles y los Oxisoles. Los mejores suelos agrícolas (andisoles

y molisoles) apenas cubren 8.5 millones de hectáreas, equivalente al 7.5% del

territorio nacional. De otro lado, no existen suelos de la clase agrológica 1 en

Colombia y los de clase 2, 3 y 4 cubren un área de 17.073.144 hectáreas

equivalentes al 15 % del territorio continental [32].

24

Fig. 4 Mapa de tipos suelos de la región del altiplano cundiboyacense. Fuente: [33].

Mapa de agrología

La conservación y el manejo sostenible del suelo son indispensables para lograr

el bienestar de la población y está interrelacionado con el éxito o el fracaso de

numerosas políticas públicas de los sectores agropecuario, minero, de vivienda,

desarrollo urbano y agua potable, de industria y comercio, de transporte, salud,

entre otros. Adicionalmente, la gestión sostenible del suelo es fundamental para

consolidar los procesos de paz en el país.

Teniendo en cuenta lo anterior, se construyó la Política para la Gestión

Sostenible del Suelo [34] con la participación de actores del orden nacional,

regional y local, la cual busca promover la gestión sostenible del suelo en

Colombia, en un contexto integral en el que confluyan la conservación de la

biodiversidad, el agua y el aire, el ordenamiento del territorio y la gestión de

riesgo, contribuyendo al desarrollo sostenible [35].

Fig. 5 Mapa de tipos suelos de la región del altiplano cundiboyacense. Fuente: [33].

25

5.7 Sistema de información geográfica de suelos

Soilgrids.

Soilgrids es un sistema para el mapeo automático de perfiles de suelo a nivel

global. Ofrece predicciones espaciales utilizando un sistema de mapeo

automatizado. También incluye una colección de Mapas y perfiles de suelos

actualizados utilizando una combinación de Machine Learning y estadísticas

recolectadas.

Esta información es producida por medio de la colaboración de los participantes

en la Global Soil Partnership Initiative (Iniciativa de acompañamiento global para

suelos) [36]. Esta iniciativa se desarrolló sobre el problema actual de las crisis

de la producción alimenticia relacionada al precio de los alimentos, el cambio

climático y las crisis económicas.

5.7.1 Componentes del sistema geográfico de suelos Soilgrids:

• SoilGrids250m. Un sistema de información global tridimensional a una

resolución espacial de 250m. Actualmente se encuentra en desarrollo.

• SoilGrids núcleo. Un sistema para la automatización del mapeo de datos

geográficos para la predicción de las características del suelo.

• SoilGrids.org / SoilInfo App / SoilGrids REST API. Conjunto de

servicios en la nube para el acceso a información por medio de mapas y

estadísticas.

• Global Soil Information Facilities (GSIF). Ciber infraestructura para el

mapeo de los datos espaciales y el modelado de las características del

suelo.

5.7.2 Características adicionales de Soilgrids

• Soilgrids posee un conjunto de módulos automatizados para realizar el

mantenimiento y actualización de la plataforma que incluye mapas y

demás información de suelos relacionada.

• Mapas del suelo actualizables sin intervención humana con la

implementación de bases de datos geográficas regionales.

• Adicionalmente a la adición de datos. El control y calidad de datos de los

mapas son actualizados automáticamente a medida que se obtiene nueva

información de los suelos.

• Se pueden realizar comparaciones entre los diferentes GeoTiffs

disponibles.

26

5.7.3 Sistema de mapeo global automático de suelos

El mapeo automático de Soilgrids implica una aproximación Top-Down. La

estrategia de procesamiento de información en Soilgrids formula una estimación

general de las características del suelo a nivel global, estas se hacen con base

a los tipos de suelos esperados a nivel global y a partir de esta se realizan las

estimaciones regionales específicas de las propiedades del suelo tomando los

siguientes principios:

• La predicción basada en características del suelo, acorde con un conjunto

de modelos estadísticos.

• Ajuste del modelo a las características específicas.

• Comparar las características obtenidas con las predicciones esperadas.

5.7.4 Generación de leyendas informativas

Al acceder a Soilgrids la información representada es dada por una escala de

colores la cual representa los niveles de concentración de las diferentes variables

con una escala generada a partir de la estimación global de las mismas.

Fig. 6 Espectro de colores utilizados en la representación de concentraciones en Soilgrids. Fuente: [37].

5.7.5 Generación de las predicciones

Para la aplicación de las predicciones Soilgrids utiliza diferentes técnicas de

aprendizaje para maquinas, a partir de los datos obtenidos a nivel regional y a

partir de técnicas para la predicción de modelos tales como Gradient Boosting y

Random forest.

27

5.7.5.1 Random forest:

La técnica de Random forest es una optimización sobre la técnica de árboles de

decisión por pesos. Se selecciona que variable dividir por medio de un algoritmo

voraz que minimiza el error. Es una de las técnicas más populares para

aprendizaje de máquinas al consistir en un método de clasificación y regresión

combinado [38].

El algoritmo obtenido por medio de Random forest puede ser utilizado para

organizar las variables por importancia durante el proceso de clasificación,

Permitiendo la exclusión de variables irrelevantes, produciendo un modelo más

robusto.

5.7.5.2 Gradient boosting:

Es una técnica de aprendizaje para maquinas basada en el principio de que a

partir de un aprendizaje débil es posible realizar modificaciones para obtener un

resultado mejor, de esta forma se produce un modelo en forma de árbol de

decisión. La estrategia general del algoritmo es la selección de “costos”

adecuados por medio de un proceso combinado de gradiente y regresión [39].

Gradient Boosting involucra tres elementos para obtener la estrategia de

clasificación:

• Función de perdida: La función de perdida es una función que mapea

los valores de las variables involucradas asignando números reales para

realizar una clasificación por costos asociados a la función.

• Aprendizaje débil o “Weak Learner”: El aprendizaje débil en

clasificación se caracteriza por ser computacionalmente simple y de una

precisión ligeramente superior a una clasificación aleatoria. Es a partir de

este aprendizaje inicial que se realiza la búsqueda de la optimización del

proceso de clasificación.

• Modelado aditivo: El modelado se realiza bajo la premisa de adicionar

arboles uno a la vez y no modificar los arboles existentes. Esto deriva en

la obtención de sub-modelos que minimizan el número de parámetros.

28

5.7.6 Datos que se encuentran incluidos en la predicción

La predicción obtiene la mayoría de características básicas del suelo basadas

en las categorías de tipos de suelos estimados por la FAO. Estas propiedades

varían dependiendo del manejo que recibe el suelo, se encuentran separadas en

3 subcategorías; propiedades físicas, químicas y biológicas [40].

Propiedades físicas:

• Estructura del suelo.

• Profundidad del suelo.

• Humedad y lluvia.

Propiedades químicas:

• Carbón orgánico.

• Nitrógeno.

• PH.

• Concentración de otros componentes químicos.

Propiedades biológicas:

• Ciclo del carbono.

• Ciclo del nitrógeno.

5.7.7 Fusión de datos en Soilgrids

Para fusionar los datos y obtener los resultados combinados con los conjuntos

de datos de ubicaciones locales se utiliza la siguiente estructura.

Fig. 7 Diagrama del modelo de ensamblado de predicciones en Soilgrids. Fuente: [37].

29

En general el proceso consiste en la toma de variables y datos por resolución

combinando los datos a partir de la predicción global para su implementación en

el algoritmo de predicción de tipos de suelos. Una vez el resultado es obtenido y

su desviación estimado se procede a implantar en la capa global del mapa.

El resultado es entonces accesible por medio de APIs disponibles que ofrecen

respuesta en formato JSON o XML y que puede ser consultado también

directamente en el mapa en la página principal de Soilgrids. Los siguientes

diagramas representan la ubicación de una fuente de datos locales con

mediciones obtenidas por las entidades locales correspondientes.

Fig. 8 Datasets Disponibles a nivel global. Fuente: [37].

5.7.7 Nivel de precisión esperado en la predicción de datos.

Según estimaciones de Soilgrids el nivel de precisión estimado se encuentra

entre el 30% y 70%. Las predicciones incluyen los niveles de fiabilidad estimados.

Teniendo en cuenta información de las mediciones. Esta estimación es

constantemente mejorada de acuerdo con los modelos existentes, con la

información ofrecida por las autoridades locales y demás fuentes disponibles [37].

5.8 Ciencias de la agricultura

La agricultura es el cultivo y reproducción de plantas, animales y hongos para la

obtención de productos que mejoran la calidad de vida humana. La agricultura

moderna hace uso de tecnologías como la selección de plantas, agroquímicos

tales como pesticidas y fertilizantes. Estos poseen la capacidad de mejorar el

producto de los cultivos, pero a su vez producen efectos secundarios negativos

tanto en los agroecosistemas como en los ecosistemas que interactúan con los

residuos de los primeros.

30

5.8.1 Contexto tecnológico en las ciencias de la agricultura

La agricultura como actividad que abarca la transformación del entorno para la

producción de plantas y animales en el beneficio del hombre abarca una multitud

de ciencias tanto exactas tales como la biología, la física y la química como

también ciencias sociales que procuran explican el impacto de la agricultura en

el desarrollo social.

El desarrollo de la ciencia de la agricultura moderna data de mediados a fines

del siglo XIX en el cual se unió tanto un interés por parte de los cultivadores en

obtener mejor resultados con la implementación de la ciencia como por el nivel

de madurez alcanzado en las ciencias especialmente de la física y de la biología

[41]. La necesidad de mejoras en la producción ha ido aumentándolo a la vez

con el desarrollo industrial y el crecimiento poblacional a nivel global que han

implicado cada vez con mayor fuerza los desarrollos tecnológicos en los

procesos de producción agrícolas.

La investigación y desarrollo de la agronomía por tanto implica grandes

volúmenes de información debido a las necesidades de almacenamiento y

procesamiento de datos es un área de interés importante para la ingeniería de

sistemas con variadas aplicaciones que incluyen la optimización de estadísticas,

agricultura de precisión, ingeniería genética, agro física entre otras.

5.8.2 Cadena de valor de la agricultura

El concepto de cadena de valor aplicado a la agricultura es relativamente nuevo

fue popularizado por Michael Porter. Se refiere en general al conjunto de bienes

y servicios relacionados con llevar los productos agrícolas desde el campo hasta

el consumidor final [42].

La cadena de valor de la agricultura está conformada por un conjunto de

eslabones en los cuales cada uno representa una actividad del proceso la cual

es necesaria para la siguiente y la cual considera unos impactos horizontales

que afectan todo el proyecto. Si bien todos los proyectos agrícolas son de una

naturaleza diferente, todos comparten un conjunto común de características.

5.8.3 Eslabones de la cadena de producción agrícola

La cadena de producción agrícola se encuentra compuesta por los procesos

productivos planeados para la ejecución de un proyecto agrícola. Estas etapas

comienzan con el establecimiento de las condiciones necesarias y los diversos

insumos requeridos. Los demás procesos productivos y de mantenimiento del

cultivo, hasta terminar con la obtención del producto final.

31

5.8.3.1 Provisión

Etapa en la cual se realizan todas las preparaciones para el inicio del proyecto

agrícola tales como la selección del suelo, adquisición de semillas y fertilizantes

para los suelos, mano de obra para el inicio del proyecto y potencialmente la

recolección de información de proyectos agrícolas anteriores.

5.8.3.2 Producción

En esta etapa se desarrollan la mayoría de las actividades directamente

relacionadas con el cultivo como la preparación del suelo, la plantación de las

semillas y demás preparaciones necesarias como invernaderos o cualquier

actividad que sea necesaria para el inicio de la producción.

5.8.3.3 Crecimiento, mantenimiento y recolección

Son actividades transversales desde el inicio de la producción hasta completar

la recolección. Se requiere de la implementación de tecnologías y mano de obra

para el cuidado del desarrollo del proyecto agrícola y la recolección de la

producción. Estas pueden variar dependiendo del tipo de cultivos y las técnicas

aplicadas.

5.8.3.4 Comercialización primaria

Es la etapa de la venta del producto recolectado, esta no se hace al público final

sino a través del transportador y vendedor el cual es el encargado de las

manipulaciones finales del producto para ponerlo a disposición del consumidor.

5.8.3.5 Procesamiento

La etapa de procesamiento varía según el producto y el objetivo de la producción.

El producto puede ser tanto empacado para su venta al público como utilizado

como materia prima en la preparación de otros alimentos o como parte de la

producción de biocombustibles, entre otras aplicaciones.

5.8.3.6 Venta final

Es la etapa en la cual se alcanza al público objetivo con el producto. Esta se

puede dar de múltiples maneras según se realice la comercialización del mismo

y su presentación varía de acuerdo con el procesamiento al cual ha sido

sometido.

5.8.4 Procesos transversales a la cadena de producción.

Adicionalmente a las etapas de la cadena de producción agrícola que derivan

una de otra, existen procesos que son transversales a la cadena y cuyo impacto

se manifiesta a lo largo de toda la cadena.

32

5.8.4.1 Evaluación del entorno de negocio:

Se compone de productores poseedores de productos competidores que

incluyen competencia directa (otros productores del mismo cultivo, incluyendo

variedades que participen en el mismo mercado) como indirecta (productos

similares por los cuales los compradores pueden satisfacer las mismas

necesidades), la demanda por parte del público como producto y/o los

productores como materia primaria, el impacto de los costos de producción

Crecimiento, mantenimiento y recolección y en general el conjunto de variables

que afectan tanto la productividad como el coste producción y precio de venta.

5.8.4.2 Servicios externos implementados:

Incluyen la financiación en cualquiera de las etapas del proyecto y servicios de

asesoramiento como el que se pretende desarrollar con la generación de este

proyecto en los cuales se ofrece apoyo al desarrollo del proyecto agrícola para

optimizar las decisiones que se toman en cada una de las etapas.

Fig. 9 Representación gráfica de la cadena de producción agrícola. Fuente: Elaboración propia.

33

5.8.5 Definiciones del software DSSAT (Decision Support

System for Agrotechnology Transfer DSSAT)

DSSAT es un modelo para el soporte de toma de decisiones agrotecnológicas

[43]. En su versión 4.6 incluye herramientas para la simulación de cuarenta y dos

cultivos diferentes. Los modelos de simulación de producción se basan en

mediciones de características de suelos, clima y datos experimentales. La

simulación de los cultivos incluye crecimiento y producción esperados y la

evaluación del impacto de agentes climatológicos. Su uso se expande en más

de 100 países y ha sido manejado por investigadores, consultores y productores

por un periodo de más de 20 años.

Para la producción de modelos se requiere de información climatológica y de

suelos. La información genética puede ser provista por conjuntos predefinidos

en el programa o permite también incluir conjuntos de información como parte

de las herramientas de administración. La simulación de cultivos se da por

defecto en periodos de días y permite variación en la selección de intervalos al

final de los cuales se obtienen los niveles de agua en el suelo, nitrógeno y

carbono.

Para aplicaciones incluye múltiples herramientas de simulación para realizar

pruebas de distintos escenarios teóricos tomando los fenotipos de las plantas y

estrategias de cultivo. Estos resultados se pueden comparar con mediciones

reales para su comparación y análisis.

5.8.6 Componentes incluidos en DSSAT

Por su naturaleza modular DSSAT facilita la inclusión de componentes por

demanda según requeridos por el proyecto.

• Módulo de administración.

• Módulo de terreno.

• Módulo de suelos.

• Módulos de simulación.

• Módulo de clima.

• Módulos de desarrollo de plantas (papa, maíz, algodón, trigo, soya, caña

de azúcar).

• Otras herramientas incluyen una consola con línea de comandos y

módulo para su integración con R-Studio.

34

5.8.7 Datos requeridos para la generación del modelo agrícola

Para la evaluación y producción de un modelo de datos agrícolas se requiere un

conjunto mínimo de datos o mínimum DataSet (MDS). Entre los datos más

relevantes para una adecuada estimación se requieren:

• Datos climatológicos durante el desarrollo del cultivo.

o Ubicación geográfica.

o Climatología.

o Mínimos y máximos de la temperatura del aire.

o Precipitaciones diarias.

• Características del suelo.

o Porcentajes de elementos en el terreno.

o Carbono orgánico.

o PH.

• Información de control y experimental.

o Espacio entre plantas.

o Densidad de plantas.

o Espacio entre columnas (surcos).

o Variedad de cultivos.

o Datos de irrigación.

o Fertilizantes.

5.8.8 International Consortium for Agricultural Systems

Applications (ICASA)

El intercambio de datos y su usabilidad es base para la investigación y el

desarrollo de modelos de simulación para las investigaciones en el área de la

agricultura es un problema mayor para el desarrollo de software en el sector de

la agricultura. La obtención de la base de conocimiento en la agricultura requiere

de la colaboración interdisciplinaria de biólogos, físicos, ingenieros y demás

profesionales relacionados con el estudio de las características de los suelos, el

crecimiento y desarrollo de las plantas, así como la manipulación y análisis de

datos [44].

ICASA es una visión para acordar la estandarización del manejo de datos e

implementación de software en aplicación agrotecnológicas proveyendo un

manejo jerárquico de la relevancia de datos. Implementación de herramientas

como bases de datos y hojas de cálculo como realizar descripciones tales como

daño por plagas y calidad de los sets de datos. Para así poder facilitar el manejo

de los mismos y permitir a investigadores e interesados en concentrarse en el

desarrollo de los modelos y su aplicación en vez de en la conversión y adaptación

de datos.

35

5.9 Arquitectura de software

La arquitectura de aplicaciones de software es el proceso de definición de una

solución estructurada que cumple con todos los requisitos técnicos y operativos,

a la vez que optimiza los atributos de calidad comunes, como el rendimiento, la

seguridad y la capacidad de administración. Implica una serie de decisiones

basadas en una amplia gama de factores, y cada una de estas decisiones puede

tener un impacto considerable en la calidad, el rendimiento, la capacidad de

mantenimiento y el éxito general de la aplicación [45].

5.9.1 Estructuras de datos relevantes

Como parte del proceso de estandarización el ICASA propone el manejo de un

conjunto de estructuras para el manejo de datos. La estandarización en la

estructura del manejo de datos ofrece la ventaja de mantener la coherencia entre

diversos orígenes, conservando el mismo tipo de contenido y formato.

5.9.1.1 Datos medidos

Esta estructura contiene datos obtenidos en el terreno tal como longitud de las

hojas, biomasa, nutrientes en el terreno, variedad de pestes, impacto de las

pestes, niveles de agua. Estos datos son contenidos en un Subset denominado

“MEASURED_DATA”.

5.9.1.2 Sumario

La estructura “SUMMARY” contiene el resumen de los resultados de una única

rotación del cultivo tales como la fecha de obtención, granos recolectados y

promedio de agua aplicada en la irrigación.

5.9.1.3 Series de tiempo

El grupo de “TIME_SERIES” consiste en mediciones experimentales en tiempos

específicos valores como los estados de la medición pueden ser almacenados

tanto en el sumario (experimentos de medición en la obtención del cultivo) como

en “TIME_SERIES” (altura de la planta, balance del nivel de agua, impacto de

los pesticidas, etc.).

Se aclara que en el prototipo las mediciones de Clima y suelos son almacenadas

en Datasets separados porque un solo set de Clima y suelo puede ser

implementado en múltiples cultivos y experimentos.

36

Fig. 10 Representación del diagrama de alto nivel de la base datos. Fuente: Elaboración propia.

5.9.1.3 Ítems de Datos

Son las unidades fundamentales de datos en el ICASA se componen de

unidades con un nombre asociado a uno o más datos que pueden ser numéricos,

códigos de identificación con referencias a otra tabla o campos descriptivos. Los

nombres no son case sensitive así que pueden ser descritos en mayúsculas o

minúsculas. Para este proyecto se utilizan las definiciones tomadas de la

recomendación de Microsoft SQL server [46].

Nombres singulares para tablas.

• Nombres singulares para columnas.

• Uso de prefijos de esquemas para las tablas.

o “Esquema. Tabla”.

• Pascal Casing (CamelCase).

o “TablaEjemplo”.

Estos ítems de datos pueden ser de cualquier tipo como cantidad de granos

obtenidos, variedad de planta, nombre de la técnica de cultivo aplicada, etc. Sus

tipos de almacenamiento debe ser consistente con el contexto de uso, tomando

como guía los valores y tipos esperados. En la figura 5 se representa el diseño

de la tabla resumen con los datos resultado de la estimación.

37

Resumen

Número de semillas utilizadas

Costo Semillas

Costo irrigación

Cantidad fertilizantes

Costo fertilizante

Costo químico pesticida

Cantidad recolectada

Ingresos estimados

Estimación otros costos

Estimación ingresos reales

Varianza Fig. 11 Tabla de resumen de datos, contiene el Resultado estimado de una única predicción. Fuente:

Elaboración propia.

El ICASA contiene un diccionario con una propuesta de una ontología de datos

para implementar en las distintas ramas de la agricultura. Las unidades de

medidas recomendadas son las del sistema internacional de medidas (SI)

aunque son permitidas unidades como centímetros y hectáreas para ajustarse

con facilidad a otras prácticas en la agricultura.

5.9.1.4 Definición de Datasets, Subsets, grupos y subgrupos

Para facilitar el manejo de los tipos de información los ítems son organizados en

cuatro categorías de catalogación para el agrupamiento de datos.

5.9.1.4.1 Datasets: Representan agrupaciones de alto nivel. Contiene tanto metadatos como la

estructura del manejo de los datos. Por ejemplo, un Dataset contiene el manejo

de cultivos y sistemas de respuesta para el cultivo. Otro más puede contener la

calidad del suelo, la descripción geográfica del terreno y un tercero los datos de

clima y datos obtenidos de estaciones de medición en el cultivo.

5.9.1.4.2 Subsets: Conjuntos de datos relacionados, pero sin necesidad de una relación directa.

5.9.1.4.3 Subset de metadatos: Describe objetivos e información relacionada con el experimento.

5.9.1.4.4 Subset de administración: Contiene las condiciones iniciales de las pruebas y detalladamente las practicas

realizadas en el caso.

5.9.1.4.2 Subset de mediciones: Incluye las respuestas obtenidas del cultivo, tales como detalles de la

fenomenología de las plantas, la producción y demás datos medidos.

38

5.9.1.5 Grupos de datos:

Datos que están directamente relacionados como un conjunto de mediciones en

una estación climática o la descripción de un tipo de terreno.

5.9.1.6 Subgrupos de datos:

Datos detallados de conjuntos de elementos específicos que se repiten múltiples

ocasiones como detalles en las capas del suelo o irrigaciones periódicas a lo

largo del tiempo.

5.9.2 Implementación del estándar ICASA

El estándar está diseñado para ser aplicado en una variedad de formatos

digitales de almacenamiento. El diccionario de datos contiene las definiciones

variables, unidades y códigos. Las definiciones deben ser suficientemente claras

para ser comprendidas por profesionales de distintas ramas. Desde la versión 2

se requieren adicionalmente a la lista de variables y unidades los valores de

mínimos y máximos de los valores, la relación entre variables y su posición en la

jerarquía de datos.

Para el proyecto se aplica que un archivo CSV corresponda a un único set de

datos. Los datos se manejarán agrupados en columnas con las abreviaturas

seleccionadas y la fila del encabezado es diferenciada por el símbolo de arroba

“@”, los comentarios son diferenciados por signos de admiración “!”.

Los nombres de los archivos junto con su extensión son asignados según la tabla

de nombres donde un nombre identifica un set o Subset. Los subsets adicionales

son ser incluidos como archivos. Las extensiones son complementadas con los

tipos “EXP” para datos experimentales, “SOL” para datos del suelo y “WTH” para

datos del clima, “EXA” puede ser usado para el sumario de datos experimentales

y “EXT” para datos experimentales a lo largo del tiempo.

Las relaciones entre conjuntos de datos son obtenidas a través de índices y

llaves foráneas según SQL y almacenamientos de formatos de fechas y horas

se definirán según el motor de bases de datos que se especifique en la

implementación (T-SQL en el caso del prototipo).

39

5.9.3 Revisión del estándar ICASA

La implementación de los elementos fundamentales del estándar aquí definidos

facilita la actualización y homologación con conjuntos de datos externos para el

mejoramiento de los modelos propuestos y validaciones cruzadas con otras

fuentes de datos. Características específicas del mismo tal como manejo de

notación científica, separación de subgrupos, indicadores de calidad de datos y

metadatos de la implementación de los sets de datos son omitidos por

simplicidad y se especifican según el caso y las herramientas utilizadas durante

el desarrollo.

5.9.4 Servicios REST

Los servicios REST (representational state transfer, transferencia de estado

representacional) permiten la creación y acceso de servicios en la nube con

facilidades para el consumo, escalabilidad y mantenimiento. Si bien la

arquitectura REST no obliga ningún protocolo para su implementación en la

aplicación se hace el consumo de servicios REST por medio del protocolo HTTP

[47].

5.9.5 Características de los servicios REST.

El propósito de un servicio es proveer los recursos del servidor al cliente, estos

recursos pueden ser de diversa naturaleza tal como imágenes videos u objetos

XML o JSON. Para la comunicación adecuada de estos recursos se requiere de

varias características para el cumplimiento de la arquitectura.

• Representación.

• Mensajes.

• URIs.

• Representación uniforme.

• Comunicación sin necesidad de estados.

• Vínculos a los recursos.

• Caching.

40

Fig. 12 Representación de la arquitectura REST. Fuente: Elaboración propia.

En la arquitectura REST la comunicación siempre comienza por medio de una

solicitud por parte del cliente. La comunicación se da por medio de los métodos

GET, POST, PUT y DELETE. El uso de estos métodos se realiza por medio del

API Controller.

5.9.6 Quandl

Quandl es una plataforma web que permite acceso a repositorios de datos tanto

financieros y económicos como a diversas fuentes de datos alternativos. Quandl

es implementado tanto por inversionistas como por corredores de bolsa y bancos

para la toma de decisiones de inversión y el análisis del estado de diversos

sectores de la economía [48].

41

Los servicios de Quandl se encuentran disponibles en línea de forma gratuita en

su versión básica, su implementación por medio de API REST permite conocer

en tiempo real el valor de commodities agrícolas, así como sus valores históricos

para estimar el precio esperado de un determinado producto.

Los precios obtenidos corresponden a mercados de futuros y permiten conocer

una estimación de la relación de la producción del cultivo y las ganancias

estimadas. La grafica representa la variación del precio de maíz amarillo como

commodity, los mismos conjuntos de datos pueden ser consumidos en tiempo

real por aplicación durante su ejecución como un servicio REST.

Fig. 13 Representación de la fluctuación del precio del maíz amarillo. Fuente: [48].

5.9.7 Características de las aplicaciones Cloud

Las aplicaciones Cloud son aplicaciones de software con arquitectura cliente

servidor en las cuales el cliente realiza el consumo de la aplicación por medio de

un navegador web y con un uso mínimo de recursos por parte del cliente. La

ventaja que ofrece es una gran capacidad de ofrecer al usuario una experiencia

interactiva en la cual este puede hacer uso de la información del servidor la cual

a su vez puede ser modificada y actualizada para todos los usuarios que utilizan

el servicio.

Las aplicaciones Cloud tiene la ventaja de ofrecer al usuario acceso a través de

múltiples plataformas. Reducir los costos tanto para el negocio como para el

cliente al reducir la necesidad de mantenimiento en el lado del usuario final. Entre

otras ventajas se cuenta con la reducción de la piratería al obligar conexión

remota con el servidor y la reducción de espacio de instalación al mantener el

cliente libre del volumen de datos. Se observa en la figura cómo se produce el

flujo de datos para aplicación cloud, el tráfico fluye protegido por medio de la

validación de token en el Cloud App Security el cual controla el acceso a la

aplicación por medio de un API a la vez que permite el manejo de logs útiles para

el seguimiento y mejoramiento de la aplicación [49].

42

Fig. 14 Ejemplo de la infraestructura de una aplicación Cloud. Fuente: [49].

5.9.8 Arquitectura de una aplicación Cloud en Microsoft Azure.

Cloud App Security integra visibilidad con la nube de las siguientes formas [50]:

• Utilizando Cloud Discovery para asignar e identificar el entorno de nube y

las aplicaciones en la nube que utiliza su organización.

• Autorizando o no aplicaciones en la nube.

• Utilizando conectores de aplicaciones fáciles de implementar que

aprovechan las API del proveedor, para lograr visibilidad y administración

de las aplicaciones a las que se conecte.

• Ayudándole a tener un control continuo al establecer y luego ajustar las

directivas de forma continua.

43

5.9.9 Conectores de aplicaciones.

Los conectores de aplicaciones utilizan las API de los proveedores de

aplicaciones de la nube para integrar la nube de Cloud App Security con otras

aplicaciones de la nube. Los conectores de aplicaciones amplían la protección y

el control. También proporcionan acceso a la información directamente desde

las aplicaciones de la nube, para el análisis de Cloud App Security.

Para conectar una aplicación y ampliar la protección, el administrador de

aplicaciones autoriza a Cloud App Security a acceder a la aplicación. Después,

Cloud App Security consulta los registros de actividad de la aplicación y analiza

los datos, las cuentas y el contenido de la nube. Cloud App Security puede

aplicar directivas, detectar amenazas y proporcionar acciones de gobierno para

solucionar problemas.

44

6. FUENTES DE DATOS

La definición de una fuente de datos es simplemente una localización de la cual

provienen los datos para una aplicación computacional [51] [52]. Esta ubicación

puede estar en la misma ubicación en la cual se realiza el procesamiento o puede

ser también accedida desde una ubicación remota por medio de alguna red. Para

la aplicación la fuente de datos principal es la base de datos relacional. Esta

contiene los parámetros y datos tanto obtenidos de otras fuentes como los

calculados durante el proceso. Se realiza una descripción detallada de los

mismos en el capítulo de arquitectura, subcapítulo de base de datos.

Adicionalmente el sistema cuenta con fuentes de datos adicionales para

alimentar el contenido de las tablas. Estas se presentan en forma de servicios y

de archivos de hojas de cálculo. Los servicios que proveen datos tales como

climatología o el estado de los precios que se maneja, así como servicios en

arquitectura REST, de forma que se consumen en formatos JSON o XML.

Los archivos obtenidos en formatos de hojas de cálculo y fichas de datos son

manejados por medio del patrón estrategia. Con ello es posible realizar la carga

de archivos en diversos formatos de almacenamiento (CSV, XML, JSON, XLS)

por medio de una única estrategia abstracta y accediendo a través de ella al

conjunto de estrategias concretas para el manejo de los archivos.

Por parte del manejo de servicios REST facilita la comunicación con los

servidores y eliminando la necesidad del manejo de estados. La implementación

de servicios REST facilitan la mantenibilidad y escalabilidad del prototipo

sumado al formato minimalista de los paquetes en comparación con otras

arquitecturas tales como SOAP [53].

45

7. METODOLOGÍA

7.1 Metodología de estudio, análisis de los

agroecosistemas.

El análisis de agroecosistemas es un análisis exhaustivo de un entorno agrícola

que considera aspectos de ecología, sociología y economía. En el pasado, un

enfoque de análisis de agroecosistemas podría usarse para determinar la

sostenibilidad de un sistema agrícola. Sin embargo, se ha hecho evidente que la

"sostenibilidad" del sistema depende en gran medida de la definición de

sostenibilidad elegida por el observador. Por lo tanto, el análisis de

agroecosistemas se utiliza para llevar la riqueza de la verdadera complejidad de

los sistemas agrícolas a un análisis para identificar reconfiguraciones del sistema

que mejor se adapten a las situaciones individuales [1] [54].

El análisis de agroecosistemas es una herramienta multidisciplinaria conocido

como Agroecología. La agroecología y el análisis de agroecosistemas no son lo

mismo que la agricultura sostenible, aunque el uso del análisis de

agroecosistemas puede ayudar a un sistema agrícola a garantizar su viabilidad.

El análisis de los agroecosistemas no es una práctica nueva, los agricultores y

los agricultores lo han estado haciendo desde que las sociedades pasaron de la

caza y la recolección (cazadores-recolectores) para alimentarse a establecerse

en un área. Cada vez que una persona involucrada en la agricultura evalúa su

situación para identificar métodos que hagan que el sistema funcione de una

manera que se adapte mejor a sus intereses, están realizando un análisis de

agroecosistemas [55].

7.1.1 Razones para realizar un enfoque sistémico a la agricultura

La investigación agrícola existe desde los inicios de la agricultura misma [1]. Las

ciencias agrícolas se han actualizado a la par del desarrollo de la bilogía y la

física. Las organizaciones de las instituciones de investigación agrícola se vieron

limitadas para comprender el proceso agrícola con el enfoque atómico

separando el estudio de biólogos, agrónomos y economistas. Se llegó al enfoque

sistémico aplicado a la agricultura debido a la comprensión de que la sola

descripción de un componente del cultivo no es suficiente para describirlo y por

lo tanto es necesario comprender la relación entre la estructura y su función.

La razón principal para la adopción de un enfoque sistémico es simple: Hay poca

esperanza de entender los procesos agrícolas si se siguen estudiando

solamente los detalles. Aunque la adopción de un enfoque de sistemas es una

decisión filosófica el enfoque es mucho más que un concepto abstracto las

disciplinas como la ingeniería de sistemas han desarrollado múltiples

herramientas para el análisis de los fenómenos agrícolas.

46

7.1.2 Análisis agro sistémico y preguntas asociadas.

La tarea del análisis de un agro sistema se puede realizar desde diversas

aproximaciones, pero en general se procura dar respuesta al conjunto de las

siguientes preguntas:

• ¿Qué factores definidores determinan la configuración actual del

agroecosistema?

• ¿Cómo se puede cuantificar la sostenibilidad del holón agrícola

(económico, social, ecológico y / u otro)?

• ¿Qué está haciendo el agricultor ahora y cómo afectan esas prácticas o

acciones a la viabilidad del agroecosistema?

• ¿Puede el agricultor mantener su sustento continuando con las prácticas

actuales?

• ¿Qué valora el agricultor y de dónde provienen esos valores?

• ¿El agricultor considerará configuraciones de granja alternativas?

7.1.3 El concepto del holón

El holón es simultáneamente una parte y un todo. Su integridad se manifiesta

por su capacidad de acción autogobernada. Cada uno de nosotros es un todo en

el sentido de que podemos decidir hacer esto la mayoría, pero no todos los días.

Algunas veces, debido a que también somos parte de un todo más grande, como

nuestra universidad, comunidad y familias, estamos limitados por nuestra

división, por ejemplo, uno de nuestros departamentos puede requerir nuestra

participación en una reunión. Para entender mejor nuestros comportamientos al

mediodía, un observador tendría que entender que tenemos una autonomía

considerable como totalidades, pero a menudo se ven limitados porque somos

partes del mismo tiempo. De manera similar, un analista vería al agricultor

exitoso actuando y planificando con la autonomía apropiada, pero operando

dentro de los límites especificados por la ecología de los contextos en los que

existe la granja.

7.1.4 Evaluación de la variedad en las granjas.

En la agroecología del holón, se interpretan los distintos tipos identificables como

configuraciones resonantes. La existencia de resonancia sugiere que para un

lugar y una época puede haber un número limitado de configuraciones holónicas

para las cuales existe un punto ideal contextual de reverberaciones de apoyo.

No es que otras configuraciones de cultivos, prácticas, tenencia de la tierra e

insumos no funcionen en una región, sino que las configuraciones existentes de

las fincas tienden a agruparse alrededor de un conjunto particular de

posibilidades. Estos son parcialmente análogos a "atractores", "dominios de

atracción", "estados estacionarios alternativos" o "equilibrios múltiples" descritos

para sistemas ecológicos.

47

7.1.5 Jerarquía del sistema agroecológico.

Los sistemas con componentes vivos poseen características que no poseen

sistemas abstractos o físicamente simples. En el desarrollo de la teoría de

sistemas aplicada a sistemas ecológicos se preocupa básicamente por la

interacción de dos componentes, los componentes creados por el hombre y los

componentes naturales.

Fig. 15 Jerarquía de sistemas ecológicos según la ecología. Fuente: [11].

7.1.6 Conceptos a nivel de ecosistema.

Un ecosistema es un sistema dinámico las interacciones entre componentes

físicos y bióticos y transformación de energía y transporte de materiales ocurren

simultáneamente. Por lo tanto, el estudio de ecosistemas requiere de equipos

científicos multidisciplinarios para describir tanto la estructura como la función

del sistema.

7.1.6.1 Flujo de energía

La radiación solar es a un ecosistema lo que la gasolina es a un motor. La

radiación es la fuente principal de energía de un ecosistema la energía entra al

sistema por medio de la fotosíntesis de las plantas. A partir de los derivados de

la producción al interior de la planta se generan los eslabones de la cadena de

flujo de energía y esta se usa para incrementar la biomasa dentro del sistema, el

proceso es determinado por las leyes de la termodinámica de forma que se

conserva el equilibrio entre entradas y salidas del sistema. Solo una pequeña

porción (1 - 5 %) [1] de la energía se convierte en material orgánico por medio

de la fotosíntesis. Esta tasa se designa como la producción primaria bruta.

48

7.1.6.2 Ciclos bioquímicos

La energía que entra y sale de un agro ecosistema aporta la energía necesaria

para el ciclo de materiales dentro del mismo, a diferencia de la energía que no

se puede recircular. Parte de los nutrientes tales como nitrógeno, fosforo,

carbono, etc., pueden ser absorbidos por las plantas y devueltos al suelo. Los

restos de material orgánicos son entonces procesados por microorganismos que

liberan los componentes los cuales a su vez son reabsorbidos por las plantas.

7.1.7 El sistema agrícola.

El sistema agrícola es un subconjunto de los sistemas ecológicos, porque

tienen por lo menos un componente vivo. La diferencia del

agroecosistema se encuentra en que este tiene un propósito puesto por

el hombre.

Los sistemas agrícolas se dan por tanto a diversos niveles. Ocurren desde

un nivel global con flujos de mercado entre diversos países. Entre este se

encuentran entonces diversos subsistemas que a su vez son sistemas

agro ecológicos con múltiples interacciones tanto verticales como

horizontales formando en conjunto una unidad en extremo compleja.

Fig. 16 Jerarquía de un sistema agrícola, presenta una región con múltiples agro sistemas que incluyen tanto crianza de animales como cultivo de plantas. Fuente [11].

49

7.1.8 Integración de los subsistemas en el agroecosistema.

Para cada subsistema se observa que los flujos identificados como salidas del

sistema son a su vez entradas de otro de los sistemas. La biomasa que sale del

subsistema de malezas se convierte en una entrada para los insectos y las

enfermedades, así como una entrada de materia orgánica al subsistema de

suelos, por ejemplo.

Como la salida de un subsistema proviene de uno solo o de varios de los

componentes de este subsistema y también de la entrada de un subsistema se

incorpora a uno varios de los componentes del otro subsistema.

7.2. Metodología híbrida para el desarrollo de software.

Para el desarrollo del prototipo se toma en consideración que el producto a

obtener es un prototipo evolutivo. Se requiere de generar una propuesta fuerte

para la estructura general de un software de manera que el prototipo requiere

contar con una estructura escalable con funcionales que permitan ser

implementadas nuevamente en una etapa posterior.

Se propone la implementación de una metodología de desarrollo de software

hibrida en la cual se toma como base el Framework de SCRUM y se flexibiliza

para su implementación para ajustar la metodología original al objetivo planteado

como parte del desarrollo del prototipo.

La implementación de la metodología híbrida facilita el desarrollo por parte de un

único desarrollador y permite la combinación de características con otras

metodologías de desarrollo de software. Para la implementación de la

metodología del proyecto se combinó propiedades de las metodologías SCRUM

y RUP [56].

7.3 Características tomadas de la metodología SCRUM

7.3.1 Definición de roles para el desarrollo

Los roles en SCRUM están definidos como Product Owner, Development Team

y Scrum Master. La metodología original exige que estos roles sean asumidos

por un grupo interdisciplinario compuesto de al menos seis personas. Para la

propuesta metodológica se plantea una modificación de la toma de roles del

equipo SCRUM original.

50

7.3.1.1 Product Owner

El Product Owner en SCRUM representa los intereses en el desarrollo de la

aplicación y trabaja en garantizar que el equipo de desarrollo de valor al producto,

priorizando las necesidades del mismo a través del Product Backlog.

Para esta metodología el rol de Product Owner es tomado por el estudiante y se

toman las funcionalidades del producto como los requerimientos a cumplir

durante el desarrollo de la aplicación.

7.3.1.2 Development team

El equipo de desarrollo en SCRUM es responsable de las entregas de cada uno

de los SPRINT y se encarga de las funciones de análisis, diseño desarrollo,

pruebas documentación técnica y demás acciones relacionadas con la

producción del software.

En la metodología se plantea que el rol del equipo de desarrollo es tomado por

el estudiante el cual plantea el análisis y diseño inicial del prototipo por medio del

documento de monografía.

7.3.1.3 Scrum master

El Scrum master en SCRUM es un facilitador el cual colabora con el equipo para

que este implemente de la forma esperada la metodología SCRUM. A diferencia

de un líder tradicional el SCRUM master actúa como un facilitador ayudando en

la definición del producto.

Para esta metodología se plantea que el rol de Scrum Master es compartido tanto

por el estudiante como por el director. El estudiante se encarga de plantear el

proceso de desarrollo y con la colaboración del director se establecen las

necesidades para definir el producto.

7.3.2 Manejo del Product Backlog

El product Backlog es una representación de los requerimientos del desarrollo.

Consiste en la colección de características, correcciones de bugs y

requerimientos funcionales y no funcionales que hacen parte de la solución. Los

ítems son añadidos como historias de usuario, los cuales son una representación

en leguaje común de una necesidad específica.

Para el manejo del Product Backlog se implementó la herramienta en línea Trello

[57]. Se realizo la definición de diferentes listas para el manejo de los ítems del

backlog y se definieron conjuntos de etiquetas para identificar el ítem a nivel de

prioridad y tarea.

51

Fig. 17 Vista del tablero del Product Backlog. Fuente: Elaboración propia.

El manejo del tablero permite con facilidad añadir tareas y realizar la trazabilidad

del estado de las mismas sin necesidad de añadir un proceso de control de

cambios riguroso. Ofreciendo la flexibilidad necesaria para enfocarse en el

desarrollo de la aplicación, pero sin olvidar la administración del proceso.

7.3.3 Sprint Backlog

Son la lista de tareas por realizar durante el sprint, la lista se completa según la

prioridad estimada y el esfuerzo necesario para ser completada. Una vez se

acuerda el backlog del respectivo sprint este no debe ser modificado a pesar de

los cambios durante el sprint para poder conocer al final la diferencia entre la

estimación inicial y el resultado obtenido.

7.3.4 Flujo de trabajo

7.3.4.1 Sprints

Se realiza la implementación de Sprints como etapas de tiempos definidas con

actividades y metas definidas a partir del backlog, enfocando las actividades a

realizar en el cumplimiento del requerimiento.

52

7.3.4.2 Sprint planning

Durante el sprint planning se realiza la organización de las tareas a realizar en la

iteración y la estimación de las tareas a ejecutar.

7.3.4.3 Sprint review y Sprint retrospective

Se realiza al finalizar el Scrum, se revisa qué tareas se han cumplido y cómo se

han cumplido, las dificultades asociadas al desarrollo y los cambios requeridos

para futuros sprints.

7.3.5 Implementación de una metodología híbrida

Debido a que la implementación de una metodología tradicional para el

desarrollo de este proyecto se encuentra limitada por características técnicas

tales como que el desarrollo es realizado por una única persona. Como

alternativa de un desarrollo de software ágil se propone la implementación de

una metodología híbrida para el desarrollo.

De acuerdo a Eréndira Miriam [58], evaluando las empresas de software de

México, el 50% o más de las empresas desarrolladoras de software tienen una

inclinación hacia el uso de metodologías híbridas. El desarrollo por medio de una

metodología mixta ofrece las ventajas de adaptar las prácticas probadas en

diferentes proyectos a un proyecto que no cuenta con todas las características

para que su proceso de desarrollo se dé con una metodología específica.

Fig. 18 Implementación de una metodología híbrida entre Scrum (70%) y RUP (30%) para el desarrollo del proyecto. Fuente: Elaboración propia.

scrum

RUP

IMPLEMENTACIÓN DE METODOLOGÍAS EN EL PROYECTO

53

7.3.6 Esfuerzos estimados en actividades

El esfuerzo de actividades es una estimación proveniente de la metodología RUP

en el cual se estima cuál es el trabajo y tiempo requerido en cada una de las

actividades necesarias según un conjunto de categorías predefinidas que

incluyen desde el modelado y análisis hasta las pruebas y el despliegue del

software.

54

8. DEFINICIÓN DE REQUERIMIENTOS

Para la obtención de los requerimientos se definieron a partir de la evaluación de

las fuentes de información. Para la categorización de los requerimientos se hizo

su clasificación según su dominio en el problema.

Requerimientos funcionales (RF)

En Ingeniería de software, un requerimiento funcional define una función de un

sistema o su componente. Una función se describe como un conjunto de

entradas, el comportamiento y las salidas. Los requerimientos funcionales

pueden ser cálculos, detalles técnicos, manipulación y procesamiento de datos

y otras funcionalidades específicas que definen lo que se supone que debe lograr

un sistema. Los requerimientos funcionales están respaldados por requisitos no

funcionales (también conocidos como requisitos de calidad), que imponen

restricciones al diseño o la implementación (como los requerimientos de

rendimiento, la seguridad o la confiabilidad) [59].

Requerimientos no funcionales (RNF)

Un requerimiento no funcional es un requerimiento que especifica criterios que

se pueden usar para juzgar el funcionamiento de un sistema, en lugar de

comportamientos específicos. Se contrastan con los requisitos funcionales que

definen comportamientos o funciones específicos. El plan para implementar

requisitos funcionales se detalla en el diseño del sistema [59].

Clasificación de requerimientos

• Perfiles de suelos (PSU).

• Administración de plantas y sus características (APL).

• Gestión de información geográfica (GGE).

• Administración de cultivos (ACU).

• Gestión Costos y precios (GCP).

• Cualidades no funcionales (CNF).

55

Listado de requerimientos

Código Categoría Requisito Descripción

PSU-01 RF Crear perfiles de

suelo.

Crear perfiles de suelos

seleccionando las

propiedades asociadas.

PSU-02 RF Leer perfiles de

suelo.

Leer perfiles de suelos

almacenados en la base de

datos.

PSU-03 RF Actualizar perfiles

de suelo.

Actualizar perfiles de datos

existentes, realizando

modificaciones de sus valores

de acuerdo con las

limitaciones en tipos y rangos

de datos.

PSU-04 RF Eliminar perfiles de

suelo.

Eliminar Perfiles de Suelos

para aquellos perfiles que no

cuenten con cultivos

asociados de forma que no se

comprometa la integridad de

los datos almacenados.

PSU-05 RF Estadísticas de

suelos.

Generar estadísticas de los

perfiles de suelo según los

datos almacenados en la base

de datos.

PSU-06 RF Administración de

suelos en cultivos.

Modificar y trazar las

características del tipo de

suelo de un cultivo especifico.

PSU-07 RF Administración de

suelos según tipos

de planta.

Modificar y trazar las

características del tipo de

suelo de para una variedad de

planta en específico.

PSU-08 RF Descripción de

suelos.

Realizar la descripción de

suelos existentes.

PSU-09 RF Obtener suelos de

servicio.

Consumir el servicio de

información de suelos en

SoilGrids para obtener

información actualizada del

estado de los suelos.

56

APL-01 RF Crear nueva

planta.

Crear una planta adicionando

sus características fenotípicas

esperadas, requerimientos de

cultivo y nivel de productividad

esperada por planta.

APL-02 RF Leer información

de plantas.

Obtener la información de las

plantas almacenadas en la

base de datos.

APL-03 RF Actualizar detalles

de plantas.

Modificar la información de

plantas para ajustar los

valores obtenidos por medio

de servicio.

APL-04 RF Eliminar perfiles de

plantas.

Eliminar plantas irrelevantes

para los procesos de cultivo

en la región, obtenidos de

servicio de actualización.

APL-05 RF Estadísticas de

plantas.

Generar estadísticas de los

perfiles de suelo según los

datos almacenados en la base

de datos.

APL-06 RF Administración de

plantas.

Modificar el estado de las

plantas en la base de datos

para cambiar su

disponibilidad.

APL-07 RF Descripción de

plantas.

Realizar la descripción de

plantas existentes.

APL-08 RF Obtener detalles

de plantas de

servicio.

Consumir servicio para

obtención masiva de datos de

plantas para el repositorio.

APL-09 RF Obtener detalles

de plantas por

cargue de hoja de

cálculo.

Ejecutar proceso de cargue de

datos por medio de archivo de

hoja de cálculo en formato

XML, CSV o XLS.

APL-10 RF Crear nueva

variedad.

Crear una variedad

adicionando sus

características fenotípicas

esperadas, requerimientos de

cultivo y nivel de productividad

esperada por variedad.

57

APL-11 RF Leer información

variedad.

Obtener la información de las

variedades almacenadas en la

base de datos.

APL-12 RF Actualizar detalles

de variedad.

Modificar la información de

variedad para ajustar los

valores obtenidos por medio de

servicio.

APL-13 RF Eliminar datos de

variedad.

Eliminar variedades

irrelevantes para los procesos

de cultivo en la región,

obtenidos de servicio de

actualización.

APL-14 RF Estadísticas de

variedades.

Generar estadísticas de los

perfiles de variedades según

los datos almacenados en la

base de datos.

APL-15 RF Administración de

variedades.

Modificar el estado de las

variedades en la base de datos

para cambiar su disponibilidad.

APL-16 RF Descripción de

suelos.

Realizar la descripción de

suelos existentes.

APL-17 RF Obtener detalles

de variedades de

servicio.

Consumir servicio para

obtención masiva de datos de

variedades para el repositorio.

APL-18 RF Obtener detalles

de variedades por

cargue de hoja de

cálculo.

Ejecutar proceso de cargue de

datos por medio de archivo de

hoja de cálculo en formato

XML, CSV o XLS.

GGE-01 RF Usuario accede un

mapa.

Usuario puede visualizar el

Canvas del mapa según datos

obtenidos desde el servidor.

GGE-02 RF Carga Layer. Mapa carga con un Layer o

usuario selecciona Layer de un

mapa y el mapa es actualizado.

GGE-03 RF Navegación en

mapa.

Usuario navega el mapa, el

mapa refresca los objetos

según la ubicación actual.

GGE-04 RF Usuario adiciona

marcador.

El usuario interactúa con el

mapa y ubica un marcador en

58

una ubicación con una longitud

y latitud asociadas.

GGE-05 RF Adicionar

información de

ubicación de

cultivo.

Se asigna datos de descripción

de la ubicación de los cultivos y

estos se asocian a la

coordenada correspondiente.

GGE-06 RF Visualizar cultivos

existentes.

Se accede al conjunto de

cultivos existentes y se

representa mediante una capa

de marcadores donde se

encuentra cada cultivo.

ACU-01 RF Crear cultivo. Crear nuevo cultivo.

ACU-02 RF Leer datos de

cultivo.

Recuperar información

almacenada de un cultivo

existente

ACU-03 RF Actualizar

información

cultivo.

Modifica datos del cultivo tal

como su fecha de inicio o el

área cultivada.

ACU-04 RF Eliminar

información

cultivos.

Eliminar información de

cultivos por parte de un

administrador.

ACU-05 RF Manejo del PH del

cultivo.

Usuario actualiza o ingresa

información de PH acerca del

cultivo.

ACU-06 RF Manejo de

nutrientes del

cultivo.

Usuario actualiza o ingresa

información de nutrientes del

cultivo.

ACU-07 RF Manejo de nivel de

agua por el cultivo.

Usuario actualiza o ingresa

información de nivel de agua

del cultivo.

ACU-08 RF Estimación niveles

de temperatura en

cultivo.

Usuario actualiza o ingresa

información de temperatura del

cultivo.

ACU-09 RF Estimar niveles de

producción de

cultivo

Usuario actualiza o ingresa

información de producción del

cultivo

59

ACU-10 RF Estimación costo

asociado a

producción de

cultivo.

Usuario actualiza o ingresa

información de producción del

cultivo.

ACU-11 RF Estimación

Ganancias

esperadas cultivo.

Usuario actualiza o ingresa

información de ganancias del

cultivo.

GCP-01 RF Crear fertilizante. Crear fertilizantes de suelos

seleccionando las propiedades

asociadas.

GCP-02 RF Leer fertilizantes

de suelos

Leer fertilizantes de suelos

almacenados en la base de

datos

GCP-03 RF Actualizar

fertilizantes de

suelos.

Actualizar fertilizantes de datos

existentes, realizando

modificaciones de sus valores

de acuerdo con las limitaciones

en tipos y rangos de datos.

GCP-04 RF Eliminar fertilizante

de suelo.

Eliminar fertilizantes para

aquellos que no cuenten con

cultivos asociados.

GCP-05 RF Crear plaguicida. Crear plaguicida

seleccionando las propiedades

asociadas.

GCP-06 RF Leer plaguicidas. Leer plaguicidas almacenados

en la base de datos.

GCP-07 RF Actualizar

plaguicidas.

Actualizar plaguicidas

existentes, realizando

modificaciones de sus valores

de acuerdo con las limitaciones

en tipos y rangos de datos

GCP-08 RF Eliminar

plaguicidas.

Eliminar plaguicidas para

aquellos que no cuenten con

cultivos asociados.

GCP-09 RF Obtener precios de

servicio

Commodities.

Actualizar el historial de los

precios en el mercado por

medio del servicio de Quandl.

CNF-01 RNF Actualización de

datos.

La actualización de datos debe

ser transaccional para evitar

60

que cambios simultaneas

perjudiquen la integridad de los

datos.

CNF-02 RNF Concurrencia. El sistema debe soportar al

menos dos usuarios de

manera concurrente.

CNF-03 RNF Patrones de

diseño.

El desarrollo debe ajustarse a

la arquitectura y diseño

planteados.

CNF-04 RNF Diseño web

responsive.

La aplicación debe poseer un

diseño Responsive a fin de

garantizar la adecuada

visualización.

Fig. 19 Tabla de requerimientos funcionales y no funcionales. Fuente: Elaboración propia.

61

9. MODELADO DEL SISTEMA

9.1 Arquitectura MVC

El modelo arquitectural MVC provee la separación de la aplicación en tres

diferentes componentes: El modelo la vista y el controlador, el Framework de

ASP.NET provee una alternativa ligera y altamente optimizado para test, en

único marco integrado con las demás características de ASP.NET. El

Frameworks de MVC se compone de los siguientes componentes [60]:

9.1.2 Modelos:

Los modelos son partes de la aplicación que implementan la lógica del dominio

de datos de la aplicación. Comúnmente los modelos de objetos recuperan y

almacenan el estado del modelo en la base de datos. Por ejemplo, un objeto tipo

producto puede recuperar información de la base de datos, realizar operaciones

sobre ella y después reescribir información actualizada de vuelta en la tabla

productos en un servidor de base de datos SQL.

Para una aplicación pequeña el modelo es comúnmente una separación

conceptual de una versión física. Por ejemplo, si la aplicación solo lee un set de

datos y lo envía a la vista, la aplicación no tiene entonces un modelo no tiene

una capa de modelo física y clases asociadas. Para este caso el Dataset toma

el rol de objeto modelo.

namespace AppAgro_2015_4.Models { using System; using System.Collections.Generic; public partial class Ubicacion { [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] public Ubicacion() { this.Cultivos = new HashSet<Cultivo>(); this.Precipitacions = new HashSet<Precipitacion>(); } public int UbicacionID { get; set; } public string Nombre { get; set; } public Nullable<int> Altitud_msnm { get; set; } public Nullable<int> Temperatura_min_Centigrados { get; set; } public Nullable<int> Temperatura_max_Centigrados { get; set; } public Nullable<int> Temperatura_prom { get; set; } public Nullable<int> AcidezSuelo_PH { get; set; } public Nullable<System.DateTime> FechaEstimacion { get; set; } public string Descripcion { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<Cultivo> Cultivos { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<Precipitacion> Precipitacions { get; set; } } }

Fig. 20 Fragmento Modelo Ubicación. Fuente: elaboración propia.

62

En la figura anterior se observa un fragmento del modelo utilizado para la

representación de las Ubicaciones. En él se observa la representación de las

propiedades del mismo. En el método constructor de la clase se incluyen

exclusivamente las propiedades que requieren e inicialización, estas son

equivalentes a las relaciones en la base de datos entre tablas. Al utilizar Data

Base First y realizar cambios en las tablas de la base de datos y sus relaciones,

es posible actualizar el modelo por medio de la herramienta en Visual Studio.

9.1.3 Controladores:

Los controladores son componentes que manejan las interacciones del usuario

con el modelo y que finalmente seleccionan una vista para renderizar, En una

aplicación MVC la vista solo muestra la información; El controlador se encarga

de responder a las interacciones e ingresos del usuario. Por ejemplo, el

controlador maneja los valores de un query-string y pasa estos valores al modelo,

el que eventualmente toma estos valores para convertirlos en una consulta a la

base de datos.

63

namespace AppAgro_Seleccionador.Controllers { public class UbicacionsController : Controller { private Agro_Entidades db = new Agro_Entidades(); // GET: Ubicacions public ActionResult Index() { return View(db.Ubicacions.ToList()); } // GET: Ubicacions/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Ubicacion ubicacion = db.Ubicacions.Find(id); if (ubicacion == null) { return HttpNotFound(); } return View(ubicacion); } // GET: Ubicacions/Create public ActionResult Create() { return View(); } // POST: Ubicacions/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "UbicacionID,Nombre,Altitud_msnm,Temperatura_min_Centigrados,Temperatura_max_Centigrados,Temperatura_prom,AcidezSuelo_PH,FechaEstimacion,Descripcion")] Ubicacion ubicacion) { if (ModelState.IsValid) { db.Ubicacions.Add(ubicacion); db.SaveChanges(); return RedirectToAction("Index"); } return View(ubicacion); }

Fig. 21 Fragmento del controlador de vista de ubicación. Fuente: elaboración propia.

El controlador se encarga de los ingresos al modelo y por tanto convertirlos en

comandos para el modelo o la vista. Todos los modelos en .NET heredan de

alguna forma de la clase controller, la cual define un conjunto de métodos

diseñados para ofrecer todas las herramientas de acceso desde el manejo de la

del contexto de la conexión a DB, hasta bindings para prevenir CrossReference.

64

9.1.4 Vistas:

Las vistas son componentes que muestran la interfaz del usuario (User Interface

UI) de la aplicación. Un ejemplo sería una vista de edición de la tabla de

productos la cual muestra cajas de texto, listas y checkbox dependiendo del

estado del producto.

@model AppAgro_Seleccionador.Models.Ubicacion @{ ViewBag.Title = "Detalles"; } <h2>Detalles</h2> <div> <h4>Ubicación</h4> <hr /> <dl class="dl-horizontal"> <dt> @Html.DisplayNameFor(model => model.Nombre) </dt> <dd> @Html.DisplayFor(model => model.Nombre) </dd> <dt> @Html.DisplayNameFor(model => model.Altitud_msnm) </dt> <dt> @Html.DisplayNameFor(model => model.FechaEstimacion) </dt> <dd> @Html.DisplayFor(model => model.FechaEstimacion) </dd> <dt> @Html.DisplayNameFor(model => model.Descripcion) </dt> <dd> @Html.DisplayFor(model => model.Descripcion) </dd> </dl> </div> <p> @Html.ActionLink("Editar", "Edit", new { id = Model.UbicacionID }) | @Html.ActionLink("Regresar", "Index") </p>

Fig. 22 Fragmento vista de detalles de Ubicación. Fuente: Elaboración propia.

Para la generación de las vistas se implementa Razor el cual permite la creación

dinámica de HTML en respuesta a las peticiones del cliente, las etiquetas

creadas con Razor permiten incrustar en las vistas código basado en el servidor

y enviarlo como HTML estático en la respuesta al explorador.

65

9.1.5 Características del Framework ASP.NET

ASP.NET ofrece un marco de trabajo sobre el patrón MVC el cual ayuda a crear

aplicaciones que separan los diferentes aspectos de la aplicación (lógica de

entrada, lógica de negocio y lógica de interfaz de usuario). Mientras provee un

bajo acoplamiento entre estos elementos. El patrón especifica cuando cada tipo

de lógica debe ser utilizada en la aplicación. La lógica de interfaz de usuario

pertenece a la vista. La lógica de entrada pertenece al controlador y la lógica de

negocio pertenece al modelo, esta separación ayuda a manejar la complejidad

en el desarrollo de la aplicación, debido a que facilita enfocarse en un aspecto

de la aplicación al tiempo. Es posible por ejemplo dedicarse al desarrollo de la

lógica de negocios sin necesidad de enfocarse en la interfaz del usuario.

El bajo acoplamiento entre los componentes del MVC facilita también el

desarrollo en paralelo de la aplicación disminuyendo los tiempos de desarrollo.

Es por lo tanto posible enfocarse en realizar cambios en la estructura de la lógica

de entrada de datos sin tener que preocuparse por realizar cambios en los

modelos de base de datos.

• La separación de las tareas de la aplicación. Debido a que todos los

contratos de la aplicación se encuentran basados siempre en interfaz es

posible realizar pruebas por medio de objetos simples que imiten las

entradas reales de la aplicación. Por lo tanto, es posible realizar pruebas

unitarias sin la necesidad de ejecutar el controlar. Esto permite realizar

pruebas de manera rápida y flexible, el Framework de ASP.Net ya incluye

Unit Test Labs para realizar este tipo de pruebas.

• ASP.NET es un Framework flexible y conectable que permite con facilidad

reemplazar y personalizar componentes. Por ejemplo, es posible conectar

por ejemplo un motor propio para la vista. El Framework también soporta

el uso de inyección de dependencias e inversión de control entre los

modelos contenedores.

• También ofrece un soporte extensivo para enrutamiento, lo cual se

convierte en una poderosa herramienta para el mapeo de URLs

permitiendo construir aplicaciones con un manejo de URLs comprensible

y que facilite su búsqueda. Las URLs no tienen que incluir los nombres de

las extensiones y se encuentran diseñados para soportar la optimización

de rutas.

• Soporte para la generación en lenguajes de marcado, es posible crear

templates de elementos reutilizables, así como realizar anidamiento de

los mismos, enlazando y haciendo reutilización de componentes.

• Otras características incluyen soporte para autenticación de por Form

Authentication y Windows Authentication, control de autorización por

URLs, manejo de membresías, roles, cache en el servidor y demás [61].

66

9.1.6 Ventajas de una aplicación Web basada en MVC.

• Facilita el manejo de la complejidad en la aplicación al separar el

desarrollo del modelo, la vista y el control.

• No requiere de la utilización de estados de vista o formularios basados en

el servidor. Esto hace el Framework de MVC ideal para ofrecer un mejor

control sobre el comportamiento de a aplicación.

• El uso de un patrón de controlador en el Front End para controlar las

solicitudes en la aplicación. Permite el diseño de la aplicación de forma

que permita un manejo altamente flexible del enrutamiento de servicios.

• Provee un mejor soporte para TDD (Test Driven Development) facilitando

el desarrollo de pruebas unitarias.

67

Fig. 23 Diagrama de entidades. Fuente: Elaboración propia.

68

9.2 Roles de usuario

Los actores en UML son definidos como la especificación de un rol por parte de

un usuario o cualquier otro sistema que interactúa con el sistema

(intercambiando señales y datos) y que externa al sistema [62]. Si bien UML no

permite el uso de la asociación entre roles. La generalización de los mismos se

encuentra permitida y se utiliza en el diagrama para el manejo del solapamiento

entre comportamientos.

Rol Descripción

Administrador Responsable de gestionar los demás

perfiles y la disponibilidad de los recursos.

Biólogo Profesional dedicado al estudio de los

organismos (las plantas), administra las

propiedades de las plantas y sus

variedades.

Químico Accede a funcionalidades de información

química de suelos y características

químicas de las plantas.

Agrónomo Crea cultivos y accede a las funciones de

Geólogo, Biólogo y Químico en modo de

consulta.

Geólogo & Meteorólogo Accede a las funciones de tipos de suelos,

características del suelo y actualiza la

información relacionada. Accede a

funcionalidad de las precipitaciones y

niveles de temperatura.

Cultivador Crea nuevos cultivos, así como realiza

estimaciones acerca de sus cultivos

anteriores y estadísticas asociadas.

Fig. 24 Roles de usuario dentro de la aplicación. Fuente: Elaboración propia.

69

9.3 Desarrollo guiado por pruebas (TDD- Test Drive

Development)

El desarrollo guiado por pruebas es una aproximación novedosa al desarrollo de

software la cual combina la creación de pruebas con la producción de código. El

objetivo principal del TDD no es crear una especificación o una validación sino

por el contrario promover una forma de pensar los requerimientos. Pensar los

requerimientos antes de realizar código funcional. TDD se puede ver como una

técnica, en la cual el objetivo es obtener código limpio y funcional [63].

Fig. 25 Proceso de pruebas iniciales (TFD- Test First Development). Fuente: [63].

70

El primer paso consiste en adicionar y realizar una prueba una vez exista

suficiente código como para que algo pueda fallar. El proceso a de continuar

realizando pruebas de manera consecutiva de los segmentos del código y

entonces actualizar la prueba de la funcionalidad en desarrollo para validar si la

misma pasa la prueba. Si esta falla el código ha de ser re factorizado hasta que

el funcionamiento sea el esperado convirtiendo el TFD en TDD [63].

9.3.1 Razones para el uso de TDD

Una ventaja significativa del TDD es que permite tomar pequeños pasos para

desarrollar software. El TDD es una práctica mucho más productiva que el

desarrollo divididos en largas etapas. Por ejemplo, suponiendo que se adiciona

una pequeña parte al código se compila y se prueba existe una probabilidad de

que el código falle, en este caso la probabilidad de encontrar el error en el código

adicionado recientemente es bastante alta.

9.4 Especificación del modelo conceptual del prototipo

en UML.

Un modelo conceptual puede ser definido como un modelo que está hecho a

partir de conceptos concretos y sus relaciones. Estos permiten comprender las

entidades del mundo real y cómo interactúan unas con otras. Los siguientes son

los conceptos que se utilizan en UML para realizar el modelado del mundo real.

En UML estos se describen desde un punto de vista externo al proceso del

desarrollo del código [63].

• Objetos: Representan una entidad básica y diferenciable “un bloque”.

• Clases: Molde que provee la definición inicial de un objeto. Es un plano

de los bloques de la aplicación por lo tanto provee tanto los valores

iniciales y la implementación de los comportamientos.

• Abstracción: Concepto de la representación de una entidad del mundo

real.

• Encapsulación: Es el mecanismo de representar datos juntos de forma

que se exhiban como una única entidad.

• Herencia: Obtención de las características de una clase por parte de otra.

71

9.5 UML en el diseño de la arquitectura de la aplicación.

El UML como lenguaje de modelado y no de software de un sistema se enfatiza

en la descripción de los sistemas de software. La mayoría de estas descripciones

son utilizadas en diferentes aspectos tales como el estado estático y dinámico

de la aplicación. El diseño de la orientación a objetos es entonces transformado

en diagramas UML según el requerimiento. Una vez el análisis de la orientación

a objetos es obtenido es fácil representar el concepto obtenido por medio de los

diagramas UML.

9.5.1 Modelado estructural

El modelamiento estructural representa el andamio sobre el cual se construye el

sistema. El modelo estructural representa el lugar donde todos los demás

componentes existen. El comportamiento estructural nunca debe representar

entonces el comportamiento dinámico del sistema.

9.5.1.1 Diagramas estructurales:

• Diagrama de clases.

• Diagrama de objetos.

• Diagrama de componentes.

9.5.2 Modelado de comportamiento.

El modelado del comportamiento describe las interacciones del sistema,

representa entonces las interacciones entre los diagramas estructurales. El

modelado de comportamiento representa entonces la dinámica del sistema.

• Diagrama de actividades.

• Diagrama de interacción.

• Diagramas de casos de uso.

9.5.3 Modelamiento arquitectural

El modelamiento arquitectural representa el comportamiento promedio del

sistema y contiene elementos tanto estructurales como comportamentales del

sistema. Este puede ser definido entonces como el plano completo del sistema.

72

9.6 Diagrama de casos de uso

Para modelar un sistema lo más importante es capturar el comportamiento

dinámico del mismo. Por comportamiento dinámico se entiende cuando este se

encuentra corriendo o en operación. Debido a que la descripción estática no es

suficiente, es más importante capturar el dinamismo del mismo para obtener su

representación.

El sistema cambia debido a la interacción con agentes tanto internos como

externos, estos agentes son los conocidos como actores del sistema. El

diagrama de casos de uso es entonces la representación de estos actores y sus

relaciones. Un único diagrama de casos de uso es la representación de una

funcionalidad particular del sistema.

Aunque el propósito de los diagramas de casos de uso es el de capturar el

comportamiento dinámico del sistema, esta se hace de una manera más

genérica en comparación con otros diagramas dinámicos.

El diagrama de casos de uso es utilizado también para recolectar los

requerimientos del sistema incluyendo influencias externas e internas. Estos

requerimientos son ante todo requerimientos de diseño debido a que cuando un

sistema es analizado para capturar sus funcionalidades los casos de uso son

preparados pero los actores son definidos.

• Recolectar requerimientos del sistema.

• Obtener una vista externa del sistema.

• Identificar los factores externos e internos que interfieren con el sistema.

• Mostrar la interacción entre requerimientos y actores.

73

Fig. 26 Diagrama general de casos de uso de la aplicación. Fuente: Elaboración propia.

74

9.7 Descripción de casos de uso

Para la descripción de los casos de uso se hace manejo de la siguiente tabla.

<IDENTIFICADOR> <NOMBRE>

Descripción <DESCRIPCIÓN>

Secuencia Paso Descripción

Excepciones

Importancia

Comentarios

Fig. 27 Plantilla para descripción de casos de uso. Fuente: Elaboración propia.

75

CU-0101 Log In

Descripción

El sistema debe dar acceso al usuario

por medio de la interfaz gráfica para

que este pueda acceder a las demás

funcionalidades de la aplicación

Secuencia Paso Descripción

1 Usuario accede a página

principal

2 Usuario completa datos

de ingreso

3 Sistema valida datos de

usuario

4 Sistema da acceso a la

aplicación

Excepciones

Acceso directo por URL

Importancia Baja

Comentarios El acceso por roles de usuario es de

una importancia baja debido a que la

lógica del desarrollo del prototipo no

se centra en herramientas de control

de acceso

Fig. 28 Caso de uso CU-0101. Fuente: Elaboración propia.

76

CU-0102 Administrar perfiles

Descripción

El sistema debe permitir al

administrado acciones de control

sobre los recursos y perfiles de la

aplicación

Secuencia Paso Descripción

1 Administrador accede

aplicación

2 Administrado accede

módulo control de

usuarios

3 Administrador realiza

cambios al registro de

usuarios

4 Sistema valida y

almacena cambios

Excepciones Campos con parámetros no válidos,

modificación de perfil compromete

base de datos.

Importancia baja

Comentarios En el desarrollo del prototipo se

predefinieron usuarios para la

implementación de los roles.

Fig. 29 Caso de uso CU-0102. Fuente: Elaboración propia.

77

CU-0103 Crear usuario

Descripción

El administrador adiciona un nuevo

perfil de usuario entre los roles

existentes en la aplicación

Secuencia Paso Descripción

1 Administrador accede

aplicación

2 Administrador accede

módulo control de

usuarios

3 Administrador adiciona

usuario

4 Sistema valida y

almacena cambios

Excepciones Campos con parámetros no válidos,

modificación de perfil compromete

base de datos.

Importancia alta

Comentarios En el desarrollo del prototipo se

predefinieron usuarios para la

implementación de los roles.

Fig. 30 Caso de uso CU-0103. Fuente: Elaboración propia.

78

CU-0104 Eliminar usuario

Descripción

El administrador elimina un perfil de

otro usuario de la base de datos.

Secuencia Paso Descripción

1 Administrador accede

aplicación

2 Administrador accede

módulo control de

usuarios

3 Administrador elimina

usuario

4 Sistema valida y

almacena cambios

Excepciones Campos con parámetros no válidos,

modificación de perfil compromete

base de datos.

Administrado se auto elimina

Importancia baja

Comentarios En el desarrollo del prototipo se

predefinieron usuarios para la

implementación de los roles.

Fig. 31Caso de uso CU-0104. Fuente: Elaboración propia.

79

CU-0105 Modificar usuario

Descripción

El administrador modifica un perfil de

usuario entre los roles existentes en la

aplicación

Secuencia Paso Descripción

1 Administrador accede

aplicación

2 Administrador accede

módulo control de

usuarios

3 Administrador modifica

usuario

4 Sistema valida y

almacena cambios

Excepciones Campos con parámetros no válidos,

modificación de perfil compromete

base de datos.

Importancia media

Comentarios En el desarrollo del prototipo se

predefinieron usuarios para la

implementación de los roles.

Fig. 32 Caso de uso CU-0105. Fuente: Elaboración propia.

80

CU-0106 Administrar tablas

Descripción

El administrador Realiza un CRUD

(Create Read Update Delete) de

cualquiera de las tablas de base de

datos como herramienta de control

administrativo

Secuencia Paso Descripción

1 Administrador accede a la

aplicación

2 Administrador accede a

módulo de control de

tablas.

3 Ejecuta CRUD sobre las

tablas

4 Sistema actualiza base de

datos

Excepciones El cambio realizado afecta la

estructura de la base de datos

intentando eliminar registro con

relaciones obligatorias a otras tablas

genera excepción en tiempo de

ejecución.

Importancia Muy alta

Comentarios El CRUD a través del front de la

aplicación se maneja como una

herramienta rápida exclusivamente

para la administración de registros

críticos. Y aprovechando la

arquitectura de la aplicación

Fig. 33 Caso de uso CU-0106. Fuente: Elaboración propia.

81

CU-0201 Log In

Descripción

El sistema debe dar acceso al usuario

por medio de la interfaz gráfica para

que este pueda acceder a las demás

funcionalidades de la aplicación

Secuencia Paso Descripción

1 Usuario accede a página

principal

2 Usuario completa datos

de ingreso

3 Sistema valida datos de

usuario

4 Sistema da acceso a la

aplicación

Excepciones

Acceso directo por URL

Importancia Baja

Comentarios El acceso por roles de usuario es de

una importancia baja debido a que la

lógica del desarrollo del prototipo no

se centra en herramientas de control

de acceso

Fig. 34 Caso de uso CU-201. Fuente: Elaboración propia.

82

CU-0202 Administrar información de plantas

Descripción

Para el manejo de las características

de las plantas el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las plantas

requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de plantas

3 Biólogo realiza cambios a

la información de las

plantas

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 35 Caso de uso CU-0202. Fuente: Elaboración propia.

83

CU-0203 Crear información de plantas

Descripción

Para el manejo de las características

de las plantas el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las plantas

requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de plantas

3 Biólogo crea una nueva

planta

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 36 Caso de uso CU-0203. Fuente: Elaboración propia.

84

CU-0204 Eliminar información de plantas

Descripción

Para el manejo de las características

de las plantas el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las plantas

requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de plantas

3 Biólogo elimina una

planta de base de datos

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 37 Caso de uso CU-0204. Fuente: Elaboración propia.

85

CU-0205 Modificar información de plantas

Descripción

Para el manejo de las características

de las plantas el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las plantas

requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de plantas

3 Biólogo modifica una

planta de base de datos

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 38 Caso de uso CU-0205. Fuente: Elaboración propia.

86

CU-0206 Administrar información de plantas

Descripción

Para el manejo de las características

de las variedades el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las

variedades requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de plantas

3 Biólogo realiza cambios a

la información de las

variedades

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 39 Caso de uso CU-0206. Fuente: Elaboración propia.

87

CU-0207 Crear información de plantas

Descripción

Para el manejo de las características

de las variedades el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las

variedades requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de plantas

3 Biólogo crea una variedad

planta

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 40 Caso de uso CU-0207. Fuente: Elaboración propia.

88

CU-0208 Eliminar información de plantas

Descripción

Para el manejo de las características

de las variedades el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las

variedades requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de

variedades

3 Biólogo elimina una

variedad de base de

datos

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 41 Caso de uso CU-0208. Fuente: Elaboración propia.

89

CU-0209 Modificar información de variedades

Descripción

Para el manejo de las características

de las plantas el sistema debe de

ofrecer al biólogo la capacidad de

ingresar la información de las

variedades requeridas en el modelo.

Secuencia Paso Descripción

1 Biólogo accede aplicación

2 Biólogo accede módulo

administración de

variedades

3 Biólogo modifica una

variedad de base de

datos

4 Sistema valida y

almacena cambios

Excepciones

Importancia Alta

Comentarios El biólogo tiene potestad de realizar

ajustes de los parámetros obtenidos

sobre el cargue masivo según él

considere sea conveniente y

descriptivo con la naturaleza del

cultivo.

Fig. 42 Caso de uso CU-0209. Fuente: Elaboración propia.

90

CU-0301 Administrar fertilizantes

Descripción

Para el manejo de las características

de los fertilizantes el sistema debe de

ofrecer al químico la capacidad de

ingresar la información de las

características de los fertilizantes.

Secuencia Paso Descripción

1 Químico accede

aplicación

2 Químico accede módulo

administración de

fertilizantes

3 Químico realiza cambio a

la tabla de fertilizantes

(Crea, Elimina, Modifica)

4 Sistema valida y

almacena cambios

Excepciones

Cambios realizados son

inconsistentes con el modelo.

Importancia Media

Comentarios

Fig. 43 Caso de uso CU-0301. Fuente: Elaboración propia.

91

CU-0302 Administrar plaguicidas

Descripción

Para el manejo de las características

de los plaguicidas el sistema debe de

ofrecer al químico la capacidad de

ingresar la información de las

características de los fertilizantes.

Secuencia Paso Descripción

1 Químico accede

aplicación

2 Químico accede módulo

administración de

plaguicidas

3 Químico realiza cambio a

la tabla de plaguicidas

(Crea, Elimina, Modifica)

4 Sistema valida y

almacena cambios

Excepciones

Cambios realizados son

inconsistentes con el modelo.

Importancia Media

Comentarios

Fig. 44 Caso de uso CU-0302. Fuente: Elaboración propia.

92

CU-0303 Cargue masivos químicos

Descripción

El sistema ofrece la posibilidad de

realizar un cargue masivo de

fertilizantes o pesticidas al químico

siempre que estos se realicen a partir

de uno de los formatos de

almacenamientos soportados y el

archivo cuente con el formato

correcto.

Secuencia Paso Descripción

1 Químico accede

aplicación

2 Químico accede a módulo

de cargues masivos

3 Químico selecciona un

archivo con permisos de

lectura y realiza el cargue

de el a la aplicación

4 Sistema realiza carga de

cada uno de los registros

del archivo

5 Sistema valida registros

poseen formato correcto.

6 Sistema procede a

almacenar cada uno de

los registros cargados

como un registro nuevo

en la tabla

7 Sistema notifica del

estado de la transacción

al usuario

Excepciones

El volumen del archivo es excesivo

para ser trasmitido o para realizar las

acciones necesarias en el servidor.

Se produce un error en la conexión

durante la transmisión de datos.

93

El archivo presenta inconsistencias.

Importancia Media

Comentarios La carga masiva de archivos se

realiza por medio de una estrategia

genérica que toma el formato de

archivo y tipo de cargue realizado.

Fig. 45 Caso de uso CU-0303. Fuente: Elaboración propia.

CU-0401 Administrar suelos

Descripción

Para el manejo de las características

de los suelos el sistema debe de

ofrecer al químico la capacidad de

ingresar la información de las

características de los suelos.

Secuencia Paso Descripción

1 Geólogo accede

aplicación

2 Geólogo accede modulo

administración de suelos

3 Geólogo realiza cambio a

la tabla de suelos (Crea,

Elimina, Modifica)

4 Sistema valida y

almacena cambios

Excepciones

Cambios realizados son

inconsistentes con el modelo.

Importancia Muy alta

Comentarios

Fig. 46 Caso de uso CU-0401. Fuente: Elaboración propia.

94

CU-0402 Administrar suelos (niveles de

precipitación)

Descripción

Para el manejo de los niveles de

precipitación el sistema ofrece la

posibilidad de consumir el servicio de

información meteorológica.

Secuencia Paso Descripción

1 Geólogo accede

aplicación

2 Geólogo accede modulo

administración de suelos

3 Geólogo utiliza servicio de

información

meteorológica.

4 Sistema realiza consumo

de servicio y actualiza

información

meteorológica de la tabla

5 Sistema notifica de

cambios realizados.

Excepciones

Servicio no se encuentra disponible

Importancia Alta

Comentarios La actualización depende de la

actualización de datos del servicio, así

como su integridad y disponibilidad.

Fig. 47 Caso de uso CU-0402. Fuente: Elaboración propia.

95

CU-0403 Administrar ubicaciones de cultivo

Descripción

El sistema ofrece la posibilidad de

visualizar las ubicaciones de los

cultivos en una tabla y en un mapa

para conocer los detalles de cada una

de ellas es posible realizar la

interacción con los datos

almacenados de cada cultivo.

Secuencia Paso Descripción

1 Geólogo accede

aplicación

2 Geólogo accede módulo

administración de suelos

3 Geólogo utiliza servicio de

información

meteorológica.

4 Sistema realiza consumo

de servicio y actualiza

información

meteorológica de la tabla

5 Sistema notifica de

cambios realizados.

Excepciones

Importancia Alta

Comentarios La actualización depende de la

actualización de datos del servicio, así

como su integridad y disponibilidad.

Fig. 48 Caso de uso CU-0403. Fuente: Elaboración propia.

96

CU-0404 Estadísticas de resultados

Descripción

A partir de los registros en la base de

datos el sistema genera estadísticas

de usos de suelo y entrega los

resultados en forma de tablas y

graficas.

Secuencia Paso Descripción

1 Geólogo accede

aplicación

2 Geólogo accede al

módulo de estadísticas

4 Sistema genera

estadísticas a partir de

resultados

5 Sistema presenta

información estadística

Excepciones

Importancia Media

Comentarios No se considera la posibilidad de

calcular los resultados a partir de un

filtro en esta etapa, sino que las

estadísticas se ofrecen de la totalidad

de datos almacenados.

Fig. 49 Caso de uso CU-0404. Fuente: Elaboración propia.

97

CU-0501 Estimación de rendimientos de cultivo

Descripción

Por medio de la selección de la

ubicación y el tipo de cultivo

determinado el sistema estima los

niveles de cultivo esperados en el

cultivo. El nivel de producción en kg y

los ingresos económicos esperables.

Secuencia Paso Descripción

1 Cultivador accede

aplicación

2 Cultivador accede a

gestión de cultivos

4 Cultivador ingresa

detalles de cultivo

5 Sistema ofrece

alternativas de cultivo

6 Cultivador selecciona

cultivo

7 Sistema ofrece resultados

esperables según el

cálculo de la estimación

de la producción y el

costo en el mercado.

Excepciones

Importancia Muy alta

Comentarios La capacidad de estimación varía

según los datos ingresados y la

disponibilidad de información sobre el

terreno y cultivo.

Fig. 50 Caso de uso CU-0501. Fuente: Elaboración propia.

98

CU-0502 Estadísticas de resultados cultivador

Descripción

A partir de los registros en la base de

datos el sistema genera estadísticas

de usos de suelo y entrega los

resultados en forma de ingresos

esperados.

Secuencia Paso Descripción

1 Cultivador accede

aplicación

2 Cultivador accede al

módulo de estadísticas

4 Sistema genera

estadísticas a partir de

resultados

5 Sistema presenta

información estadística

Excepciones

Importancia Alta

Comentarios No se considera la posibilidad de

calcular los resultados a partir de un

filtro en esta etapa, sino que las

estadísticas se ofrecen de la totalidad

de datos almacenados.

Fig. 51 Caso de uso CU-0502. Fuente: Elaboración propia.

99

CU-0503 Creación de nuevo cultivo

Descripción

Por medio de la selección de la

ubicación y el tipo de cultivo

determinado el sistema estima los

niveles de cultivo esperados en el

cultivo. El nivel de producción en kg y

los ingresos económicos esperables.

Secuencia Paso Descripción

1 Cultivador accede

aplicación

2 Cultivador accede a

gestión de cultivos

4 Cultivador ingresa

detalles de cultivo

5 Sistema ofrece

alternativas de cultivo

6 Cultivador selecciona

cultivo

7 Sistema ofrece resultados

esperables según el

cálculo de la estimación

de la producción y el

costo en el mercado.

Excepciones

Importancia Muy alta

Comentarios La capacidad de estimación varía

según los datos ingresados y la

disponibilidad de información sobre el

terreno y cultivo.

Fig. 52 Caso de uso CU-0503. Fuente: Elaboración propia.

100

9.8 Diagrama de clases

El diagrama de clases es un diagrama estático que representa y describe

aspectos no solo del sistema sino de la aplicación de software. Describe

entonces los atributos estáticos de las clases y sus operaciones, así como las

restricciones del sistema. Sirve entonces como base para la construcción del

código de la aplicación.

Es uno de los diagramas más ampliamente implementado debido a que es uno

de los pocos que puede ser mapeado directamente desde lenguajes en el

paradigma de la orientación a objetos.

El propósito del diagrama de clases puede resumirse entonces en:

• Ofrecer el análisis y diseño estático de la aplicación.

• Describir las responsabilidades del sistema.

• Es la base del diagrama de componentes y de despliegue.

Fig. 53 Diagrama de clases de los modelos en el edmx “AgroModel”. Fuente: Elaboración propia.

101

El diagrama anterior representa una simplificación del EDMX con los modelos

que representan la tabla en la base de datos, el EDMX es un archivo XML que

contiene el modelo conceptual generado en Entity Designer.

Fig. 54 Diagrama de clases, acción de adicionar una Variedad. Fuente: Elaboración propia

En el diagrama se observa la relación entre las clases que interactúan en el

proceso de adicionar una nueva variedad a una planta. Este modelo es una

simplificación que no incluye los atributos y métodos de cada clase ni la herencia

de las clases de .Net para el controlador y los modelos.

El comportamiento de la mayoría de interacciones desde las vistas es similar, un

control realiza la implementación de las vistas y realiza una operación sobre uno

o más modelos concretos.

102

Fig. 55 Diagrama de clases, estrategia carga de archivos. Fuente: Elaboración propia

En el diagrama se presenta la implementación del patrón estrategia en la carga

de archivos, el contexto hace referencia a la estrategia de cargue de archivo

plano la cual actúa como interfaz común y se encarga de determinar cuál de las

estrategias concretas definir.

9.9 Diagrama de objetos

El diagrama de objetos es un derivado directo del diagrama de clases, así que

existe una dependencia entre los diagramas de objetos y el diagrama de clases.

Así el diagrama de objetos es una instancia del diagrama de clases. El concepto

básico es similar, también representa una vista estática del sistema, pero en este

caso representa una representación en un momento especifico de la ejecución.

103

El propósito de este diagrama este entender claramente la implementación

práctica, al ser una representación de una instancia en un momento determinado,

esta es de una naturaleza concreta. Esto significa que es mucho más cercano al

comportamiento del sistema.

El propósito del diagrama de objetos es entonces:

• Conocer las relaciones entre los objetos.

• Ofrecer una vista estática de una interacción concreta.

• Entender el comportamiento de los objetos desde un punto de vista

práctico.

Fig. 56 Diagrama de objetos, objeto “Variedad". Fuente: Elaboración propia.

El diagrama representa las relaciones de un objeto “MaizBlanco” tipo variedad

en tiempo de ejecución. Posee las características generales de una variedad de

cultivo relevantes para conocer el nivel de producción esperable. En el caso está

relacionado a varios objetos tipo precio los cuales representan diferentes precios

históricos de esa variedad en kilogramos. Así mismo está relacionado tanto a un

tipo de planta del cual es una especificación.

104

9.10 Diagrama de componentes.

El diagrama de componentes es diferente en naturaleza y comportamiento. Son

utilizados para describir aspectos específicos del sistema. Aspectos tales como

ejecutables, librerías, archivos, etc. Los cuales se representan de forma nodal

en el diagrama. Este diagrama es utilizado para conocer y visualizar la

organización y las relaciones entre los componentes de un sistema. Este

diagrama también puede ser utilizado para hacer los ejecutables del sistema.

El objetivo del diagrama de componentes difiere ampliamente de los diagramas

anteriores al no ser una representación funcional del sistema, sino que es

utilizado para visualizar la representación física de este.

El propósito del diagrama de componentes es:

• Visualizar los componentes de un sistema.

• Construir los ejecutable usando ingeniería e ingeniería inversa.

• Describir la organización y relación entre los componentes.

Fig. 57 Diagrama de componentes. Fuente: Elaboración Propia.

MVC define las relaciones entre los componentes de vista (contiene la

presentación al cliente de la aplicación), control (maneja los request y aplica la

lógica apropiada) y modelo (representa las entidades que interactúan en el

sistema). El estado de los modelos es almacenado en el componente de

persistencia por medio de Entity Framework. La interacción con los servicios

externos es realizada por medio de acciones en el control de la misma manera

que se realiza la interacción con el cliente.

105

9.11 Diagrama de despliegue

El diagrama de despliegue es utilizado para representar la topología del sistema,

donde los componentes de software son desplegados. El diagrama de

despliegue es utilizado para obtener una vista de los componentes a desplegar

en una representación de nodos y relaciones. El mismo término de despliegue

es la descripción del diagrama, es utilizado para describir los componentes de

hardware donde se aloja el software a ejecutar.

El diagrama es utilizado para describir cuáles son estos componentes y cómo

debe de realizarse el despliegue. El diagrama de componentes y el diagrama de

despliegue son cercanamente relacionados. A pesar de que la mayoría de

diagramas UML están diseñados para la representación de componentes lógicos.

Este es fundamentalmente utilizado para comprender la topología del sistema.

El propósito del diagrama de despliegue puede ser descrito como:

• Visualizar adecuadamente la topología del sistema.

• Describir el diagrama de componentes para realizar el despliegue del

software.

• Describir el proceso de ejecución por nodos de componentes.

106

Fig. 58 Diagrama de despliegue de la aplicación. Fuente: Elaboración propia.

107

En el diagrama de despliegue se puede observar el comportamiento de la

aplicación desde la API de los servidores de Web Services hasta la aplicación la

comunicación se da por medio de la arquitectura REST, se consumen los

servicios dispuestos en diferentes etapas de la ejecución y se utilizan para la

actualización de los datos almacenados en el servidor de base de datos. Esta

actualización se realiza por demanda de alguno de los roles de la aplicación y

depende del estado de la base de datos y de la disponibilidad del servicio, así

como de su respuesta.

La comunicación entre el servidor Web que contiene el Front End de la aplicación

es también por medio de Web API. Al interior de la aplicación la lógica de negocio

es ejecutada por el servidor de cómputo el cual se encarga de los procesos del

Back End del negocio. Adicionalmente al servidor de base de datos que

almacena el estado de los modelos y al servidor de computo que ejecuta el

cálculo. El Back End contiene el servidor de archivos el cual almacena la copia

de archivos cargados por un usuario para el cargue de datos.

La comunicación entre el cliente y el servidor se da por medio del protocolo HTTP

y funciona según la arquitectura MVC de .Net el servidor responde a los Queries

del cliente con la creación de vista dinámicas por medio de Razor, generando

HTML, CSS y JavaScript según el estado en el servidor para el navegador

utilizado en el cliente.

108

10. TALENTO HUMANO Y RECURSOS

TECNOLÓGICOS

10.1 TALENTO HUMANO

• Sergio Andrés Rodríguez, estudiante de Ingeniería de Sistemas.

Universidad Distrital.

• Julio Barón Velandia, director de proyecto. Universidad Distrital.

Responsabilidad

Rol SCRUM Estudiante Director

Scrum master Asegurar el manejo del

backlog,

autogestionarse, medir

niveles de productividad.

Facilitar las reuniones

Velar por el

cumplimiento de los

principios agiles.

Facilitar reuniones

Product Owner Definir los objetivos del

proyecto y producto.

Planificar y dar detalle a

las iteraciones

Guiar cumplimiento de

los requisitos.

Development Team Auto Organización del

manejo interno de los

tiempos en el sprint,

identificación de tareas,

estimación detallada de

esfuerzos. Velar por el

contenido de las

entregas.

X

Fig. 59 Distribución de responsabilidades en los roles de Scrum. Fuente: Elaboración propia.

109

10.2 RECURSOS TECNOLÓGICOS

10.2.1 Herramientas de Software.

• QGIS.

• Microsoft Visual Studio 2017, Version community.

• SQL Server Express edition.

• Microsoft Office (Word, Excel, PowerPoint) 2010.

• Open Office.

• Trello.

10.2.2 Entorno de desarrollo

ASP.Net

• NET MVC (Model View Controller).

• Web API.

• Entity Model Scaffolding.

• Entity Framework Model Scaffolding.

10.2.3 Servicios externos consumidos

• API REST service SoilGrids.

• API REST service Quandl.

• API REST Climate data API.

• API REST Fixer.io Currency information.

• Google maps API.

• Google places API.

10.2.4 Librerías adicionales implementadas

• Chart.js.

• Jquery.

• Jquery UI.

• Fullcalendar.io.

• Json.Net Newtonsoft.

• Bootstrap 3.

10.2.5 Herramientas de Hardware.

• Servicio de uso por portátil Samsung línea NP300.

• Uso de equipos de diferentes resoluciones para realizar pruebas

funcionales.

110

11. CONCLUSIONES

La generación de un modelo aproximado para la toma de decisiones agrícolas a

partir de datos de fuentes libres es posible, gracias a la existencia de datos de

acceso libre, tanto a nivel regional, como a nivel global, que abarcan la mayoría

de factores relevantes en un cultivo tal como la composición de los suelos y la

meteorología a través del tiempo.

La variación de los precios, tanto del producto agrícola, como de los insumos

requeridos, y la dificultad para estimar con certeza la meteorología en periodos

largos de tiempo para la región en la cual se desarrolla el proyecto agrícola, son

los elementos más relevantes en la planeación de un cultivo. De acuerdo a lo

anterior, el mejorar los servicios que proveen información de estos factores

optimizaría la capacidad de predecir el desarrollo de un cultivo.

La obtención de información de múltiples fuentes por parte de la aplicación

supone una limitación, en cuanto a que genera dependencia de la información

disponible por parte de múltiples organizaciones y servicios. Esta limitación se

solventa parcialmente por medio de la capacidad de definir múltiples fuentes de

datos como respaldo.

Para el desarrollo del prototipo, la definición de una arquitectura MVC con

servicios REST ofreció la interoperabilidad necesaria para interactuar con

múltiples recursos web, esto sin necesidad de la implementación de estándares

complejos, tal como sería el caso en una implementación basada en SOAP.

El modelo propuesto se ofrece como una referencia para optimizar el manejo de

los agroecosistemas. El resultado obtenido puede ser por tanto utilizado para la

estimación de decisiones agrícolas, no como una instrucción para el manejo de

un cultivo específico, sino como una guía de referencia a tomar en cuenta.

La implementación de tecnologías accesibles a la población de cultivadores del

país debe ser respaldada como una política social más que económica; no es

posible considerar el desarrollo de una sociedad exclusivamente como la

acumulación de bienes, sino que esto debe ir acompañado a su vez del

desarrollo humano. La agrotecnología aporta al país una oportunidad única de

llevar el progreso científico a la sociedad como una política.

A nivel personal considero que la universidad realiza un aporte fundamental al

progreso de la agricultura por medio del desarrollo científico en conjunto con el

desarrollo e implementación tecnológica. Mi reconocimiento a la universidad

como ente de formación por el apoyo recibido para el desarrollo de este proyecto,

principalmente a los docentes y especialmente al director de proyecto Julio Barón

Velandia por su colaboración y guía que dio definición a la formación de este

trabajo.

111

12. RECOMENDACIONES Y TRABAJOS

FUTUROS

El prototipo posee un gran potencial de implementación y de mejora, debido a

su arquitectura su ampliación es fácil y su código no necesita ser re-

manufacturado para consumir los servicios REST del Back End de la aplicación.

Gracias a esto, una re-implementación como aplicación móvil solamente

requeriría del consumo de los JSON de la aplicación. Se puede ampliar y

modificar los módulos para realizar el cargue de diversos formatos de archivo,

también re-apuntar a nuevos servicios de información meteorológica o de suelos,

con el fin de lograr su integración con otras aplicaciones de agricultura de

precisión.

Como prototipo, aún se requiere de la robustez de una aplicación desplegable

para un uso real. El manejo y administración de los perfiles y las sesiones hasta

ahora se encuentran en un estado de identificación de módulos. También es

necesario realizar modificaciones a las validaciones del lado del servidor, y el

manejo de un back log de errores para controlar acciones inesperadas por parte

del usuario.

El estado actual del proyecto deja lugar a un desarrollo de la aplicación como un

producto comercial. Si el anterior fuera el caso, un potencial interesado debería

hacer uso de conocimiento experto en las diferentes áreas de la agricultura, junto

con un rediseño de la base de datos y modelos de la aplicación. Esto, teniendo

en cuenta que debería cambiarse la dependencia de los servicios externos

consumidos para evitar precisar de la infraestructura de terceros y así poder

incluir conjuntos de datos específicos de la región de Cundinamarca y Boyacá.

112

BIBLIOGRAFÍA

[1] R. D. Hart., Conceptos básicos sobre agroecosistemas, 1985.

[2] B. B. mundial, «Poblacion a nivel global,» 2017. [En línea]. Available:

https://datos.bancomundial.org/indicador/SP.POP.TOTL.

[3] B. B. Mundial, «Tierras cultivables,» 2017. [En línea]. Available:

https://datos.bancomundial.org/indicador/AG.LND.ARBL.ZS?view=chart.

[4] BIRF, « Porcentaje Tierras cultivables,» [En línea]. Available:

http://datos.bancomundial.org/indicador/AG.LND.ARBL.ZS. Consultado

agosto 2017..

[5] Semana, « ¿Alimentos o gasolina?,» [En línea]. Available:

http://www.semana.com/economia/articulo/alimentos-gasolina/88605-3.

[6] MINAGRICULTURA., «Gobierno se compromete a aumentar en un millón el

número de nuevas hectáreas cultivadas en el 2018,» [En línea]. Available:

https://www.minagricultura.gov.co/noticias/Paginas/Gobierno-se-

compromete-un-millon-de-nuevas-hect%C3%A1reas-2018.aspx.

[7] Semana, «Una dura radiografía del campo colombiano,» [En línea].

Available: http://www.semana.com/economia/articulo/campo-colombiano-

en-la-pobreza/438618-3. 2015. Consultado Marzo 2017.

[8] N. Arias, «La mayor parte de la tierra que es cultivable a nivel mundial está

en América Latina.,» [En línea]. Available:

https://www.larepublica.co/globoeconomia/la-mayor-parte-de-la-tierra-que-

es-cultivable-a-nivel-mundial-esta-en-america-latina-2217671..

[9] FAO, «Agroecology,» [En línea]. Available: http://www.fao.org/family-

farming/themes/agroecology/es/. [Último acceso: 2017].

[10] G. R, Agroecosystem analysis. Agricultural Administration, 1985.

[11] «AGP - Agro-ecological Farming Options and Opportunities,» FAO, [En

línea]. Available: http://www.fao.org/agriculture/crops/thematic-

sitemap/theme/spi/soil-biodiversity/agriculture-and-soil-biodiversity/agro-

ecological-farming-options-and-opportunities/en/. [Último acceso: 2017].

[12] FAO, «agroecology,» [En línea]. Available: http://www.fao.org/agroecology/.

[Último acceso: 2017].

113

[13] «Agroecology Knowledge Hub,» FAO, 2017. [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/. [Último acceso:

2017].

[14] FAO, «Balance: securing favourable soil conditions and self-regulation inside

the food system.,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/balance/en/.

[Último acceso: 2017].

[15] FAO, «Diversity: maximising species and genetic resources across time and

space within food systems,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/diversity/en/.

[Último acceso: 2017].

[16] FAO, «Co-creation of knowledge: local and traditional knowledge and

innovation to create sustainable food systems based on local needs and local

ecosystems,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/co-creation-

knowledge/en/. [Último acceso: 2017].

[17] FAO, «Recycling: reutilizing nutrients and biomass existing inside the

farming system and increased use of renewable resources promoting a

healthy food system,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/recycling/en/.

[Último acceso: 2017].

[18] FAO, «Synergies: Designing food systems with an optimal crop/animal

assemblage, while promoting ecological functions,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/synergies/en/.

[Último acceso: 2017].

[19] FAO, «Circular economy: local solutions and local markets creating virtuous

cycles,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/circular-

economy/en/. [Último acceso: 2017].

[20] FAO, «Culture and food traditions : healthy, diversified and culturally

appropriate diets deliver good nutrition while assuring the health of

ecosystems,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/culture-food-

traditions/en/. [Último acceso: 2017].

[21] FAO, «Land and natural resources governance: recognizing and supporting

smallholder food producers as sustainable managers and guardians of

natural and genetic resources,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/land-natural-

resources-governance/en/. [Último acceso: 2017].

114

[22] FAO, «Human and social value: building food systems based on the culture,

identity, tradition, innovation and knowledge of local communities and

livelihoods,» [En línea]. Available:

http://www.fao.org/agroecology/knowledge/10-elements/human-social-

value/en/. [Último acceso: 2017].

[23] ISO, «ISO 14000 family - Environmental management,» [En línea]. Available:

https://www.iso.org/iso-14001-environmental-management.html. [Último

acceso: 2017].

[24] ISO, «ISO 14001,» [En línea]. Available:

https://www.iso.org/files/live/sites/isoorg/files/standards/docs/en/iso_14001

_key_benefits.pdf. [Último acceso: 2017].

[25] ICONTEC, «SISTEMAS DE GESTIÓN AMBIENTAL. REQUISITOS CON

ORIENTACIÓN PARA SU USO,» ICONTEC, [En línea]. Available:

https://informacion.unad.edu.co/images/control_interno/NTC_ISO_14001_2

015.pdf. [Último acceso: 2017].

[26] Geomaticaes, «QUÉ ES LA GEOMÁTICA,» [En línea]. Available:

http://geomaticaes.com/que-es-la-geomatica/. [Último acceso: 2017].

[27] N. G. S. Caryl-Sue, «GIS (geographic information system),»

nationalgeographic, [En línea]. Available:

https://www.nationalgeographic.org/encyclopedia/geographic-information-

system-gis/.

[28] QGIS, «QGIS Cloud Hosting,» [En línea]. Available: https://qgiscloud.com/.

[Último acceso: 2017].

[29] I. S. Mejía, Geografía económica de la región Andina Oriental, Banco de la

república de Colombia , 2010.

[30] G. d. Colombia, «Usos Propuestos del Suelo de Cundinamarca,» 2017. [En

línea]. Available: https://www.datos.gov.co/en/Mapas-Nacionales/Usos-

Propuestos-del-Suelo-de-Cundinamarca/643a-dsyy/data.

[31] I. g. A. Codazzi, «MAPAS DE AGROLOGÍA,» [En línea]. Available:

http://www.igac.gov.co:10040/wps/portal/igac/raiz/iniciohome/MapasdeColo

mbia/Mapas/Suelos. [Último acceso: 2017].

[32] siac, «Suelos en Colombia,» [En línea]. Available:

http://www.siac.gov.co/sueloscolombia.

[33] I. G. A. CODAZZ, «MAPAS DE AGROLOGÍA,» [En línea]. Available:

http://www.igac.gov.co:10040/wps/portal/igac/raiz/iniciohome/MapasdeColo

mbia/Mapas/Suelos. [Último acceso: 2017].

115

[34] MINAMBIENTE, «Estratégia para la Gestión Integral Ambiental del Suelo en

Colombia - GIAS,» 2017. [En línea]. Available:

http://www.minambiente.gov.co/index.php/component/content/article?id=15

8:plantilla-asuntos-ambientales-y-sectorial-y-urbana-11.

[35] siac, «Gestion de suelos,» [En línea]. Available:

http://www.siac.gov.co/web/siac/gestion.

[36] FAO, «World Alliance for the Soil,» [En línea]. Available:

http://www.fao.org/global-soil-partnership/. [Último acceso: 2017].

[37] SoilGrids, «SoilGrids — global gridded soil information,» 2017. [En línea].

Available: http://www.isric.org/explore/soilgrids. [Último acceso: 2017].

[38] J. Brownlee, «Bagging and Random Forest Ensemble Algorithms for

Machine Learning,» 2017. [En línea]. Available:

https://machinelearningmastery.com/bagging-and-random-forest-ensemble-

algorithms-for-machine-learning/.

[39] M. l. mastery, «A Gentle Introduction to the Gradient Boosting Algorithm for

Machine Learning,» 2017. [En línea]. Available:

https://machinelearningmastery.com/gentle-introduction-gradient-boosting-

algorithm-machine-learning/.

[40] FAO, «FAO SOILS PORTAL,» 2017. [En línea]. Available:

http://www.fao.org/soils-portal/soil-survey/soil-properties/en/.

[41] M. Mason, «History of Agriculture,» 2017. [En línea]. Available:

https://www.environmentalscience.org/history-agriculture.

[42] J. H. Trienekens, «Agricultural Value Chains in Developing Countries,»

IFAMA, 2011.

[43] DSSAT, «DSSAT,» 2017. [En línea]. Available: https://dssat.net/.

[44] ICASA, «International Consortium for Agricultural Systems Applications

(ICASA),» 2003. [En línea]. Available:

http://www.agrometeorology.org/topics/new-information-for-

agrometeorologists/international-consortium-for-agricultural-systems-

applications-icasa.

[45] M. D. Network, «What is Software Architecture?,» [En línea]. Available:

https://msdn.microsoft.com/en-us/library/ee658098.aspx . [Último acceso:

2017].

[46] Microsoft, «What is Software Architecture?,» [En línea]. Available:

https://msdn.microsoft.com/en-

us/library/ee658098.aspx?f=255&MSPPError=-2147217396.

116

[47] Oracle, «What Are RESTful Web Services?,» 2013. [En línea]. Available:

https://docs.oracle.com/javaee/6/tutorial/doc/gijqy.html.

[48] Quandl, «The world’s most powerful data lives on Quandl.,» 2017. [En línea].

Available: https://www.quandl.com/.

[49] Microsoft, «Cloud Platform,» 2017. [En línea]. Available:

https://www.microsoft.com/en-us/cloud-platform/.

[50] M. Docs, «Descripción de Cloud App Security,» [En línea]. Available:

https://docs.microsoft.com/es-es/cloud-app-security/what-is-cloud-app-

security.

[51] techopedia, «Data Source,» [En línea]. Available:

https://www.techopedia.com/definition/30323/data-source. [Último acceso:

2017].

[52] G. Milener, «Microsoft Docs,» [En línea]. Available:

https://docs.microsoft.com/en-us/sql/odbc/reference/data-sources. [Último

acceso: 2017].

[53] IBM, «Arquitectura REST,» [En línea]. Available:

http://www.tsgroup.com.co/wps/portal/tsg/blog/detalle-blog/la-arquitectura-

rest. [Último acceso: 2017].

[54] T. F. H. &. S. T. B. Allen, Hierarchy: Perspectives for Ecological Complexity,

1982.

[55] G. Conway, In Agroecosystem analysis for research and concepts, Winrock

Int. Inst. for Agriculture, 1990.

[56] E. M. J. H. y. S. D. O. Jiménez, «Metodologías híbridas para,» Revista Digital

Universitaria, vol. 13, nº 1, 2012.

[57] «Trello,» [En línea]. Available: https://trello.com/.

[58] S. D. O. Miriam Jiménez Hernández, «Metodologías híbridas para desarrollo

de software: una opción factible para México,» 2012. [En línea]. Available:

http://www.revista.unam.mx/vol.13/num1/art16/art16.pdf.

[59] K. E. Wiegers, Software Requirements, Microsoft Press, 2003.

[60] developer.microsoft.com, «ASP.NET MVC Overview,» microsoft, [En línea].

Available: https://msdn.microsoft.com/es-

es/library/dd381412(v=vs.108).aspx. [Último acceso: 2017].

[61] Microsoft, «MSDN Library,» [En línea]. Available:

https://msdn.microsoft.com/library/.

[62] OMG, OMG Unified Modeling Language (OMG UML),, OMG, 2017.

117

[63] S. W. Ambler, «Introduction to Test Driven Development,» 2017. [En línea].

Available: http://agiledata.org/essays/tdd.html.

[64] C. g. d. l. república., «GENERACIÓ DE INGRESOS RURALES EN LA

SABANA DE CUNDINAMARCA,» [En línea]. Available:

http://www.contraloria.gov.co/documents/10136/44390096/agenda-

generacion-de-ingresos-rurales-cundinamarca-doc-base-

2010.pdf/9aaf6d95-26cb-4d46-9f46-d8427c9aff4c. 2010. Consultado agosto

2017..

[65] L. nación, «Los problemas del campo colombiano,» [En línea]. Available:

http://lanacion.com.co/index.php/economica/item/256605-los-problemas-

del-campo-colombiano.

[66] FAO, «Food and Agriculture Organization of the United Nations FAO.

Depósito de documentos de la FAO,» [En línea]. Available:

http://www.fao.org/docrep/t2351s/T2351S06.htm.

[67] Finagro, «El momento del Agro,» [En línea]. Available:

https://www.finagro.com.co/noticias/el-momento-del-agro..

[68] Quandl, «The world’s most powerful data lives on Quandl,» 2017. [En línea].

Available: https://www.quandl.com/.

118

TABLA DE FIGURAS

Fig. 1 Población global en miles de millones de personas960-2016). Fuente: [2].

........................................................................................................................... 8

Fig. 2 Porcentaje de terrenos cultivables a nivel global (1960-2016). Fuente: [3]. 8

Fig. 3 Mapa de la representación del uso de suelos propuesto para

Cundinamarca en el año 2007. Fuente: [31]. ................................................... 23

Fig. 4 Mapa de tipos suelos de la región del altiplano cundiboyacense. Fuente:

[33]. .................................................................................................................. 24

Fig. 5 Mapa de tipos suelos de la región del altiplano cundiboyacense. Fuente:

[33]. .................................................................................................................. 24

Fig. 6 Espectro de colores utilizados en la representación de concentraciones en

Soilgrids. Fuente: [37]. ..................................................................................... 26

Fig. 7 Diagrama del modelo de ensamblado de predicciones en Soilgrids. Fuente:

[37]. .................................................................................................................. 28

Fig. 8 Datasets Disponibles a nivel global. Fuente: [37]. .................................. 29

Fig. 9 Representación gráfica de la cadena de producción agrícola. Fuente:

Elaboración propia. .......................................................................................... 32

Fig. 10 Representación del diagrama de alto nivel de la base datos. Fuente:

Elaboración propia. .......................................................................................... 36

Fig. 11 Tabla de resumen de datos, contiene el Resultado estimado de una única

predicción. Fuente: Elaboración propia. ........................................................... 37

Fig. 12 Representación de la arquitectura REST. Fuente: Elaboración propia. 40

Fig. 13 Representación de la fluctuación del precio del maíz amarillo. Fuente:

[48]. .................................................................................................................. 41

Fig. 14 Ejemplo de la infraestructura de una aplicación Cloud. Fuente: [49]. ... 42

Fig. 15 Jerarquía de sistemas ecológicos según la ecología. Fuente: [11]. ..... 47

Fig. 16 Jerarquía de un sistema agrícola, presenta una región con múltiples agro

sistemas que incluyen tanto crianza de animales como cultivo de plantas. Fuente

[11]. .................................................................................................................. 48

Fig. 17 Vista del tablero del Product Backlog. Fuente: Elaboración propia. ..... 51

Fig. 18 Implementación de una metodología híbrida entre Scrum (70%) y RUP

(30%) para el desarrollo del proyecto. Fuente: Elaboración propia. ................. 52

Fig. 19 Tabla de requerimientos funcionales y no funcionales. Fuente:

Elaboración propia. .......................................................................................... 60

Fig. 20 Fragmento Modelo Ubicación. Fuente: elaboración propia. ................. 61

Fig. 21 Fragmento del controlador de vista de ubicación. Fuente: elaboración

propia. .............................................................................................................. 63

Fig. 22 Fragmento vista de detalles de Ubicación. Fuente: Elaboración propia.

......................................................................................................................... 64

Fig. 23 Diagrama de entidades. Fuente: Elaboración propia. .......................... 67

Fig. 24 Roles de usuario dentro de la aplicación. Fuente: Elaboración propia. 68

119

Fig. 25 Proceso de pruebas iniciales (TFD- Test First Development). Fuente: [63].

......................................................................................................................... 69

Fig. 26 Diagrama general de casos de uso de la aplicación. Fuente: Elaboración

propia. .............................................................................................................. 73

Fig. 27 Plantilla para descripción de casos de uso. Fuente: Elaboración propia.

......................................................................................................................... 74

Fig. 28 Caso de uso CU-0101. Fuente: Elaboración propia. ............................ 75

Fig. 29 Caso de uso CU-0102. Fuente: Elaboración propia. ............................ 76

Fig. 30 Caso de uso CU-0103. Fuente: Elaboración propia. ............................ 77

Fig. 31Caso de uso CU-0104. Fuente: Elaboración propia. ............................. 78

Fig. 32 Caso de uso CU-0105. Fuente: Elaboración propia. ............................ 79

Fig. 33 Caso de uso CU-0106. Fuente: Elaboración propia. ............................ 80

Fig. 34 Caso de uso CU-201. Fuente: Elaboración propia. .............................. 81

Fig. 35 Caso de uso CU-0202. Fuente: Elaboración propia. ............................ 82

Fig. 36 Caso de uso CU-0203. Fuente: Elaboración propia. ............................ 83

Fig. 37 Caso de uso CU-0204. Fuente: Elaboración propia. ............................ 84

Fig. 38 Caso de uso CU-0205. Fuente: Elaboración propia. ............................ 85

Fig. 39 Caso de uso CU-0206. Fuente: Elaboración propia. ............................ 86

Fig. 40 Caso de uso CU-0207. Fuente: Elaboración propia. ............................ 87

Fig. 41 Caso de uso CU-0208. Fuente: Elaboración propia. ............................ 88

Fig. 42 Caso de uso CU-0209. Fuente: Elaboración propia. ............................ 89

Fig. 43 Caso de uso CU-0301. Fuente: Elaboración propia. ............................ 90

Fig. 44 Caso de uso CU-0302. Fuente: Elaboración propia. ............................ 91

Fig. 45 Caso de uso CU-0303. Fuente: Elaboración propia. ............................ 93

Fig. 46 Caso de uso CU-0401. Fuente: Elaboración propia. ............................ 93

Fig. 47 Caso de uso CU-0402. Fuente: Elaboración propia. ............................ 94

Fig. 48 Caso de uso CU-0403. Fuente: Elaboración propia. ............................ 95

Fig. 49 Caso de uso CU-0404. Fuente: Elaboración propia. ............................ 96

Fig. 50 Caso de uso CU-0501. Fuente: Elaboración propia. ............................ 97

Fig. 51 Caso de uso CU-0502. Fuente: Elaboración propia. ............................ 98

Fig. 52 Caso de uso CU-0503. Fuente: Elaboración propia. ............................ 99

Fig. 53 Diagrama de clases de los modelos en el edmx “AgroModel”. Fuente:

Elaboración propia. ........................................................................................ 100

Fig. 54 Diagrama de clases, acción de adicionar una Variedad. Fuente:

Elaboración propia ......................................................................................... 101

Fig. 55 Diagrama de clases, estrategia carga de archivos. Fuente: Elaboración

propia ............................................................................................................. 102

Fig. 56 Diagrama de objetos, objeto “Variedad". Fuente: Elaboración propia. 103

Fig. 57 Diagrama de objetos, objeto “Variedad". Fuente: Elaboración Propia.104

Fig. 58 Diagrama de despliegue de la aplicación. Fuente: Elaboración propia.

....................................................................................................................... 106

Fig. 59 Distribución de responsabilidades en los roles de Scrum. Fuente:

Elaboración propia. ........................................................................................ 108