CAPITULO 6 Swebok

4
CAPITULO 6 MANTENIMIENTO DE SOFTWARE INTRODUCCION El proceso de desarrollo de software debe satisfacer los requerimientos planteados, una vez en operación el proceso de cubrimiento de defectos, operación y cambio de ambiente debe darse en esta etapa, la fase de mantenimiento empieza con un periodo de garantía y de soporte post- implementación pero el mantenimiento del software ocurre mucho antes. Aunque la etapa de mantenimiento del software no ha tenido el grado de atención que se debe este tipo de desarrollo de software ya está empezando a cambiar ya que muchos errores graves han ocurrido por no prestarle la atención que se merece. El mantenimiento de software se ha definido como el número total de actividades requeridas para proveer soporte efectivo al software, esto incluye un planeamiento efectivo antes. Durante y después de la implementación del software. 1. Aspectos Fundamentales en el mantenimiento del software: Aquí se introduce a los aspectos fundamentales del mantenimiento del software: 1.1 Definiciones y terminología: Está definido en el estándar de la IEEE 1219 como la modificación del producto de software después de la entrega para corregir las faltas, también se encarga de direccionar las actividades de mantenimiento para darle prioridad a la entrega del producto. El estándar IEEE/EIA 12207 define el mantenimiento como uno de los procesos principales en el ciclo de vida del software, el objetivo es modificar el software existente preservando su integridad también lo hacen en estos mismos términos la ISO/IEC 14764 este enfatiza en las entregas previas para la planeación del mantenimiento del software. 1.2 Naturaleza del mantenimiento: El mantenimiento de software debe estar dentro del ciclo de vida operacional, un mantenimiento está definido por la IEEE/EIA 12207 como las actividades de mantenimiento que permiten el desempeño correcto.

description

Manual Swebok Ingeniería de Software

Transcript of CAPITULO 6 Swebok

Page 1: CAPITULO 6 Swebok

CAPITULO 6MANTENIMIENTO DE SOFTWARE

INTRODUCCIONEl proceso de desarrollo de software debe satisfacer los requerimientos planteados, una vez en operación el proceso de cubrimiento de defectos, operación y cambio de ambiente debe darse en esta etapa, la fase de mantenimiento empieza con un periodo de garantía y de soporte post-implementación pero el mantenimiento del software ocurre mucho antes.Aunque la etapa de mantenimiento del software no ha tenido el grado de atención que se debe este tipo de desarrollo de software ya está empezando a cambiar ya que muchos errores graves han ocurrido por no prestarle la atención que se merece.El mantenimiento de software se ha definido como el número total de actividades requeridas para proveer soporte efectivo al software, esto incluye un planeamiento efectivo antes. Durante y después de la implementación del software.

1. Aspectos Fundamentales en el mantenimiento del software:

Aquí se introduce a los aspectos fundamentales del mantenimiento del software:

1.1 Definiciones y terminología:Está definido en el estándar de la IEEE 1219 como la modificación del producto de software después de la entrega para corregir las faltas, también se encarga de direccionar las actividades de mantenimiento para darle prioridad a la entrega del producto.

El estándar IEEE/EIA 12207 define el mantenimiento como uno de los procesos principales en el ciclo de vida del software, el objetivo es modificar el software existente preservando su integridad también lo hacen en estos mismos términos la ISO/IEC 14764 este enfatiza en las entregas previas para la planeación del mantenimiento del software.

1.2 Naturaleza del mantenimiento:El mantenimiento de software debe estar dentro del ciclo de vida operacional, un mantenimiento está definido por la IEEE/EIA 12207 como las actividades de mantenimiento que permiten el desempeño correcto.Identifica las actividades de mantenimiento como un proceso de implementación y modificación y análisis del problema, estas actividades son discutidas en el tópico 3.2 Actividades de Mantenimiento. Figura 1. Tópicos a tener en cuenta en el mantenimiento del software

1.3 Necesidad de mantenimiento:

La necesidad de mantenimiento se da para garantizar que el software cumple satisfactoriamente con los requerimientos solicitados, este se aplica a cualquier desarrollo independiente del modelo de ciclo de vida utilizado, el mantenimiento se da en orden de alcanzar el desempeño adecuado y en el orden de:• Corregir fallas.• Improvisar el diseño.• Implementar correcciones.• Interfaces con otros sistemas.

Page 2: CAPITULO 6 Swebok

• Adaptar programas a diferentes tipos de hardware, software, configuración del sistema y facilidad de uso de telecomunicaciones.• Migración legal de software.• Retiro de software.

1.4 Costos Mayoritarios de mantenimiento:

Los costos de mantenimiento de software son los mas costosos en todo el ciclo de vida del software, estudios recientes han demostrado que más del 80% del mantenimiento de software es usado para acciones correctivas hay que entender la categoría del mantenimiento del software para entender la estructura del costo de mantenimiento, entendiendo los factores que influyen en el costo se puede ayudar a contener dichos costos, a continuación se presentan algunos aspectos técnicos y no técnicos que afectan los costos de mantenimiento:• Tipo de Aplicación.• Disponibilidad del mantenimiento de software.• Ciclo de vida del software.• Características de hardware.• Calidad del diseño de software, construcción, documentación y pruebas.

1.5 Evolución del software:

En 1969 Lehman direcciono el mantenimiento del software y la evolución de los sistemas, durante 20 años se mantuvo su idea de la formulación de ocho “Leyes de la evolución” donde se mantuvo la idea de la evolución en el mantenimiento del software para continuar con el desarrollo.Lientz y Swanson inicializaron la definición de tres categorías de mantenimiento: correctivo, adaptativo y perfectivo.

2. Factores claves en el mantenimiento del software:

Un numero de factores claves debemos tener presentes para asegurar el mantenimiento efectivo del software, es importante comprender que el mantenimiento de software nos proporciona una técnica única en los desafíos de administración para los ingenieros de software, podemos apreciar cómo se planean las liberaciones posteriores así como los parches generados para las versiones anteriores, lo que sigue a continuación nos presenta una manera de cómo se nos presentan algunos factores de administración y técnicos para el mantenimiento de software, estos se agrupan según los tópicos siguientes:• Factores técnicos.• Factores administrativos.• Estimación de costos.• Medidas.

3. Proceso de mantenimiento:Provee referencias y estándares utilizados para implementar el proceso de mantenimiento de software.Las actividades de mantenimiento son diferenciadas por el desarrollo mostrado en la relación a las actividades de ingeniería de otro software.

Page 3: CAPITULO 6 Swebok

Figura 2. Actividades en el proceso del mantenimiento

En la figura planteada por la ISO/IEC se puede apreciar que es muy parecida a la anterior que es IEEE pero en esta se agrega una pequeña diferencia:

Cada actividad de mantenimiento primario de software ISO/IEC 14764 es desglosada en los siguientes términos: • Proceso de implementación.• Análisis del problema y modificaciones.• Implementación y modificación.• Mantenimiento Aceptación/Revisión.• Migración.• Retiro de Software.

Técnicas para el mantenimiento:Esta subárea nos introduce a algunas generalidades aceptadas por las técnicas del mantenimiento de software:3.1 Comprensión del programaLos programadores gastan tiempo considerable leyendo y entendiendo programas para poder implementar cambios existen distintas herramientas que nos ayudan con este proceso.3.2 ReingenieríaEstá definida como el examen de de la alteración del software para reconstituir una nueva forma, la reingeniería es la más radical y expansiva forma de la alteración otros creen que la reingeniería puede ser usada para cambios menores, siempre está enfocada en mantener la legalidad del software así como sus técnicas, casos de estudio y sus riesgos y beneficios.3.3 Ingeniería inversaEs el proceso de analizar el software para identificar los componentes y sus relaciones para crear representaciones del software dicho de otra forma desde un nivel más alto de abstracción, es pasiva, y no hace cambios al software o resulta en otro software. Produce gráficas así como control de flujo y del código fuente, un tipo de reingeniería puede ser la redocumentación, otro tipo es la reparación del diseño.Finalmente la reingeniería ha sido de gran importancia en los últimos años ya que gracias a sus esquemas lógicos a podido restaurar bases de datos físicas.