[Jde-dev] diseño de aplicaciones para jderobot 5.0

David Lobato dav.lobato en gmail.com
Jue Mayo 13 17:53:28 CEST 2010


Hola,

Somos varios los que estamos montando las primeras aplicaciones para
jderobot 5.0, que no es ni mas ni menos que un recubrimiento de lo que hemos
venido usando en el middleware ICE. Por el momento sólo contamos con un
puñado de componentes que se comunican mediante un API definido con slice
(lenguaje de definición de interfaces de ICE).

Bajo mi punto de vista, creo que tenemos que hacer un esfuerzo por
desacoplar lo máximo posible los algoritmos/drivers que desarrollemos, de
modo que lo que implementemos sea fácilmente reutilizable en otras
plataformas.

Yo he llegado a este diseño en lo que a algoritmos se refiere, y que me
parece puede ser aplicado a otros algoritmos como ElderCare. Podemos
discutirlo, de modo que lleguemos a algo que guste a todos y podamos crear
una serie de clases base.

Esto es lo que propongo:

*class AlgorithmConfig* : Todos los parámetros necesarios para configurar el
algoritmo. Se la puede dotar de metodos, para leer/escribir de fichero y
para validar la configuración.

*class AlgorithmState* : Todo el estado interno del algoritmo, buffers,
variables, etc...

*class AlgorithmInput* : Entradas para el algoritmo

*class AlgorithmOutput *: Salidas para el algoritmo

*class Algorithm : *Implementa el algoritmo. Al constructor se le pasa una
instancia de la clase AlgorithmConfig, mas los datos de inicialización en
caso de ser necesarios. Tiene métodos para obtener referencias tanto a la
instancia de AlgorithmConfig como a la de AlgorithmState. La chicha del
algoritmo se implementa en un método iteration() que acepta las entradas y
devuelve los resultados obtenidos en cada ejecución.

Adjunto diagrama de clases.

En carspeed 5.0 he usado este diseño y resulta bastante cómodo. El método
iteration recibe la nueva imagen disponible, y a cambio me devuelve las
soluciones que va obteniendo. Para pintar el estado del algoritmo, paso a mi
gui el AlgorithmState.

Creo que este diseño se puede aplicar tanto al ElderCare como al
clasificador, y en general a algoritmos iterativos, de modo que al final
tendríamos una colección de algoritmos que podemos integrar donde nos
parezca, independientemente de la plataforma.

¿Cómo lo veis?

David.
*
*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20100513/269693e6/attachment.htm 
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : algorithm.png
Tipo       : image/png
Tamaño     : 15254 bytes
Descripción: no disponible
Url        : http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20100513/269693e6/attachment.png 


More information about the Jde-developers mailing list