PROTOTIPOS INFORMATICOS
El desarrollo orientado a
prototipos
Definición.-
de un prototipo en software: “…es un modelo del comportamiento del sistema
que puede ser usado para entenderlo completamente o ciertos aspectos de él y
así clarificar los requerimientos… Un prototipo es una representación de un
sistema, aunque no es un sistema completo, posee las características del
sistema final o parte de ellas”
Modelo o maqueta del sistema que se construye
para comprender mejor el problema y sus posibles soluciones:
·
Evaluar mejor los requisitos.
·
Probar opciones de diseño.
Características de los prototipos
·
Funcionalidad limitada.
·
Poca fiabilidad.
·
Características de funcionalidad pobres.
·
Alto grado de participación del usuario el cual
evalúa los prototipos, propone mejoras y detalla requisitos.
·
Alto grado de participación del analista de
sistemas, ya que en muchos casos los usuarios no pueden indicar los requisitos
sin tener experiencia con el sistema.
·
El prototipo da mayor conocimiento al usuario y
analistas ayudando a que el usuario aprenda a utilizar el sistema.
Uso de prototipo
Se presenta al cliente un prototipo para su
experimentación.
·
Ayuda al cliente a establecer claramente los
requisitos.
Ayuda a los desarrolladores a:
·
Validar corrección de la especificación.
·
Aprender sobre problemas que se presentarán
durante el diseño e implementación del sistema.
·
Mejorar el producto.
·
Examinar viabilidad y utilidad de la aplicación.
Tipos de prototipos.
Prototipado de interfaz de usuario:
modelos de pantallas.
Prototipado funcional (operacional):
implementa algunas funciones, y a medida que se comprueba que son las
apropiadas, se corrigen, refinan, y se añaden otras.
Modelos de rendimiento:
evalúan el rendimiento de una aplicación crítica (no sirven al análisis
de requisitos).
Rápido o desechable:
·
Sirve al análisis y validación de los
requisitos.
·
Después se redacta la especificación del sistema
y se desecha el prototipo.
·
La aplicación se desarrolla siguiendo un
paradigma diferente.
·
Problema: cuando el prototipo no se desecha, y
termina convirtiéndose en el sistema final.
Evolutivos:
·
Comienza con un sistema relativamente simple que
implementa los requisitos más importantes o mejor conocidos.
·
El prototipo se aumenta o cambia en cuanto se
descubren nuevos requisitos.
·
Finalmente, se convierte en el sistema
requerido.
·
Actualmente se usa en el desarrollo de sitios
Webs y en aplicaciones de comercio electrónico.
Vertical
·
Desarrolla completamente alguna de las
funciones.
Horizontal
·
Desarrolla parcialmente todas las funciones.
Herramientas de prototipado.
·
Lenguajes dinámicos de alto nivel.
·
Lenguajes de cuarta generación (4GLs)
(programación de BBDD).
·
Ensamblaje de componentes y aplicaciones.
Lenguajes Dinámicos de alto nivel.
Muy usados:
·
Smalltalk (basado en objetos, sistemas
interactivos)
·
Java (basado en objetos, sistemas interactivos)
·
Prolog (lógico, procesamiento simbólico)
·
LISP (basado en listas, procesamiento simbólico)
Elección del lenguaje:
·
¿Cuál es el dominio de aplicación?
·
¿Cuál es la interacción de usuario requerida?
·
(Java, Smalltalk se integran bien con las
interfaces Web.)
·
¿Cuál es el entorno proporcionado para el
lenguaje?
Lenguajes de 4ª Generación.
·
La mayoría de aplicaciones de gestión son
interactivas e implican la manipulación de una BD y la producción de salidas
que involucran organizar y dar formato a esos datos.
·
4GL: lenguaje de programación de BBDD (y su
entorno de desarrollo), que contiene conocimiento de la BD y operaciones para
manipulación de la misma.
·
4GL: lenguaje no Procedimental.
·
Reducen claramente los costos del desarrollo.
·
Muy usados en prototipado evolutivo.
·
Muchos 4GLs permiten el desarrollo de interfaces
de
·
BBDD basadas en navegadores Web.
·
Generan SQL.
·
Menos eficientes que los lenguajes de
programación convencionales.
·
Reducen claramente los costos del desarrollo.
El desarrollo de prototipos con reutilización
comprende dos niveles:
1. El
nivel de aplicación, en el que una aplicación completa se integra con el
prototipo
·
P.ej., si el prototipo requiere procesamiento de
textos, se puede integrar un sistema estándar de procesamiento de textos (MS
Office).
B. El nivel de componente, en el que los
componentes se integran en un marco de trabajo estándar.
· Visual Basic, TCL/TK, Python, Perl…
- Lenguajes
de alto nivel sin tipos, con kits de herramientas gráficas.
- Desarrollo
rápido de aplicaciones pequeñas y relativamente sencillas, construidas por una
persona o conjunto de personas.
- No existe
una arquitectura explícita del sistema.
·
CORBA, DCOM, JavaBeans
- Junto con un
marco arquitectónico, es más apropiado para sistemas grandes.
Prototipos de Interface de Usuario.
Las descripciones textuales y
los diagramas no son suficientemente buenos para expresar los requisitos de la
interfaz.
La construcción de prototipos evolutivos con la
participación del usuario final es la forma más sensata de desarrollar una
interfaz.
Los usuarios deben estar implicados en la
evaluación y evolución del prototipo.
Herramientas:
·
Generadores de interfaz (4GLs, Visual Basic,
etc.).
·
Editores de páginas Web.
·
Herramientas CASE.
-
Formularios, pantallas, generación de código…
·
Bocetos en papel.
·
Aplicaciones de dibujo
- Harward
Graphics, etc.
·
MS PowerPoint.
·
Etc.
FASES
Las fases que comprende el método de desarrollo
orientado a prototipos serían:
·
Investigación preliminar.
Las metas principales de esta fase son: determinar el problema y su ámbito, la
importancia y sus efectos potenciales sobre la organización por una parte y,
por otro lado, identificar una idea general de la solución para realizar un
estudio de factibilidad que determine la factibilidad de una solución software.
·
Definición de los requerimientos del sistema.
El objetivo de esta etapa es registrar todos los requerimientos y deseos que
los usuarios tienen en relación al proyecto bajo desarrollo. Esta etapa es la
más importante de todo el ciclo de vida, es aquí donde el desarrollador
determina los requisitos mediante la construcción, demostración y
retroalimentaciones del prototipo. Por lo mismo esta etapa será revisada con
más detalle luego de esta descripción.
·
Diseño técnico.
Durante la construcción del prototipo, el desarrollador ha obviado el diseño
detallado. El sistema debe ser entonces rediseñado y documentado según los
estándares de la organización y para ayudar a las mantenciones futuras. Esta
fase de diseño técnico tiene dos etapas: por un lado, la producción de una
documentación de diseño que especifica y describe la estructura del software,
el control de flujo, las interfaces de usuario y las funciones y, como segunda
etapa, la producción de todo lo requerido para promover cualquier mantención
futura del software.
·
Programación y prueba.
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.
·
Operación y mantención.
La instalación del sistema en ambiente de explotación, en este caso, resulta de
menor complejidad, ya que se supone que los usuarios han trabajado con el
sistema al 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, por lo cual las
mantenciones perfectivas se reducirían. Si eventualmente se requiriese una
mantención entonces el proceso de prototipado es repetido y se definirá un
nuevo conjunto de requerimientos.
La fase más importante corresponde a la
definición de requerimientos, la cual correspondería a un proceso que busca
aproximar las visiones del usuario y del desarrollador mediante sucesivas
iteraciones. La definición de requerimientos consiste de cinco etapas entre dos
de las cuales se establece un ciclo iterativo:
·
Análisis grueso y especificación.
El propósito de esta subfase es desarrollar un diseño básico para el prototipo
inicial.
·
Diseño y construcción.
El objetivo de esta subfase es obtener un prototipo inicial. El desarrollador
debe concentrarse en construir un sistema con la máxima funcionalidad, poniendo
énfasis en la interface del usuario.
·
Evaluación.
Esta etapa tiene dos propósitos: extraer a 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. Si los usuarios identifican fallas en el prototipo, entonces el
desarrollador simplemente corrige el prototipo antes de la siguiente
evaluación. El prototipo es repetidamente modificado y evaluado hasta que todos
los requerimientos del sistema han sido satisfechos. El proceso de evaluación
puede ser dividido en cuatro pasos separados: preparación, demostración, uso
del prototipo y discusión de comentarios. En esta fase se decide si el
prototipo es aceptado o modificado.
·
Modificación.
Esto ocurre cuando la definición de requerimientos del sistema es alterada en
la sub−fase 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.
Las ventajas de un enfoque de desarrollo
orientado a prototipos están dadas por:
·
Reducción de la incertidumbre y del riesgo
·
Reducción de tiempo y de costos, incrementos en
la aceptación del nuevo sistema,
·
Mejoras en la administración de proyectos
·
Mejoras en la comunicación entre desarrolladores
y clientes, etc.
Si bien, el desarrollo orientado a prototipos
tiene considerables ventajas, también presenta desventajas como:
·
La dependencia 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 exista mejor y esto último
se logra mediante el uso de mejores herramientas lo que hace a este proceso
dependiente de las mismas.
·
También, no es posible aplicar la metodología a
todos los proyectos de software y, finalmente, la mala interpretación que
pueden hacer los usuarios del prototipo, al cual pueden confundir con el
sistema terminado.
·
No se puede desconocer que la fase de definición
de requerimientos se ha perfeccionado en dos aspectos importantes: primero se
ha aproximado las visiones del usuario y el desarrollador, lo cual representa
el beneficio de establecer una base común de comunicación; también, el hacer
explícita la posibilidad de iterar sobre estos dominios permitiría que la
convergencia de los mismos sea una posibilidad cierta.