Tomado de: Ingeniera del Software. IBM Capacitacin.
2008
Porqu es necesario elegir un modelo para desarrollar software?
Sencillamente para sistematizar el desarrollo del software y garantizar un sistema de calidad, confiable, eficiente y predecible. Si llegara a ocurrir un conflicto en el transcurso del desar rollo del software, conseguir resolver el problema en corto tiempo. Los modelos se utilizan para organizar la informacin detallada del sistema, con la finalidad de hacerlo controlable y predecible. Algunos modelos para desarrollar software son: 1. Modelo Secuencial lineal Implica de procedimientos lineales y ordenados, con entregables entre una etapa y otra. Y se dividen en dos tipos: Modelo de Cascada: Propuesto por Winston Royce en 1970. Era una propuesta iterativa, pero en la prctica se compor ta muy lineal. Las etapas principales de este modelo son: Ingeniera de Sistemas: Se detalla muy especficamente la relacin del sistema con cada elemento como el hardware, persona, base de datos, entre otros. Para cada elemento se detallan los requerimientos. Anlisis de Requerimientos: En esta etapa se detalla cada requerimiento del sistema, con la finalidad de evitar ambigedad de los mismos, permitir la creacin del prototipo e interactuar con el cliente para garantizar que se va a disear un sistema acorde a lo solicitado. Fase de Diseo: Aqu se planifica la solucin del problema planteado en el documento de requerimientos, siendo la entr ada a esta fase, la especif icacin de requerimientos y la salida es documento de diseo. Esta etapa de diseo incluye una posible solucin, el modelo de la solucin, evaluacin contra los requerimientos originales para luego obtener un documento de diseo definitivo. Fase de Codif icacin: Aqu se traduce el diseo en un cdigo de programacin en un lenguaje de programacin apropiado. Es importante desarrollar programas fciles de comprender y debidamente documentados ya que esto facilita la fase de prueba y apoya la fase mantenimiento. Fase de Prueba: En esta fase se mide la calidad utilizada en el desarrollo del software. Se validan los procesos del desar rollo y se compara con los requerimientos iniciales. Se verifica contra las especificaciones. La prueba debe arrojar errores de programacin y de diseo. Fase de Mantenimiento: Esta fase inicia luego de la instalacin del software y las principales acciones que se llevan a cabo son:
de
Mantenimiento cor rectivo
Mantenimiento adaptativo Mantenimiento mejorativo Mantenimiento preventivo Ventajas de este modelo Permite una gran organizacin en el proceso de implementacin Utiliza una plantilla para ingeniera del software. Desventaja de este modelo Los clientes deben especificar de forma inmediata, los requerimientos del sistema para que inicie el proceso de desarrollo del software. No siempre el cliente sabe con certeza los requerimientos. Los usuar ios deben esperar la implementacin del sistema para saber si cumple con los requerimientos Cualquier cambio necesar io realizar en la etapa de implementacin, se debe regresar a las etapas anteriores.
Modelo de Desarrollo Rpido de Aplicacin (RAD)
El modelo anterior toma mucho tiempo, debido a esto nace el Modelo RAD Rapid Application Development. Sigue siendo un modelo secuencial lineal pero con tiempos cor tos de desarrollo, para lo cual se requieren varios equipos de personas trabajando paralelamente en cada parte del sistema. Este modelo es eficiente para un equipo numeroso de programadores. En el diseo en este modelo se reciclan los componentes existentes, es decir se reutilizan utilizando tcnicas de cuarta generacin. Una desventaja de este modelo es que se requieren mas desarrolladores ya que trabajan concur rentemente y que no garantiza solucin inmediata de problemas tcnicos debido a que no se enfoca en detalles minuciosos. 2. Modelo de Creacin de un Prototipo Es un modelo evolutivo y basado en el modelo iterativo. El cliente define un conjunto de objetivos generales. No define las entradas ni el procesamiento ni las salidas del sistema. El desarrollo de este prototipo tiene un diseo, codificacin y prueba pero de forma rpida. Un diseo rpido y un prototipo, permiten que el cliente pueda ver la salida antes de que el sistema se encuentre desarrollado por completo, esto facilita cualquier cambio necesario realizar.
3. Modelos Evolutivos Tienen un enfoque f lexible y los pasos bsicos de estos modelos son:
a. Entregar algo al usuario
b. Recibir retroalimentacin del usuario c. Ajustar el diseo y objetivos basadas a las realidades obser vadas. Modelo Incremental: Consiste en un desarrollo paso a paso, en la cual puede ocurr ir que algunas fases se pospongan. En este modelo, cada par te del sistema es diseado, codificado, probado e integrado con el resto de las partes y entregado parcialmente. Se puede seguir el modelo de cascada pero slo para cada par te de sistema por separado. Este modelo es ideal cuando no se tienen todos los requerimientos por anticipado, ya que para obtenerlos es necesario un proceso de aprendizaje. Modelo Espiral: Propuesto por Bar ry Boehm en 1988. Incluye un riesgo. Combina la creacin de un prototipo con los benef icios del modelo secuencial lineal. Sus fases son: Comunicacin con el cliente, planificacin del proyecto, Anlisis de riesgo, Ingeniera del Software, Codificacin, Prueba y Lanzamiento y Evaluacin y Retroalimentacin del Cliente 4. Modelo de Ensamblado de Componentes Es iterativo, utiliza un mtodo especfico en las etapas de Ingeniera del Software y Programacin, prueba y lanzamiento ya que usa la programacin orientada a objeto. Algunos pasos de este modelo son: Identificar componentes reutilizable Utilizar libreras para facilitar el reuso de componentes Construir componentes adicionales para realizar el diseo en la etapa de iteracin. Ensamblar los componentes para agilizar la entrega del software. Este modelo trabaja idntico al espiral hasta el momento del ensamblado de componentes. Tcnicas de Cuarta Generacin (4GTs) Estas tcnicas estn relacionas con el software en un alto nivel de abstraccin. Son llamadas tambin generadores de aplicaciones y tienen las siguientes caractersticas. Utilizan un lenguaje no procedural para consultar la base de datos Utilizan herramientas generadoras de reportes, las cuales no requieren de programacin Diferentes formas de manejo de datos, tanto para programadores y no progr madores. Fcil creacin de pantallas Facilidad para la generacin de cdigo