Prototipos software

Los prototipos de Software son implementaciones realizadas con técnicas de programación del sistema interactivo propuesto que reproducen el funcionamiento de una parte importante de las funcionalidades con el objetivo de probar determinados aspectos del sistema final. Habitualmente se realizan con el lenguaje o la técnica de programación escogida para desarrollar la aplicación, aunque pueden utilizarse otras alternativas.

No suele ser recomendable realizar un prototipo software en las etapas iniciales del ciclo de vida del desarrollo de un sistema (entre otras razones, porque en las etapas iniciales se necesitan prototipos de muy rápida implementación donde faltan aún muchos detalles) y su realización será en sentido “horizontal” o en sentido “vertical” en función del objetivo de la evaluación a realizar con el mismo.

Normalmente se implementa un prototipo software después de varias iteraciones de Prototipado-Evaluación y se tiene la intención de empezar a ver realmente cómo responde el sistema.

De todas formas, en los últimos años esta técnica de prototipado ha incrementado notablemente su popularidad debido en parte a la constante aparición de los entornos de programación rápida que permiten implementar pequeñas partes del sistema en poco tiempo o incluso a la utilización de herramientas inicialmente pensadas para otros fines como por ejemplo los editores de páginas web avanzados, la herramienta Flash de Macromedia para la creación de animaciones y gráficos vectoriales para uso en Internet o programas de creación de presentaciones como el Microsoft PowerPoint. Este tipo de programas permiten, además, combinar bocetos o prototipos de bajo nivel previamente implementados y, gracias a la facilidad de enlazar distintos elementos, fácil y rápidamente puede crearse un prototipo software.

El aspecto que sí que es necesario tener muy claro es cuál es el propósito de este tipo de prototipos. En primer lugar, debemos tener presente que lo que más nos interesa es probar los aspectos relacionados con la interacción del usuario con el sistema, no se trata, pues, de utilizar parte del desarrollo que se está realizando, sino que es una aplicación con la funcionalidad mínima necsaria para que el usuario pueda realizar las interacciones necesarias que permitan visionar el funcionamiento todavía ficticio del sistema resultante.

En la siguiente figura podemos observar una captura de las pantallas resultantes de realizar la tarea de identificación y comprobaciones básicas del sistema de recogida selectiva de basuras utilizando un PDA como dispositivo interactivo. Se trata de un prototipo en el que no hay aspectos de diseño en el sentido estético del mismo, sino que refleja aspectos interactivos con mucha sencillez.

Ventajas e inconvenientes

Ventajas

  • Habitualmente, la fidelidad o semejanza de un prototipo software con el sistema final es alta.
  • Precisamente debido, en gran part, a esta fidelidad, estos prototipos son muy útiles para realizar las evaluaciones de métricas (tipo métricas de rendimiento o de coherencia).
  • El usuario tiene la sensación de estar trabajando con un sistema real.

Inconvenientes

  • Este método requiere habilidades de desarrollo de software, aunque cada vez en menos grado (recordemos que puede realizarse un prototipo software con técnicas como utilizar un programa para realizar presentaciones).
  • Aunque rápido, el método consume mucho más tiempo que otros tipos de prototipos (de papel, por ejemplo).
  • Se requieren mayores recursos debido a la necesidad de emplear software y hardware específicos.
  • Debido a la mayor inversión en cuanto a habilidades y tiempo necesarios suele renunciarse a “tirar” un prototipo, quedando el mismo como una versión preliminar del sistema. Este factor, a la larga, resulta ser un lastre.
  • Frecuentemente la última de las ventajas mencionadas se convierte en un grave inconveniente, pues los directivos responsables y los propios usuarios creen que el sistema está casi terminado y tendrán prisa por verlo finalizado.

Herramientas útiles

Para finalizar, una comparación de varias herramientas