miércoles, 28 de enero de 2009

Pruebas UC Febrero

En el próximo UC (5 de febrero) me gustaría hacer realizar pruebas con programadores (vosotros, lectores) de cara a conseguir feedback acerca del diseño y la funcionalidad de Hipatia.

Como seguro que la mayoría no sabeis de que va el asunto voy a ver si lo explico en pocas palabras.

Hipatia es un componente para mostrar información geospacial en aplicaciones del .NET Compact Framework.

Por partes, componente porque no es un programa por si solo, sirve para ser usado en aplicaciones que necesiten mostrar información geospacial. Es decir, igual que para mostrar imágenes puede usarse un PictureBox, para mostrar un mapa puede usarse Hipatia.

¿Qué tipo de información podemos mostrar?
La idea es que cada aplicación defina qué mostrar y cómo mostrarlo.

¿Entonces si lo tiene que definir la aplicación Hipatia qué hace?
Se encarga de la gestión de las capas, los cálculos y transformaciones necesarias, la gestión de eventos y, en cuanto a la definición de elementos a mostrar, proporciona una serie de elementos básicos, clases e interfaces que facilitan la tarea de crear aplicaciones que muestren información geospacial.

¿Un ejemplo?
Supongamos que queremos mostrar un mapa con las farmacias de una ciudad.
  • Creariamos un componente Map, le daríamos tamaño y posición como a cualquier otro componente gráfico.
  • Creariamos una capa de imágenes raster (para el mapa de fondo).
  • Creariamos una capa con objetos Farmacia. Este es el tipo de entidades que hay que definir, Hipatia no sabe qué es una farmacia, debemos implementar el interfaz MapElement y definir cómo pintar las farmacias (por ejemplo con un icono consistente en una cruz verde). Hipatia ya ofrece una clase IconElement que permite hacer esto. Podríamos sencillamente saltarnos el paso de crear Farmacias y crear simplemente IconElements con la crucecita verde. También podríamos heredar de IconElement o utilizarlo mediante composición. Estas decisiones quedan para el desarrollador de la aplicación, a Hipatia sólo le importa que lo que añadas al mapa implemente la interfaz MapElement.
  • Añadiríamos las dos capas al mapa.
¿Y dónde se van a pintar las crucecitas verdes?
Bien, para eso hay que geolocalizar las farmacias. Supondremos que hemos optado por la opción más fácil y hemos insertado IconElements en el mapa. Basta con asignar las coordenadas (latitud y longitud) al IconElement para que se muestre en su sitio. Saber dónde están las farmacias es parte de la lógica de la aplicación, evidentemente Hipatia no tiene manera de saber eso.

Confío en que esta pequeña presentación sirva para hacerse una idea de los objetivos del proyecto.

Puesto que el proyecto por si mismo no tiene interfaz de usuario alguna (depende de la aplicación en al que se use) las pruebas a realizar serán de dos tipos. Por una parte probar la interfaz de programación, es decir, cómo de útil resulta el componente para crear aplicaciónes y cómo mejorarlo. Las pruebas de la proxima semana serán estas. Por otro lado, de cara a la demostración del proyecto, se ha creado una aplicación de geolocalización (ver video del post anterior) para probar que el invento funciona. En proximos UC se realizaran pruebas de usuario tradicionales sobre esa aplicación.

Resumiendo, en el UC de febrero las pruebas consistirán en pequeñas entrevistas con usuarios en potencia (programadores) para obtener feedback acerca de la funcionalidad que ofrece el componente y su diseño interno. El proceso empezará con una descripción en detalle del componente y las posibilidades que ofrece para que el entrevistado se situe. A continuación se le harán una serie de preguntas para establecer qué esperaría el programador de un componente así, cómo le gustaría que fuese la interfaz de programación, qué clase de herramientas deberían ofrecerse para facilitar la definición de nuevas entidades geolocalizadas, etc. Dependiendo del tiempo y el personal disponible podríamos llegar a desarrollar una pequeña aplicación de juguete para que se vea realmente en qué se traduce tanta filosofía. En función de las respuestas y observaciones iremos estableciendo un diálogo contrastando lo que se espera con lo que hay, considerando alternativas, nuevas funcionalidades...

Seguro que será interesante, nos vemos el jueves!

1 comentario:

Martin dijo...

Muy interesante la idea de las pruebas con entrevistas.

No obstante y te recomiendo hacer una lista de las dos o tres clases principales y mostrar los nombres de sus métodos para cargar mapas, dibujarlos, poner POIs, etc...

Y luego ver si los programadores serían capaces de montarse una aplicación sencilla para mostrar información.

Obviamente, todo sobre el papel.

La idea es comprobar si el nombre de las clases, parámetros, métodos y demás es intuitivo, son lo que parecen y si la funcionalidad está completa o falta alguna clase y/o método.