El Desarrollo de software por Prototipos.-


Existe muchisima gente aficionada al desarrollo de software que no ha pasado por la universidad y que tomaron un libro de programación de algún lenguaje, se puso a aprenderlo y a hacer sistemas propios. Estos desarrollo de programadores aficionados suelen estar muy lejos de estandares de calidad, tiene una modularidad malisima. La gente que no tiene conocimientos de metodologías de desarrollo es muy probable que construya sistemas carentes de procesos con un mínimo acoplamiento y una máxima cohesión. Las metodologías de desarrollo de software permiten al desarrollador hacer aplicaciones con estandares de calidad. Una de las metodologías más conocidas es el desarrollo de software basado en prototipos.

El Prototipado
El Prototipado consiste en construir un modelo del software a fabricar para que lo evalúe el cliente en conjunto con el programador. La construcción de un prototipo suele ser muy adecuado al comienzo de la etapa de análisis, ya que el modelo es el único medio a través del cual se pueden obtener de una manera más eficaz los requisitos. El modelo evoluciona después hacia la producción del software. En la figura abajo se muestra las diferentes etapas por la que atraviesa la metodología por Prototipos. Existen dos enfoques para utilizar prototipos, el denominado enfoque cerrado también denominado prototipo desechable tiene como único objetivo el poder demostrar y recolectar requisitos, luego este se desecha y se encara el desarrollo con un paradigma diferente. Por su parte el enfoque abierto o Prototipado evolutivo, utiliza el mismo en las primeras etapa de análisis y luego se continúa con el diseño y la construcción. Muchos usuarios finales suelen mostrar gran entusiasmo cuando se le presenta un prototipo del futuro software por lo que la situación suele ser adecuada para evaluar como seria la futura interacción entre el usuario y el software a construirse. Los prototipos suelen ser adecuados cuando se evalué el proceso de procesamiento sin considerar errores como así también cuando se desarrolla solo él núcleo de la aplicación solo con los procesos básicos del software en construcción. El ciclo comienza con la recolección de requisitos. El cliente y el desarrollador definen los objetivos globales para el software, identifican los requisitos conocidos y que áreas del problema requiere una atención. Luego se procede a realizar un “diseño rápido”. Este diseño rápido busca una representación sobre aspectos del software que serán importantes para el cliente/usuario como ser el diseño de pantallas y operatividad. A seguir se construye el prototipo. Este prototipo lo evalúa el cliente/usuario y se utiliza para refinar los requisitos del software a desarrollar. Cuando el prototipo satisface las necesidades del usuario/cliente y el programador tiene una clara comprensión de lo que se necesita hacer se procede a una nueva iteración (Pressman 2002).

Muchas veces el prototipo termina siendo la primera implementación del sistema, lo que no suele ser conveniente ya que el prototipo construido puede ser muy lento, muy grande o difícil de utilizar, por ello es mucho mejor desecharlo y comenzar la construcción de una versión nueva que resuelva estos inconvenientes. Cuando sea necesario introducir una nueva tecnología que reemplace al sistema viejo o que implique que el usuario deba adaptarse a una nueva manera de trabajar con la información, e implique que se deba empezar a dejar a un lado casi por completo la manera en que realizando su trabajo diario, los prototipos suelen ser un gran aliado para evaluar el impacto que esa nueva tecnología traerá o podría trae aparejado. Es aquí donde los desarrolladores y analistas deberán decidir si construir una versión desechable o hacer una para poder entregársela a los clientes de manera evolutiva es decir un prototipo evolutivo. Una vez que la implementación del prototipo pasa los criterios de prueba, se podrá empezar a desplegar la implementación en un entorno de producción. Normalmente, el entorno de producción se despliega por fases. EL despliegue por fases es especialmente importante para las implementaciones que son de gran tamaño y afectan a un número importante usuarios. La implementación por fases suele iniciarse con un pequeño conjunto de usuarios y con el tiempo se amplía el alcance a los demás usuarios hasta que se abarque a todos ellos. Este mismo enfoque suele ser utilizado también para los servicios que brindará el sistema.


















Fases del ciclo de vida por Prototipado