Transición

Anuncio
Tema 11: Fase de Transición
Departamento de Lenguajes y Sistemas Informáticos II
www.kybele.urjc.es
Índice
Transición
 Mantenimiento

Fase de Transición
www.kybele.urjc.es
2
Transición
Flujos de
trabajo
Fases
Inicio
Elaboración
Construcción
Transición
Requisitos
Análisis
Diseño
Implementación
Prueba
Iteración(es)
Inicial(es)
Iter.
#1
Iter.
#2
Iter.
#3
Iter.
#4
Iter.
#5
Iter.
#6
Iter.
#7
(Adaptado de Jacobson, 1999)
Fase de Transición
www.kybele.urjc.es
3
Transición
El sistema ha alcanzado la capacidad operativa
inicial
 Confianza suficiente como para operar en el
entorno del usuario

Algunos problemas, riesgos y defectos pueden
ponerse de manifiesto en el entorno del usuario
Descubrir con retraso determinadas necesidades
 El jefe de proyecto puede aceptar añadirlas
Fase de Transición
www.kybele.urjc.es
4
Transición

Objetivos
Cumplir los requisitos, establecidos en las fases
anteriores, hasta la satisfacción de todos los usuarios
Gestionar todos los aspectos relativos a la operación
en el entorno del usuario, incluyendo la corrección de
los defectos remitidos por los usuarios de la versión
beta o por los encargados de las pruebas de
aceptación

Las pruebas de aceptación son responsabilidad
del cliente, aunque pueden contratarse
Fase de Transición
www.kybele.urjc.es
5
Transición

Visión general
Implantar el producto en su entorno de operación
 Producto dirigido al mercado:
• Pruebas beta: “clientes beta” de empresas representativas
 Producto a medida
• Pruebas beta
• Pruebas alfa
• Validación por un tercero
El proyecto recibe información para






Fase de Transición
El sistema hace lo que demandan sus usuarios y el negocio
Descubrir riesgos inesperados
Anotar problemas no resueltos
Encontrar fallos
Eliminar ambigüedades y lagunas en la documentación
Centrarse en áreas en las que los usuarios muestren deficiencias
www.kybele.urjc.es
6
Transición

Visión general
A partir de lo anterior, el equipo del proyecto
 Modifica el sistema o los artefactos relacionados
 Prepara la producción del producto, el empaquetado, la distribución y
lanzamiento al mercado en general.
En esta fase no se busca reformular el producto.
 Cambios significativos deberían haberse en fases anteriores
 Pequeñas deficiencias que pasaron desapercibidas
Además, puede incluir:




Ayuda para crear un entorno apropiado para el producto
Formación de la organización del cliente
Ayudar a los usuarios a llevar en paralelo con el sistema antiguo
Ayudar a la conversión de BD a la nueva configuración.
En el caso de productos para el mercado, en el programa de
instalación, complementado con el servicio de asistencia técnica.
La fase de transición termina con el lanzamiento del producto
Fase de Transición
www.kybele.urjc.es
7
Transición

Tipos de acuerdos comerciales
Producto dirigido al mercado (relación 1:N)
 Amplio
 Reducido
Producto a medida
 Para un único cliente con una única sede
 Para un único cliente con suborganizaciones y sedes
 Para un único cliente pero después adaptado para otras
sedes o clientes
 Desarrollo de software para otros departamentos de la
misma empresa bajo acuerdos específicos
Fase de Transición
www.kybele.urjc.es
8
Transición

Planificación de la transición
Información de las pruebas beta
Resultado de las pruebas
Reelaboración < 5%
Problemas
 Presión de la agenda
 Pruebas erróneas o inexistentes
 Mala evaluación del trabajo de transición
 Considerar que la reelaboración implica un fracaso
…
Fase de Transición
www.kybele.urjc.es
9
Transición

Criterios de evaluación
Los usuarios beta han cubierto las funciones clave
EL producto ha superado las pruebas de aceptación
realizadas por el cliente (fijados por contrato)
El material de usuario tiene una calidad aceptable
El material de cursos está listo
Los usuarios y clientes parecen satisfechos con el
producto
Fase de Transición
www.kybele.urjc.es
10
Transición

Actividades
Preparación de versión beta (o de aceptación)
Instalación
Actuar a partir de la información recogida
Adaptar el producto corregido
Completar los artefactos del proyecto
Determinar cuándo se acaba el proyecto

Diferencias en función de
Producto para el mercado/para un cliente
Producto novedoso/preexistente
Fase de Transición
www.kybele.urjc.es
11
Transición

Actividades
Preparación de versión beta (o de aceptación)
 Usuarios experimentados
 A partir de información preliminar
 Documentación necesaria para usuarios
 Selección de usuarios
Instalación
Actuar a partir de la información recogida
Adaptar el producto corregido
Completar los artefactos del proyecto
Determinar cuándo se acaba el proyecto
Fase de Transición
www.kybele.urjc.es
12
Transición

Actividades
Preparación de versión beta (o de aceptación)
Instalación
 Beta: normalmente en varios sitios, sin presencia del personal de
transición (necesarias instrucciones). Si es actualización,
instrucciones sobre migración de datos…
 Aceptación: presentes miembros del personal, documento
formal, si es posible, corrección sobre el terreno
Actuar a partir de la información recogida
Adaptar el producto corregido
Completar los artefactos del proyecto
Determinar cuándo se acaba el proyecto
Fase de Transición
www.kybele.urjc.es
13
Transición

Actividades
Preparación de versión beta (o de aceptación)
Instalación
Actuar a partir de la información recogida
 Fallos menores: traza, corrección, pruebas (de regresión)
 Problemas importantes:
• Iteración adicional de pruebas, aprobación de comité de control de
cambios, control de configuraciones, ¿retraso a otro ciclo?
Adaptar el producto corregido
Completar los artefactos del proyecto
Determinar cuándo se acaba el proyecto
Fase de Transición
www.kybele.urjc.es
14
Transición

Actividades
Preparación de versión beta (o de aceptación)
Instalación
Actuar a partir de la información recogida
Adaptar el producto corregido
 Producto para el mercado: adaptaciones (países, nodos), ampliar
documentación, instalación, asistencia…
 Producto a medida. Cliente participa en fases anteriores,
desarrollador en instalación y pruebas de aceptación. Posibilidad
de ampliación del contrato
 En caso de sistema preexistente, procedimiento de migración de
datos, pruebas adicionales
Completar los artefactos del proyecto
Determinar cuándo se acaba el proyecto
Fase de Transición
www.kybele.urjc.es
15
Transición

Actividades
Preparación de versión beta (o de aceptación)
Instalación
Actuar a partir de la información recogida
Adaptar el producto corregido
Completar los artefactos del proyecto
 Incluyendo modelos y descripción de la arquitectura
 Todos los artefactos son consistentes unos con otros
Determinar cuándo se acaba el proyecto
Fase de Transición
www.kybele.urjc.es
16
Transición

Actividades
Preparación de versión beta (o de aceptación)
Instalación
Actuar a partir de la información recogida
Adaptar el producto corregido
Completar los artefactos del proyecto
Determinar cuándo se acaba el proyecto
 Cuando el cliente queda “satisfecho”:
- Productos para el mercado: jefe de proyecto tras pruebas beta.
Evolución del producto o un nuevo ciclo. Transferencia del
mantenimiento a organización de apoyo
- Productos a medida. Pruebas de aceptación. Modalidades de
mantenimiento (nuevo contrato, propio, terceros…)
Fase de Transición
www.kybele.urjc.es
17
Transición

Después:
Control del progreso
 Consecución de objetivos, añadir métricas…
Revisión del plan de negocio (éxito)
 Producto a medida: contrato
 Producto para el mercado
Evaluación
 De la fase/iteraciones
 Del proyecto (Autopsia): qué se ha hecho bien y qué se ha
hecho mal
Planificación de nueva versión
Fase de Transición
www.kybele.urjc.es
18
El cambio en el software

El cambio en el software es inevitable
Aparecen nuevos requisitos a medida que se utiliza
Cambia el entorno de negocio
Deben corregirse los errores
Aparecen nuevos equipos, entornos…
Ha de mejorarse el rendimiento o la fiabilidad del
sistema

La gestión del cambio en el software existente es
un problema fundamental para las
organizaciones
Fase de Transición
www.kybele.urjc.es
19
Tipos de cambios

Reparación de fallos en el software
Cambiar un sistema para corregir errores para cumplir los
requisitos

Adaptar el software a diferentes entornos operativos
Cambiar un sistema de tal forma que funcione en un
entorno distinto al original (ordenador, SO, etc.)

Añadir o modificar funcionalidad al sistema
Modificar el sistema para satisfacer nuevos requisitos

Mejorar la estructura del programa y el rendimiento
Reescribir todo o parte del sistema para hacerlo más
eficiente y mantenible
Fase de Transición
www.kybele.urjc.es
20
Mantenimiento

Elevado gasto
Hasta el 75% de los profesionales de sw están
implicados de alguna forma en tareas de
mantenimiento/evolución
Muchos estudios dan cifras similares
Fase de Transición
www.kybele.urjc.es
21
Mantenimiento

Factores
Inexistencia de métodos, técnicas y herramientas que
puedan proporcionar una solución global al
mantenimiento
La complejidad de los sistemas se incrementa
paulatinamente por la realización de continuas
modificaciones
La documentación del sistema es defectuosa o inexistente
Se considera el mantenimiento como una actividad poco
creativa, a diferencia del desarrollo
Las actividades del mantenimiento se suelen realizar bajo
presión de tiempo
Poca participación del usuario durante el desarrollo del
sistema
Fase de Transición
www.kybele.urjc.es
22
Mantenimiento

Actuaciones comunes para mantener la
operatividad del software
Corrección de defectos en el software
Creación de nuevas funcionalidades en el software
por nuevos requisitos de usuario
Mejora de la funcionalidad y del rendimiento

IEEE:
“Proceso de modificar un sistema o componente
software después de su entrega para corregir
defectos, mejorar el rendimiento u otros atributos o
adaptarlo a un entorno cambiante”
Fase de Transición
www.kybele.urjc.es
23
Evolución versus Mantenimiento

No hay definiciones estándar, aunque de una manera
amplia se refiere al estudio y gestión de cambios en
el software a lo largo del tiempo
Con esta definición, la evolución del software comprende:
 Actividades de desarrollo
 Actividades de mantenimiento
 Actividades de reingeniería
Definición más estricta: actividad de añadir nueva
funcionalidad a software existente
 Mantenimiento se refiere a la actividad de modificar
el software tras haber sido puesto en uso para
mantener su utilidad

Fase de Transición
www.kybele.urjc.es
24
Un poco de historia

1960s – 1970s
Inclusión del mantenimiento en el ciclo de vida en cascada tras la entrega del
producto
Percepción de que las actividades tras la entrega sólo consistirían en la corrección
de errores y ajustes menores
No se tenía en cuenta la necesidad de añadir nueva funcionalidad debido a
requisitos nuevos y cambiantes

1970s
Lehman enuncia las leyes iniciales de la evolución de programas
Énfasis en la necesidad de una evolución continua debido a cambios en el entorno
operacional del software

Finales de 1970s – 1980s
Primeros modelos de proceso que tenían en cuenta las solicitudes de cambios

1990s
Aceptación general de la evolución del software
Desarrollo de nuevos modelos de procesos que consideraban actividades de
evolución: desarrollo evolutivo, modelo en espiral, desarrollos ágiles
Fase de Transición
www.kybele.urjc.es
25
Leyes de Lehman

Leyes de Lehman (iniciales)
Cambio continuo
 Un programa que se usa en un entorno real necesariamente debe cambiar o se
volverá progresivamente menos útil en ese entorno
Complejidad creciente
 A medida que un programa en evolución cambia, su estructura tiende a ser cada vez
más compleja. Se deben dedicar recursos extra para preservar y simplificar la
estructura
Evolución prolongada del programa
 La evolución de los programas es un proceso autorregulativo. Los atributos de los
sistemas, tales como tamaño, tiempo entre entregas y el número de errores
documentados son aproximadamente invariantes para cada entrega del sistema
Estabilidad organizacional
 Durante el tiempo de vida de un programa, su velocidad de desarrollo es
aproximadamente constante e independiente de los recursos dedicados al desarrollo
del sistema
Conservación de la familiaridad
 Durante el tiempo de vida de un sistema, el cambio incremental en cada entrega es
aproximadamente constante
Fase de Transición
www.kybele.urjc.es
26
Mantenimiento

Tipos de mantenimiento
Mantenimiento perfectivo: conjunto de actividades para
mejorar o añadir nuevas funcionalidades requeridas por el
usuario
Mantenimiento adaptativo: es el conjunto de actividades
para adaptar el sistema a los cambios (hardware o
software) en su entorno tecnológico
Mantenimiento correctivo: es el conjunto de actividades
dedicadas a corregir defectos en el hardware o en el
software detectados por los usuarios durante la
explotación del sistema
Mantenimiento preventivo: conjunto de actividades para
facilitar el mantenimiento futuro del sistema
Fase de Transición
www.kybele.urjc.es
27
Mantenimiento

Tipos de mantenimiento y coste relativo
Fase de Transición
www.kybele.urjc.es
28
Mantenimiento

Distribución del tiempo en tareas de mantenimiento:
Comprensión del software y de los cambios que hay que
realizar
Modificación del software incorporando los cambios
Realización de pruebas para validar los cambios
Fase de Transición
www.kybele.urjc.es
29
Mantenimiento

Una selección de métricas para medir el factor
«Facilidad de Mantenimiento»
Fase de Transición
www.kybele.urjc.es
30
Ejemplo de definición de métricas y su
asignación a los criterios de calidad
Definición de métricas de módulo
Longitud de programa :
Número de sentencias :
Frecuencia comentarios :
Frecuencia operandos :
Número ciclomático :
Niveles anidados (máx) :
LENG
NSTM
COMF
OPEF
V(G)
NEST
Selección de límites
LENG
NSTM
COMF
OPEF
V(G)
NEST
1
1
0.15
1.0
1
0
100
50
1.0
3.0
20
4
Definición de criterios de calidad
FACILIDAD DE PRUEBA:
SIMPLICIDAD :
CONCISION :
LEGIBILIDAD :
AUTODESCRIPTIVO :
Fase de Transición
V(G), NEST
V(G), NSTM, OPEF
LENG
LENG, NEST, NSTM
COMF
www.kybele.urjc.es
31
La reingeniería del software

Examen y alteración de un sistema para reconstruirlo de una
nueva forma y la subsiguiente implementación
TECNOLOGÍA DE LA REINGENIERÍA
MEJORA DEL SOFTWARE
Reestructuración.
Redocumentación, Anotación, actualización de documentación.
Ingeniería para reutilización.
Remodularización.
Reingeniería de procesos de negocio (BPR)
Reingeniería de datos.
Análisis de facilidad de mantenimiento, análisis económico.
COMPRENSIÓN DEL
SOFTWARE
Visualización
Análisis, mediciones.
Ingeniería inversa, recuperación de diseño.
CAPTURA, CONSERVACIÓN Y
EXTENSIÓN DEL
CONOCIMIENTO SOBRE EL
SOFTWARE
Descomposición.
Ingeniería Inversa y recuperación de diseño.
Recuperación de objetos.
Comprensión de programas.
Transformaciones y bases de conocimiento.
Fase de Transición
www.kybele.urjc.es
33
La reingeniería del software

La importancia de la reingeniería del software
Puede reducir los riesgos evolutivos de una organización
Aumentar su esperanza de vida
Puede ayudar a las organizaciones a recuperar sus
inversiones en software
Puede hacer el software más fácilmente modificable
Facilitar la migración, traducir un programa de un lenguaje
a otro, moverlo de un entorno operativo a otro o
actualizar su tecnología
Capturar sus componentes en un repositorio que puede
ser gestionado por herramientas CASE
Fase de Transición
www.kybele.urjc.es
34
La reingeniería del software

Ingeniería directa
Corresponde al desarrollo de software tradicional

Reestructuración
Es la transformación de una forma de representación a otra en
el mismo nivel de abstracción relativo, mientras se mantenga el
comportamiento externo del sistema (funcionalidad y
semántica): a nivel de análisis, diseño (modelos) o
implementación (datos, funcionalidad)
Es la modificación del software para hacerlo más fácil de
entender y cambiar

Ingeniería inversa
Es el proceso de análisis de un sistema para identificar sus
componentes e interrelaciones y crear representaciones del
sistema en otra forma o a un nivel más alto de abstracción. Ej:
ingeniería inversa de datos.
Fase de Transición
www.kybele.urjc.es
35
La reingeniería del software

Relaciones entre los términos asociados a la
reingeniería
REQUISITOS
DISEÑO
Ingeniería
directa
Ingeniería
directa
Ingeniería
inversa
Ingeniería
inversa
Reingeniería
Reestructuración
Fase de Transición
IMPLEMENTACIÓN
Reingeniería
Reestructuración
www.kybele.urjc.es
Reestructuración
(refactorización)
36
Mantenimiento

Sistemas heredados
Críticos, que deben adaptarse
 Desechar completamente el sistema
 Dejar el sistema sin cambios y continuar con un
mantenimiento regular
 Hacer reingeniería del sistema para mejorar su
mantenibilidad
 Reemplazar todo o parte del sistema con un nuevo sistema
Fase de Transición
www.kybele.urjc.es
37
Mantenimiento
Sistemas heredados
Perspectiva de negocio
(valor de los negocios)

Reingeniería
Mantenimiento
normal
Desechar
Mantener
/ desechar
Perspectiva técnica
(calidad del sistema)
Fase de Transición
www.kybele.urjc.es
38
Bibliografía
El Proceso Unificado de Desarrollo de Software. I.
Jacobson, G. Booch y J. Rumbaugh. Pearson
Prentice-Hall 2007
 M. Piattini et al. Análisis y Diseño detallado de
Aplicaciones Informáticas de Gestión. Ed. Ra-Ma.
1996
 Ingeniería del Software. Ian Sommerville.
Pearson/ Addison Wesley 2005

Fase de Transición
www.kybele.urjc.es
54
Descargar