View
212
Download
0
Category
Preview:
Citation preview
1. Índice 1. Índice ________________________________________________________ 2
1.1. Índice de imágenes _______________________________________________ 3 1.2. Índice de Código fuente ___________________________________________ 3
2. Introducción___________________________________________________ 4 3. Estado del arte_________________________________________________ 6
3.1. CD TEC – IrriMAX_________________________________________________ 6 3.2. Verdtech – addVANTAGE 4 Pro _____________________________________ 7 3.3. Hanna Instruments - Equipo de Fertirriego HI 8001 _____________________ 8
4. Desarrollo de Software __________________________________________ 9 4.1. ¿Qué es UML? ___________________________________________________ 9 4.2. Visión de alto nivel del sistema ____________________________________ 12 4.3. Casos de uso ___________________________________________________ 14
4.3.1. Diagrama de casos de uso ______________________________________________15 4.3.2. Descripción de casos de uso _____________________________________________16
4.4. Clases del sistema_______________________________________________ 20 4.4.1. Diagrama de clases ____________________________________________________21 4.4.2. Generación de código __________________________________________________22
5. Bibliografía___________________________________________________ 33
1.1. Índice de imágenes Imagen 1 - IrriMAX 6.1 ____________________________________________________________6 Imagen 2 - IrriMAX 6.1 (Acercamiento en el gráfico) _____________________________________7 Imagen 3 - Aplicación de Verdtech___________________________________________________8 Imagen 4 - Diagrama de clases de diagramas de UML ___________________________________9 Imagen 5 - Diagrama de casos de uso_______________________________________________15 Imagen 6 - Diagrama de clases dominantes. __________________________________________21
1.2. Índice de Código fuente Código 1 - Clase Usuario.............................................................................................................. 22 Código 2 - Clase Elemento........................................................................................................... 23 Código 3 - Clase Control .............................................................................................................. 24 Código 4 - Clase Grafico .............................................................................................................. 25 Código 5 - Clase Evento............................................................................................................... 26 Código 6 - Clase Interfaz.............................................................................................................. 26 Código 7 - Clase PlanDeRiego..................................................................................................... 27 Código 8 - Clase PlanPorSector ................................................................................................... 28 Código 9 - Clase Sector ............................................................................................................... 29 Código 10 - Clase Sensor............................................................................................................. 30 Código 11 - Clase Valvula ............................................................................................................ 31 Código 11 - Clase Interfaz............................................................................................................ 32
2. Introducción Las empresas productoras agrícolas, siempre están en la búsqueda de maximizar su producción y la calidad de sus productos, objetivos que dependen de una gran cantidad de variables, tanto ambientales como del cultivo como tal. Dentro las variables podemos observar una clasificación fundamental, las variables dependientes o controlables y las independientes o no-controlables. Entre las independientes destacan por su importancia las variables climatologiítas, las cuales pueden ser la temperatura ambiente, la humedad ambiental, la evaporación de bandeja, e inclusive eventos climatológicos como lluvias y sequías, todas estas variables influyen en todas las etapas fonológicas1 del cultivo. Obviamente, la calidad de la producción no depende solo de estas variables, sino que existe un factor determinante, este es la humedad del suelo. Esto se observa en las distintas reacciones que un cultivo puede tomar según esta variable.
• Si hay demasiada humedad en la tierra, el cultivo se ahoga, dado que este cierra sus poros de evotranspiración con el objetivo de no absorber más agua, al realizar esta acción tampoco consume el aire necesario para desarrollarse.
• Si el terreno está seco, el cultivo cierra sus poros de evotranspiración para
así no perder el agua que posee. La idea del proyecto “NAUTILUS”, es diseñar un sistema que permita al agrónomo tomar una mejor decisión de riego, esto mediante el ajuste de programas de riego y el control del proceso de riego en el cultivo. Este objetivo se alcanza mediante el despliegue gráfico de información relevante para la toma de de decisión de riego, como por ejemplo la humedad del suelo, el agua caída, etc. El proceso que el proyecto NAUTILUS realizará para alcanzar el objetivo será:
1. Obtención de datos: Mediante el apoyo de módulos de sensores inalámbricos ubicados en sectores estratégicos de cada zona del cultivo, se obtendrán las diferentes variables que inciden en el cultivo.
2. Comunicación de los datos:
Estos datos “viajarán” por un medio inalámbrico hasta el modulo de “puerta de enlace” (gateway), el cual interpretará los datos y los almacenará en una base de datos.
1 Etapas del ciclo vital de una planta. Ej: siembra, brote, etc…
3. Procesado de datos: Los datos almacenados serán procesados mediante algunos modelos matemáticos (que son suministrados por el mismo agrónomo). Estos modelos pueden ser representados de forma gráfica dentro de la interfaz del agrónomo.
4. Ajuste del programa de riego:
El programa de riego puede ser definido previamente por el agrónomo, y este determina la duración del riego o el caudal suministrado al cultivo. Al momento de tomar la decisión de ajuste del programa de riego, el sistema contará con la información necesaria para desplegarla en pantalla. En este paso, el sistema propondrá un ajuste definido por los modelos matemáticos. La decisión de aplicar este ajuste, queda a cargo del agrónomo, el cual tendrá la posibilidad de proponer un ajuste propio. Si se opta por el ajuste propio, este puede ser respaldado por algún método de medición manual, como lo serian las calicatas2.
5. Ejecución del programa:
Luego de realizado el ajuste, el agrónomo o el responsable del cultivo, podrá controlar el proceso de riego mediante la medición del caudal aplicado o del tiempo de riego. Estos datos quedarán en un historial, para ser comparados en ajustes posteriores.
Dada las características del sistema, este se desarrollará en tres partes: Sensores, Comunicación y Desarrollo de Software. Las cuales se realizarán en forma paralela, en que dentro de esta memoria, se realizará el estudio de la parte de Desarrollo de Software.
2 Calicata: Método utilizado por los agrónomos para medir la humedad actual del terreno. Consiste en obtener una muestra de suelo y revisar manualmente su humedad. Este es un método objetivo, el cual no posee un valor predeterminado.
3. Estado del arte Actualmente dentro del mercado no existe un sistema que englobe todas las características presentadas anteriormente, sin embargo, existen aplicaciones similares que son parte de la competencia de mercado dentro de Chile. Se estudian tres empresas, las cuales poseen aplicaciones orientadas a diferentes procesos agronómicos.
3.1. CD TEC – IrriMAX La empresa CD TEC (Consultora Diestre Tecnología) es representante en Chile de Sentek, la cual es desarrolladora de la aplicación IrriMAX3. IrriMAX es un sistema de monitorización de humedad del suelo. Está diseñado para mostrar e interpretar fácilmente la humedad del suelo, su salinidad, las aguas caídas y los datos del riego. Este sistema se acopla a los sensores de Sentek.
Imagen 1 - IrriMAX 6.1
Las características claves del sistema IrriMAX son4: ¡ Muestra en forma continua los datos de la humedad del suelo. ¡ Muestra la información de los niveles de profundidad individuales o alguna
suma en particular.
3 Actualmente el software esta en su versión 6.1 4 Información obtenida en http://www.sentek.com.au/products/irrimax.asp?lang=en.
¡ Comparaciones directas de salinidad y fertilizante, humedad del suelo, lluvias y riego, todo dentro del mismo gráfico.
¡ Comparación de datos desde múltiples sensores y puntas de prueba en un solo gráfico.
¡ Poderosa función de acercamiento para revisar eventos claves en mayor detalle o desde una visión más amplia.
¡ Actualización automática de gráficos. ¡ Los gráficos permiten al usuario fijar umbrales críticos para la humedad.
También se pueden agregar comentarios para guardar notas claves e información relevante.
Imagen 2 - IrriMAX 6.1 (Acercamiento en el gráfico)
3.2. Verdtech – addVANTAGE 4 Pro Verdtech es una empresa española que basa su metodología en integrar métodos de diagnostico en proyectos de aprendizaje a medio plazo para ayudar a la empresa a disponer de información global de la gestión del cultivo, partiendo del conocimiento continuo del estado en de la planta como base para la toma de decisiones5.
5 Información obtenida desde http://www.verdtech.es/
Imagen 3 - Aplicación de Verdtech
Actualmente esta empresa lanzó al mercado el servicio addVANTAGE PRO, el cual es un servicio de visualización de datos por Internet, y permite un apoyo a la interpretación de datos mucho más eficaz.
3.3. Hanna Instruments - Equipo de Fertirriego HI 8001 Hanna Instruments es una empresa orientada al control del proceso de riego. El último equipo diseñado es el Equipo de Fertirriego HI 8001, el cual discrimina Según pH, Conductividad, Radiación Solar y Agua Acumulada. Tiene la capacidad de operar entre 8 y 32 sectores de manera independiente. El equipo de fertirriego cuenta con todos los parámetros necesarios para tecnificar el riego. Cada sector puede manejarse de manera independiente en cuanto a la cantidad y tipo de fertilizante, así como en sus tiempos y oportunidad de administración. Además, el equipo asegura el cumplimiento de las indicaciones del agrónomo para cada sector del cultivo, evitando errores y olvidos. Además, para apoyar al encargado de riego, todas las instrucciones están en español6. “el uso adecuado de fertilizantes es fundamental para tener buenas cosechas y lograr una producción comercial de exportación. El agrónomo a cargo determina los requerimientos exactos de cada planta por temporada, que fertilizante se aplica en los últimos meses y particularmente post-cuaja, que es el momento en que comienza el programa de fertilización. Otros factores que se consideran para determinar las cantidades adecuadas de cada nutriente son las características del suelo, el clima y finalmente, la visión de cada agrónomo7.
6 Información extraída de www.hannachile.com. 7 Juan Pablo Arratia, Market Manager de Agricultura de Hanna Instruments.
4. Desarrollo de Software Uno de los principales problemas que se presentan en la mayoría de los proyectos informáticos es la obtención clara de los requerimientos. Para solucionar este problema, se utilizará el estándar UML8.
4.1. ¿Qué es UML? UML consiste en un sistema integrado de diagramas, desarrollados para ayudar a los desarrolladores de software a cumplir las siguientes tareas: ¡ Especificación ¡ Visualización ¡ Diseño de arquitectura ¡ Construcción ¡ Simulación y pruebas (Testing) ¡ Documentación
Diagrama
Diagrama de comportamientoDiagrama de estructura
Diagrama de clases
Diagrama de paquetes
Diagrama de co mponentes
Diagrama de objetos
Diagrama de despliegue Diagrama de estructura compuesta
Diagrama de actividades
Casos de uso Diagrama de estados
Diagrama de interacción Maquinas de proto co los de estado
Diagrama descriptivode interacción
Diagrama de secuencia
Diagrama de comunicaciones
Diagrama de sincronización
Created with Poseidon for UML Community Edition. Not for Commercial Use.
Imagen 4 - Diagrama de clases de diagramas de UML
8 Unified Modeling Language, Lenguaje Unificado de modelado
El uso que se le da a cada uno de los diferentes diagramas UML, se explica a continuación: ¡ Diagrama de clases:
Usado para mostrar las entidades del mundo real, elementos del análisis y del diseño, o la implementación de las clases y sus relaciones.
¡ Diagrama de objetos:
Usado para mostrar un caso especifico o ilustrativo de los objetos y sus conexiones. También es usado para indicar las condiciones necesarias para la ocurrencia de un evento particular.
¡ Diagrama de estructura compuesta:
Usado para mostrar “el como algo está hecho”. Especialmente útil en estructuras de estructuras o diseño basado en componentes.
¡ Diagrama de despliegue:
Usado para mostrar la arquitectura del sistema en tiempo de ejecución, las plataformas de hardware, artefactos de software9 y el las variables de ambiente del software10.
¡ Diagrama de componentes:
Usado para mostrar la organización y las relaciones entre los sistemas internos.
¡ Diagrama de paquetes:
Usado para organizar los elementos del modelo y mostrar la dependencia entre ellos.
¡ Diagrama de actividades:
Usado para mostrar el flujo de datos o el flujo de control, de un flujo de trabajo sobre objetos que poseen relaciones.
¡ Diagrama de casos de uso:
Usado para mostrar los servicios que los actores pueden requerir del sistema.
¡ Diagrama de estados y Diagrama de protocolos de estado:
Usado para mostrar el ciclo de vida de un objeto particular, o las secuencias que un objeto o interfaz debe soportar.
9 Ítems de software que se ejecutan, por ejemplo librerías. 10 Como el sistema operativo y maquinas virtuales.
¡ Diagrama descriptivo de interacción:
Usado para mostrar los diferentes escenarios interactivos, se muestran aquí las diferentes colaboraciones11.
¡ Diagrama de secuencias:
Usado para mostrar el intercambio de mensajes entre un grupo de objetos y el orden en que se manifiestan.
¡ Diagrama de comunicación:
Usado para mostrar el intercambio de mensajes y sus relaciones entre objetos.
¡ Diagrama de sincronización:
Usado para mostrar los cambios y sus relaciones con el reloj de tiempo real. Dada la difusión que ha tenido el UML, se han desarrollado muchas herramientas que logran automatización en la generación de código. Para el proyecto, se utilizará el software Poseidon12, el cual desde los modelos de UML puede generar un paquete en JAVA del sistema.
11 Un set de elementos trabajando juntas para cumplir un objetivo. 12 www.gentleware.com/
4.2. Visión de alto nivel del sistema Antes de revisar en detalle cada requerimiento, se plantean requerimientos de más alto nivel (más generales). Algunas características que debe tener este sistema son: ¡ Es un sistema de apoyo en la toma de decisión de riego. ¡ El usuario del sistema debe ser un usuario registrado. ¡ El predio debe ser regado en la medida en que el agrónomo estime
conveniente. ¡ Cada predio es dividido en sectores o zonas, las cuales se caracterizan por
la homogeneidad de sus suelos y sus tipos de cultivo. ¡ El predio es monitorizado por diferentes tipos de sensores, en cada uno de
ellos se mide una variable particular del cultivo, tales como la temperatura ambiente, la humedad ambiental, el tamaño del tronco, humedad del suelo, entre otras.
¡ Un programa de riego es especificado por sector, y es activado por el
agrónomo o el responsable de riego. Cada programa es definido por el tiempo de riego o caudal de agua entregada.
¡ La información entregada al agrónomo es de forma gráfica, en la cual se
podrá realizar diferentes análisis de datos, entre ellas el cálculo de máximos y mínimos, y ajustes de tendencia.
¡ El agrónomo utiliza la información de los sensores para diseñar o ajustar un
programa de riego. ¡ El agrónomo puede seleccionar la variable que desea desplegar en los
gráficos. Se puede asociar el gráfico a un sensor en particular o hacer una suma de alguna de las variables o formula matemática definida por el usuario.
¡ El agrónomo puede agregar un evento asociado a una fecha.
¡ Un evento puede ser desplegado en un gráfico, con lo cual puede ser
asociado a una variable en particular. ¡ El agrónomo puede crear, actualizar y eliminar programas de riego.
¡ El agrónomo puede crear, actualizar y eliminar formulas matemáticas. Cada formula puede referenciar a otra formula.
¡ El sistema controla las válvulas de regadío, y monitoriza el tiempo y el
caudal de regadío. ¡ El usuario puede seleccionar la información que desea desplegar y la
ubicación en pantalla. Esta distribución puede ser almacenada para posteriormente utilizarla otra vez.
¡ Cada sensor puede ser asignado a algún sector. También puede definirse
la escala de medida de cada uno de ellos.
4.3. Casos de uso De los requerimientos listados anteriormente, se observan dos actores principales: ¡ Agrónomo ¡ Configurador
Por otro lado, los casos de uso principales que se obtienen de estos requerimientos son: ¡ CU1: Ingresar al sistema ¡ CU2.1: Abrir válvulas de riego ¡ CU2.2: Cerrar válvulas de riego ¡ CU2: Controlar riego ¡ CU3: Sectorizar predio ¡ CU4: Configurar sensores ¡ CU5.1: Crear plan de riego ¡ CU5.2: Ajustar plan de riego ¡ CU5: Administrar plan de riego ¡ CU6.1: Crear formula de análisis ¡ CU6.2: Modificar formula de análisis ¡ CU6.3: Eliminar formula de análisis ¡ CU6: Administrar formulas de análisis ¡ CU7.1: Agregar un evento ¡ CU7: Administrar eventos ¡ CU8.1: Agregar gráfico a interfaz ¡ CU8: Configurar interfaz ¡ CU99: Asumir identidad de Configurador
4.3.1. Diagrama de casos de uso
Imagen 5 - Diagrama de casos de uso
Usu
ario
Reg
istra
do
Agró
nom
o
Con
figur
ador
CU
1: In
gres
ar a
l sis
tem
a
CU
2.1:
Abr
ir vá
lvul
as d
e rie
go
CU
5.1:
Cre
ar p
lan
de ri
ego
CU
4: C
onfig
urar
sen
sore
s
CU
99: A
sum
ir id
entid
ad d
e C
onfig
urad
or
CU
6.1:
Cre
ar f
orm
ula
de a
nális
is
CU
5.2:
Aju
star
pla
n de
rieg
o
CU
8: C
onfig
urar
inte
rfaz
CU
3: S
ecto
rizar
pre
dio
CU
2.2:
Cer
rar v
álvu
las
de ri
ego
CU
6.2:
Mod
ifica
r for
mul
a de
aná
lisis
CU
6.3:
Elim
inar
for
mul
a de
aná
lisis
CU
8.1:
Agr
egar
grá
fico
a in
terf
azC
U7.
1: A
greg
ar u
n ev
ento
CU
6: A
dmin
istr
ar f
orm
ulas
de
anál
isis
<<ex
tend
>>
<<ex
tend
>>
<<ex
tend
>>
CU
5: A
dmin
istr
ar p
lan
de ri
ego
<<ex
tend
>>
<<ex
tend
>>
CU
2: C
ontro
lar r
iego
<<ex
tend
>>
<<ex
tend
>>
CU
7: A
dmin
istr
ar e
ven
tos
<<ex
tend
>>
Crea
ted
with
Po
seid
on fo
r UM
L C
omm
unity
Edi
tion.
Not
for C
omm
erci
al U
se.
4.3.2. Descripción de casos de uso Caso de uso CU1: Ingresar al sistema Actores Usuario registrado
Flujo básico 1. El usuario inicia el sistema. 2. El sistema pide al usuario ingresar su identificador y su palabra clave. 3. El usuario ingresa los datos pedidos y procede a ingresar al sistema. 4. El sistema valida los datos del usuario.
4.1. Si el usuario existe en el sistema y su palabra clave corresponde a la almacenada continuar con el caso de uso.
4.2. Si el usuario no existe en el sistema o su palabra clave no corresponde a la almacenada, el sistema desplegara un aviso indicando el error y finaliza el caso de uso.
5. El sistema identifica al usuario como registrado y procede a la carga del perfil correspondiente.
Caso de uso CU2: Controlar riego Actores Usuario registrado
Flujo básico 1. Caso de uso CU2.1: Abrir válvulas de riego Actores Usuario registrado
Flujo básico 1. Caso de uso CU2.2: Cerrar válvulas de riego Actores Usuario registrado
Flujo básico 1.
Caso de uso CU3: Sectorizar predio Actores Configurador
Flujo básico 1. Caso de uso CU4: Configurar sensores Actores Configurador
Flujo básico 1. Caso de uso CU5: Administrar plan de riego Actores Agrónomo
Flujo básico 1. Caso de uso CU5.1: Crear plan de riego Actores Agrónomo
Flujo básico 1. Caso de uso CU5.2: Ajustar plan de riego Actores Agrónomo
Flujo básico 1. Caso de uso CU6: Administrar formulas de análisis Actores Agrónomo
Flujo básico 1.
Caso de uso CU6.1: Crear formula de análisis Actores Agrónomo
Flujo básico 1. Caso de uso CU6.2: Modificar formula de análisis Actores Agrónomo
Flujo básico 1. Caso de uso CU6.3: Eliminar formula de análisis Actores Agrónomo
Flujo básico 1. Caso de uso CU7: Administrar eventos Actores Agrónomo
Flujo básico 1. Caso de uso CU7.1: Agregar un evento Actores Agrónomo
Flujo básico 1. Caso de uso CU8: Configurar interfaz Actores Agrónomo
Flujo básico 1.
Caso de uso CU8.1: Agregar gráfico a interfaz Actores Agrónomo
Flujo básico 1. Caso de uso CU99: Asumir identidad de Configurador Actores Agrónomo
Flujo básico 1.
4.4. Clases del sistema Las clases dominantes para el sistema son: ¡ Control ¡ Elemento ¡ Evento ¡ Grafico ¡ Interfaz ¡ PlanDeRiego ¡ PlanPorSector ¡ Sector ¡ Sensor ¡ Usuario ¡ Valvula ¡ Variable
Con estas clases podemos dar solución al diagrama de casos de uso expuesto anteriormente.
4.4.1. Diagrama de clases
<< entity >>Usuario
-interf aces:List
+addInterf az(interf az:Interf az):v oid
<< entity >>Interfaz
-elementos:List
+addElemento(elemento:Elemento ):v oid
<< entity >>Grafico
-v ariables:List-ev entos:List
+addVariable (v ariable:Variable):v oid+addEv ento(ev ento:Ev ento):v oid+dibujar ():v oid
<< entity >>Variable
-Sensor:Sensor
+getValor():Float
<< entity >>Sensor
-sector:Sector
+setSector(idSector:Sector):v oid1..*
0..1
<< entity >>Sector
-t ipoDeCultiv o:int-tipoDeSuelo:int-v alv ula:Valv ula
+addValv ula(v alv ula:Valv ula):v oid
<< interf ace>>Elemento
-x:int-y:int-ancho:int-largo:int
+setPosicion(x:int,y:int):v oid+dibuja():v oid
<< implementation >>
*
0..1
0..1
0..1
0..1
0..1
*
0..1
<< entity >>Control
-planSeleccionado :PlanDeRiego[ordered]
+setPlan(plan:PlanDeRiego):v oid+ejecutarPlan():v oid
<< implementation >>
<< entity >>PlanDeRiego
-planes :List
+addPlan(plan:PlanPorSector ):v oid
*
PlanPorSector
-sector:Sector-duracionDeRiego:int-caudalDeRiego:int
+setDuracion():v oid+setCaudal():void
*
<< entity >>Valvula
+abrir():v oid+cerrar():v oid
1..*
<< entity >>Evento
+f echa:Date+tipo:int+descripcion:String
* *
Created with Poseidon for UML Community Edition. Not for Commercial Use.
Imagen 6 - Diagrama de clases dominantes.
4.4.2. Generación de código Con el diagrama de clase anteriormente mostrado, se genera automáticamente el siguiente código fuente13: /** * <p></p> */ public class Usuario { /** * <p>Represents ...</p> */ private java.util.List interfaces; /** * <p></p> */ public Interfaz interfaz; /** * <p>Does ...</p> * * * * @param interfaz */ public void addInterfaz(Interfaz interfaz) { // your code here } }
Código 1 - Clase Usuario
13 Dada las características del software POSEIDON, el código fuente generado es en JAVA.
/** * <p></p> */ public abstract class Elemento { /** * <p>Represents ...</p> */ private int x; /** * <p>Represents ...</p> */ private int y; /** * <p>Represents ...</p> */ private int ancho; /** * <p>Represents ...</p> */ private int largo; /** * <p>Does ...</p> * * * * @param x * @param y */ public void setPosicion(int x, int y) { // your code here } /** * <p>Does ...</p> * * */ public void dibuja() { // your code here } }
Código 2 - Clase Elemento
/** * <p></p> */ public class Control extends Elemento { /** * <p>Represents ...</p> */ private PlanDeRiego planSeleccionado; /** * <p></p> */ public PlanDeRiego planDeRiego; /** * <p>Represents ...</p> * * * * @param plan */ public void setPlan(PlanDeRiego plan) { // your code here } /** * <p>Does ...</p> * * */ public void ejecutarPlan() { // your code here } }
Código 3 - Clase Control
/** * <p></p> */ public class Grafico extends Elemento { /** * <p>Represents ...</p> */ private java.util.List variables; /** * <p>Represents ...</p> */ private java.util.List eventos; /** * <p></p> */ public Variable variable; /** * <p></p> * * @poseidon-type Evento */ public java.util.Collection evento = new java.util.TreeSet(); /** * <p>Does ...</p> * * * * @param variable */ public void addVariable(Variable variable) { // your code here } /** * <p>Does ...</p> * * * * @param evento */ public void addEvento(Evento evento) { // your code here } /** * <p>Does ...</p> * * */ public void dibujar() { // your code here } }
Código 4 - Clase Grafico
/** * <p></p> */ public class Evento { /** * <p>Represents ...</p> */ public java.util.Date fecha; /** * <p>Represents ...</p> */ public int tipo; /** * <p>Represents ...</p> */ public String descripcion; /** * <p></p> * * @poseidon-type Grafico */ public java.util.Collection grafico = new java.util.TreeSet(); }
Código 5 - Clase Evento /** * <p></p> */ public class Interfaz { /** * <p>Represents ...</p> */ private java.util.List elementos; /** * <p></p> */ public Usuario usuario; /** * <p>Does ...</p> * * * * @param elemento */ public void addElemento(Elemento elemento) { // your code here } }
Código 6 - Clase Interfaz
/** * <p></p> */ public class PlanDeRiego { /** * <p>Represents ...</p> */ private java.util.List planes; /** * <p></p> * * @poseidon-type PlanPorSector */ public java.util.Collection planPorSector = new java.util.TreeSet(); /** * <p></p> */ public Control control; /** * <p>Does ...</p> * * * * @param plan */ public void addPlan(PlanPorSector plan) { // your code here } }
Código 7 - Clase PlanDeRiego
/** * <p></p> */ public class PlanPorSector { /** * <p>Represents ...</p> */ private Sector sector; /** * <p>Represents ...</p> */ private int duracionDeRiego; /** * <p>Represents ...</p> */ private int caudalDeRiego; /** * <p></p> */ public Sector sector; /** * <p></p> */ public PlanDeRiego planDeRiego; /** * <p>Represents ...</p> * * */ public void setDuracion() { // your code here } /** * <p>Does ...</p> * * */ public void setCaudal() { // your code here } }
Código 8 - Clase PlanPorSector
/** * <p></p> */ public class Sector { /** * <p>Represents ...</p> */ private int tipoDeCultivo; /** * <p>Represents ...</p> */ private int tipoDeSuelo; /** * <p>Represents ...</p> */ private Valvula valvula; /** * <p></p> * * @poseidon-type Sensor */ public java.util.Collection sensor = new java.util.TreeSet(); /** * <p></p> * * @poseidon-type PlanPorSector */ public java.util.Collection planPorSector = new java.util.TreeSet(); /** * <p>Does ...</p> * * * * @param valvula */ public void addValvula(Valvula valvula) { // your code here } /** * <p></p> * * @poseidon-type Valvula */ public java.util.Collection valvula = new java.util.TreeSet(); }
Código 9 - Clase Sector
/** * <p></p> */ public class Sensor { /** * <p>Represents ...</p> */ private Sector sector; /** * <p></p> */ public Variable variable; /** * <p></p> */ public Sector sector; /** * <p>Represents ...</p> * * * * @param idSector */ public void setSector(Sector idSector) { // your code here } }
Código 10 - Clase Sensor
/** * <p></p> */ public class Valvula { /** * <p></p> */ public Sector sector; /** * <p>Does ...</p> * * */ public void abrir() { // your code here } /** * <p>Does ...</p> * * */ public void cerrar() { // your code here } }
Código 11 - Clase Valvula
/** * <p></p> */ public class Variable { /** * <p>Represents ...</p> */ private Sensor Sensor; /** * <p></p> */ public Variable variable; /** * <p></p> * * @poseidon-type Variable */ public java.util.Collection variable_1 = new java.util.TreeSet(); /** * <p></p> */ public Grafico grafico; /** * <p></p> */ public Sensor sensor; /** * <p>Does ...</p> * * * * @return */ public Float getValor() { // your code here return null; } }
Código 12 - Clase Interfaz
5. Bibliografía
[1] Hanna Instruments Equipos Limitada
www.hannachile.com
[2] Verdtech Nuevo Campo S.A
http://www.verdtech.es/castellano/
[3] Sentek Sensor Technologies
IrriMAX 6.1 http://www.sentek.com.au/products/irrimax.asp?lang=en
[4] UML 2 Toolkit
Wiley Publishing Inc., Hans-Erik Eriksson, Magnus Penker, Bryan Lyons, David Fado 2004
[5] UMLTM Resource Page
http://www.uml.org/
Recommended