lunes, 1 de febrero de 2010

Modelo Prototipos para desarrollo de software

Introducción:

A partir de la ingeniería tradicional de construir productos de software nace la ingeniería de software como aplicación de modelos y formas para realizarlos, la cual nos condiciona a tener como norte precisiones y seguridades que en otros ámbitos tiene la ingeniería.

Anteriormente existían varios enfoques los cuales buscaban abordar de manera sistemática la planificación, análisis, diseño e implementación de los productos, proyectos de desarrollo de software ya sean de gran escala y aplicaciones pequeñas, lo que buscaban es la mejora de los enfoques precedentes.

En este apartado vamos a trabajar, analizar y explicar la metodología de desarrollo orientada a prototipos las ventajas y desventajas que presenta esta metodología.

En muchos casos esta metodología se considera como un método independiente, este método pertenece a los modelos de desarrollo evolutivo.

Prototipo es una representación o modelo del sistema a desarrollar que, a diferencia de un modelo de simulación, incorpora componentes del producto real, este será una representación del sistema, aunque no es un sistema completo, posee las características del sistema final o parte de ellas.

Un prototipo tiene un funcionamiento limitado en cuanta a capacidades, confiabilidad o eficiencia.

En la utilización de este método se inicia con la definición de los objetivos globales para el software para luego pasar a identificar los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado.

Con todo esto que se realiza llegamos a obtener un diseño rápido de lo que necesitamos para realizar nuestro proyecto.

El objetivo de este diseño es centrarse en una representación de los aspectos del software que sean visibles para el cliente o para el usuario final lo que podrá ser la configuración de la interfaz con el usuario y el formato de los despliegues de salida.

Con este diseño rápido nos conducimos a la construcción de un prototipo, este a su vez es evaluado por el cliente o por el usuario para una retroalimentación, con esta ayuda por parte de los usuarios se logra refinar los requisitos del software que se desarrollara.

La iteración ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.

El prototipado permite entregar al usuario lo que sería una visión la solución final en etapas tempranas del desarrollo, reduciendo tempranamente los costos de especificaciones erróneas.

FASES PARA LA METODO DE PROTOTIPOS

1.- Investigación preliminar

En esta etapa lo esencial es determinar el problema y su ámbito, la importancia y los efectos potenciales que tendrán sobre la organización, identificar una idea general de la solución para realizar un estudio de factibilidad que determine la factibilidad de una solución software.

2.- Definición de los requerimientos del sistema

Esta es la fase mas importante de todo el ciclo de vida del método de prototipos, el objetivo en esta fase es determinar todos los requerimientos y deseos que los usuarios tienen en relación al proyecto que se esta deseando implementar.

Aquí el desarrollador interactúa con el usuario y sus necesidades mediante la construcción, demostración y retroalimentaciones del prototipo.

2.1.- Análisis de los requerimientos

Esta etapa es un proceso que busca aproximar las visiones del usuario y del desarrollador mediante sucesivas iteraciones.

Para la definición de los requerimientos tenemos cinco etapas entre dos de las cuales se establece un ciclo interactivo

  • Análisis grueso y especificación

En esta fase se busca desarrollar un diseño básico para el prototipo inicial.

  • Diseño y construcción

Lo que se consigue en esta fase en obtener un prototipo inicial, aquí el desarrollador debe concentrarse en construir un sistema con la máxima funcionalidad, poniendo énfasis en la interfaz del usuario.

  • Evaluación

Los objetivos de esta etapa son obtener por parte de los usuarios la especificación de los requerimientos adicionales del sistema y verificar que el prototipo desarrollado lo haya sido en concordancia con la definición de requerimientos del sistema.

En el saco de que los usuarios identifiquen fallas en el prototipo el desarrollador corrige dichas fallas antes de continua con la siguiente evaluación.

Se modifica y se evalúa cuantas veces sea necesario hasta que los requerimientos del sistemas sean satisfechos.

En el proceso de evaluación se efectúan cuatro pasos separados:

  • Preparación.
  • Demostración.
  • Uso del prototipo.
  • Discusión de comentarios.

Esta es la fase en donde se decide si el prototipo es aceptado o modificado.

  • Modificación

Se da cuando la definición de requerimientos del sistema es alterada en la etapa de evaluación. El desarrollador entonces debe modificar el prototipo de acuerdo a los comentarios hechos por los usuarios.

  • Término

Una vez que se ha desarrollado un prototipo estable y completo, es necesario ponerse de acuerdo en relación a aspectos de calidad y de representación del sistema.

3.- Diseño técnico

En esta etapa el sistema debe ser rediseñado y tener la respectiva documentación guiándose en los estándares que tiene la organización la cual servirá como ayuda en mantenciones futuras del mismo.

En este punto existen dos etapas:

  • Producción de una documentación de diseño la cual especifica y describe la estructura del software, interfaces de usuario, funciones y el control de flujo.
  • Producción de todo lo requerido para promover cualquier mantención futura del software.

4.- Programación y prueba

En esta etapa es donde los cambios identificados en el diseño técnico son implementados y probados para asegurar la corrección y completitud de los mismos con respecto a los requerimientos.

Las pruebas serán de realizarse tantas veces sea necesarias para verificar cualquier tipo de anomalía en el sistema.

5.- Operación y mantención

En esta fase se realiza ya la instalación y mantención del software, la complejidad en esta caso resulta menor ya que en las etapas anteriores los usuarios han trabajado con el sistemas al momento de hacer las pruebas de prototipos, además la mantención también debería ser una fase menos importante, ya que se supone que el refinamiento del prototipo permitiría una mejor claridad en los requerimientos, mediante lo cual las mantaciones perfectivas se reducirían.

Si existiese el caso en el cual se requiera una manutención entonces el proceso de prototipado es repetido y se definirá un nuevo conjunto de requerimientos.

La siguiente figura nos indica el ciclo de vida de los modelos orientados a prototipos.

RAZONES PARA USAR ESTE MODELO

  • Con este modelo se puede ilustrar los formatos de datos de entrada, mensajes, informes y diálogos al usuario, mediante lo cual se logra un mejor entendimiento de las necesidades.Se logra una exploración de los aspectos técnicos del producto propuesto.
  • Otra de las razones para usar un prototipo es cuando el modelo de fases análisis - diseño - instrumentación es inapropiado, es decir cuando el sistema se lo puede realizar solamente con esta metodología.

VENTAJAS:

  • Útil cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida.
  • Existe una reducción de la incertidumbre y del riesgo.
  • Se reduce el tiempo y costos.
  • Hay incremento en la aceptación del nuevo sistema.
  • Mejora la administración de proyectos.
  • Existe mayor comunicación entre los desarrolladores y el usuario.

DESVENTAJAS:

  • Se depende de las herramientas de software para el éxito ya que la necesidad de disminución de incertidumbre depende de las iteraciones del prototipo, entre más iteraciones existan mejor y este último se logra mediante el uso de mejores herramientas lo que hace a este proceso dependiente de las mismas.
  • No es posible usar la metodología en a todos los sistemas.
  • Puede existir una mala interpretación que pueden hacer los usuarios del prototipo, al cual pueden confundir con el sistema terminado.

CONCLUSIONES:

Podemos ver que a pesar de que existan inconvenientes o desventajas el desarrollo mediante la construcción de prototipos puede ser un paradigma efectivo para la ingeniería de software.

Podemos darnos cuenta de que lo esencial esta en definir las reglas desde el principio es decir el usuario y el desarrollador se deben poner de acuerdo en que el prototipo se construya y sirva como un mecanismo para la definición de requerimientos y que después de esto se desarrolle el software real con un enfoque hacia la calidad.

Trabajo realizado por:
Yadira Cagua.