22
1 MODELOS DE DESARROLLO DE SOFTWARE Un modelo de desarrollo es una representación abstracta de un proceso de software, cada modelo representa el proceso de desarrollo de software de una manera en particular. A pesar de estar definidos claramente, no representan necesariamente la realidad de cómo se debe desarrollar el software, sino que establece un enfoque común. Un modelo puede ser modificado y adaptado de acuerdo a las necesidades del software en desarrollo.

Modelos de Desarrollo de Software

Embed Size (px)

DESCRIPTION

Modelos de Desarrollo de Software

Citation preview

INGENIERA DEL SOFTWARE

1MODELOS DE DESARROLLO DE SOFTWARE

Un modelo de desarrollo es una representacin abstracta de un proceso de software, cada modelo representa el proceso de desarrollo de software de una manera en particular.

A pesar de estar definidos claramente, no representan necesariamente la realidad de cmo se debe desarrollar el software, sino que establece un enfoque comn. Un modelo puede ser modificado y adaptado de acuerdo a las necesidades del software en desarrollo. 2Formalizacin del proceso de desarrolloLa ingeniera supone la existencia de procesos bien establecidos para la realizacin de actividades de desarrollo, construccin y fabricacin, entre otros.

El ciclo de vida es el proceso de desarrollo y mantenimiento del software. Segn el modelo elegido se describen un conjunto de actividades para llevar a cabo el ciclo de vida,

Los modelos clsicos:MODELO EN CASCADAMODELO EN VPrcticamente identifican actividades similares y slo se diferencian en la forma de presentacin.3CICLO DE VIDA CLASICO

Modelo que sirve para dos propsitos.

En primer lugar, permite representar los procesos de concepcin y produccin en una forma grfica y lgica, y segundo, proporciona un marco de trabajo alrededor del cual las actividades de aseguramiento de calidad pueden ser construidas en una manera decidida y disciplinada.

El desarrollo de software desde el concepto inicial a travs de la operacin es un proceso involuntario. Es decir, se produce mediante etapas sucesivas de especificacin, diseo y modificacin. 4CICLO DE VIDA CLASICO

Cada evaluacin de una parte del software da como resultado cambios. Idealmente, el proceso de desarrollo debe involucrar gradas sucesivas de especificacin y diseo donde cada paso es verificado contra los requerimientos de la etapa precedente. As un producto de software viable evoluciona con errores que se encuentran y corrigen conforme ocurren. El trmino ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propsito de este programa es para garantizar que el software cumpla los requisitos para la aplicacin y verificacin de los procedimientos de desarrollo: se asegura de que los mtodos utilizados son apropiados. 5CICLO DE VIDA CLASICO

El ciclo de vida bsico de un software consta de los siguientes procedimientos:

Definicin de objetivos: definir el resultado del proyecto y su papel en la estrategia global. Anlisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restriccin que se pueda aplicar. Diseo general: requisitos generales de la arquitectura de la aplicacin. Diseo en detalle: definicin precisa de cada subconjunto de la aplicacin.6CICLO DE VIDA CLASICO

Programacin (programacin e implementacin): es la implementacin de un lenguaje de programacin para crear las funciones definidas durante la etapa de diseo. Prueba de unidad: prueba individual de cada subconjunto de la aplicacin para garantizar que se implementaron de acuerdo con las especificaciones. Integracin: para garantizar que los diferentes mdulos se integren con la aplicacin. ste es el propsito de la prueba de integracin que est cuidadosamente documentada.7CICLO DE VIDA CLASICO

Prueba beta (o validacin), para garantizar que el software cumple con las especificaciones originales. Documentacin: sirve para documentar informacin necesaria para los usuarios del software y para desarrollos futuros. Implementacin Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo). 8MODELO EN CASCADA

9MODELO EN CASCADAANLISIS, determinar qu debe hacer el software -> especificacinDISEO, descomponer y organizar el sistema para que los mdulos puedan ser desarrollados por separadoCODIFICACIN, escribir el cdigo fuente de cada mdulo y realizar sobre ellos las pruebas necesariasINTEGRACIN, combinar todos los mdulos y probar el sistema completo antes de pasar a su explotacinMANTENIMIENTO, durante la explotacin es necesario realizar cambios ocasionales bien para corregir errores o para introducir mejoras,Se trata de aislar cada fase de las otras, lo que facilita la especializacin de los desarrolladores. Al final de cada fase se requiere un proceso de revisin para evitar que los errores se propaguen a fases posteriores provocando la vuelta atrs.INGENIERA DEL SOFTWARE Javier Martn10MODELO EN CASCADA AMPLIADO

11MODELO EN CASCADACada fase debe generar una informacin de salida precisa y suficiente:DOCUMENTOS DE REQUISITOS DEL SOFTWARE (SRD), es una especificacin precisa y completa a partir de los requisitos establecidos por el cliente.DOCUMENTO DE DISEO DEL SOFTWARE (SDD),descripcin de la estructura global del sistema, especificacin de qu debe hacer cada uno de los mdulos y de cmo se combinan.CDIGO FUENTE, el programa debidamente comentado (documentacin interna).SISTEMA SOFTWARE, el ejecutable producto dela fase de integracin y la documentacin de las pruebas realizadas.DOCUMENTOS DE CAMBIOS, despus de cada modificacin realizada en la fase de mantenimiento: problema detectado y solucin adoptada12MODELO EN V

13MODELO EN V AMPLIADO

14MODELO EN VIncluye fases similares a las del modelo en cascada pero de forma jerrquica. En horizontal se representa el avance en el desarrollo y en vertical el nivel de detalle.VERIFICACIN, comprobacin de que una parte del sistema cumple con sus especificaciones.VALIDACIN, comprobacin de que un elmento satisface las necesidades del usuario identificadas durante el anlisis.15PROTOTIPOSEn los modelos clsicos se insiste en las actividades de revisin de resultados al final de cada fase para evitar la vuelta atrs, que no se contempla de una forma organizada y resulta muy costosa. Estn orientados a una forma de desarrollo lineal.PROTOTIPO, es un sistema auxiliar que permite probar experimentalmente soluciones parciales a los requisitos del sistemaPara que el coste de desarrollo del prototipo sea bajo en relacin al del sistema final podemos:Limitar las funcionesLimitar su capacidadLimitar su eficienciaEvitar limitaciones de diseo, utilizando un hardware ms potente que el que ejecutar el sistema finalReducir la parte a desarrollar16PROTOTIPOS RPIDOSSu finalidad es solo adquirir experiencia, no se aprovechan como producto (usar y tirar). Se denominan maquetas cuando su funcionalidad o capacidad es muy limitada.El sistema final se codifica totalmente partiendo de cero, no se aprovecha el cdigo del prototipoLo importante de estos prototipos es que se desarrollen en poco tiempo.17PROTOTIPOS RPIDOS

18PROTOTIPOS EVOLUTIVOSEn este caso se intenta aprovechar al mximo el cdigo del prototipo, y para ello se emplea el mismo hardware/software del sistema final.Se realizan fases de anlisis y diseo parcial, que se van ampliando hasta construir el sistema final mediante adiciones sucesivas.Se puede considerar un modelo en cascada en bucle, de manera que en cada iteracin se va avanzando en el desarrollo.HERRAMIENTAS PARA EL DESARROLLO DE PROTOTIPOS, se emplean lenguajes de 4 generacin, que son de alto nivel y de tipo declarativo. Tambin se emplean lenguajes de especificacin, como VDM y Z. Si disponemos del compilador correspondiente podemos obtener automticamente el cdigo del prototipo.En el desarrollo de prototipos es clave la reutilizacin de software.19PROTOTIPOS EVOLUTIVOS

20MODELO EN ESPIRALPuede considerarse como un refinamiento del modelo evolutivo general que introduce el anlisis de riesgo como elemento fundamental para guiar la evolucin del proceso de desarrollo.En la dimensin radial se representa el esfuerzo realizado en el desarrollo (siempre creciente)En cada iteracin 4 fases:PLANIFICACIN, determina que parte del desarrollo se abordar en ese ciclo.ANALISIS DE RIESGO, evaluar diferentes alternativas para esa parte del desarrollo seleccionando la ms ventajosa y tomando precauciones para evitar los posibles inconvenientes.INGENIERA, las actividades de los modelos clsicosEVALUACIN, se analizan los resultados de la fase de ingeniera.21MODELO EN ESPIRAL

22MANTENIMIENTO DEL SOFTWAREEl mantenimiento no representa una actividad especfica, sino que consiste en rehacer parte de las actividades correspondientes a las otras fases del desarrollo para introducir cambios sobre una aplicacin ya en fase de explotacin.MANTENIMIENTO CORRECTIVO, su finalidad es corregir errores que no fueron detectados en el desarrollo del producto.MANTENIMIENTO ADAPTATIVO, modificar una aplicacin para adaptarla a las nuevas necesidades del entorno.MANTENIMIENTO PERFECTIVO, se trata de ir obteniendo versiones mejoradas del producto