Está en la página 1de 7

Asignatura Datos del estudiante Fecha

PRUEBAS Y Apellidos: PAJARO PAJARO


MANTENIMIENTO 11/05/2021
DE SOFTWARE Nombre: GERVIS ANTONIO

Actividad
Protocolo individual de la unidad n°1:

Análisis y síntesis: 
Síntesis e interpretación personal de los temas vistos en la unidad
MANTENIMIENTO DE SOFTWARE

En la ingeniería 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.

El mantenimiento del software es también una de las fases del ciclo de vida del desarrollo del
sistema (SDLC), que se aplica al desarrollo de software. La fase de mantenimiento es la fase
que sigue al despliegue (implementación) del software en el campo.

Una percepción común del mantenimiento es que se trata simplemente de la corrección de


defectos. Sin embargo, un estudio indicó que la mayoría, más del 80%, del esfuerzo de
mantenimiento se utiliza para acciones no correctivas (Pigosky 1997). Esta percepción se
perpetúa cuando los usuarios envían informes de problemas que en realidad son mejoras en la
funcionalidad del sistema [cita requerida].

El mantenimiento del software y la evolución de los sistemas fue abordado por primera vez por
Meir M. Lehman en 1969. Durante un período de veinte años, su investigación condujo a la
formulación de las leyes de Lehman (Lehman 1997). Las principales conclusiones de su
investigación incluyen que el mantenimiento es realmente un desarrollo evolutivo y que las
decisiones de mantenimiento son ayudadas por la comprensión de lo que sucede con los
sistemas (y el software) a lo largo del tiempo. Lehman demostró que los sistemas siguen
evolucionando con el tiempo. A medida que evolucionan, se vuelven más complejos a menos
que se tomen algunas medidas como la refactorización del código para reducir la complejidad.

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.

El mantenimiento de software es una actividad muy amplia que incluye corrección de errores,
mejoras de capacidad, eliminación de funciones obsoletas y optimización. Debido a que el
cambio es inevitable, se deben desarrollar mecanismos de evaluación, control y modificación.
Cualquier trabajo realizado para cambiar el software después de que esté en funcionamiento se
considera trabajo de mantenimiento. El propósito es preservar el valor del software a lo largo del
tiempo. El valor puede mejorarse ampliando la base de clientes, cumpliendo requisitos
adicionales, siendo más fácil de usar, más eficiente y empleando más tecnología nueva. El
mantenimiento puede cubrir 20 años, mientras que el desarrollo puede ser entre 1 y 2 años.
Asignatura Datos del estudiante Fecha
PRUEBAS Y Apellidos: PAJARO PAJARO
MANTENIMIENTO 11/05/2021
DE SOFTWARE Nombre: GERVIS ANTONIO

TIPOS DE MANTENIMIENTO DE SOFTWARE


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.
 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.
 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.
TESTING DE SOFTWARE
El Testing de Software es la realización de pruebas sobre el mismo, con el fin de obtener
información acerca de su calidad.
Este proceso tiene varios objetivos bien definidos, como son:
 Encontrar defectos o bugs con el finde ser subsanados.
 Eso nos va a permitir aumentar la confianza en el nivel de calidad del software. Aunque
por muchas pruebas que realicemos no vamos a poder afirmar al 100% que ese
software no contiene errores, a base de hacer pruebas y subsanar errores, aumentamos
nuestra confianza en el mismo.
 Esta calidad nos va a facilitar la toma de decisiones. Por ejemplo, si tenemos una
entrega que debe pasar a producción, si tiene muchos defectos y la calidad no es buena,
a lo mejor debemos posponerlo y subsanar primero los errores, pero si la calidad es
buena y no tiene errores, lo pasamos a producción.
 Evitar la aparición de nuevos efectos, ya que, si aumento la calidad de mi software y
hacemos las cosas bien, es menos probable que aparezcan nuevos defectos que si
Asignatura Datos del estudiante Fecha
PRUEBAS Y Apellidos: PAJARO PAJARO
MANTENIMIENTO 11/05/2021
DE SOFTWARE Nombre: GERVIS ANTONIO

hago las cosas de cualquier forma y con una calidad baja.


Tipos de pruebas
En cuanto a los tipos de pruebas que se pueden realizar, pueden ser:

Según si ejecutamos o no el código, tenemos pruebas estáticas y dinámicas.


Las estáticas son aquellas que se hacen sin necesidad de ejecutar el código. Un ejemplo
de este tipo de pruebas puede ser la revisión estática de código, es decir, analizar el código
fuente de una aplicación en busca de defectos, de algún tipo de patrones incorrectos y demás.
Las pruebas dinámicas, en cambio, son aquellas en las cuales tengo que ejecutar el
software para poder probarlo. Por ejemplo, unas pruebas funcionales, en las que tenemos la
aplicación en marcha y accedemos a la misma para realizar una serie de pruebas.

2.2.· Según el uso de herramientas, tenemos las pruebas manuales o automáticas.


Las pruebas manuales son aquellas en las que se prueba una navegación normal , por
ejemplo, o se realiza una prueba funcional, como, por ejemplo, acceder a la aplicación y pulsar
los botones para comprobar si funciona o no.
En las pruebas automáticas se usa una herramienta para realizar estas pruebas, por
ejemplo, una prueba automatizada, en la que grabo una navegación y luego ejecuto esa prueba
de forma automática desde la herramienta.

Según lo que verifican, existen varios tipos.


 Las pruebas funcionales, que a su vez existen varios tipos, de las que las más
importantes son las unitarias, de integración, de aceptación y de regresión.
o Las unitarias son pruebas para trozos de código concretos para ver que
funciona y que no tiene errores.
o Las de integración, que son pruebas a todos los componentes juntos, para ver
cómo interactúan entre ellos y comprobar que todo vaya bien.
o Las de aceptación, que las suele hacer el usuario. Puede que un software no
contenga errores, que funcione bien, pero tal vez no hace lo que debería hacer,
no está haciendo lo que el usuario quería que hiciese.
o Las pruebas de regresión, que se realizan cuando hemos introducido cambios,
y hay alguna parte que no me ha tocado, pero no sabemos si al realizar los
cambios hemos introducido algún defecto en alguna parte que ya funcionaba.
Este tipo de pruebas suele ser muy común que se automaticen.
 Las pruebas no funcionales, que por el contrario son aquellas que no se basan en
aspecto funciona. Hay varios tipos:
o De seguridad, el famoso hacking ético, en las que se buscan vulnerabilidades
de seguridad.
o De rendimiento, que permiten conocer el comportamiento del software ante una
carga determinada, cómo responde y cómo se recupera ante fallos.
o De usabilidad, que se emplean para saber cómo de usable es la aplicación,
pero sin entrar en aspectos funcionales. Por ejemplo, si tiene un menú que hace
que la navegación sea intuitiva, si tiene una ayuda que explica el funcionamiento
de la aplicación, etc.
o De accesibilidad, que van más orientadas a que se visualicen bien los
elementos, a que si hay sonido tenga también alguna alternativa para personas
Asignatura Datos del estudiante Fecha
PRUEBAS Y Apellidos: PAJARO PAJARO
MANTENIMIENTO 11/05/2021
DE SOFTWARE Nombre: GERVIS ANTONIO

con alguna discapacidad visual o auditiva, etc.

CICLO DE VIDA DEL SOFTWARE

El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial
hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se
requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software
cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se
asegura de que los métodos utilizados son apropiados.

Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se
detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se
detecten lo antes posible y, por lo tanto, permite a los desarrolladores concentrarse en la calidad
del software, en los plazos de implementación y en los costos asociados.

El ciclo de vida básico de un software consta de los siguientes procedimientos:

Definición de objetivos: define la finalidad del proyecto y su papel en la estrategia global.

Análisis de los requisitos y su viabilidad: recopila, examina y formula los requisitos del cliente y
examina cualquier restricción que se pueda aplicar.

Diseño general: requisitos generales de la arquitectura de la aplicación.

Diseño en detalle: definición precisa de cada subconjunto de la aplicación.

Programación (programación e implementación): implementación de un lenguaje de


programación para crear las funciones definidas durante la etapa de diseño.

Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se
implementaron de acuerdo con las especificaciones.

Integración: garantiza que los diferentes módulos se integren con la aplicación. Este es el
propósito de la prueba de integración que está cuidadosamente documentada.

Prueba beta (o validación): garantiza que el software cumple con las especificaciones originales.

Documentación: sirve para documentar información necesaria para los usuarios del software y
para desarrollos futuros.

Implementación

Mantenimiento: comprende todos los procedimientos correctivos (mantenimiento correctivo) y las


actualizaciones secundarias del software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una
aplicación dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de
desarrolladores.
Asignatura Datos del estudiante Fecha
PRUEBAS Y Apellidos: PAJARO PAJARO
MANTENIMIENTO 11/05/2021
DE SOFTWARE Nombre: GERVIS ANTONIO

PROCESO DE MANTENIMIENTO DE SOFTWARE


El proceso de mantenimiento contiene actividades y medidas para el encargado del
mantenimiento. Este proceso se activa cuando:
 Los procesos primarios de Adquisición y Entrega pueden iniciar la actividad de
Implementación por medio de un acuerdo o contrato.
 El proceso de operación principal puede iniciar el proceso de mantenimiento del
software enviando una solicitud de modificación o un informe de problemas.
 Los procesos de soporte de documentación, gestión de configuración, control de calidad,
verificación, revisión conjunta, auditoría y resolución de problemas se utilizan en el
proceso de mantenimiento del software.
 La gestión, la infraestructura y la formación son procesos que el encargado del
mantenimiento emplea al iniciar un proyecto de mantenimiento.
 El proceso de mejora se centra en mejorar el proceso de mantenimiento para que la
adaptación sea apropiada para eventos no rutinarios como el mantenimiento de
emergencia.
El proceso del ciclo de vida del Mantenimiento de Software comienza con la implementación de
este proceso donde se planifica el mantenimiento y termina con la retirada del producto.
 Incluye la modificación del código y la documentación debido a un problema o a la
necesidad de mantenimiento.
 El objetivo del Proceso de Mantenimiento es modificar un producto de software existente
preservando su integridad.
 Deben tenerse en cuenta los requisitos y restricciones implícitos impuestos al promotor
original.
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.
Asignatura Datos del estudiante Fecha
PRUEBAS Y Apellidos: PAJARO PAJARO
MANTENIMIENTO 11/05/2021
DE SOFTWARE Nombre: GERVIS ANTONIO

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.
Asignatura Datos del estudiante Fecha
PRUEBAS Y Apellidos: PAJARO PAJARO
MANTENIMIENTO 11/05/2021
DE SOFTWARE Nombre: GERVIS ANTONIO

 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.

Discusión: 
Dudas, desacuerdos, discusiones

También podría gustarte