Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ciclo de vida
del software
Comprender el concepto
de Ciclo de Vida y su
importancia para el
Software.
Conocer el Modelo en
Cascada.
Conocer el Modelo
Incremental.
Conocer el Modelo en
Espiral.
RA-MA
2.1 INTRODUCCIN
46
Sean incompletas o no reflejen bien las necesidades del cliente, es decir, que
no realicen todas las funciones requeridas y, adems, lo hagan con una escasa fiabilidad.
Provoquen el descontento de los clientes, pues se producen retrasos en la entrega (no se conoce el momento exacto en el que se entregarn), aparecen errores
RA-MA
una vez que la aplicacin ha sido entregada (lgico al no haberse realizado de forma
sistemtica actividades de verificacin y validacin en el proyecto).
Por tanto, es necesario que todo esfuerzo en el desarrollo del software conlleve
un enfoque lgico para su realizacin. Dicho enfoque debe abarcar toda la vida del
sistema, comenzando con su concepcin y finalizando cuando ya no se utiliza o se
retira [SIGWART, 1990].
El ciclo de vida software es la descripcin de las distintas formas de desarrollo
de un proyecto o aplicacin informtica, es decir, la orientacin que debe seguirse
para obtener, a partir de los requerimientos del cliente, sistemas que puedan ser utilizados por dicho cliente. Tambin puede definirse como el conjunto de fases o etapas, procesos y actividades requeridas para ofertar, desarrollar, probar, integrar,
explotar y mantener un producto software.
Las funciones principales de un ciclo de vida software son:
Establecer los criterios de transicin para pasar de una fase a la siguiente (productos intermedios). Todo ello, incluye los criterios para la terminacin de la
fase actual y los criterios para seleccionar e iniciar la fase siguiente.
Qu har a continuacin?
47
RA-MA
La documentacin se realiza de manera formal y estandarizada simultneamente al desarrollo, lo que facilita la comunicacin interna entre el equipo
de desarrollo y la de ste con los usuarios. Tambin aumenta la visibilidad y
la posibilidad de control para la gestin del proyecto.
Supone una gua para el personal de desarrollo, marcando las tareas a realizar en cada momento.
La versin original del modelo de ciclo de vida en cascada fue propuesta por
Royce [ROYCE, 1970] y, desde entonces, han aparecido numerosos refinamientos
y variaciones de dicho modelo: por ejemplo, [BOEHM, 1981], [SOMMERVILLE,
1985], [SIGWART, 1990]. El nmero de fases o etapas que se proponen en este
ciclo suele variar, aunque suelen ser: anlisis de requisitos del sistema, anlisis de
requisitos del software, diseo preliminar, diseo detallado, codificacin, pruebas,
explotacin y mantenimiento (vase la figura 2.1).
Algunas caractersticas de este ciclo son:
Para pasar de una fase a otra es necesario conseguir todos los objetivos de la
etapa previa [BOEHM, 1981]. Para ello, se realiza una revisin al final de la fase.
Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados.
48
RA-MA
Se tarda mucho tiempo en pasar por todo el ciclo, dado que hasta que no se
finalice una fase no se pasa a la siguiente. As, se podra dar el caso de no salir
nunca de la fase de anlisis de requisitos software.
El modelo incremental [LEHMAN, 1984] corrige la necesidad de una secuencia no lineal de pasos de desarrollo. En el modelo incremental (vase la figura 2.2)
se va creando el sistema software aadiendo componentes funcionales al sistema
(llamados incrementos). En cada paso sucesivo, se actualiza el sistema con nuevas
funcionalidades o requisitos, es decir, cada versin o refinamiento parte de una
versin previa y le aade nuevas funciones [AMESCUA et al, 1995]. El sistema
software ya no se ve como una nica entidad monoltica con una fecha fija de
entrega, sino como una integracin de resultados sucesivos obtenidos despus de
cada iteracin.
El modelo incremental se ajusta a entornos de alta incertidumbre, por no tener
la necesidad de poseer un conjunto exhaustivo de requisitos, especificaciones,
diseos, etc., al comenzar el sistema, ya que cada refinamiento ampla los requisitos y las especificaciones derivadas de la fase anterior.
El modelo incremental constituy un avance sobre el modelo en cascada, pero
tambin presenta problemas. Aunque permite el cambio continuo de requisitos,
49
RA-MA
Con el fin de paliar los inconvenientes del modelo en cascada, [BOEHM, 1988]
propuso el modelo en espiral (vase la figura 2.3), que consta de una serie de ciclos.
Cada uno empieza identificando los objetivos, las alternativas y las restricciones del
ciclo. Una vez evaluadas las alternativas respecto a los objetivos y teniendo en
cuenta las restricciones, se lleva a cabo el ciclo correspondiente para, una vez finalizado, empezar a plantear el prximo.
Para ver de forma ms clara el modelo en espiral, lo explicaremos con un ejemplo. Cada ciclo de la espiral comienza con la identificacin de:
50
Los objetivos de la parte del producto que est siendo elaborada (rendimientos, funcionalidad, adaptacin al cambio, etc.). Por ejemplo, una empresa
que desea aumentar su productividad de software.
Las alternativas principales de la implementacin de esta porcin del producto (usar el diseo A, usar el diseo B, reutilizar el mdulo X de la aplicacin Z, comprar a un proveedor externo, etc.). Para el ejemplo anterior, existen diferentes alternativas: en el rea de tecnologa se podra reutilizar software o utilizar ciertas herramientas, determinados mtodos que condujeran
al desarrollo de mejores productos. Pero tambin existen alternativas no
software que marcan la posibilidad de realizar actividades no software, por
ejemplo en las reas de gestin (la organizacin de los proyectos, la poltica
de la empresa, la planificacin y el control de los proyectos, etc.), de perso-
RA-MA
51
RA-MA
Trabajo con software contratado. El modelo en espiral trabaja bien en los desarrollos internos, pero necesita un ajuste posterior para adaptarlo a la subcontratacin de software. En el desarrollo interno existe una gran flexibilidad
y libertad para ajustarse a los acuerdos etapa por etapa, para aplazar acuerdos
de opciones especficas, para establecer miniespirales con objeto de resolver
caminos crticos, para ajustar niveles de esfuerzo, o para acomodar prcticas
como prototipado, desarrollo evolutivo, o uso de mtodos de diseo ajustado
al coste. En el desarrollo de software bajo contrato no existe esta flexibilidad y
libertad, por lo que es necesario mucho tiempo para definir los contratos, ya
que los entregables no estarn previamente definidos de forma clara.
Sin entrar en detalles, podemos decir, [PARETS et al., 1991], que los modelos
orientados a objetos caracterizan el desarrollo orientado al objeto por:
52
La eliminacin de fronteras entre fases, ya que debido a la naturaleza iterativa del desarrollo orientado al objeto, estas fronteras se difuminan cada vez
ms.
RA-MA
Un alto grado de iteracin y solapamiento, lo que lleva a una forma de trabajo muy dinmica.
El ciclo de vida software describe las diferentes fases o etapas, procesos y actividades requeridas para ofertar, desarrollar, probar, integrar, explotar y mantener una aplicacin informtica.
Existen diferentes modelos de ciclo de vida como son: el modelo en
cascada (el ms antiguo, y en el que cada fase empieza cuando se ha
terminado la fase anterior), el modelo incremental (en el que se va
creando el sistema software aadiendo componentes funcionales al
sistema), el modelo en espiral (que consta de una serie de ciclos) y
modelos especficos para sistemas orientados a objetos en los que se
difuminan las fronteras entre fases y se utiliza un enfoque iterativo e
incremental, y se diferencia el macroproceso del microproceso.
53
EJERCICIOS PROPUESTOS
54
RA-MA
TEST DE CONOCIMIENTOS
RA-MA
55
RA-MA
BIBLIOGRAFA
a) Cascada.
b) Codificar y probar.
c) Incremental.
d) Espiral.
10
BIBLIOGRAFA
Amescua Seco, A., Garca Snchez, L., Martnez Fernndez, P. y Daz Prez, P.,
Ingeniera del Software de Gestin: anlisis y diseo de aplicaciones, Paraninfo,
Madrid, 1995.
Boehm, B. W., A Spiral Model of Software Development and Enhancement,
Computer, pp. 61-72, mayo 1988.
Davis, A., Bersoff, E. y Comer, E., A Strategy for Comparing Alternative software development Life Cycle Models, IEEE Transactions on Software Engineering, vol. 14,
n 10, pp. 1453-1461, octubre 1988.
International Standards Organization / Internacional Electrotechnical Commission,
ISO/IEC 12207-1 - Information Technology Software Parte 1: Software life-cycle
process (ISO/IEC 12207-1 - Tecnologa de la Informacin Software Parte 1:
Proceso del ciclo de vida software), 1994.
56
RA-MA
TEST DE CONOCIMIENTOS
57