ACTIVIDAD 3: Realizar ensayo modelos para el desarrollo de software
INTRODUCCION El desarrollo de software en el pasado era un desorden ya que no se contaba con ningn mtodo, reglas o algn consejo para realizar esta actividad y esto ocasionaba un derroche de recursos en cuanto a materiales como humanos; por eso ahora se cuenta con varios modelos o ciclos de vida de desarrollo de software, se trata de un proceso que se realiza para construir y hacer evolucionar al software, desde que se pone a trabajar dicho software hasta la culminacin del sistema, en estos modelos para el desarrollo de software se representan las actividades y herramientas que se necesitan para desarrollar una aplicacin Lo que el ciclo de vida del modelo de software realiza es: describir las etapas primordiales del desarrollo de software, definir las etapas pro, definir las etapas primarias esperadas para ser aplicadas durante esas etapas, ayuda a administrar el progreso del desarrollo y provee un espacio de trabajo para la definicin de un detallado proceso de desarrollo de software. Los modelos son gua para los ingenieros de software con el finalidad de establecer las diversas tcnicas a aplicar en los proyectos a continuacin se mencionan tres el modelo de prototipos, el modelo de espiral y el modelo incremental o DESARROLLO MODELO DE PROTOTIPOS Este modelo permite que el sistema o algunas de sus partes, se construyan rpidamente para comprender con facilidad y aclarar ciertos aspectos en los que se aseguren que el desarrollador, el usuario estn de acuerdo en lo que se necesita as como la solucin que se propone para dicha necesidad y de esta forma minimizar el riego y la incertidumbre en el desarrollo, este modelo se encarga del desarrollo de diseos para que estos sean analizados y presendir de ellos a medida que se adhieran nuevas especificaciones, es ideal para medir el hasta donde pude llegar el producto pero no se asegura su uso real. Este modelo se aplica cuando un cliente define un conjunto de objetivos generales para el software que se deber desarrollarse sin delimitar detalladamente los requisitos de entrada, procesamiento y salida, es decir cuando aun no se est seguro de la eficacia de un algoritmo, de la adaptacin del sistema o de la forma en que se va interactuar con la maquina. El paradigma de construccin de prototipos tiene tres pasos 1. Escuchar al cliente, donde se recolectan los requisitos. Se encuentran y definen los objetivos globales, se identifican los requisitos conocidos y las reas donde es obligatorio ms definicin. 2. Construir y revisar la maqueta, es decir el prototipo. 3. El cliente prueba el prototipo y lo utiliza para refinar los requisitos ms definicin. Las etapas para elaboracin del modelo de Prototipo: 1. Investigacin preliminar: definicin del problema, sus efectos organizacionales, estudio de factibilidad. 1.1 especificacin de requerimientos y prototipado: Anlisis y Especificacin: diseo bsico del prototipo. Diseo y Construccin prototipo inicial. Evaluacin: Verificacin y Requerimientos. Modificacin del Prototipo. 2. Diseo tcnico: diseo detallado del prototipo y documentacin para programacin y mantencin 3. Programacin y Prueba: las especificaciones del diseo tcnico son implementadas y probadas 4. Operacin y Mantenimiento: instalacin del sistema y modificaciones posteriores. Ciclo de vida de un sistema basado en el modelo de prototipo Un prototipo de pantalla muestra la interfaz de la aplicacin, pero esta interfaz est fija, es decir no procesa datos. Este prototipo no tiene desarrolla una lgica interna. Slo muestra las pantallas por las que ir pasando la futura aplicacin. Por otra parte, el prototipo funcional evolutivo desarrolla un comportamiento que satisface los requisitos y necesidades que se han entendido claramente. Realiza un proceso real de datos, para interactuar con el usuario. Este modelo se va modificando y desarrollando sobre la implantacin del mismo segn las necesidades del cliente Esto ralentiza el proceso de desarrollo y disminuye la fiabilidad, puesto que el software est en constantes cambios, pero a la larga, genera un producto ms seguro, en cuanto a la satisfaccin de las necesidades del cliente. Cuando el prototipo se desarrolla con el propsito de precisar las necesidades del cliente y no se le va a aprovechar en lo ms mnimo en la implementacin del sistema final se trata de un prototipo desechable. Para que la construccin de prototipos sea posible se debe contar con la participacin activa del cliente VENTAJAS Y DESVENTAJAS DEL MODELO DE PROTOTIPOS Algunas de las ventajas de este modelo es que se crea con rapidez, es fcil modificable, reduce el costo, aumenta la probabilidad de xito ideas de que emite al desarrollador darse cuenta de que quiere el cliente. Aunque este modelo tiene grandes ventajas tambin tiene desventajas las cuales son: una administracin difcil, la adaptacin como el sistema final, el desarrollador y el cliente tienen poca comunicacin aveses surgen cambios imprevistos que retrasan el progreso de prototipo Los requisitos de los usuarios cambian continuamente mientras se desarrolla el software que se necesita y en consecuencia no hay un producto completo al 100% que cumpla con el total de las necesidades pero la principal desventaja de este modelo es cuando el cliente ha dado su aprobacin final al prototipo y necesita el producto final, ser necesario reescribir gran parte del prototipo para hacerlo funcional, ya que el desarrollador solo hace prototipos de implementacin para que el modelo funcione rpidamente. 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. MODELO EN ESPIRAL El modelo Evolutivo Espiral cuyo autor es Barry Boehm (1988), este tipo de modelo permite tener en cuenta el riesgo que aparece al momento de desarrollar software. Cuando se emplea este modelo se comienza analizando las diferentes alternativas de procesos en el diseo del software, se selecciona el riesgo ms asumible y se hace un ciclo de la espiral. Cuando el usuario requiere hacer avances en el software, se evala las diferentes alternativas y se realiza un nuevo giro a la espiral, as hasta que el software diseado sea aceptado y no necesite mejorarse con un nuevo ciclo. Este modelo de desarrollo de software, es un modelo meta del ciclo de vida del software donde el esfuerzo del desarrollo es iterativo, cuando culmina un esfuerzo del desarrollo enseguida comienza otro; adems en cada ejecucin del desarrollo se siguen cuatro entapas: 1. Determinar o fijar los objetivos: aqu se definen los objetivos especficos para despus identificar las limitaciones del proceso y del sistema de software, adems de que se disea una planificacin detallada de administracin y se identifican los riesgos. 2. Anlisis del riesgo: en el segundo paso se efecta un anlisis a detalle para los riesgos ya identificados del proyecto, se definen los pasos a seguir para reducir los riesgos y luego del anlisis de estos riesgos se planean estrategias alternativas. 3. Desarrollar, Verificar y Validar: en este paso, despus de analizar los riesgos, se elige un paradigma para el desarrollo del sistema de software y se lo desarrolla. 4. Planificar: en el ltimo paso es donde el proyecto se revisa y se toma la decisin si se debe continuar con un ciclo posterior al de la espiral. Se va a continuar se desarrollan los planes para la siguiente fase del proyecto. Con cada interaccin alrededor de la espiral, se crean sucesivas versiones del software, cada vez ms completas y, al final, el sistema de software queda totalmente funcionando. La diferencia del modelo en espiral y los dems modelos es la evaluacin del riesgo. Los riesgos originan problemas en el proyecto, como exceso de costos, la actividad de la disminucin de riesgos es muy importante. Un modelo espiral comienza con la determinacin de los objetivos tanto funcionales como de rendimiento. Posteriormente se enumeran algunas formas posibles de alcanzar estos objetivos identificando las fuentes posibles de riesgos. Despus se procede con el siguiente paso que es resolver los riesgos y se llevan a cabo las actividades de desarrollo, para finalizar con la planificacin del siguiente ciclo de la espiral. CARACTERISTICAS DEL MODELO EN ESPIRAL Es considerado como un modelo evolutivo ya que combina el modelo clsico con el diseo de prototipos Contiene una nueva etapa que es el anlisis de riesgos, no incluida anteriormente. Este modelo es el indica para desarrollar software con diferentes versiones actualizadas como se hace con los programas modernos de PC La ingeniera puede desarrollarse a travs del ciclo de vida clsico o el de construccin de prototipos Este es el enfoque ms realista actualmente. Este tipo de modelo esta compartida en varias actividades estructurales, tambin llamadas regiones de tareas que son: 1. Comunicacin con el cliente: esta es una tarea para establecer comunicacin entre el cliente y el desarrollador. 2. Planificacin: esta tarea es necesaria aplicarla para poder definir los recursos, tiempo y dems elementos que influyan con el proyecto, que son todos los requerimientos. 3. Anlisis de riesgos: esta tarea es de las principales por lo que se aplica el modelo en espiral, se requiere para evaluar los riesgos tcnicos y otras informaciones relacionadas con el proyecto. 4. Ingeniera: esta es una tarea necesaria ya que se requiere construir una o ms representaciones de la aplicacin. 5. Construccin y adaptacin: en esta tarea se construye, prueba instala el software adems de que se da soporte al usuario. 6. Evaluacin del cliente: esta tarea es necesaria para adquirir la reaccin del cliente segn la evaluacin de las representaciones del software creadas durante la etapa de ingeniera y la de implementacin creada durante la etapa de instalacin. VENTAJAS Y DESVENTAJAS DEL MODELO EN ESPIRAL Este tipo de modelo tiene la ventaja de que no requiere una definicin completa de los requerimientos del software a desarrollar para comenzar su funcionalidad, tambin en la terminacin de un producto desde el final de la primera iteracin es muy factible aprobar los requisitos, adems, sufrir retrasos corre un riesgo menor, por que se comprueban los conflictos presentados tempranamente y existe la forma de poder corregirlos a tiempo Algunas de las desventajas del modelo en espiral es que existe complicacin cuando se evalan los riesgos; se requiere la participacin continua por parte del cliente, adems, se pierde tiempo al volver producir inicialmente una especificacin completa de los requerimientos cuando se modifica o mejora el software.
MODELO INCREMENTAL Este proceso de desarrollo fue creado en respuesta a las carencias y debilidades del modelo ms comn el de cascada y fue propuesto por Mills en 1980. Este modelo es un conjunto de tareas agrupadas en cartas etapas repetitivas (iteraciones, es un modelo muy utilizado porque se relaciona con novedosas estrategias de desarrollo de software y una programacin extrema, es empleado en diversas metodologas. El modelo combina elementos del modelo lineal (adems que los de cascada) con la filosofa interactiva de construccin de prototipos. La principal caracterstica de este modelo es la retroalimentacin ya que forma parte importante porque se reduce el riesgo a un fallo y el sistema se adapta a las necesidades del cliente con cada iteracin se le entrega al cliente una versin mejorada del software, el cliente evala el producto, propone mejoras, las iteraciones se repetirn hasta que el cliente tenga el software que cumpla al 100% sus necesidades. Los pasos claves en el proceso son comenzar con una implementacin simple de los requerimientos del sistema, y mejorar la secuencia evolutiva de versiones hasta que el sistema completo est implementado. En cada iteracin, se realizan cambios en el diseo y se agregan nuevas funcionalidades y capacidades al sistema. Este modelo se basa en dos premisas: uno los usuarios no saben que es lo que necesitan para satisfacer sus necesidades y dos en el desarrollo los procesos tienden a cambiar, este proceso consiste de: Etapa de inicializacin: cuando se crea una versin del sistema. La meta de es crear un producto con el que el usuario pueda interactuar, y por ende retroalimentar el proceso. Este debe ofrecer una muestra con los aspectos ms relevantes del problema y proveer una solucin simple que pueda ser comprendida e implementada fcilmente. Etapa de iteracin: aqu se involucra el rediseo e implementacin de una tarea de la lista de control de proyecto, y el anlisis de la versin mas reciente. La meta de las iteraciones es ser simple, directa, y modular, para soportar el rediseo o como una tarea aadida a la lista de control de proyecto. El anlisis de la iteracin se basa en la retroalimentacin del usuario y en anlisis de las funcionalidades disponibles del software. Lista de control de proyecto. CARACTERISTICAS Algunas de las caractersticas que tiene este modelo son: Que cada incremento agrega funcionalidad adicional o mejorada sobre el sistema. Cada etapa debe cumplir con los requisitos de las desarrolladas La propuesta del este modelo es disear sistemas que puedan entregarse pos piezas. A partir de la evaluacin se planea el siguiente incremento si es necesario Es muy til cuando no se cuenta con personal suficiente para la implementacin completa. Los usuarios no tienen que esperar Se evitan proyectos largos y se entrega una parte a los usuarios con cierta frecuencia. Requiere gestores experimentados.
VENTAJAS Y DESVENTAJAS Algunas de las ventajas de este modelo son que los usuarios no tiene que esperar hasta que el sistema completo se entregue para poder usarlo, la primera mejora debe cumplir los requerimientos mas importantes de forma que se pueda utilizar el software al instante, adems los usuarios pueden utilizar las mejoras iniciales como prototipos y obtener experiencia sobre los requerimientos de los incrementos posteriores del sistema, tambin existen muy pocas probabilidades de riesgo en el sistema. Y algunos de los inconvenientes que tiene este sistema son que al ser entregado rpidamente produce la creacin de sistemas demasiados simples, la mayora de los mejoras se hacen en base a las necesidades de los usuarios sin embargo hay que analizar como se ve el software antes de la entrega, requiere de un cliente involucrado durante todo el desarrollo del software y hay cliente que no estn dispuestos a invertir tiempo, adems, de que la entrega de un software parcial pero que funcione puede hacer vulnerable al software debido a la falta de perfeccin del mismo. CONCLUSIONES Estos tres tipos de modelos de desarrollo de software estn muy completos y sirven de mucha ayuda al momento de implementar uno de estos, aunque hay muchos ms tipos de modelos de desarrollo de software y siguen surgiendo con cada caso, estos son solo consejos y referencias, que tal vez pudieran servir para un problema de software, no garantizan al 100% su efectividad el modelo de prototipos no se debera emplear en un proyecto largo, as como el modelo de incremento se empleara en un procesador de texto, para que el usuario vea las posibles mejoras que requiere el sistema y el modelo en espiral se utiliza sobre todo en grandes proyectos como los militares los emplean en sus proyectos de ingeniera de software, as que no hay ninguno que este a la perfeccin del proyecto a emplear, pero disponemos de muchas opciones para no fracasar y tener xito en el proyecto de desarrollo de software.
BIBLIOGRAFIA Software Process (Waterfall Process versus Incremental Process), Scott Sehlhorst, January 3rd, 2006. http://www.unibe.edu.do/tic/ingenieria.pdf https://jummp.wordpress.com/2011/03/31/desarrollo-de-software-ciclo-de-vida- iterativo-incremental/ http://www.proyectosagiles.org/desarrollo-iterativo-incremental http://148.202.148.5/cursos/cc321/fundamentos/unidad1/espiral.htm http://es.wikipedia.org/wiki/Desarrollo_en_espiral http://es.geocities.com/modeloespiral/definicion.htm http://www.eumed.net/libros- gratis/2011a/896/MODELOS%20DE%20DESARROLLO%20DE%20SOFTWARE. htm es.slideshare.net/inventa2/modelos-de-desarrollo tema3isoftware.blogspot.com/p/modelos-de-desarrollo-tecnicas-y.htm http://centrodeartigo.com/articulos-noticias-consejos/article_135811.html http://es.slideshare.net/soniaposligua/modelo-enespiral http://www.ojovisual.net/galofarino/modeloespiral.pdf http://sofware1nathalygrijalva.blogspot.mx/2012/10/modelo-espiral.html http://www.ecured.cu/index.php/Modelo_de_Prototipos http://es.slideshare.net/JoanFernandoChipia/modelo-basado-en-prototipos- 3098423 http://procesosoftware.wikispaces.com/Modelo+Prototipado