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.