Вы находитесь на странице: 1из 51

Ingeniera

Software II
Unidad I
Mantenimiento
Mantenimiento del Software
Distribucin del Costo del Ciclo de
Vida (Rock-Evans y Hales, 1990)

Pruebas Anlisis de
Cdigo Diseo Requisitos
Modulares
7% 5% 6%
8%
Pruebas de
Integracin
7%

Mantenim ient
o
67%

Fase que se inicia de finalizada las Pruebas


Fase ms costosa del ciclo. El 80% del presupuesto de los CPD
en 1987, 95% en 1995 (Frazer).
Barrera de mantenimiento cuando sobrepasa lmite de recursos
Factores que afectan el
Costo
Inexistencia de mtodos, tcnicas y
herramientas que proporcionen una
solucin global al mantenimiento.
La complejidad de los sistemas se
incrementa paulatinamente por la
realizacin de continuas modificaciones.
Perdida de informacin, menos personas
conocen el SW.
La documentacin es defectuosa o
inexistente.
Programacin de baja calidad, no
estructurada o sin estilo estandarizado.
Factores que afectan el
Costo
Considerada actividad poco creativa,
supuestamente mas sencilla y menos
importante.
Se realizan bajo presin de tiempo.

Poca participacin del usuario durante


el desarrollo del sistema.
Definicin del Mantenimiento

Correccin de defectos en el
software.
Creacin de nuevas funcionalidades
en el software por nuevos requisitos
de usuario.
Mejora de la funcionalidad y del
rendimiento.
Definicin segn el estndar
IEEE, 1990

Proceso de modificar un sistema o


componente software despus de su
entrega para corregir defectos,
mejorar el rendimiento u otros
atributos o adaptarlo a un entorno
cambiante.
Tipos de Mantenimiento

Perfectivo:
Mejoras al rendimiento
Aumento de facilidad para mantener
un programa ante cambios.
Nuevas funcionalidades (de
ampliacin) y mejoras de eficiencia de
ejecucin (Gorla,1991).
Tipos de Mantenimiento

Adaptativo: conjunto actividades para


adaptar el sistema a los cambios (HW
o SW) en su entorno tecnolgico.
El entorno de datos: cambio de
soporte de los datos de una aplicacin
Archivos a sistema Relacional
El entorno de Proceso:
Nueva plataforma de explotacin
Nuevo Sistema Operativo
Tipos de Mantenimiento

Correctivo:
Correccin de defectos en el HW o SW
detectados por el usuario en la explotacin .
Terminaciones anormales o salidas
incorrectasProcesamiento
Tiempos de respuestas altos.Rendimiento
Violacin de estndares de programacin o
inconsistencias del diseoImplementacin
Pruebas y actualizacin de documentacin
luego de las modificaciones.
Tipos de Mantenimiento

Preventivo: actividades para facilitar


el mantenimiento futuro.
Validacin de datos entrada
Mejoras en su legibilidad
Costos por Tipo
Mantenimiento
Costos por Tipo Mantenimiento (Frazer,
1992)

Correctivo
17%
Preventivo
5%
Perfectivo
60% Adaptativo
18%
Distribucin del tiempo en
tareas de mantenimiento
(MCclure,1992)

Actualizar
Estudiar
docum entacin
peticiones
6%
18%
Estudiar
Realizar pruebas
docum entacin
28%
6%

Estudiar cdigo
23%
Im plem entar
cam bio
19%
El Proceso de
Mantenimiento
Vara considerablemente
dependiendo del tipo de Software
Proceso informal o formal.
Actividades fundamentales:
Anlisis del cambio
Planeacin de la versin
Implementacin del sistema
Entrega
Proceso mantenimiento,
Arthur (1988)
Peticiones de Anlisis de Planeacin de Implementacin Liberacin del
Cambio Impacto versiones de cambios Sistema

Reparacin de Adaptacin de Perfeccionamiento


fallas plataforma del Sistema
Mito de los Desarrolladores

Mito: Una vez que se escribe un programa


y se hace funcionar el mismo, el trabajo de
programacin ha terminado.

Realidad: Alguien dijo una vez "cuanto ms


pronto se comience a escribir cdigo, ms
se tardara en terminarlo". Los datos indican
que entre el cincuenta y sesenta por ciento
de todo el esfuerzo dedicado a un
programa se realizar despus de la
primera entrega del software al cliente.
Mito: Hasta que no se cuente con un
programa ejecutable, realmente no se
puede comprobar su calidad.

Realidad: Desde el inicio de un proyecto de


software debe aplicarse uno de los
mecanismos ms efectivos para garantizar
la calidad del software: la revisin tcnica
formal. La revisin del software es un filtro
de calidad que es mucho ms efectivo que
la prueba, para encontrar ciertas clases de
defectos en el software.
Mito: Lo nico que se entrega al terminar el
proyecto es el programa funcionando.

Realidad: Un programa que funciona es


slo una parte de una configuracin de
software que incluye programas,
documentos y datos. La documentacin es
la base de un buen desarrollo y, lo que es
ms importante, proporciona guas para la
tarea de mantenimiento de software
Prediccin del
Mantenimiento
Qu partes del sistema
sern ms costosas de
Qu partes del sistema mantener?
son mas probables de
afectarse por las
peticiones de cambio? Mantenimiento
Previsto

Cules sern los costos


Cambios de mantenimiento
previstos del Costos previstos durante el perodo de vida
Sistema de del sistema?
mantenimiento

Cuntas peticiones de
cambios se esperan? Cules sern los costos de
mantenimiento de este
sistema el prximo ao?

Predecir el numero de peticiones de cambios para un sistema requiere


entender la relacin entre el sistema y sus entorno
Evaluacin relacin sistema
y su entorno
Nmero y complejidad de las
interfaces del sistema.
Nmero de requerimientos
inherentemente voltiles del sistema.
Los procesos de negocios en los que
se utiliza el sistema.
Ejemplos de mtricas para
evaluar la mantenibilidad:
Nmero de peticiones de mantenimiento
correctivo.
Tiempo promedio requerido para el anlisis
de impacto.
Tiempo promedio para implementar una
peticin de cambio.
Nmero de peticiones de cambio
pendientes.
COCOMO 2
Otras estrategias de cambio
del Software. Sommerville Cap. 27,28
Transformacin Arquitectnica:
cambios del SW para seguir dndole
mantenimiento conforme se
implementan cambios ms
importantes en la arquitectura del
Sistema de Software.
Evolucin de una arquitectura
centralizada a una Cliente-Servidor
Reingeniera del Software: No se
agrega funcionalidad al sistema. Se
modifica el SW para hacerlo ms fcil
de comprender y cambiar.
Comprende algunas modificaciones
estructurales y no cambios
arquitectnicos mayores
Cambios del Sistema.
Leyes de Lehman (y Belady)
Ley: Cambio Continuo
Un programa utilizado en un entorno
real necesariamente debe cambiar o
llegar a ser progresivamente menos
til en ese entorno.
El mantenimiento es un proceso
inevitable.
Ley: Incremento de la Complejidad.
Puesto que un programa evolutivo
cambia, su estructura tiende a ser
mas compleja. Se deben dedicar
recursos extra para preservar y
simplificar la estructura.
Puesto que el sistema cambia su
estructura se degrada.
Invertir en mantenimiento preventivo evita
que esto pase.
Ley: Evolucin prolongada del
Programa.
La evolucin del programa es un
proceso autoregulatorio. Los atributos
del sistema, como el tamao , el
tiempo entre entregas y el nmero de
errores reportados son
aproximadamente invariantes para
cada entrega del sistema
Ley: Estabilidad organizacional
En el tiempo de vida de un programa,
su tasa de desarrollo es
aproximadamente constante e
independiente de los recursos
dedicados al desarrollo del sistema.
Un cambio a los recursos o al personal
tiene efectos imperceptibles en la
evolucin a largo plazo del sistema
Ley: Conservacin de la familiaridad.
En el tiempo de vida del sistema , el
cambio incremental en cada entrega
es aproximadamente constante.
Incorporar nuevas funcionalidades al
sistema introduce nuevas fallas al
sistema.
Reingeniera del Software

Nueva rea de la Ingeniera del SW.


Reduccin del esfuerzo

Reutilizacin de componentes

Falta de estndares
Actividades (Arnold,1993)
oTecnologa de la Reingeniera
Mejora del Software:
Reestructuracin
Redocumentacin, anotacin, actualizacin
de documentacin
Ingeniera para reutilizacin
Remodularizacin
Reingeniera de Procesos (BPR)
Reingeniera de datos
Anlisis de facilidades de mantenimiento,
anlisis econmico
Comprensin del Software:
Visualizacin
Anlisis, mediciones.
Ingeniera inversa, recuperacin de
diseo.
Captura, Conservacin y extensin
del Conocimiento sobre el Software.
Descomposicin
Ingeniera inversa y recuperacin de
diseo
Recuperacin de objetos
Comprensin de programas
Transformaciones y bases de
conocimiento
Razones de la importancia
de la reingeniera del SW.
Puede reducir los riesgos evolutivos de una
organizacin.
Puede ayudar a las organizaciones a recuperar sus
inversiones de SW.
Puede hacer el SW ms fcilmente modificable.
Ampla las capacidades de las herramientas CASE.
Es un catalizador para la automatizacin del
mantenimiento del SW.
Puede actuar como catalizador para la aplicacin de
tcnicas de inteligencia artificial (IA) para resolver
problemas de reingeniera.
Evolucin arquitectnica y el
mantenimiento
Desde los 80, los precios de los
sistemas basados en computadoras
han cambiado radicalmente.
Los sistemas distribuidos son mas
costeables que los centralizados.
Las empresas se ven obligados a
evolucionar de grandes mainframe a
sistemas distribuidos.
Razones de esta evolucin

Los costos del hardware


Las expectativas de la interfaz de
usuario. Apariencia y funcionamiento
mas modernos y que permite el
trabajo distribuido.
El acceso distribuido a los sistemas
Factores que influyen en la
decisin de distribucin del
sistema
Importancia en los negocios
Edad del Sistema

Estructura del sistema

Polticas de adquisicin del hardware


Principales dificultades en el
cambio

Interfaz de Usuario
Interfaz
de
usuario
Servicios
Servicios

Base de datos Base de Datos

Modelo ideal para la Sistemas heredados


distribucin reales
Distribucin se sistemas
heredados
Sistema
Heredado
Servicios de Capa de middleware (sobrepuesta)
aplicacin

Base de
datos
Sistema
Interfaz del usuario Heredado

Terminales de
caracteres
Modelo de distribucin en
capas

Presentacin Despliegue y organizacin de las pantallas


presentadas a los usuarios finales

Validacin de Comprobacin de los datos de entrada por


datos medio de una salida al usuario final.

Control de la Manejo de la secuencia de operaciones de los


interaccin usuarios finales y a la secuencia de pantallas
presentadas al usuario
Servicios de Suministrar los clculos bsicos provistos por
aplicacin la aplicacin.

Base de datos Suministra almacenamiento y administracin a


los datos de la aplicacin.
Opciones de distribucin
Servidor: Control de la interaccin Servidor: Servicios Servidor: Base de datos
Validacin Base de datos
Servicios
Base de datos

Cliente: Presentacin Cliente: Presentacin


Cliente: Presentacin
Control de la Control de la
interaccin interaccin
Validacin de datos Validacin de datos
Servicios

Incremento del costo y el


esfuerzo
Distribucin de la interfaz
de usuario
Aprovecha el poder local de procesamiento
disponible de los PCs para suministrar una
interfaz grfica mas adecuada.
Existen dos estrategias de implementacin
para la distribucin:
Utilizando el sistema de administracin de
ventanas nativo del PC. E implementar
comunicacin con el servidor.
Utilizando navegador WWW.
Utilizando Ventanas

Ventajas:
Acceso a todas las funciones de UI
por lo que no existen restricciones
reales sobre el diseo UI.
Mejor desempeo de la UI.
Desventajas:
Dependiente de la plataforma
Es ms difcil lograr la consistencia de
la interfaz.
Utilizando navegador WWW
Ventaja:
Independiente de la plataforma.
Bajos costos de capacitacin y familiaridad
del usuario con el navegador.
Es ms fcil lograr la consistencia de la
interfaz.
Desventaja:
El desempeo de la UI es potencialmente
pobre.
El diseo de la UI se restringe por los
recursos suministrados por los navegadores
Web.
Consideraciones sobre el
diccionario de datos
El modelo de anlisis acompaa
representaciones de objetos de datos,
funciones y control. Estos juegan un
papel importante.
Es necesario proporcionar un enfoque
organizado para presentar las
caractersticas de cada objeto de
datos y elementos de control .
Diccionario de datos

Listado organizado de todos los elementos


de datos que son pertinentes para el
sistema , con definiciones precisas y
rigurosas que permiten que el usuario y el
analista tengan una misma comprensin de
las entradas, salidas , de las componentes
de almacenes y de los clculos
intermedios.
El formato vara segn las herramientas
utilizadas (Case o de diseo estructurado).
Contenido del diccionario de
datos (comnmente)
Nombre: el nombre principal del elemento
de datos o de control, de almacn de datos
, o de una entidad externa.
Alias: otros nombres usados para la
primera entrada.
Donde se usa/cmo se usa: listado de los
procesos que usan el elemento de datos o
de control y cmo lo usan ( Ej. Como
entrada al proceso, como salida al proceso,
como almacn de datos como entidad
externa).
Descripcin del contenido: el
contenido representado mediante una
notacin.
Informacin adicional: otra
informacin sobre los tipos de datos,
los valores implcitos, las restricciones
o limitaciones, etc.
Principales problemas
No se le da importancia la informacin
donde se usa/cmo se usa siendo tal vez
una de la principales ventajas.
No se toma en cuenta los efectos de los
cambios en el anlisis y menos en los
procesos de mantenimiento.
Efectos en los sistemas complejos y
grandes, sobre todo problemas de
consistencia.
No se toma conciencia del aporte para la
consistencia del modelo y lo que apoya al
reducir errores.
Difcil de mantener en forma manual y
generalmente se utilizan herramientas
Case.
Preguntas que se hacen los
analistas sobre los datos
Dnde se usa este elemento de
datos?
Qu mas hay que cambiar simlo
modificamos?
Cul ser el impacto general del
cambio?
Notacin utilizada para la
descripcin
Construccin de Notacin Significado
datos
Agregacin = Est compuesto de

Secuencia + y

Seleccin [I] Uno u otro

Repeticin {} N repeticiones de
() Datos opcionales
*..* Delimitadores de
comentarios
Notacin..

Permite representar una composicin de


datos en una de las tres alternativas
fundamentales que pueden ser construidas:
Como una secuencia de elementos de
datos.
Como una seleccin de entre un conjunto de
elementos de datos.
Como una agrupacin repetitiva de
elementos de datos.
Ejemplo:
( 01327 546381)
Nombre: nmero de telfono
Alias: Fono
Donde se usa/cmo se usa:
Comprobar con ajustes iniciales (salida)
Marcar nmero (entrada)
Descripcin:
nmero de telfono = prefijo + nmero acceso.
Prefijo= [*un nmero de cuatro dgitos que comience
en 0 un nmero de cinco dgitos que comience por
()]
Nmero de acceso= *secuencia numrica de
cualquier tamao*

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