9
El Modelo de prototipos, en Ingeniería de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuado y no se debe utilizar muchos recursos. El diseño rápido se centra en una representación de auellos aspectos del software ue se visibles para el cliente o el usuario final. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación! gracias a "sta refinan los reuisitos del software ue se desarrollará. #a interacción ocurre cuando el prototipo se a$usta para satisfacer las necesidades del cliente. Esto permite ue al mism tiempo el desarrollador entienda me$or lo ue se debe hacer y el cliente vea resultados a plazo. El modelo de prototipos permite ue todo el sistema, o algunos de sus partes, se construy rápidamente para comprender con facilidad y aclarar ciertos aspectos en los ue se asegur ue el desarrollador, el usuario, el cliente est"n de acuerdo en lo ue se necesita así c tambi"n la solución ue se propone para dicha necesidad y de esta forma minimizar el ries y la incertidumbre en el desarrollo, este modelo se encarga del desarrollo de diseños par estos sean analizados y prescindir de ellos a medida ue se adhieran nuevas especificaciones, es ideal para medir el alcance del producto, pero no se asegura su uso Este modelo principalmente se lo aplica cuando un cliente define un con$unto de ob$etivos generales para el software a desarrollarse sin delimitar detalladamente los reuisitos de entrada procesamiento y salida, es decir cuando el responsable no está seguro de la efica de un algoritmo, de la adaptabilidad del sistema o de la forma en ue interact%a el hombr máuina. Este modelo se encarga principalmente de ayudar al ingeniero de sistemas y al cliente a entender de me$or manera cuál será el resultado de la construcción cuando los reuisitos est"n satisfechos. El paradigma de construcción de prototipos tiene tres pasos: Escuchar al cliente. Recolección de requisitos. Se encuentran y definen los objetivos globales, se identifican los requisitos conocidos y las reas donde es obligatorio ms definición. !onstruir y revisar la maqueta "prototipo#. El cliente prueba la maqueta "prototipo# y lo utili$a para refinar los requisitos d soft%are.

El Modelo de Prototipos Ingenieria de Software

Embed Size (px)

DESCRIPTION

Metodología de los modelos de prototipos. Características, ventajas, desventajas.Ciclo de vida, Fases que ese usan en esta metodología. Imágenes referentes, diferentes fuentes de información. Conclusión del tema de la metodología de modelos de prototipos utilizados en la ingeniería de Software.

Citation preview

El Modelo de prototipos, enIngeniera de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos.El diseo rpido se centra en una representacin de aquellos aspectos del software que sern visibles para el cliente o el usuario final. Este diseo conduce a la construccin de un prototipo, el cual es evaluado por el cliente para una retroalimentacin; gracias a sta se refinan los requisitos del software que se desarrollar. La interaccin 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 modelo de prototipos permite que todo el sistema, o algunos de sus partes, se construyan rpidamente para comprender con facilidad y aclarar ciertos aspectos en los que se aseguren que el desarrollador, el usuario, el cliente estn de acuerdo en lo que se necesita as como tambin la solucin que se propone para dicha necesidad y de esta forma minimizar el riesgo y la incertidumbre en el desarrollo, este modelo se encarga del desarrollo de diseos para que estos sean analizados y prescindir de ellos a medida que se adhieran nuevas especificaciones, es ideal para medir el alcance del producto, pero no se asegura su uso real. Este modelo principalmente se lo aplica cuando un cliente define un conjunto de objetivos generales para el software a desarrollarse sin delimitar detalladamente los requisitos de entrada procesamiento y salida, es decir cuando el responsable no est seguro de la eficacia de un algoritmo, de la adaptabilidad del sistema o de la forma en que interacta el hombre y la mquina. Este modelo se encarga principalmente de ayudar al ingeniero de sistemas y al cliente a entender de mejor manera cul ser el resultado de la construccin cuando los requisitos estn satisfechos.El paradigma de construccin de prototipos tiene tres pasos:

Escuchar al cliente. Recoleccin de requisitos. Se encuentran y definen los objetivos globales, se identifican los requisitos conocidos y las reas donde es obligatorio ms definicin.

Construir y revisar la maqueta (prototipo). El cliente prueba la maqueta (prototipo) y lo utiliza para refinar los requisitos del software.Este modelo es til cuando:

El cliente no identifica los requisitos detallados.

El responsable del desarrollo no est seguro de la eficiencia de un algoritmo, sistema operativo o de la interface hombre-mquina.

Etapas para la elaboracin del Modelo de Prototipo.

Etapas Plan rpido. Modelado, diseo rpido Construccin del Prototipo Desarrollo, entrega y retroalimentacin Comunicacin Entrega del desarrollo finalVentajas Este modelo es til cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. Tambin ofrece un mejor enfoque cuando el responsable del desarrollo del software est inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debera tomar la interaccin humano-mquina Se puede reutilizar el cdigo Este modelo es til cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. Tambin ofrece un mejor enfoque cuando el responsable del desarrollo del software est inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debera tomar la interaccin humano-mquina.

La construccin de prototipos se puede utilizar como un modelo del proceso independiente, se emplea ms comnmente como una tcnica susceptible de implementarse dentro del contexto de cualquiera de los modelos del proceso expuestos. Sin importar la forma en que ste se aplique, el paradigma de construccin de prototipos ayuda al desarrollador de software y al cliente a entender de mejor manera cul ser el resultado de la construccin cuando los requisitos estn satisfechos. De esta manera, este ciclo de vida en particular, involucra al cliente ms profundamente para adquirir el producto.Inconvenientes El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final. A causa de la intencin de crear un prototipo de forma rpida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su funcin. Es frecuente que el usuario se muestre reacio a ello y pida que sobre ese prototipo se construya el sistema final, lo que lo convertira en unprototipo evolutivo, pero partiendo de un estado poco recomendado. En aras de desarrollar rpidamente el prototipo, el desarrollador suele tomar algunas decisiones de implementacin poco convenientes (por ejemplo, elegir un lenguaje de programacin incorrecto porque proporcione un desarrollo ms rpido). Con el paso del tiempo, el desarrollador puede olvidarse de la razn que le llev a tomar tales decisiones, con lo que se corre el riesgo de que dichas elecciones pasen a formar parte del sistema final... Su principal desventaja es que una vez que el cliente ha dado su aprobacin final al prototipo y cree que est a punto de recibir el proyecto final, se encuentra con que es necesario reescribir buena parte del prototipo para hacerlo funcional, porque lo ms seguro es que el desarrollador haya hecho compromisos de implementacin para hacer que el prototipo funcione rpidamente. Es posible que el prototipo sea muy lento, muy grande, no muy amigable en su uso, o incluso, que est escrito en un lenguaje de programacin inadecuado. El cliente ve funcionando lo que para l es la primera versin del prototipo que ha sido construido con "plastilina y alambres", y puede desilusionarse al decirle que el sistema an no ha sido construido. El desarrollador puede ampliar el prototipo para construir el sistema final sin tener en cuenta los compromisos de calidad y de mantenimiento que tiene con el cliente.ConclusionesA pesar de que tal vez surjan problemas, la construccin de prototipos puede ser un paradigma efectivo para la ingeniera del software. La clave es definir las reglas del juego desde el principio; es decir, el cliente y el desarrollador se deben poner de acuerdo en: Que el prototipo se construya y sirva como unmecanismo para la definicin de requisitos. Que el prototipo sedescarte, al menos en parte. Que despus se desarrolle el software real con un enfoque hacia lacalidad.

Ciclo de Vida de un Sistema basado en Prototipo.

Una maqueta o prototipo de pantallas muestra la interfaz de la aplicacin, su cara externa, pero dicha interfaz est fija, esttica, no procesa datos. El prototipo no tiene desarrollada una lgica interna, slo muestra las pantallas por las que ir pasando la futura aplicacin.

Por su parte, el prototipo funcional evolutivo desarrolla un comportamiento que satisface los requisitos y necesidades que se han entendido claramente. Realiza, por tanto, un un proceso real de datos, para contrastarlo con el usuario. Se va modificando y desarrollando sobre la marcha, segn las apreciaciones del cliente. Estoralentizael proceso de desarrollo y disminuye la fiabilidad, puesto que el software est constantementevariando, pero, a la larga, genera un producto ms seguro, en cuanto a la satisfaccin de las necesidades del cliente.

Cuando un prototipo se desarrolla con el slo propsito de precisar mejor las necesidades del cliente y despus no se va a aprovechar ni total ni parcialmente en la implementacin del sistema final se habla de un prototipo desechable.

Para que la construccin de prototipos sea posible se debe contar con la participacin activa del cliente.

El desarrollo orientado a prototiposSi bien algunos autores consideran que esto es parte del ciclo de vida clsico (Boehm, 1988), es tambin posible verlo como un mtodo independiente.Una definicin de un prototipo en software podra ser:"...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 representacin de un sistema, aunque no es un sistema completo, posee las caractersticas del sistema final o parte de ellas"Las fases que comprende el mtodo de desarrollo orientado a prototipos seran:Investigacin preliminar. Las metas principales de esta fase son: determinar el problema y su mbito, la importancia y sus efectos potenciales sobre la organizacin por una parte y, por otro lado, identificar una idea general de la solucin para realizar un estudio de factibilidad que determine la factibilidad de una solucin software.Definicin de los requerimientos del sistema. El objetivo de esta etapa es registrar todos los requerimientos y deseos que los usuarios tienen en relacin al proyecto bajo desarrollo. Esta etapa es la ms importante de todo el ciclo de vida, es aqu donde el desarrollador determina los requisitos mediante la construccin, demostracin y retroalimentaciones del prototipo. Por lo mismo esta etapa ser revisada con ms detalle luego de esta descripcin.Diseo tcnico. Durante la construccin del prototipo, el desarrollador ha obviado el diseo detallado. El sistema debe ser entonces rediseado y documentado segn los estndares de la organizacin y para ayudar a las mantenciones futuras. Esta fase de diseo tcnico tiene dos etapas: por un lado, la produccin de una documentacin de diseo que especifica y describe la estructura del software, el control de flujo, las interfaces de usuario y las funciones y, como segunda etapa, la produccin de todo lo requerido para promover cualquier mantencin futura del software.4Programacin y prueba. Es donde los cambios identificados en el diseo tcnico son implementados y probados para asegurar la correccin y completitud de los mismos con respecto a los requerimientos.Operacin y mantencin. La instalacin del sistema en ambiente de explotacin, 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. Adems, la mantencin tambin debera ser una fase menos importante, ya que se supone que el refinamiento del prototipo permitira una mejor claridad en los requerimientos, por lo cual las mantenciones perfectivas se reduciran. Si eventualmente se requiriese una mantencin entonces el proceso de prototipado es repetido y se definir un nuevo conjunto de requerimientos.La fase ms importante corresponde a la definicin de requerimientos, la cual correspondera a un proceso que busca aproximar las visiones del usuario y del desarrollador mediante sucesivas iteraciones. La definicin de requerimientos consiste de cinco etapas entre dos de las cuales se establece un ciclo iterativo:Anlisis grueso y especificacin. El propsito de esta subfase es desarrollar un diseo bsico para el prototipo inicial.Diseo y construccin. El objetivo de esta subfase es obtener un prototipo inicial. El desarrollador debe concentrarse en construir un sistema con la mxima funcionalidad, poniendo nfasis en la interface del usuario.Evaluacin.Esta etapa tiene dos propsitos: extraer a los usuarios la especificacin de los requerimientos adicionales del sistema y verificar que el prototipo desarrollado lo haya sido en concordancia con la definicin de requerimientos del sistema. Si los usuarios identifican fallas en el prototipo, entonces el desarrollador simplemente corrige el prototipo antes de la siguiente evaluacin. El prototipo es repetidamente modificado y evaluado hasta que todos los requerimientos del sistema han sido satisfechos. El proceso de evaluacin puede ser dividido en cuatro pasos separados: preparacin, demostracin, uso del prototipo y discusin de comentarios. En esta fase se decide si el prototipo es aceptado o modificado.5Modificacin. Esto ocurre cuando la definicin de requerimientos del sistema es alterada en la sub-fase de evaluacin. El desarrollador entonces debe modificar el prototipo de acuerdo a los comentarios hechos por los usuarios.Trmino. Una vez que se ha desarrollado un prototipo estable y completo, es necesario ponerse de acuerdo en relacin a aspectos de calidad y de representacin del sistema.En la siguiente figura se puede ver un esquema en que estas etapas se realizan, note que la especificacin de requerimientos est claramente diferenciada de las dems. Es en ella donde se utiliza el prototipado, ya que permite entregar al usuario lo que sera una visin la solucin final en etapas tempranas del desarrollo, reduciendo tempranamente los costos de especificaciones errneas.

6Modelo de desarrollo orientado a prototiposLas ventajas de un enfoque de desarrollo orientado a prototipos estn dadas por: reduccin de la incertidumbre y del riesgo, reduccin de tiempo y de costos, incrementos en la aceptacin del nuevo sistema, mejoras en la administracin de proyectos, mejoras en la comunicacin entre desarrolladores y clientes, etc.Si bien, el desarrollo orientado a prototipos tiene considerables ventajas, tambin presenta desventajas como: la dependencia de las herramientas de software para el xito ya que la necesidad de disminucin de incertidumbre depende de las iteraciones del prototipo, entre ms iteraciones exista mejor y esto ltimo se logra mediante el uso de mejores herramientas lo que hace a este proceso dependiente de las mismas. Tambin, no es posible aplicar la metodologa a todos los proyectos de software y, finalmente, la mala interpretacin que pueden hacer los usuarios del prototipo, al cual pueden confundir con el sistema terminado.No se puede desconocer que la fase de definicin 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 comn de comunicacin; tambin, el hacer explcita la posibilidad de iterar sobre estos dominios permitira que la convergencia de los mismos sea una posibilidad cierta.Pero lo anterior no asegura el xito, por ejemplo, qu certeza existe en que esta iteracin sea en la direccin correcta y lleve a la convergencia de los dominios; no se puede desconocer las diferencias que existen entre la prueba de un prototipo de software en la fase de definicin de requerimientos y el uso del mismo ya como un producto terminado. Para explicar esto, podemos hablar de dos dominios en el usuario, uno que es el que se establece cuando se prueba el prototipo y otro, distinto por cierto, el que ocurre cuando el usuario hace uso del software en ambiente de explotacin.Por ltimo, el proceso de iteracin para que sea efectivo debera ser infinito, lo que lo hace poco efectivo. Es decir, mediante este mtodo acercamos la problemtica de los usuarios a los dominios de los desarrolladores y vice versa, pero no sera posible lograr un pareamiento uno a uno entre estos dominios, lo que sera el ideal.http://html.rincondelvago.com/desarrollo-orientado-a-prototipos.html