You are on page 1of 27

Unidades temáticas de Ingeniería del Software

Ciclo de vida del software
3ª edición (1999)

Facultad de Informática

¿qué es el ciclo de vida del software?
La vida de un producto software comienza con su desarrollo y continúa con su posterior mantenimiento. El ciclo de vida del software comprende las diferentes fases y actividades que están implicadas en las tareas de desarrollo y mantenimiento. Constituye un buen medio para estructurar las diferentes actividades de desarrollo y mantenimiento del software. El ciclo de vida del software se ha centrado principalmente en las actividades asociadas al desarrollo.

Un buen desarrollo facilita el mantenimiento

Ciclo de vida del software

2

contenidos Modelo de código y adaptación Paradigmas de ingeniería del software Ciclo de vida clásico o en cascada Desarrollo rápido de aplicaciones (DRA) La técnica del prototipado Construcción de prototipos CASE Aproximación basada en transformaciones Aproximación incremental Aproximación evolutiva Ciclo de vida en espiral Variante del modelo en espiral Otros modelos de procesos de desarrollo Criterios para evaluar un paradigma Referencias bibliográficas Ciclo de vida del software 3 .

diseño. • A pesar de existir un buen diseño. • El código era difícil de adaptar debido a la pobre preparación para las pruebas y modificaciones.modelo de código y adaptación Es el modelo básico utilizado en los primeros tiempos del desarrollo de software. • Adaptar los problemas en el código. Existían dos fases: • Escribir algún código. Primero se codificaba y luego se pensaba en los requisitos. Ciclo de vida del software 4 . podía no corresponderse con los requisitos del usuario. el código estaba pobremente estructurado de manera que las sucesivas adaptaciones resultaban muy caras. Desventajas • Después de muchas adaptaciones. Era necesario un diseño previo a la codificación. Era necesario un análisis previo al diseño. pruebas y mantenimiento. Era necesario planificar estas tareas a priori.

paradigmas de ingeniería del software Constituyen los diferentes enfoques del ciclo de vida del software que han llegado a ser prototípicos por su gran aceptación y uso extendido. .todos están inspirados en el ciclo de vida convencional Ciclo de vida del software 5 .. • los métodos y las herramientas a utilizar.. La elección del paradigma a seguir estará en función de: • la naturaleza del proyecto y de la aplicación. y • los controles y entregas que se requieran.

ciclo de vida clásico o en cascada Es el paradigma más antiguo. Exige un enfoque sistemático y secuencial. RU RS DP DD TR Fases RU: Requerimiento del usuario RS: Requerimiento del software DP: Diseño preliminar DD: Diseño detallado y producción TR: Transferencia OM: Operación y mantenimiento OM Ciclo de vida del software 6 .

) Desventajas • Las frecuentes iteraciones crean problemas para su aplicación.) • Constituye la base de los demás paradigmas.ciclo de vida clásico (cont... • Es el más ampliamente utilizado. • Hay que esperar hasta el final para obtener la 1ª versión operativa. orientados a objetos. • No es apropiado si los requisitos no están claros al principio. Ciclo de vida del software 7 . Ventajas • Fácil adaptación de métodos (estructurados.

Ciclo de vida del software 8 . Posteriormente. generación de aplicaciones y. Logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes reutilizables. modelado de datos. modelado del proceso. prueba y entrega. Fases: modelado de gestión. por último. se integrará en un solo conjunto.desarrollo rápido de aplicaciones (DRA) Modelo del proceso de desarrollo del software lineal secuencial. La aplicación se modula de forma que pueda completarse cada función en menos de tres meses por un equipo DRA diferente.

) Inconvenientes • Se requiere recursos humanos suficiente para crear los equipos DRA necesarios.desarrollo rápido de aplicaciones (cont. Ciclo de vida del software 9 . • No es adecuado cuando los riesgos técnicos son muy alto. • Se requiere compromiso por parte de los desarrolladores y clientes.

la técnica del prototipado Es común a muchas disciplinas de ingeniería. Ciclo de vida del software 10 . Facilita la creación del modelo del software a construir. • Programa existente que ejecute parte o toda la función deseada pero que tenga otras características que deban ser mejoradas. El modelo puede adoptar tres formas posibles: • Prototipo que describa la interacción hombre-máquina (en papel o PC) • Prototipo que implemente un subconjunto de funciones requeridas.

construcción de prototipos comienzo parada RRR PI DR Fases RRR: Recolección y refinamiento de requisitos DR: Diseño rápido CP: Construcción del prototipo EPC: Evaluación del prototipo por el cliente RP: Refinamiento del prototipo PI: Producto de ingeniería RP CP EPC Ciclo de vida del software 11 .

construcción de prototipos (cont.) Ventajas • Identificar claramente los requisitos del usuario. • Sirve como mecanismo para identificar los requisitos del software. Justificación No se ha considerado aspectos de calidad y mantenimiento La tecnología seleccionada puede no ser la apropiada Ciclo de vida del software 12 . Desventajas • Usar el prototipo como 1ª versión del software (Brooks. 1975): por presión del cliente al ver el prototipo funcionando o por comodidad de los desarrolladores.

Ejemplos de CASE Ejemplos de CASE Herramientas de diagramación Herramientas de diagramación Diccionario de datos Diccionario de datos Herramientas de validación de especificaciones Herramientas de validación de especificaciones Generadores de código Generadores de código Generadores de documentación Generadores de documentación Ciclo de vida del software 13 . enlazando y automatizando todas las fases del ciclo de vida del software. Tecnología software que proporciona la automatización de las tareas de desarrollo.CASE Acrónimo de Computer Aided Software Engineering (Ingeniería del software asistida por ordenador). mantenimiento y dirección del software. El CASE proporciona un conjunto de herramientas bien integradas que ahorran trabajo.

Las especificaciones de requerimientos se transforman en especificaciones de diseño. E DL DF C Fases E: Especificación DL: Diseño lógico DF: Diseño físico C: Código Ciclo de vida del software 14 . Las especificaciones de diseño se transforman en código.aproximación basada en transformaciones Surge como consecuencia de la aparición del CASE y de los generadores de código. Este ciclo de vida puede considerarse como una serie de transformaciones: • • • El objetivo del sistema se transforma en especificaciones de requerimientos.

Ciclo de vida del software 15 . • Soporte de reusabilidad. evitando tener que modificar un código que esté pobremente estructurado después de repetidos procesos de optimización. • Posibilidad de realizar el mantenimiento a nivel de especificación. • Soporte para la validación de los requisitos. • Potencia la especificación orientada al problema. basada en transformaciones (cont. Desventajas • Requieren especificaciones iniciales muy detalladas.aprox. • Requieren una maduración previa del proceso de desarrollo. • Restringen el ámbito de la aplicación.) Ventajas • Posibilidad de comprobación de errores en etapas iniciales del desarrollo.

transferencia. Se desarrollan múltiples versiones. operación y mantenimiento se dividen en unidades más manejables.aproximación incremental Las fases de diseño detallado. con mayor funcionalidad y capacidad que las anteriores: versióni=versióni-1 + funcionalidad y capacidad RU RS DP DD1 TR1 OM1 Fases RU: Requerimiento del usuario RS: Requerimiento del software DP: Diseño preliminar DD: Diseño detallado y producción TR: Transferencia OM: Operación y mantenimiento DD2 TR2 OM2 Ciclo de vida del software 16 .

No se admiten nuevos requisitos de usuario una vez se han establecido éstos.aproximación incremental (cont. Mientras se termina de desarrollar la siguiente versión. la versión anterior puede ser no válida. la versión anterior se utiliza.) Un cambio en los requisitos afectará al diseño preliminar y. La funcionalidad y capacidad que aporta cada nueva versión ya tiene que estar comprendida en el diseño preliminar. incluso puede ser usada en paralelo con la siguiente versión durante un tiempo hasta que se desecha y la última sea finalmente aceptada. Ciclo de vida del software 17 . por lo tanto.

) Ventajas • • • • Posibilidad de implementar ciertas funciones antes que otras. Ciclo de vida del software 18 . Es apropiado para proyectos de larga duración. Permite disponer de un equipo de desarrollo más pequeño.aproximación incremental (cont. Favorece la posibilidad de financiar por partes el proyecto. • Aumento del coste del software debido a las pruebas. Desventajas • Se requieren pruebas de regresión.

Se deben reconocer las prioridades del usuario. DES 1 OM 1 DES 2 OM 2 Fases DES: RU+RS+DP+DD+TR RU: Requerimiento del usuario RS: Requerimiento del software DP: Diseño preliminar DD: Diseño detallado y producción TR: Transferencia OM: Operación y mantenimiento Ciclo de vida del software 19 . Todos los requerimientos no han de ser implementados en cada ciclo.aproximación evolutiva Desarrollo planificado de múltiples versiones. Cada versión incorpora la experiencia de las anteriores.

Se necesita experimentar con cada versión antes de comenzar con la siguiente para refinar los requerimientos. El desarrollo de la siguiente versión no comienza de inmediato. Ciclo de vida del software 20 . Una vez finalizada una versión se utiliza en paralelo con la anterior hasta que la última sea finalmente aceptada.) El diseño arquitectónico ha de considerar todos los requisitos especificados.aproximación evolutiva (cont.

Impaciencia de los usuarios.aproximación evolutiva (cont. Soluciones temporales empotradas en el sistema. • Nuevos requerimientos de usuario y requerimientos complejos. declaración de requisitos completa y diseño adaptable para evitar riesgos. En cada ciclo. • Dependencia de la tecnología no disponible. Desventajas • • • • • Si los requisitos están muy incompletos para empezar. Las nuevas versiones son más caras.) Ventajas • La experiencia del usuario puede ser necesaria. Ciclo de vida del software 21 .

ciclo de vida en espiral El modelo en espiral (Boehm. Desarrollo del producto del siguiente nivel Ciclo de vida del software 22 . Análisis de alternativas e identificación/resolución de riesgos Prototipos en cada ciclo Revisión IV. como de la construcción de prototipos. alternativas y restricciones II. I. Determinación de objetivos. 1988) cubre las mejores características tanto del ciclo de vida clásico. Planificación de la siguiente fase III. añadiendo un nuevo elemento: el análisis del riesgo. Se definen cuatro actividades principales representadas por los cuatro cuadrantes.

Ciclo de vida del software 23 .) Ventajas • Es uno de los enfoques más realistas para el desarrollo de software. • Utiliza un enfoque evolutivo permitiendo al desarrollador y al cliente reaccionar a los riesgos en cada nivel evolutivo. • Si se aplica correctamente debe reducir los riesgos antes de que se conviertan en problemáticos.ciclo de vida en espiral (cont. • Utiliza la creación de prototipos como mecanismo de reducción del riesgo. • Mantiene el enfoque sistemático del ciclo de vida clásico.

y evaluación del cliente. planificación. El primer circuito de la espiral produce el desarrollo de una especificación de productos. construcción y adaptación. El paso por la región de planificación produce ajustes en el software en función de la evaluación del cliente. ingeniería. Ciclo de vida del software 24 . Los pasos siguientes se podrían utilizar para desarrollar un prototipo y progresivamente versiones más sofisticadas del software. análisis de riesgos.variante del modelo en espiral La variante del modelo en espiral contiene seis regiones de tareas: comunicación con el cliente.

otros modelos de procesos de desarrollo El modelo de ensamblaje de componentes Las aplicaciones se construyen desde componentes de software. El modelo de desarrollo concurrente Muestra la concurrencia que existe para actividades que ocurren durante cualquier fase. Ciclo de vida del software 25 .

Ser la base de una comunicación efectiva. Poder emplearse en un entorno amplio de proyectos software. Funcionar en un entorno dinámico orientado al usuario. Estar soportada por herramientas Case. Integrar las distintas fases del ciclo de desarrollo. Cubrir el ciclo entero de desarrollo de software. Poder enseñarse. Soportar la determinación de la exactitud del sistema a través del ciclo de desarrollo. Especificar claramente los responsables de los resultados. Contener actividades conducentes a mejorar el proceso de desarrollo Ciclo de vida del software 26 .criterios para evaluar un paradigma • • • • • • • • • • • • • Ajustarse a los objetivos. Soportar la evolución eventual del sistema. Incluir la realización de validaciones.

R. Mazza. McGraw-Hill. C. CASE. Software engineering standars. Ingeniería del software de gestión. Prentice Hall. McClure. 1992.referencias bibliográficas Amescua. La automatización del software. Pressman. Ingeniería del software: un enfoque práctico. A. McGrawHill. R. C. Ciclo de vida del software 27 . 1993. Ra-Ma. Fairley. Ingeniería del software. 1987. 1994. 1995. Paraninfo.