Está en la página 1de 27

Unidades temticas de Ingeniera del Software

Ciclo de vida del software


3 edicin (1999)

Facultad de Informtica

qu es el ciclo de vida del software?


La vida de un producto software comienza con su desarrollo y contina con su posterior mantenimiento. El ciclo de vida del software comprende las diferentes fases y actividades que estn 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

contenidos
Modelo de cdigo y adaptacin Paradigmas de ingeniera del software Ciclo de vida clsico o en cascada Desarrollo rpido de aplicaciones (DRA) La tcnica del prototipado Construccin de prototipos CASE Aproximacin basada en transformaciones Aproximacin incremental Aproximacin evolutiva Ciclo de vida en espiral Variante del modelo en espiral Otros modelos de procesos de desarrollo Criterios para evaluar un paradigma Referencias bibliogrficas
Ciclo de vida del software 3

modelo de cdigo y adaptacin


Es el modelo bsico utilizado en los primeros tiempos del desarrollo de software. Existan dos fases:
Escribir algn cdigo. Adaptar los problemas en el cdigo.

Primero se codificaba y luego se pensaba en los requisitos, diseo, pruebas y mantenimiento. Desventajas
Despus de muchas adaptaciones, el cdigo estaba pobremente estructurado de manera que las sucesivas adaptaciones resultaban muy caras. Era necesario un diseo previo a la codificacin. A pesar de existir un buen diseo, poda no corresponderse con los requisitos del usuario. Era necesario un anlisis previo al diseo. El cdigo era difcil de adaptar debido a la pobre preparacin para las pruebas y modificaciones. Era necesario planificar estas tareas a priori.

Ciclo de vida del software

paradigmas de ingeniera del software


Constituyen los diferentes enfoques del ciclo de vida del software que han llegado a ser prototpicos por su gran aceptacin y uso extendido. La eleccin del paradigma a seguir estar en funcin de:
la naturaleza del proyecto y de la aplicacin, los mtodos y las herramientas a utilizar, y los controles y entregas que se requieran.

...todos estn inspirados en el ciclo de vida convencional

Ciclo de vida del software

ciclo de vida clsico o en cascada


Es el paradigma ms antiguo. Exige un enfoque sistemtico y secuencial.

RU RS DP DD TR

Fases RU: Requerimiento del usuario RS: Requerimiento del software DP: Diseo preliminar DD: Diseo detallado y produccin TR: Transferencia OM: Operacin y mantenimiento

OM

Ciclo de vida del software

ciclo de vida clsico (cont.)


Desventajas
Las frecuentes iteraciones crean problemas para su aplicacin. No es apropiado si los requisitos no estn claros al principio. Hay que esperar hasta el final para obtener la 1 versin operativa.

Ventajas
Fcil adaptacin de mtodos (estructurados, orientados a objetos...) Constituye la base de los dems paradigmas. Es el ms ampliamente utilizado.

Ciclo de vida del software

desarrollo rpido de aplicaciones (DRA)


Modelo del proceso de desarrollo del software lineal secuencial. Logra el desarrollo rpido utilizando un enfoque de construccin basado en componentes reutilizables. Fases: modelado de gestin, modelado de datos, modelado del proceso, generacin de aplicaciones y, por ltimo, prueba y entrega. La aplicacin se modula de forma que pueda completarse cada funcin en menos de tres meses por un equipo DRA diferente. Posteriormente, se integrar en un solo conjunto.

Ciclo de vida del software

desarrollo rpido 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 tcnicos son muy alto.

Ciclo de vida del software

la tcnica del prototipado


Es comn a muchas disciplinas de ingeniera. Facilita la creacin del modelo del software a construir. El modelo puede adoptar tres formas posibles:
Prototipo que describa la interaccin hombre-mquina (en papel o PC) Prototipo que implemente un subconjunto de funciones requeridas. Programa existente que ejecute parte o toda la funcin deseada pero que tenga otras caractersticas que deban ser mejoradas.

Ciclo de vida del software

10

construccin de prototipos
comienzo parada

RRR

PI

DR
Fases RRR: Recoleccin y refinamiento de requisitos DR: Diseo rpido CP: Construccin del prototipo EPC: Evaluacin del prototipo por el cliente RP: Refinamiento del prototipo PI: Producto de ingeniera

RP

CP

EPC

Ciclo de vida del software

11

construccin 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 versin del software (Brooks, 1975): por presin del cliente al ver el prototipo funcionando o por comodidad de los desarrolladores.

Justificacin
No se ha considerado aspectos de calidad y mantenimiento La tecnologa seleccionada puede no ser la apropiada

Ciclo de vida del software

12

CASE
Acrnimo de Computer Aided Software Engineering (Ingeniera del software asistida por ordenador). Tecnologa software que proporciona la automatizacin de las tareas de desarrollo, mantenimiento y direccin 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 de CASE Ejemplos de CASE

Herramientas de diagramacin Herramientas de diagramacin Diccionario de datos Diccionario de datos Herramientas de validacin de especificaciones Herramientas de validacin de especificaciones Generadores de cdigo Generadores de cdigo Generadores de documentacin Generadores de documentacin
Ciclo de vida del software 13

aproximacin basada en transformaciones


Surge como consecuencia de la aparicin del CASE y de los generadores de cdigo. 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 diseo. Las especificaciones de diseo se transforman en cdigo.

E DL DF C

Fases E: Especificacin DL: Diseo lgico DF: Diseo fsico C: Cdigo

Ciclo de vida del software

14

aprox. basada en transformaciones (cont.)


Ventajas
Posibilidad de comprobacin de errores en etapas iniciales del desarrollo. Posibilidad de realizar el mantenimiento a nivel de especificacin, evitando tener que modificar un cdigo que est pobremente estructurado despus de repetidos procesos de optimizacin. Soporte para la validacin de los requisitos. Soporte de reusabilidad. Potencia la especificacin orientada al problema.

Desventajas
Requieren especificaciones iniciales muy detalladas. Restringen el mbito de la aplicacin. Requieren una maduracin previa del proceso de desarrollo.

Ciclo de vida del software

15

aproximacin incremental
Las fases de diseo detallado, transferencia, operacin y mantenimiento se dividen en unidades ms manejables. Se desarrollan mltiples versiones, con mayor funcionalidad y capacidad que las anteriores: versini=versini-1 + funcionalidad y capacidad
RU RS DP DD1 TR1 OM1 Fases RU: Requerimiento del usuario RS: Requerimiento del software DP: Diseo preliminar DD: Diseo detallado y produccin TR: Transferencia OM: Operacin y mantenimiento

DD2 TR2 OM2 Ciclo de vida del software 16

aproximacin incremental (cont.)


Un cambio en los requisitos afectar al diseo preliminar y, por lo tanto, la versin anterior puede ser no vlida. No se admiten nuevos requisitos de usuario una vez se han establecido stos. Mientras se termina de desarrollar la siguiente versin, la versin anterior se utiliza; incluso puede ser usada en paralelo con la siguiente versin durante un tiempo hasta que se desecha y la ltima sea finalmente aceptada. La funcionalidad y capacidad que aporta cada nueva versin ya tiene que estar comprendida en el diseo preliminar.

Ciclo de vida del software

17

aproximacin incremental (cont.)


Ventajas
Posibilidad de implementar ciertas funciones antes que otras. Permite disponer de un equipo de desarrollo ms pequeo. Favorece la posibilidad de financiar por partes el proyecto. Es apropiado para proyectos de larga duracin.

Desventajas
Se requieren pruebas de regresin. Aumento del coste del software debido a las pruebas.

Ciclo de vida del software

18

aproximacin evolutiva
Desarrollo planificado de mltiples versiones. Cada versin incorpora la experiencia de las anteriores. Se deben reconocer las prioridades del usuario. Todos los requerimientos no han de ser implementados en cada ciclo.

DES 1 OM 1

DES 2 OM 2

Fases DES: RU+RS+DP+DD+TR RU: Requerimiento del usuario RS: Requerimiento del software DP: Diseo preliminar DD: Diseo detallado y produccin TR: Transferencia OM: Operacin y mantenimiento

Ciclo de vida del software

19

aproximacin evolutiva (cont.)


El diseo arquitectnico ha de considerar todos los requisitos especificados. El desarrollo de la siguiente versin no comienza de inmediato. Se necesita experimentar con cada versin antes de comenzar con la siguiente para refinar los requerimientos. Una vez finalizada una versin se utiliza en paralelo con la anterior hasta que la ltima sea finalmente aceptada.

Ciclo de vida del software

20

aproximacin evolutiva (cont.)


Ventajas
La experiencia del usuario puede ser necesaria. Dependencia de la tecnologa no disponible. Nuevos requerimientos de usuario y requerimientos complejos.

Desventajas
Si los requisitos estn muy incompletos para empezar. Las nuevas versiones son ms caras. Soluciones temporales empotradas en el sistema. Impaciencia de los usuarios. En cada ciclo, declaracin de requisitos completa y diseo adaptable para evitar riesgos.

Ciclo de vida del software

21

ciclo de vida en espiral


El modelo en espiral (Boehm, 1988) cubre las mejores caractersticas tanto del ciclo de vida clsico, como de la construccin de prototipos, aadiendo un nuevo elemento: el anlisis del riesgo. Se definen cuatro actividades principales representadas por los cuatro cuadrantes.
I. Determinacin de objetivos, alternativas y restricciones II. Anlisis de alternativas e identificacin/resolucin de riesgos
Prototipos en cada ciclo Revisin

IV. Planificacin de la siguiente fase

III. Desarrollo del producto del siguiente nivel

Ciclo de vida del software

22

ciclo de vida en espiral (cont.)


Ventajas
Es uno de los enfoques ms 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 creacin de prototipos como mecanismo de reduccin del riesgo. Mantiene el enfoque sistemtico del ciclo de vida clsico. Si se aplica correctamente debe reducir los riesgos antes de que se conviertan en problemticos.

Ciclo de vida del software

23

variante del modelo en espiral


La variante del modelo en espiral contiene seis regiones de tareas: comunicacin con el cliente, planificacin, anlisis de riesgos, ingeniera, construccin y adaptacin, y evaluacin del cliente. El primer circuito de la espiral produce el desarrollo de una especificacin de productos. Los pasos siguientes se podran utilizar para desarrollar un prototipo y progresivamente versiones ms sofisticadas del software. El paso por la regin de planificacin produce ajustes en el software en funcin de la evaluacin 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 realizacin de validaciones. Soportar la determinacin de la exactitud del sistema a travs del ciclo de desarrollo. Ser la base de una comunicacin efectiva. Funcionar en un entorno dinmico orientado al usuario. Especificar claramente los responsables de los resultados. Poder emplearse en un entorno amplio de proyectos software. Poder ensearse. Estar soportada por herramientas Case. Soportar la evolucin eventual del sistema. Contener actividades conducentes a mejorar el proceso de desarrollo
Ciclo de vida del software 26

referencias bibliogrficas
Amescua, A. Ingeniera del software de gestin. Paraninfo, 1995. Fairley, R. Ingeniera del software. McGraw-Hill, 1987. Mazza, C. Software engineering standars. Prentice Hall, 1994. McClure, C. CASE. La automatizacin del software. Ra-Ma, 1992. Pressman, R. Ingeniera del software: un enfoque prctico. McGrawHill, 1993.

Ciclo de vida del software

27

También podría gustarte