Está en la página 1de 8

Contenido

Definición de mantenimiento de software.........................................................................................1


Mantenimiento Preventivo............................................................................................................1
Mantenimiento Correctivo.............................................................................................................1
Mantenimiento Adaptativo............................................................................................................2
Mantenimiento Perfectivo.............................................................................................................2
Pruebas..............................................................................................................................................3
Técnicas de pruebas.......................................................................................................................3
Actividades de mantenimiento..........................................................................................................4
Problemas de mantenimiento............................................................................................................4
Tenemos los problemas de código Heredado................................................................................4
Otras problemáticas.......................................................................................................................5
Estándares para el mantenimiento del software...............................................................................5
Estándar ISO 14764........................................................................................................................6
Estándar IEEE 1219.........................................................................................................................7

Definición de mantenimiento de software


Existen varias definiciones de mantenimiento de software definidas por El estándar IEEE 1219,
estándar ISO 12207 y Pressman.

Pero definen en común que el mantenimiento de software se realiza cuando hay cambios en este
y pueden ser debido a deferentes fuentes como defecto, fallo, una mejora, adaptación, etc. Todo
con el fin de tener un producto de alta calidad para el servicio de su fin.

Tipos de manteamiento

Mantenimiento Preventivo
Este tipo de mantenimiento se realiza cambios en el software para mejorar las propiedades, esto
sin realizar cambios en su funcionalidad. Como por ejemplo la integración de nuevo código para
comprobar la validez de los datos, organizar el código dado un estándar, etc.

Mantenimiento Correctivo
tiene por objetivo localizar y eliminar los posibles defectos de los programas.

Origen de los defectos del software:

 Interfaz de hardware
 Interfaz de software
 Interfaz de usuario
 Lógica
 Manejo de datos
 Estándares
 Especificación/Diseño
 Comprobación de errores

un defecto abarca todo el proceso productivo del desarrollo de software y los artefactos que este
produce, es decir que los defectos se inyectan en las diferentes etapas del Ciclo de Vida del
Desarrollo de software y no solo en la fase de desarrollo. Un defecto pude ser ingresado por
ejemplo en un manual de usuario que especifica una funcionalidad no disponible, esto finalmente
sigue siendo un defecto del software si la miramos no solo como el programa que usa el cliente
sino como todo un paquete que incluye varios componentes, entre ellos la documentación.

La siguiente lista enumera algunas de las causas que generan defectos:

 Problemas de comunicación Cliente - Proveedor


 Definición incorrecta o ausencia de los requerimientos
 Desviación deliberada de los requerimientos (por presión del tiempo, avances sin
autorización)
 Errores de Diseño
 Errores de codificación
 Incumplimiento de estándares
 Pruebas insuficientes
 Errores de documentación

La mayoría de los defectos se producen en etapas tempranas del proceso de desarrollo, por lo que
en estas etapas debe existir una estructura robusta de control y no solo en la verificación y
validación del producto final.

Mantenimiento Adaptativo
Como su nombre lo indica este mantenimiento consiste en la modificación de un programa debido
a cambios en el entorno en el cual se ejecuta, estos pueden ser de hardware o software. por
ejemplo, cambio en las configuraciones del hardware, software de base, gestores de base de
datos, comunicaciones, etc. Estos cambios pueden ser muy pequeño o una completa
reestructuración del programa.

Los cambios en el entorno software pueden ser de dos clases:

En el entorno de los datos, por ejemplo, al dejar de trabajar con un sistema de ficheros clásico y
sustituirlo por un sistema de gestión de bases de datos relacionales.

En el entorno de los procesos, por ejemplo, migrando a una nueva plataforma de desarrollo con
componentes distribuidos, Java, ActiveX, etc.

Este tipo de mantenimiento es cada vez más usado debido a la integración de nuevas tecnologías y
actualización de los sistemas operativos.
Mantenimiento Perfectivo
consiste en la modificación en la especificación, normalmente debidos a cambios en los requisitos
de un producto software. realiza acciones para mejorar la calidad interna de los sistemas en
cualquiera de sus aspectos: restructuración de código, definición más clara del sistema y
optimización del rendimiento y eficiencia.

Desde algo tan simple como cambiar el formato de impresión de un informe, hasta la
incorporación de un nuevo módulo aplicativo

Dentro de este tenemos al mantenimiento Evolutivo.

Que Incorporaciones, modificaciones y eliminaciones necesarias en un producto de software para


cubrir la expansión o cambio en los requerimientos del usuario.

Algunos autores dividen este tipo de mantenimiento en dos:

Mantenimiento de Ampliación: orientado a la incorporación de nuevas funcionalidades.

Mantenimiento de Eficiencia: que busca la mejora de la eficiencia de ejecución.

Entre mayor sea el éxito tenga un programa y es utilizado por muchos usuarios, mayor será el uso
de este software y aumenta la utilización de este mantenimiento. más peticiones de los usuarios
se reciben demandando nuevas funcionalidades o mejoras en las existentes.

Pruebas
Existen diferentes definiciones dadas por diferentes autores, pero nos quedares con la definida
por Myers, que define la prueba como: “La prueba es la ejecución de un programa con la intención
de encontrar errores”. Debido a que es mejor en centrarse en buscar defectos y no buscar la
perfección no existe programas sin errores.

El objetivo de las pruebas es aportar calidad al producto que se esté desarrollando.

¿Por qué es impórtate realizar las pruebas?

Por ejemplo, un programa bancario tiene un defecto en su seguridad. Si un hacker negro ingresa y
realiza movimientos bancarios, modifica, elimina y sus trae información. Esto genera al banco
grandes pérdidas tanto económicas como de prestigio. Por ende, existen hackers blancos que
realizan pruebas de ingreso para evitar este tipo de escenarios. Cada recalcar que se deben
realizar pruebas antes y durante del lanzamiento al público de un programa.

Técnicas de pruebas
Para encontrar errores de código, dos de las técnicas mas usadas son de caja blanca y caja negra.

Las Pruebas de Caja Negra, es una técnica de pruebas de software en la cual la funcionalidad se
verifica sin tomar en cuenta la estructura interna de código, detalles de implementación o
escenarios de ejecución internos en el software.
En las pruebas de caja negra, nos enfocamos solamente en las entradas y salidas del sistema, sin
preocuparnos en tener conocimiento de la estructura interna del programa de software. Para
obtener el detalle de cuáles deben ser esas entradas y salidas, nos basamos en los requerimientos
de software y especificaciones funcionales.

Las pruebas de caja blanca, también como Técnicas de Caja Transparente o de Cristal.

Este método se centra en cómo diseñar los casos de prueba atendiendo al comportamiento
interno y la estructura del programa. Se examina así la lógica interna del programa sin considerar
los aspectos de rendimiento.

El objetivo de la técnica es diseñar casos de prueba para que se ejecuten, al menos una vez, todas
las sentencias del programa, y todas las condiciones tanto en su vertiente verdadera como falsa.

A continuación, se presentan algunas características de una buena prueba:

 Una buena prueba ha de tener una alta probabilidad de encontrar un fallo. Para alcanzar
este objetivo el responsable de la prueba debe entender el software e intentar desarrollar
una imagen mental de cómo podría fallar.
 Una buena prueba debe centrarse en dos objetivos: 1) probar si el software no hace lo que
debe hacer, y 2) probar si el software hace lo que no debe hacer. − Una buena prueba no
debe ser redundante. El tiempo y los recursos son limitados, así que todas las pruebas
deberían tener un propósito diferente.
 Una buena prueba debería ser la “mejor de la cosecha”. Esto es, se debería emplear la
prueba que tenga la más alta probabilidad de descubrir una clase entera de errores.
 Una buena prueba no debería ser ni demasiado sencilla ni demasiado compleja, pero si se
quieren combinar varias pruebas a la vez se pueden enmascarar errores, por lo que en
general, cada prueba debería realizarse separadamente.

Actividades de mantenimiento
Basili et al. [1996] identifican las siguientes once actividades, que se realizan con cada
modificación del software:

1. Análisis de impacto y de costes/beneficios: se dedica esta actividad a analizar diferentes


alternativas de implementación y/o a comprobar su impacto en la planificación, coste y
facilidad de operación.
2. Comprensión del cambio: puede consistir en localizar el error y determinar su causa, o en
comprender los requisitos de una mejora solicitada.
3. Diseño del cambio: se refiere al diseño propuesto para el cambio, pudiéndose incluir un
rediseño del sistema.
4. Codificación y pruebas unitarias: se codifica y prueba el funcionamiento de cada
componente modificado.
5. Inspección, certificación y consultoría: esta actividad se dedica a inspeccionar el cambio,
comprobar otros diseños, reuniones de inspección, etc.
6. Pruebas de integración: se refiere a comprobar la integración de los componentes
modificados con el resto del sistema.
7. Pruebas de aceptación: en esta actividad, el usuario comprueba, junto al personal
encargado del mantenimiento, la adecuación del cambio a sus necesidades.
8. Pruebas de regresión: en esta actividad se somete el software modificado a casos de
pruebas previamente almacenados y por los que ya pasó.
9. Documentación del sistema: se revisa y reescribe, en caso necesario, la documentación del
sistema para que se ajuste al producto software ya modificado.
10. Otra documentación (del usuario, por ejemplo): se revisa y reescribe, en caso necesario,
los diferentes manuales de usuario y otra documentación, excepto la documentación del
sistema.
11. Otras actividades, como las dedicadas a la gestión del proyecto de mantenimiento.

Se tiene que tener en cuenta estas actividades a la hora de realizar el mantenimiento por que
puede anular el objetivo de este y generando nuevos defectos.

Problemas de mantenimiento
Tenemos los problemas de código Heredado
la mayor parte de este software está formado por código antiguo “heredado”, código de
aplicaciones desarrolladas hace algún tiempo, con técnicas y herramientas en desuso y
probablemente por personas que ya no pertenecen al colectivo responsable en este momento del
mantenimiento del software concreto.

Los problemas específicos del mantenimiento de código heredado han sido caracterizados en las
llamadas Leyes del Mantenimiento del Software.

Continuidad del Cambio: los programas deben de cambiar con el entorno si no lo hacen se vuelven
obsoletos.

Incremento de la Complejidad: a la medida que se realicen cambios en el programa, su


complejidad ira incrementando, teniendo en cuenta que no se tomen medidas. Esto sucede
cuando un programa no puede o quieren usar técnicas de ingeniería.

Evolución del Programa: La evolución de un programa es un proceso autorregulado. Las medidas


de determinadas propiedades (tamaño, tiempo entre versiones y número de errores) revelan
estadísticamente determinadas tendencias e invariantes.

Conservación de la Estabilidad Organizacional : A lo largo del tiempo de vida de un programa, la


carga que supone el desarrollo de dicho programa es aproximadamente constante e
independiente de los recursos dedicados.

Conservación de la Familiaridad: Durante todo el tiempo de vida de un sistema, el incremento en


el número de cambios incluidos con cada versión (release) es aproximadamente constante.
Otras problemáticas
En muchas ocasiones el mantenimiento es realizado por el criterio del programador. (esta opinión
también es compartida por Pressman [1993], quien afirma que “raramente existen organizaciones
formales, de modo que el mantenimiento se lleva a cabo como se pueda”). Prácticamente todas
las metodologías se han centrado en el desarrollo de nuevos sistemas y no han tenido en cuenta la
importancia del mantenimiento. Por esta razón, no existen o son poco conocidos los métodos,
técnicas y herramientas que proporcionan una solución global al problema del mantenimiento.

Estándares para el mantenimiento del software 


Es un análisis automatizado de las aplicaciones es decisivo para reducir costes. Los estándares para
los procesos del ciclo de vida del software permiten conectar y asociar el proceso de
mantenimiento con los demás procesos existentes en el software.

Estándares de Calidad de software

Existen diversos estándares que tienen una relación directa o indirecta con el mantenimiento del
software:

 Para los procesos del ciclo de vida del software: IEEE 1074 e ISO 12207.
 Para la calidad del software y sus métricas: IEEE 1061 e ISO 9126.
 Para el mantenimiento del software: IEEE 1219 e ISO/IEC 14764.

Los estándares de calidad del software tienen gran importancia para el mantenimiento del mismo,
debido a que los factores de calidad (especialmente la complejidad y la mantenibilidad) inciden de
forma directa sobre el esfuerzo de mantenimiento necesario.

Estándar ISO 14764


Este es el estándar específico sobre mantenimiento del software publicado por la ISO en 1998. El
estándar internacional ISO 14764 presenta los requerimientos para el proceso de mantenimiento
del software, contiene las actividades y tareas del mantenedor, proporciona una guía que explica
cómo llevar a cabo el proceso de mantenimiento y establece definiciones para los distintos tipos
de mantenimiento. La guía es aplicable a la planificación, ejecución y control, mantenimiento,
revisión y evaluación del proceso de mantenimiento.

La norma propone un plan que forma parte de la estrategia de mantenimiento, dicho plan es
usado para guiar a los mantenedores de software, explica la necesidad de realizar mantenimiento,
refiriéndose a quién efectúa ese trabajo y cómo se hace, contiene la documentación y
responsabilidades de todos los involucrados. Además, debe incluir qué recursos hay disponibles
para el mantenimiento, dónde se hace y cuándo comienza. Una vez definido dicho plan, el
estándar propone establecer una guía para desarrollar el mantenimiento.

Requisitos de la Guía

Los requisitos que debe de contener esta guía para este estándar son:

 La descripción del sistema al que se le brinda soporte, aquí se especifican todos los
detalles del sistema a mantener.
 Identificación del estado inicial del software, para saber cuáles son los cambios nuevos
realizados.
 Descripción del soporte para facilitar el comienzo del desarrollo del mantenimiento del
software.
 Identificación de la organización que debe hacer el soporte o mantenimiento para
contemplar el objetivo del mantenimiento en el proceso de desarrollo del software.
 Descripción de cualquier acuerdo entre cliente y vendedor, se debe tener claro lo que
quiere el cliente por escrito, de este modo el vendedor sabe lo que tiene que hacer para
satisfacer al cliente.

Actividades de Mantenimiento

Estos son los aspectos fundamentales en cuanto a la estrategia de mantenimiento que propone el
estándar. Las actividades que comprende el proceso de mantenimiento son:

 Implementación del proceso.


 Análisis de modificaciones y problemas.
 Implementación de modificaciones.
 Revisión y aceptación del mantenimiento.
 Migración.
 Retiro.

Básicamente éste es el enfoque que brinda la norma ISO 14764 para realizar la actividad de
mantenimiento de software. Esta norma identifica adecuadamente qué hacer en las actividades y
tareas a desarrollar en el proceso de mantenimiento.

Estándar IEEE 1219


El IEEE 1219 Standard for Software Maintenance, hasta 1998 es el único estándar que
íntegramente se ocupa del proceso de mantenimiento del software. Describe un proceso iterativo
para la gestión y ejecución de las actividades del proceso. Aunque sólo menciona las fases de
desarrollo y de producción de un producto de software, éstas cubren todo su ciclo de vida,
cualquiera que sea su tamaño o complejidad.

Fases de la Norma

Esta norma define cambios en un producto de software a través de un proceso de mantenimiento


dividido en fases, el proceso es iterativo y en cascada, con una gran semejanza al ciclo de vida del
desarrollo clásico, como se menciona a continuación:

 Identificación del problema.


 Análisis.
 Diseño.
 Implementación.
 Pruebas del sistema.
 Pruebas de aceptación.
 Puesta en producción o liberación de versión.
Dentro de cada una de estas fases, el estándar define una serie de procedimientos que se han de
llevar a cabo y con los que se identifica la documentación, las personas y productos de software
que intervienen.

Esta norma plantea un proceso de mantenimiento con gran nivel de detalle y documentación a
llevar para su desarrollo, haciéndolo muy útil y necesario sobre todo en los lugares que se realiza
mantenimiento del software, aquí es fundamental la traza que marca el estado y evolución de
cada una de las fases pero pudiera resultar excesivo para pequeñas organizaciones que deseen
aplicar dicho estándar en el mantenimiento de sus sistemas internos.

También podría gustarte