Los principales factores que afectan la carga de trabajo de mantenimiento son:
1. Las modificaciones realizadas a los productos de software durante la fase de operación/mantenimiento del software se denominan mantenimiento.
2. Existen tres tipos de mantenimiento:
(1), mantenimiento correctivo
(2), mantenimiento adaptativo
( 3) Mantenimiento y perfección
Factores que afectan la carga de trabajo de mantenimiento:
1.
Estrategia de mantenimiento del software:
(1), Mantenimiento correctivo
El propósito es corregir los errores restantes que no fueron descubiertos durante el ciclo de desarrollo y corregirlos, representando aproximadamente el 20% del volumen total de mantenimiento.
(2) Mantenimiento adaptativo
se refiere a un tipo de mantenimiento realizado por el software para adaptarse a los cambios en el entorno operativo, que incluye:
① Debido a cambios en el hardware o cambios causados por cambios en el software de soporte
②. Portar el software a nuevas máquinas
③.
(3), Mantenimiento de la perfección
(3), Mantenimiento de la perfección
Se refiere a la mejora y mantenimiento del software. p>
Se refiere al proceso de modificación del software para mejorar el rendimiento y la mantenibilidad del software. Es la parte más importante del mantenimiento del software y representa aproximadamente el 50%.
(4) El mantenimiento preventivo
fue propuesto por primera vez por J. Miuer como una actividad de mantenimiento de software para sentar una mejor base para futuras modificaciones. Este tipo de mantenimiento es relativamente menor.
Costes de mantenimiento:
Los costos tangibles de mantenimiento del software son la cantidad gastada, mientras que los costos intangibles de mantenimiento tienen un mayor impacto.
Características del mantenimiento de software:
1. Mantenimiento no estructurado;
2. Mantenimiento estructurado;
Mantenibilidad del software:
1. Factores que afectan la mantenibilidad.
1. Además de los factores relacionados con los métodos de desarrollo, los siguientes factores también tendrán un impacto importante en la capacidad de mantenimiento:
(1) Si los diseñadores de software se han sometido a un estricto trabajo de estandarización.
(2) Si se utilizan lenguajes de programación convencionales
(3) Si se utilizan sistemas operativos convencionales
(4) Si existen estructuras de documentos estandarizadas; y mecanismo de formación de documentos;
(5) Si se guardan datos de prueba estandarizados.
Medición de la mantenibilidad del software
1. Comprensibilidad
Comprensibilidad significa que las personas entienden el programa leyendo el código fuente y los documentos relacionados. Funcionalidad y facilidad de implementación. Un programa comprensible debe tener las siguientes características: modularidad (los módulos están bien estructurados, funcionalmente completos y concisos), consistente en estilo (el estilo de codificación es consistente con el estilo de diseño), no usar código esquivo o ambiguo y usar nombres de datos significativos. y nombre del proceso, estructuración, integridad (verificación de integridad de los datos de entrada), etc.
2. Confiabilidad
La confiabilidad indica la probabilidad de que el programa se ejecute correctamente de acuerdo con los requisitos del usuario y los objetivos de diseño dentro de un período de tiempo determinado. En cuanto a la confiabilidad, las principales métricas son el tiempo medio hasta la falla (MTTF), el tiempo medio hasta la reparación (MTTR) y la disponibilidad A.
Existen dos categorías principales de métodos de medición de la confiabilidad:
(1) Estadísticas basadas en errores del programa. Predicción de confiabilidad. Un enfoque común es utilizar algún modelo de confiabilidad que prediga el MTTF en función de la cantidad de errores encontrados y eliminados durante las pruebas del programa.
(2) Predecir la confiabilidad del software en función de la complejidad del programa. La premisa para utilizar la complejidad del programa para predecir la confiabilidad es que la confiabilidad está relacionada con la complejidad.
3. Comprobabilidad
(1) La comprobabilidad indica la dificultad de demostrar la corrección de un programa. Cuanto más sencillo sea el programa, más fácil será demostrar su exactitud. Los casos de prueba diseñados correctamente dependen de una comprensión profunda del programa. Por lo tanto, un programa comprobable debe ser comprensible, confiable y simple.
(2) Para los módulos del programa, la capacidad de prueba se puede medir por la complejidad del programa. Cuanto mayor sea la complejidad cíclica de un programa, más rutas tendrá.
Por lo tanto, resulta más difícil probar completamente el programa.
4. Modificabilidad
(1) La modificabilidad indica si el programa es fácil de modificar. Un programa modificable debe ser comprensible, versátil, flexible y sencillo. Entre ellos, la versatilidad significa que el programa se puede adaptar a diversos cambios funcionales sin modificaciones. La flexibilidad se refiere a la facilidad con la que se puede modificar un programa.
(2). Un método cuantitativo para probar la modificabilidad son los ejercicios de modificación. La idea básica es evaluar la dificultad de las modificaciones realizando algunas modificaciones simples
.
5. Portabilidad
La portabilidad se refiere a la posibilidad de que un programa pueda transferirse a un nuevo entorno informático, o que el programa pueda ejecutarse fácil y eficientemente en varios entornos informáticos. facilidad. Un programa portátil debe estar bien estructurado, ser flexible y no depender de las capacidades de una computadora o sistema operativo en particular.
6. Eficiencia
La eficiencia indica el grado en que un programa realiza su función prevista sin desperdiciar recursos de la máquina. Estos recursos de la máquina incluyen capacidad de memoria, capacidad de memoria externa, capacidad de canal y tiempo de ejecución.
7. Usabilidad
Desde la perspectiva del usuario, la usabilidad se define como el grado en que un programa es conveniente, útil y fácil de usar. Los programas utilizables deben ser fáciles de usar, permitir a los usuarios cometer errores y cambios y causar la menor confusión posible.
8. Medidas indirectas de mantenibilidad
La mantenibilidad se estima indirectamente a través de atributos medibles de las actividades de mantenimiento. Gilb propuso una medida de mantenibilidad relacionada con el esfuerzo de mantenimiento que los gerentes pueden utilizar para comprender la efectividad de las nuevas tecnologías y herramientas:
(1) Tiempo para aprender sobre los problemas;
p>( 2) Tiempo para retrasos administrativos;
(3) Tiempo para recolectar herramientas de mantenimiento;
(4) Tiempo para analizar problemas;
(5) Tiempo para analizar el problema;
(6) Tiempo para recolectar herramientas de mantenimiento;
(7) Tiempo para analizar el problema;
(8) Tiempo para analizar el problema. p>
(5) Tiempo para cambiar especificaciones;
(6) Tiempo para correcciones o modificaciones específicas
(7) Tiempo para pruebas parciales; /p>
(8) Tiempo general de prueba;
(9) Tiempo de revisión de mantenimiento
(10) Tiempo general de recuperación;
Métodos para mejorar la mantenibilidad
La mantenibilidad debe considerarse durante cada revisión de software. Mejorar la mantenibilidad del software es de importancia decisiva para extender el tiempo de supervivencia del software, por lo que es muy importante considerar cómo mejorar la mantenibilidad del software. Para ello es necesario abordar las siguientes cuestiones.
1. Establecer objetivos y prioridades claros de calidad del software;
Un programa mantenible debe ser comprensible, confiable, comprobable, modificable y portátil, eficiente y disponible.
2. Utilizar tecnología y herramientas para mejorar la calidad del software;
(1) Programación modular y estructurada.
La modularización es uno de los métodos efectivos para mejorar la calidad del software y reducir costos en el proceso de desarrollo de software. También es una tecnología efectiva para mejorar la mantenibilidad.
La programación estructurada no solo estandariza la estructura de los módulos, sino que también estandariza la interacción entre módulos, impulsando así la modularización un paso adelante. Se puede lograr una buena estructura de programa utilizando programación estructurada.
(2) Utilizar tecnología de programación estructurada para mejorar la mantenibilidad de los sistemas existentes.
①. Uso de repuestos;
②. Utilizar herramientas para reconstruir estructuras automáticamente y reformatearlas (tecnología de actualización de estructuras). documentación del programa;
④. Utilizar métodos de programación estructurados para implementar nuevos subsistemas.
⑤ Utilizar las ideas de programación de grupos estructurados y herramientas de documentos estructurados para construir y mantener procesos.
3. Realizar revisiones explícitas de control de calidad
Las revisiones de control de calidad son una técnica eficaz para obtener y mantener la calidad del software.
4. Inspección de aceptación.
La verificación de aceptación es un punto de control especial. Es la última verificación antes de la entrega y la última oportunidad para garantizar la mantenibilidad antes de que el software se ponga en funcionamiento. En realidad, forma parte de la prueba de aceptación, que establece las condiciones y estándares mínimos que se deben seguir para la aceptación desde el punto de vista del mantenimiento.
(1) Requisitos y estándares de especificación: los requisitos deben escribirse en términos comprobables, con prioridades y definiciones distinguidas para los equipos informáticos necesarios y opcionales necesarios para el mantenimiento, las pruebas y la operación del sistema; personal de mantenimiento, las necesidades de herramientas de prueba, etc.
(2) Criterios de diseño: el programa debe diseñarse en una estructura modular jerárquica. Cada módulo debe completar una función única y lograr una alta cohesión y un bajo acoplamiento. Comprender los cambios esperados a través de varios ejemplos que ilustran la escalabilidad. , escalabilidad y adaptabilidad del diseño.
(3) Los estándares de código fuente utilizan el lenguaje de programación de más alto nivel posible, y solo se puede utilizar la versión estándar del lenguaje; todo el código debe estar razonablemente estructurado, todo el código debe estar documentado y su entrada; salida y Algunas características y estilos que facilitan las pruebas y repruebas deben describirse en los comentarios.
(4) Estándares de documentación: la documentación debe describir la entrada/salida del programa, los métodos/algoritmos utilizados, los métodos de recuperación de errores, los rangos de todos los parámetros y las condiciones predeterminadas.
5. Se pueden utilizar revisiones periódicas de mantenimiento
(1), revisiones de puntos de control y comprobaciones de aceptación para garantizar la mantenibilidad de los nuevos sistemas de software.
(2) La revisión de mantenimiento periódico es en realidad una continuación de la revisión del punto de control en la fase de desarrollo, y los métodos de inspección y el contenido de la inspección son los mismos.
6. Elija un lenguaje de programación mantenible
7. Documentación sólida del programa
En la fase de mantenimiento del software, el uso de documentos históricos puede simplificar enormemente el trabajo de mantenimiento.
Hay tres tipos de documentos históricos:
(1) Registro de desarrollo del sistema: registra los principios de desarrollo del proyecto, los objetivos de desarrollo, las prioridades, las razones para elegir una determinada solución de diseño, las decisiones. elaboración de estrategias, uso de técnicas y herramientas de prueba, problemas diarios, éxitos y fracasos del programa, etc. En el futuro, cuando el personal de mantenimiento quiera comprender el proceso de desarrollo del sistema y los problemas de desarrollo encontrados, los registros de desarrollo del sistema serán muy necesarios.
(2) Registros de operación: los registros históricos de errores son muy útiles para predecir los tipos y la frecuencia de errores que pueden ocurrir en el futuro. También ayuda al personal de mantenimiento a identificar programas o módulos defectuosos para que puedan repararse. Modificarlos o reemplazarlos. Además, mediante las estadísticas y el seguimiento de errores, se puede evaluar de forma más razonable la calidad del software y la eficacia de las medidas y métodos de calidad del software.
(3) Registro de mantenimiento del sistema: registra las modificaciones del sistema e información relacionada durante la fase de mantenimiento.
Efectos secundarios del mantenimiento del software
El mantenimiento del software puede tener efectos secundarios, donde los efectos secundarios se refieren a errores u otras situaciones no deseadas causadas por la modificación del software. Los efectos secundarios varían según lo que se modifique.
1. Efectos secundarios de modificar el programa fuente del software
Los efectos secundarios más peligrosos son los efectos secundarios causados por la modificación del programa fuente del software. Siempre que se modifican procesos lógicos complejos, aumenta la probabilidad de errores.
Es más probable que las siguientes modificaciones al programa fuente produzcan errores:
(1) Cambios en subrutinas, funciones o definiciones de variables
(2) Cambios realizados para mejorar el rendimiento del tiempo de ejecución; ;
(3) Cambios en los procesos lógicos;
(4) Cambios en el diseño que conducen a cambios más importantes en el programa;
(5) Cambios en los límites Cambios en condiciones de prueba;
(6) Cambios en el diseño del programa. .
Documentación detallada del diseño de software