Taller de Mantención de Software Parte 2
date post
12-Jan-2016Category
Documents
view
16download
0
Embed Size (px)
description
Transcript of Taller de Mantención de Software Parte 2
El Ciclo de Vida del Software
Unidad I: Fundamentos de Mantenimiento de
software
Conceptos
El software nace, crece y muere
Es su ciclo de vida
Nace con sus requerimientos y diseo
Crece con su desarrollo y mantenimiento
Muere cuando se reemplaza por otro.
Software obsoleto
Razones:
Crecimiento de la empresa
Cambio de los requerimientos originales
Cambio de operaciones
Ampliacin
Integracin con otros sistemas
Ciclo de Vida de Desarrollo del Software
El ciclo de vida es el conjunto de fases por las que pasa el sistema que se est desarrollando desde que nace la idea inicial hasta que el software es retirado o remplazado (muere). Tambin se denomina a veces paradigma.
Entre las funciones que debe tener un ciclo de vida se pueden destacar: Determinar el orden de las fases del proceso de software.
Establecer los criterios de transicin para pasar de una fase a la siguiente.
Definir las entradas y salidas de cada fase.
Describir los estados por los que pasa el producto.
Describir las actividades a realizar para transformar el producto.
Definir un esquema que sirve como base para planificar, organizar, coordinar, desarrollar
Ciclo de Vida de Desarrollo del Software (2)
Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareas que se pueden planificar. Segn el modelo de ciclo de vida, la sucesin de fases puede ampliarse con bucles de realimentacin, de manera que lo que conceptualmente se considera una misma fase se pueda ejecutar ms de una vez a lo largo de un proyecto, recibiendo en cada pasada de ejecucin aportaciones a los resultados intermedios que se van produciendo (realimentacin).
Fases: una fase es un conjunto de actividades relacionadas con un objetivo en el desarrollo del proyecto. Se construye agrupando tareas (actividades elementales) que pueden compartir un tramo determinado del tiempo de vida de un proyecto. La agrupacin temporal de tareas impone requisitos temporales correspondientes a la asignacin de recursos (humanos, financieros o materiales).
Entregables: son los productos intermedios que generan las fases. Pueden ser materiales o inmateriales (documentos, software). Los entregables permiten evaluar la marcha del proyecto mediante comprobaciones de su adecuacin o no a los requisitos funcionales y de condiciones de realizacin previamente establecidos.
Tipos de Modelo de Ciclo de Vida
Las principales diferencias entre los distintos modelos de ciclo de vida estn en:
El alcance del ciclo dependiendo de hasta dnde llegue el proyecto correspondiente. Un proyecto puede comprender un simple estudio de viabilidad del desarrollo de un producto, o su desarrollo completo o en el extremo, toda la historia del producto con su desarrollo, fabricacin y modificaciones posteriores hasta su retirada del mercado.
Las caractersticas (contenidos) de las fases en que dividen el ciclo. Esto puede depender del propio tema al que se refiere el proyecto, o de la organizacin.
La estructura y la sucesin de las etapas, si hay realimentacin entre ellas, y si tenemos libertad de repetirlas (iterar).
Modelos de Ciclo de Vida
La ingeniera del software establece y se vale de una serie de modelos que establecen y muestran las distintas etapas y estados por los que pasa un producto software, desde su concepcin inicial, pasando por su desarrollo, puesta en marcha y posterior mantenimiento, hasta la retirada del producto. A estos modelos se les denomina Modelos de ciclo de vida del software.
Los modelos de ciclo de vida del software describen las fases del ciclo de software y el orden en que se ejecutan las fases.
Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transicin asociados entre estas etapas.
Modelos de Ciclo de Vida (2)
Un modelo de ciclo de vida del software: Describe las fases principales de desarrollo de software
Define las fases primarias esperadas de ser ejecutadas durante esas fases
Ayuda a administrar el progreso del desarrollo
Provee un espacio de trabajo para la definicin de un proceso detallado de desarrollo de software
En cada una de las etapas de un modelo de ciclo de vida, se pueden establecer una serie de objetivos, tareas y actividades que lo caracterizan. Existen distintos modelos de ciclo de vida, y la eleccin de un modelo para un determinado tipo de proyecto es realmente importante; el orden es uno de estos puntos importantes.
A continuacin veremos algunos de los modelos tradicionales ms utilizados.
Modelo en Cascada
Es el enfoque metodolgico que ordena rigurosamente las etapas del ciclo de vida del software, de forma que el inicio de cada etapa debe esperar a la finalizacin de la inmediatamente anterior.
El modelo en cascada es un proceso de desarrollo secuencial, en el que el desarrollo se ve fluyendo hacia abajo (como una cascada) sobre las fases que componen el ciclo de vida.
Se cree que el modelo en cascada fue el primer modelo de proceso introducido y seguido ampliamente en la ingeniera el software. La innovacin estuvo en la primera vez que la ingeniera del software fue dividida en fases separadas.
Modelo en Cascada
En el modelo original existan las siguientes fases:
Especificacin de requisitos
Diseo
Construccin (Implementacin o codificacin)
Integracin
Pruebas
Instalacin
Mantenimiento
Modelo en Cascada
Ventajas
Excelente cuando se tiene un producto estable y se
conoce la tecnologa.
Es un mtodo muy estructurado que funciona bien con
gente de poca experiencia.
Provee estabilidad en los requerimientos.
La planeacin se puede hacer anticipadamente.
Desventajas
Tiene poca flexibilidad.
Los proyectos en la prctica raramente siguen un flujo
secuencial.
Siempre es difcil para el cliente mostrar todos los
requerimientos explcitamente y con mucha anticipacin.
El cliente debe tener paciencia.
Es inflexible y no motiva al cambio.
Poco apropiado para aplicaciones para la toma de
decisiones.
Los usuarios tienen una participacin limitada.
Modelo en V
El modelo en V se desarroll para terminar con algunos de los problemas que se vieron utilizando el enfoque de cascada tradicional.
Los defectos estaban siendo encontrados demasiado tarde en el ciclo de vida, ya que las pruebas no se introducan hasta el final del proyecto.
El modelo en V dice que las pruebas necesitan empezarse lo ms pronto posible en el ciclo de vida.
Tambin muestra que las pruebas no son slo una actividad basada en la ejecucin. Hay una variedad de actividades que se han de realizar antes del fin de la fase de codificacin. Estas actividades deberan ser llevadas a cabo en paralelo con las actividades de desarrollo.
Modelo en V
El modelo en v es un proceso que representa la
secuencia de pasos en el desarrollo del ciclo de vida de
un proyecto.
Describe las actividades y resultados que han de ser
producidos durante el desarrollo del producto.
La parte izquierda de la v representa la descomposicin
de los requisitos y la creacin de las especificaciones del
sistema. El lado derecho de la v representa la
integracin de partes y su verificacin. V significa
Validacin y Verificacin.
Modelo en V
Ventajas
Es un modelo simple y fcil de utilizar.
En cada una de las fases hay entregables especficos.
Tiene una alta oportunidad de xito sobre el modelo en
cascada debido al desarrollo de planes de prueba en
etapas tempranas del ciclo de vida.
Es un modelo que suele funcionar bien para proyectos
pequeos donde los requisitos son entendidos
fcilmente.
Desventajas
Es un modelo muy rgido, como el modelo en cascada.
Tiene poca flexibilidad y ajustar el alcance es difcil y
caro.
El software se desarrolla durante la fase de
implementacin, por lo que no se producen prototipos
del software.
El modelo no proporciona caminos claros para
problemas encontrados durante las fases de pruebas
Modelo Iterativo
Modelo derivado del ciclo de vida en cascada.
Este modelo busca reducir el riesgo que surge entre las necesidades del usuario y el producto final por malos entendidos durante la etapa de recogida de requisitos.
Consiste en la iteracin de varios ciclos de vida en cascada. Al final de cada iteracin se le entrega al cliente una versin mejorada o con mayores funcionalidades del producto.
El cliente es quien despus de cada iteracin evala el producto y lo corrige o propone mejoras. Estas iteraciones se repetirn hasta obtener un producto que satisfaga las necesidades del cliente.
Este modelo se suele utilizar en proyectos en los que los requisitos no estn claros por parte del usuario, por lo que se hace necesaria la creacin de distintos prototipos para presentarlos y conseguir la conformidad del cliente.
Modelo Iterativo
Ventajas
Una de las principales ventajas que ofrece este modelo
es que no hace falta que los requisitos estn totalmente
definidos al inicio del desarrollo, sino que se pueden ir
refinando en cada una de las iteraciones.
Igual que otros modelos similares tiene las ventajas
propias d