Вы находитесь на странице: 1из 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


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

Ciclo de vida del software 4


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.
La elección del paradigma a seguir estará en función de:
• la naturaleza del proyecto y de la aplicación,
• los métodos y las herramientas a utilizar, y
• los controles y entregas que se requieran.

...todos están inspirados en el ciclo de vida convencional

Ciclo de vida del software 5


ciclo de vida clásico o en cascada
Es el paradigma más antiguo.
Exige un enfoque sistemático y secuencial.

Fases
RU: Requerimiento del usuario
RS: Requerimiento del software
RU
DP: Diseño preliminar
DD: Diseño detallado y producción
RS TR: Transferencia
OM: Operación y mantenimiento
DP

DD

TR

OM

Ciclo de vida del software 6


ciclo de vida clásico (cont.)
Desventajas
• Las frecuentes iteraciones crean problemas para su aplicación.
• No es apropiado si los requisitos no están claros al principio.
• Hay que esperar hasta el final para obtener la 1ª versión operativa.

Ventajas
• Fácil adaptación de métodos (estructurados, orientados a objetos...)
• Constituye la base de los demás paradigmas.
• Es el más ampliamente utilizado.

Ciclo de vida del software 7


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

Ciclo de vida del software 8


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

Ciclo de vida del software 9


la técnica del prototipado
Es común a muchas disciplinas de ingeniería.
Facilita la creación del modelo del software a construir.

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.
• Programa existente que ejecute parte o toda la función deseada pero
que tenga otras características que deban ser mejoradas.

Ciclo de vida del software 10


construcción de prototipos
comienzo

parada
RRR

PI DR

Fases
RRR: Recolección y refinamiento de
RP CP requisitos
DR: Diseño rápido
CP: Construcción del prototipo
EPC: Evaluación del prototipo por el
cliente
RP: Refinamiento del prototipo
EPC PI: Producto de ingeniería

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.

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.

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


CASE
Acrónimo de Computer Aided Software Engineering (Ingeniería del
software asistida por ordenador).
Tecnología software que proporciona la automatización de las tareas
de desarrollo, mantenimiento y dirección del software.
El CASE proporciona un conjunto de herramientas bien integradas
que ahorran trabajo, enlazando y automatizando todas las fases del
ciclo de vida del software.

Ejemplos
Ejemplosde
deCASE
CASE
Herramientas
Herramientasdedediagramación
diagramación
Diccionario de datos
Diccionario de datos
Herramientas
Herramientasdedevalidación
validaciónde
deespecificaciones
especificaciones
Generadores
Generadoresde decódigo
código
Generadores de documentación
Generadores de documentación

Ciclo de vida del software 13


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.
• Las especificaciones de requerimientos se transforman en especificaciones
de diseño.
• Las especificaciones de diseño se transforman en código.

E Fases
E: Especificación
DL: Diseño lógico
DL DF: Diseño físico
C: Código
DF

Ciclo de vida del software 14


aprox. basada en transformaciones (cont.)
Ventajas
• Posibilidad de comprobación de errores en etapas iniciales del
desarrollo.
• Posibilidad de realizar el mantenimiento a nivel de especificación,
evitando tener que modificar un código que esté pobremente
estructurado después de repetidos procesos de optimización.
• Soporte para la validación de los requisitos.
• Soporte de reusabilidad.
• Potencia la especificación orientada al problema.

Desventajas
• Requieren especificaciones iniciales muy detalladas.
• Restringen el ámbito de la aplicación.
• Requieren una maduración previa del proceso de desarrollo.

Ciclo de vida del software 15


aproximación incremental
Las fases de diseño detallado, transferencia, operación y mantenimiento se
dividen en unidades más manejables.
Se desarrollan múltiples versiones, con mayor funcionalidad y capacidad
que las anteriores: versióni=versióni-1 + funcionalidad y capacidad

RU

RS
Fases
DP RU: Requerimiento del usuario
RS: Requerimiento del software
DD1 DP: Diseño preliminar
TR1 DD: Diseño detallado y producción
TR: Transferencia
OM1 OM: Operación y mantenimiento

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

Ciclo de vida del software 17


aproximación incremental (cont.)
Ventajas
• Posibilidad de implementar ciertas funciones antes que otras.
• Permite disponer de un equipo de desarrollo más pequeño.
• Favorece la posibilidad de financiar por partes el proyecto.
• Es apropiado para proyectos de larga duración.

Desventajas
• Se requieren pruebas de regresión.
• Aumento del coste del software debido a las pruebas.

Ciclo de vida del software 18


aproximación evolutiva
Desarrollo planificado de múltiples versiones. Cada versión incorpora la
experiencia de las anteriores.
Se deben reconocer las prioridades del usuario.
Todos los requerimientos no han de ser implementados en cada ciclo.

Fases
DES 1 DES: RU+RS+DP+DD+TR
RU: Requerimiento del usuario
OM 1 RS: Requerimiento del software
DP: Diseño preliminar
DD: Diseño detallado y producción
TR: Transferencia
DES 2 OM: Operación y mantenimiento

OM 2

Ciclo de vida del software 19


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

Ciclo de vida del software 20


aproximación evolutiva (cont.)
Ventajas
• La experiencia del usuario puede ser necesaria.
• Dependencia de la tecnología no disponible.
• Nuevos requerimientos de usuario y requerimientos complejos.

Desventajas
• Si los requisitos están muy incompletos para empezar.
• Las nuevas versiones son más caras.
• Soluciones temporales empotradas en el sistema.
• Impaciencia de los usuarios.
• En cada ciclo, declaración de requisitos completa y diseño adaptable
para evitar riesgos.

Ciclo de vida del software 21


ciclo de vida en espiral
El modelo en espiral (Boehm, 1988) cubre las mejores características
tanto del ciclo de vida clásico, como de la construcción de prototipos,
añadiendo un nuevo elemento: el análisis del riesgo.
Se definen cuatro actividades principales representadas por los cuatro
cuadrantes.

I. Determinación de II. Análisis de alternativas


objetivos, alternativas y e identificación/resolución
restricciones de riesgos

Prototipos en cada ciclo

Revisión

IV. Planificación de la III. Desarrollo del producto


siguiente fase del siguiente nivel

Ciclo de vida del software 22


ciclo de vida en espiral (cont.)
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.
• Utiliza la creación de prototipos como mecanismo de reducción del
riesgo.
• Mantiene el enfoque sistemático del ciclo de vida clásico.
• Si se aplica correctamente debe reducir los riesgos antes de que se
conviertan en problemáticos.

Ciclo de vida del software 23


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

Ciclo de vida del software 24


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


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

Ciclo de vida del software 26


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

Ciclo de vida del software 27

Вам также может понравиться