Mantenimiento del sistema
Conceptos
1. Mantenimiento de
software: el mantenimiento de software es la modificación de un
producto de software después de la entrega, para corregir errores, mejorar el
rendimiento u otros atributos. El mantenimiento de software es una de las
actividades más comunes en la ingeniería de software.
2. Ciclo de vida de
desarrollo de sistemas: El ciclo de vida del desarrollo del sistema
(SDLC, Systems Development Life Cycle) se refiere al proceso de planificación,
creación, pruebas y despliegue en un sistema de información.
Importancia
El mantenimiento de software es
fundamental para preservar el valor y la utilidad de la aplicación
desarrollada, un buen mantenimiento puede incluso aumentar el valor del
software y hacerlo más útil para las empresas.
Tipos de mantenimiento
Con el paso del tiempo, las
aplicaciones informáticas deben someterse a procesos de modificación que
prolongan su vida útil o mejoran sus características. Corrección de bugs,
adaptación a nuevos entornos tecnológicos o incorporación de funcionalidades
son algunas de las tareas incluidas en el mantenimiento del software, actividad
que se repite periódicamente desde el momento en que se empieza a utilizar
hasta su abandono definitivo.
A lo largo de su vida útil, la
aplicación puede necesitar modificaciones por diferentes razones, que
determinan diferentes tipos de mantenimiento:
- Mantenimiento preventivo: Consiste en la revisión
constante del software para detectar posibles fuentes de problemas que
puedan surgir en el futuro. Incluye las modificaciones y actualizaciones
para prevenir problemas de software en un futuro. Pretende ocuparse de
problemas, que no son muy significativos por el momento pero que podrían
ocasionar graves conflictos en un futuro.
- Mantenimiento predictivo: Evalúa el flujo de ejecución
del programa para predecir con certeza cuándo ocurrirá la falla, y así
determinar cuándo es apropiado hacer los ajustes correspondientes.
- Mantenimiento correctivo. Corrige los defectos
encontrados en el software, y que originan un comportamiento diferente al
deseado. Estas fallas pueden ser de procesamiento, rendimiento (por ejemplo,
uso ineficiente de recursos de hardware), programación (inconsistencias en
la ejecución), seguridad o estabilidad, entre otras. Este tipo incluye las
modificaciones y actualizaciones que se han hecho con tal de corregir o
resolver problemas descubiertos por el usuario o se han encontrado en
informes de error de algún usuario.
- Mantenimiento adaptativo. Si es necesario cambiar el
entorno en el que se utiliza la aplicación (que incluye el sistema
operativo, la plataforma de hardware o, en el caso de las aplicaciones
web, el navegador), puede ser necesario modificarla para mantener su plena
funcionalidad en estas nuevas condiciones.
- Mantenimiento evolutivo. Es un caso especial donde
la adaptación es prácticamente obligatoria, ya que de lo contrario el
programa quedaría obsoleto con el paso del tiempo. Por ejemplo, el cambio
de versión en un navegador (a menudo impuesto sin el consentimiento del
usuario) suele requerir ajustes en los plugins y aplicaciones web.
- Mantenimiento perfecto. Por diferentes razones, el
usuario puede solicitar la adición de nuevas funcionalidades o
características no consideradas en el momento de la implementación del
software. Un mantenimiento perfecto adapta la aplicación a este requisito.
El mantenimiento permanente del software puede asegurar su funcionalidad
durante muchos años, ahorrando tiempo y el coste económico de una
migración total a una nueva aplicación. Esto incluye las modificaciones y
actualizaciones que se han realizado con tal de mantener el software
usable por un largo periodo de tiempo. Aquí se incluyen nuevas
características, nuevos requisitos para perfeccionar el software y mejorar
su fiabilidad y su rendimiento.
·
Mantenimiento Correctivo: Corrección de errores (bugs) y monitoreo del
sistema
Ejemplos:
1- No puedo ingresar a la plataforma,
me marca error
2- No se puede visualizar la
información completa de esta tabla, aparece cortado.
·
Mantenimiento Adaptativo: Actualización o modificación del software ante
factores externos.
Ejemplos:
1- Safari lanzó una nueva actualización,
ahora no cargan los videos del sistema.
2- La nueva actualización de IOS causó
que no funcione el envío de correos.
Tipos de sistemas
- Sistemas
de procesamiento de transacciones.
- Sistemas
de información gerencial.
- Sistemas
de control de procesos de negocio.
- Sistemas
de información de marketing.
- Sistemas
de colaboración empresarial.
- Sistema
de apoyo a la toma de decisiones.
- Sistemas
de información ejecutiva.
1. Sistemas de procesamiento de
transacciones
Los TPS (por sus siglas en inglés) son
sistemas empresariales básicos utilizados para el nivel operativo dentro de una
empresa. Constan de un sistema computarizado que realiza y registra
transacciones de rutina diarias para el buen funcionamiento de una compañía. En
pocas palabras, da sostén a las operaciones cotidianas de un negocio.
Componentes del sistema de información
de procesamiento de transacciones:
1. Hardware
2. Software
3. Bases
de datos
4. Telecomunicaciones
5. Personal
Procedimientos con los que se procesan
las transacciones (recopilación, edición, corrección, manipulación y
almacenamiento de datos y la producción de documentos)
Ejemplo de sistema de procesamiento de
transacciones: Despegar
2. Sistemas de información gerencial
También conocidos como sistemas de
información de gestión, apoyan la toma de decisiones estructuradas o
semiestructuradas de los mandos intermedios. Su labor principal es la de
sintetizar la información de rutina de una empresa para asegurar el buen
funcionamiento de los procesos; por ejemplo, los informes semanales, mensuales
o bimestrales.
Hay un sistema de información gerencial
para diferentes departamentos de una compañía. Entre los más utilizados se
encuentran marketing (producto, precio, competencia), producción (rendimiento,
inventarios, proveedores), finanzas (inversiones, mercados, cotizaciones) y
recursos humanos (incentivos, reclutamiento, desempeño).
Componentes del sistema de información
gerencial:
1. Hardware
2. Software
3. Datos
4. Personas
a gerenciar
5. Métodos
(prácticas operativas, modelos e instrucciones que están en los manuales de la
empresa)
Ejemplo de sistema de información
gerencial: Odoo
3. Sistemas de control de procesos de
negocio
Son conocidos como BPM, por sus siglas
en inglés. Este tipo de sistemas monitorizan y controlan procesos industriales
o físicos. Se utilizan sobre todo en industrias petroleras, siderúrgicas o de
generación de energía. Comprenden varios equipos, programas especializados y
procedimientos de operación.
Con un BPM, las empresas adoptan una
serie de pasos o acciones para modificar su forma de trabajar con el fin de
mejorar procesos y facilitar la colaboración con un enfoque centrado en el
cliente.
Componentes del sistema de información
de control de procesos de negocio:
1. Entorno
gráfico de diseño (que modela la secuencia de actividades del proceso o
proyecto)
2. Middleware
(facilita la comunicación del motor con las aplicaciones que se usan en el BPM)
3. Metadatos
(rol, usuario, sistema, servicio)
4. Interfaz
de usuario
5. Monitorización
(para darle seguimiento puntual de procesos y actividades)
6. Reglas
de negocio
7. Simulación
(que permita la ejecución de los procesos en un ambiente controlado)
8. Automatización
9. Ejecución
en la nube
10. Estándares
(para que todos los involucrados conozcan y manejen los mismos códigos,
gráficos, actividades, etc.)
Ejemplo de sistema de control de
procesos de negocio: Quickbooks
4. Sistemas de información de
marketing
Un sistema de información de marketing,
o SIM, es un conjunto de relaciones estructuradas entre personal humano,
máquinas y procedimientos para generar un mejor flujo de información. Estos
datos provienen de fuentes internas y externas y sirven para tomar decisiones
más inteligentes relevantes al área de marketing.
Con su utilización pueden determinarse
principalmente el grado de fiabilidad que tiene una información, el ritmo
actualizado de información y un grado de detalle más específico. Con su proceso
es posible hacer las modificaciones y adaptaciones pertinentes en diferentes
situaciones de la empresa.
Componentes del sistema de información
de marketing:
1. Datos
internos (métricas de actividades y rendimiento interno)
2. Inteligencia
de marketing (información del mercado e industria de fuentes confiables)
3. Investigación
de mercados (datos cualitativos y cuantitativos que se recogen por medio de
herramientas y actividades realizadas directamente por la empresa)
4. Soporte
a las decisiones de marketing (se incluyen también plataformas de análisis de
datos y reportes)
Ejemplo de sistema de información de
marketing: HubSpot
5. Sistemas de colaboración
empresarial
Conocidos como sistemas ERP, son de los
más utilizados en el mercado. Tienen la función de ayudar a los altos
directivos de una empresa a controlar el flujo de información y proporcionar
una vista integral de cada una de las áreas que conforman la compañía para su
mejor gestión y toma de decisiones.
Su tecnología registra e integra los
procesos de negocio y ayuda a las empresas a optimizar sus procesos para tener
una mayor comprensión de la empresa a través de la automatización. Con este
tipo de programas, los líderes de negocio pueden actuar con más rapidez con la
seguridad de que estarán basando sus decisiones en información confiable y en
tiempo real.
Componentes del sistema de información
de colaboración empresarial:
1. Datos
2. Hardware
3. Software
4. Procedimientos
(estandarizados)
Ejemplo de sistema de colaboración
empresarial: Google Workspace
6. Sistema de apoyo a la toma de
decisiones
El DSS, por sus siglas en inglés, es un
sistema basado en ordenadores que es utilizado regularmente por los gerentes
para tomar una decisión con el fin de resolver un problema en la empresa.
Permite formular, calcular, comparar opciones y predecir escenarios para saber
cuál es la mejor alternativa a tomar. Está diseñado para apoyar en situaciones
complejas.
El software utilizado tiene la función
de recolectar información procedente de documentos, personal interno, modelos
comerciales, experiencias o análisis externos. Con estos datos identifica
problemas o desafíos. De igual forma, favorece el incremento de la efectividad
del proceso de forma oportuna.
Componentes del sistema de información
de apoyo a la toma de decisiones:
1. Gestor
de datos (que es la base de conocimiento)
2. Gestor
de modelos
3. Motor
de conocimiento
4. Interfaz
de usuario
5. Usuarios
(cada uno con sus roles: recolectores de datos, asesores, tomador de
decisiones, etc.)
6. Contexto
de decisión (establecido y bien definido)
Ejemplo de sistema de apoyo a la toma
de decisiones: Riskturn
7. Sistemas de información ejecutiva
Los EIS brindan acceso rápido a la
información interna y externa relevante de una empresa. Suelen visualizarse en
formatos gráficos para la presentación de datos básicos, pero detallados, con
la finalidad de que los gerentes o ejecutivos puedan leer la información con
facilidad.
Una de las cualidades más
sobresalientes de este tipo de sistemas es que les dan a los tomadores de
decisiones los indicadores de negocio que afectan al instante. Además, permiten
un análisis detallado de los que no están cumpliendo con las expectativas para
determinar el plan de acción más conveniente.
Componentes del sistema de información
ejecutiva:
1. Interfaz
gráfica
2. Indicadores
de negocio (definidos por la empresa)
3. Integración
de bases de datos (con datamart o data warehouse)
4. Usuarios
5. Acceso
en la nube
Ejemplo de sistema de información
ejecutiva: Microsoft Business Intelligence
Cambios durante el ciclo de vida del sistema
Fase de planificación
El primer paso es diseñar para poder
implementar el sistema. Esta planificación implica los objetivos, la
metodología, el alcance que se espera con el proyecto, la designación de los
roles o responsabilidades, el tiempo para cumplir las actividades, entre otros.
Fase de análisis
Cuando el equipo de proyecto pasa la
planificación y metodología que se pretende emplear, es cuando comienza el
análisis. Aquí se concreta lo que es el ciclo de vida de un sistema y los
requisitos necesarios para la implementación del nuevo proyecto; en otras
palabras, las nuevas partes que se instaurarán en el sistema clásico.
Fases de diseño
En esta fase de diseño se buscan las
soluciones alternativas a las entradas y salidas del sistema, las cuales se
evalúan y se escoge la más efectiva. Todo esto es enseñado a la parte gerencial
de la empresa, de forma que estén enterados de la naturaleza del software (por
ejemplo, si está basado en java, html...), características del hardware, las
tareas relacionadas a tecnología que hay que realizar, entre otros. Básicamente
es la parte gráfica del sistema operativo con el que interactúa el usuario.
Fase de desarrollo
Si hablamos de lo que es el ciclo de
vida de un sistema informático, sin duda esta es la fase que más repercusión
tiene, puesto que es donde el proceso de transformación del sistema antiguo al
sistema nuevo empieza. El cambio a partir de aquí es constante y no deja de
evolucionar hasta que se termina.
Recuerda que en este punto no está
demás aplicar una capacitación a todos los trabajadores y equipo técnico que
van a trabajar con el sistema cuando esté finalizado.
Fase de integración y periodo de prueba
El primero es la respuesta sobre la
implementación y funcionalidad; el periodo de prueba permite evidenciar y
certificar que el sistema funciona y cumple con los requisitos que el cliente
había establecido.
Fase de implementación
Es cuando se instala tanto el hardware
como el software en el lugar correspondiente, creando las aplicaciones
necesarias, realizando las pruebas y capacitaciones finales. Por supuesto, si
estamos hablando de qué es el ciclo de vida de un sistema y hablamos de la
implementación, es fundamental que se puedan pasar los datos antiguos para que
el nuevo sistema comience a trabajar por su cuenta.
En conclusión, estas son las fases
fundamentales para desarrollar un sistema, aunque, para finalizar, no estaría
mal agregar un apartado de mantenimiento, el cual nos ayude a verificar, en el
transcurso del tiempo, que todo marche en orden.
Actividades o tipos
de mantenimientos
Estas actividades van cogidas de la mano con cada una de las siguientes
fases:
- Identificación
& Seguimiento - Incluye las actividades que pertenecen a la
identificación de requisitos de modificación o mantenimiento. Es generado
por el usuario o el mismo sistema puede anunciar a través de mensajes de
error o registros. Aquí, el tipo de mantenimiento también se clasifica.
- Análisis
- La modificación se analizada por su impacto en el sistema, incluyendo
implicaciones de seguridad. Si un probable impacto es severo, se busca una
solución alternativa. Un conjunto de modificaciones requeridas se
materializa entonces en requisitos del sistema. El coste del
mantenimiento/modificación se analiza y se concluye con una estimación.
- Diseño
- Nuevos módulos, que necesitan ser modificados o reemplazados, se diseñan
en contra de los requisitos que ya se han fijado en en la fase previa. Las
pruebas de casos se han creado para la validación y la verificación.
- Implementación
- Los nuevos módulos son codificados con la ayuda del diseño estructurado
creado en la fase de diseño. Cada programador debe hacer pruebas unitarias
en paralelo.
- Evaluación
del sistema - Las pruebas de integración se hace entre nuevos módulos
creados. Las pruebas de integración también se llevan a cabo entre módulos
nuevos y el sistema. Finalmente el sistema se evalua en su conjunto,
siguiendo procedimientos evaluativos reaccionarios.
- Pruebas
de aceptación - Después de evaluar el sistema de manera interna, se evalúa
la acceptación con la ayuda de los consumidores. Si en esta etapa, los
consumidores se quejan de algún asunto, son redirigidos o se les notifica
que se dirijan a la siguiente repetición.
- Entrega
- Después del test de aceptación, el sistema se implementa en la totalidad
de la organización con pequeños paquetes de actualizaciones o con la
instalación nueva del sistema. La evaluación final se da con el consumidor
final después de entregar el software.
- Se
provee formación si se requiere, además de una copia en papel del manual
del usuario.
- Gestión de mantenimiento - La gestión de la configuración es una parte esencial del mantenimiento del sistema. Es auxiliado con herramientas de control de versiones, semi-versiones o Gestión de parches.
Problemas de mantenimientos
Los principales problemas de
mantenimiento del software son administrativos y técnicos. Las cuestiones clave
de la gestión son: la alineación con las prioridades del cliente, la dotación
de personal, qué organización se encarga del mantenimiento y la estimación de
los costes. Las cuestiones técnicas clave son: comprensión limitada, análisis
de impacto, pruebas, medición de la mantenibilidad.
Resumen
El mantenimiento de software es el proceso de cambiar, modificar y actualizar el software para satisfacer las necesidades del cliente. El mantenimiento del software se realiza después del lanzamiento del producto por varias razones, que incluyen la mejora del software en general, la corrección de problemas o errores, mejorar el rendimiento y más.
El mantenimiento de software es una parte natural del SDLC (ciclo de vida del desarrollo de software). Los desarrolladores de software no pueden darse el lujo de lanzar un producto y dejar que se ejecute, deben estar constantemente atentos a corregir y mejorar su software para seguir siendo competitivos y relevantes.
Cada uno de los tipos diferentes de mantenimiento de software se realiza por diferentes razones y propósitos. Es posible que una determinada pieza de software deba someterse a uno, dos o todos los tipos de mantenimiento a lo largo de su vida útil.
Los tipos de mantenimiento son:
- Mantenimiento correctivo de software
- Mantenimiento preventivo de software
- Mantenimiento perfectivo de software
- Mantenimiento adaptable de software
- Mantenimiento evolutivo de software
- Mantenimiento predictivo de software
El proceso de mantenimiento de software implica varias técnicas de mantenimiento de software que pueden cambiar según el tipo de mantenimiento y el plan de mantenimiento de software implementado.



