SISTEMAS DE INFORMACIÓN III
TEORÍA
CONTENIDO:
MANTENIMIENTO DE SISTEMAS TIPOS DE MANTENIMIENTO COSTO DEL MANTENIMIENTO GERENCIANDO EL MANTENIMIENTO
LAS HERRAMIENTAS CASE Y EL CICLO DE VIDA
LAS HERRAMIENTAS CASE Y SU ROL EN EL MANTENIMIENTO
Material diseñado y elaborado por: Prof. Luis Eduardo Mendoza M.
MANTENIMIENTO DE SISTEMAS
• Es la última fase del Ciclo de Vida de Desarrollo de
Sistemas, en donde los SI son sistemáticamente
reparados y mejorados.
• Por definición, el proceso de mantenimiento de un SI es
un proceso de devolución al principio del Ciclo de Vida y
de repetición de los pasos de desarrollo para la
implementación de cambios.
• Las 4 actividades más importantes que ocurren dentro
del mantenimiento son:
– Obtención de los requerimientos de mantenimiento.
– Transformación de los requerimientos en cambios.
– Diseño de los cambios.
MANTENIMIENTO DE SISTEMAS
LA FASE DE MANTENIMIENTO HACE EL PROCESO DE DESARROLLO DE SISTEMAS UN CICLO DE VIDA (Hoffer, 1998)
Identificación y selección del proyecto Iniciación y planificación del proyecto Análisis Diseño lógico Diseño físico Implemen-tación Mantenimiento
MANTENIMIENTO DE SISTEMAS
LAS ACTIVIDADES DEL MANTENIMIENTO EN RELACIÓN CON EL CICLO DE VIDA DE DESARROLLO DE SISTEMAS (Hoffer, 1998)
Identificación y selección del proyecto Iniciación y planificación del proyecto Análisis Diseño lógico Diseño físico Implemen-tación
1. Obtención de los requeri-mientos de mantenimiento.
2. Transformación de los re-querimientos en cambios.
3. Diseño de los cambios.
4. Implementación de los cambios.
Ciclo de Vida Tradicional de
TIPOS DE MANTENIMIENTO
• CORRECTIVO. Para reparar fallas en el diseño, codificación o implementación, del sistema.
• ADAPTATIVO. Para que las funcionalidades del sistema evolucionen a la par de los cambios del negocio o de las tecnologías.
• PERFECTIVO. Para agregar nuevas funciones al sistema o para mejorar su desempeño.
• PREVENTIVO. Para evitar posibles problemas del sistema a futuro.
0 20 40 60 80
Porcentaje del esfuerzo de mantenimiento Correctivo Adaptativo Perfectivo Preventivo Tipo de M antenim iento Agrega valor No agrega valor
COSTO DEL MANTENIMIENTO
MANTENIBILIDAD. La facilidad con la cual un software puede
ser entendido, corregido adaptado y mejorado.
ELEMENTO DESCRIPCIÓN DEFECTOS Número de defectos desconocidos en un sistema cuando es instalado.
USUARIOS Diversidad de usuarios que el equipo de mantenimiento debe atender. DOCUMENTACIÓN Calidad de la documentación técnica del sistema, incluyendo los casos de prueba.
PERSONAL Cantidad y calidad del personal dedicado al soporte y mantenimiento de un sistema. HERRAMIENTAS Herramientas de desarrollo de software, depuradores, hardware y otros recursos. ESTRUCTURA DEL
SOFTWARE Estructura y mantenibilidad del software.
ELEMENTOS DE COSTO DEL MANTENIMIENTO.
GERENCIANDO EL MANTENIMIENTO
El personal puede tener limitaciones laborales para movilizarse y tener falta de acceso a recursos humanos y técnicos adecuados
El personal tiene un verdadero interés en la efectividad del mantenimiento del sistema y tiene un mejor entendimiento
de los requerimientos funcionales.
FUNCIONAL
La documentación y las pruebas pueden deficientes debido a que carecen de una formal transferencia o falta de responsabilidad
El grupo de mantenimiento conoce o tiene acceso a todas las proposiciones y decisiones detrás del diseño original del sistema.
COMBINADA
No todas las cosas pueden ser documentadas, generando que el grupo de mantenimiento pueda no conocer información crítica acerca del sistema.
La transferencia formal del sistema entre grupos mejora la calidad del sistema y la documentación..
SEPARADA
DESVENTAJAS VENTAJAS
TIPO
VENTAJAS Y DESVENTAJAS DE LAS DIFERENTES ESTRUCTURAS ORGANIZACIONALES PARA EL MANTENIMIENTO. (Hoffer, 1999)
GERENCIANDO EL MANTENIMIENTO
FLUJO DEL CONTROL DE LOS REQUERIMIENTOS DE MANTENIMIENTO. (Hoffer, 1999)
Requerimiento de Cambio ¿Tipo? Evaluar, Categorizar, Priorizar Evaluar,
Categorizar PRIMERAPrioridad
Evaluar, Categorizar, Priorizar Acción Informe al requisidor Priorizar Seleccionar la próxima tarea de la lista de prioridades ¿Tipo? ¿Gravedad? Otro Error Mucho No mucho Adaptación Mejora No hacer Hacer
GERENCIANDO EL MANTENIMIENTO
MOVIMIENTO DE LOS REQUERIMIENTOS DE MANTENIMIENTO A TRAVÉS DE LA ORGANIZACIÓN. Adaptado de (Pressman, 1998)
ESTABLECIMIENTO DE PRIORIDADES USUARIOS DEL SISTEMA PERSONAL DE MANTENIMIENTO GERENTE DE PROYECTO 1. Requerimiento 2. Requerimiento 3. Decisión 4. Notificación 5. Tarea de mantenimiento
LAS HERRAMIENTAS CASE Y EL CICLO DE VIDA
LA RELACIÓN ENTRE HERRAMIENTAS CASE Y EL CICLO DE VIDA DE DESARROLLO DE SISTEMAS DE INFORMACIÓN. (Valacich, 2001)
Identificación y selección del proyecto Iniciación y planificación del proyecto
Identificación y selección del proyecto Iniciación y planificación del proyecto
Análisis
Determinación Estructuración Generación y de requerimientos de requerimientos selección de
alternativa
Análisis
Determinación Estructuración Generación y de requerimientos de requerimientos selección de
alternativa
Diseño
Diseño de la Diseño de las interface humana las bases de datos
Diseño
Diseño de la Diseño de las interface humana las bases de datos
Implementación
Codificación Pruebas Instalación Documentación Entrenamiento Soporte
Implementación
Codificación Pruebas Instalación Documentación Entrenamiento Soporte
MantenimientoMantenimiento
Dominio de las herramientas CASE
de nivel superior (upper CASE tools)
Dominio de las herramientas CASE
de nivel inferior (lower CASE tools)
LAS HERRAMIENTAS CASE Y SU ROL EN EL MANTENIMIENTO
• El objetivo principal de utilizar herramientas CASE para el desarrollo y el mantenimiento de sistemas, es el cambio radical en la manera en que el código y la documentación de los programas son modificados y actualizados.
• El beneficio primordial de usar herramientas CASE es la habilidad de permitir que el mantenimiento de los sistemas sea realizado en el nivel más alto de abstracción de los sistemas (análisis-diseño) más que el nivel más bajo (código fuente).
• Entre otras cosas, permite que los usuarios analicen y valoren el impacto de los cambios de mantenimiento. Por ejemplo, puede ser que el tamaño de un campo, tal como un número de cliente, necesite ser ampliado; la herramienta CASE hará una referencia cruzada de todas las pantallas, reportes y bases de datos donde es usado el número de cliente, facilitando la toma de decisiones al momento de producir un plan de mantenimiento real y comprensivo.
LAS HERRAMIENTAS CASE Y SU ROL EN EL MANTENIMIENTO INGENIERÍA DE REVERSA Y REINGENIERÍA DE SOFTWARE
• Son métodos para extender la vida de programas antiguos, conocidos normalmente como “Legacy Systems”.
• La INGENIERÍA DE REVERSA es lo opuesto a la generación de código: el código fuente del sistema es es examinado, analizado y convertido en entidades en el repositorio.
CONCEPTOS DE INGENIERÍA DE REVERSA. Adaptado de (Kendall y Kendall, 1999)
Código fuente de: C, COBOL, Xbase, etc. Programas existentes cargados a la
herramienta CASE.
El juego de herramientas CASE examina el
código fuente y produce el repositorio CASE. Repositorio CASE Es creado el repositorio incluyendo: gráficas de estructura, descripciones de registros y elementos en el diccionario de datos, presentaciones de pantallas y reportes DO Proceso de registros Sumar 1 a contador Sumar cantidad a total **** ENDDO DO Proceso de registros Sumar 1 a contador Sumar cantidad a total **** ENDDO Juego de herramientas CASE Juego de herramientas CASE
LAS HERRAMIENTAS CASE Y SU ROL EN EL MANTENIMIENTO INGENIERÍA DE REVERSA Y REINGENIERÍA DE SOFTWARE
• La REINGENIERÍA DE SOFTWARE se refiere al proceso completo de convertir el código de programa al diseño en CASE, la modifica-ción del diseño y la regeneramodifica-ción del nuevo código de programa.
• Entre las ventajas de utilizar un juego de herramientas para la ingeniería de reversa, tenemos:
– Se reduce el tiempo requerido para el mantenimiento del sistema.
– Se produce documentación que puede no haber existido o ser mínima para los programas antiguos.
– Se crean programas estructurados a partir de códigos sin estructura o débilmente estructurados.
– Es más fácil realizar cambios futuros de mantenimiento, ya que los cambios son hechos en el diseño y no en el código.
– Se puede realizar el análisis del sistema para eliminar partes de código no utilizadas.