Upload
haanh
View
217
Download
2
Embed Size (px)
Citation preview
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.
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.
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.
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