18

Mantenimiento del software unidad # 9

Embed Size (px)

Citation preview

Page 1: Mantenimiento del software unidad # 9
Page 2: Mantenimiento del software unidad # 9

Proceso de mejorar y optimizar el software desplegado e implementado, así como también remediar los defectos.

Page 3: Mantenimiento del software unidad # 9

La fase de mantenimiento de software involucra:

Cambios al software en orden de corregir defectos y dependencias.

Adición de nueva funcionalidad para mejorar la usabilidad y aplicabilidad del software.

Page 4: Mantenimiento del software unidad # 9

Mantenimiento Correctivo:

• Modificaciones reactivas a un producto software hechas después de la entrega para corregir defectos descubiertos.

Mantenimiento Adaptivo:

• Modificación de un producto software realizada después de la entrega para permitir que un producto software siga pudiéndose utilizar en un entorno diferente.

Mantenimiento Perfectivo:

• Modificación de un producto software después de la entrega para mejorar el rendimiento o la mantenibilidad.

Page 5: Mantenimiento del software unidad # 9

Es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones.

Su proceso se define como “un conjunto de etapas parcialmente ordenadas con la intención de lograr un objetivo, en este caso, la obtención de un producto de software de calidad”

Page 6: Mantenimiento del software unidad # 9

Se puede definir como:“modificación de un productosoftware, o de ciertoscomponente, usando para elanálisis del sistema existentetécnicas de Ingeniería Inversa y,para la etapa de reconstrucción,herramientas de IngenieríaDirecta, de tal manera que seoriente este cambio hacia mayoresniveles de facilidad en cuanto amantenimiento, reutilización,comprensión o evaluación.”

Page 7: Mantenimiento del software unidad # 9

La reingeniería del software involucra diferentes actividades como son:

Análisis de Inventarios

Reestructuración de documentos

Ingeniería inversaReestructuración de programas y

datos.

Ingeniería directa

Page 8: Mantenimiento del software unidad # 9
Page 9: Mantenimiento del software unidad # 9

Todas las organizaciones de softwaredeberían tener un inventario de todassus aplicaciones. El inventario tal vezno sea más que un modelo en una hojade cálculo que contenga informaciónque proporcione una descripcióndetallada (tamaño, edad, importanciapara el negocio) de las aplicacionesactividades. Ordenada estainformación en función de suimportancia para el negocio,longevidad, mantenibilidad actual yotros criterios importantes,ENTONCES es posible conocer lasprioridades para la reingeniería.

Page 10: Mantenimiento del software unidad # 9

La documentación débil es la marca de muchos sistemas heredados. ¿Pero qué se hace acerca de ellos? El sistema es crucial para el negocio y debe volver a documentarse por completo, en este caso un enfoque inteligente es recortar la documentación a un mínimo esencial.

Page 11: Mantenimiento del software unidad # 9

La ingeniería inversa del software esel proceso de análisis de unprograma con el fin de crear unarepresentación de programa conun nivel de abstracción máselevado que el código fuente. LaIngeniería inversa es un procesode recuperación de diseño. Conlas herramientas de la ingenieríainversa se extraerá del programaexistente información del diseñoarquitectónico y de proceso, einformación de los datos.

Page 12: Mantenimiento del software unidad # 9

Llevar a cabo esta actividadrequiere analizar el códigofuente empleando unaherramienta dereestructuración, se indican lasviolaciones de las estructurasde programación estructurada,y entonces se reestructura elcódigo. El códigoreestructurado resultante serevisa y se comprueba paraasegurar que no se hayanintroducido anomalías. Seactualiza la documentacióninterna del código.

Page 13: Mantenimiento del software unidad # 9

La reestructuración de datos es unaactividad de reingeniería a gran escala.En la mayoría de los casos, comienza conuna actividad de ingeniería inversa. Laarquitectura de datos actual se analizacon minuciosidad y se define losmodelos de datos necesarios, seidentifican los objetivos de datos y losatributos, y después se revisa la calidadde las estructuras de datos existentes.Dado que la arquitectura de datos tieneuna gran influencia sobre la arquitecturadel programa, y también sobre losalgoritmos que lo pueblan , los cambiosdatos darán lugar invariablemente acambios o bien de arquitectura o bien decódigo.

Page 14: Mantenimiento del software unidad # 9

La ingeniería directa no sólorecupera la información dediseño a partir del softwareexistente, también utiliza estainformación para alterar oreconstruir el sistema existentecon la finalidad de mejorar sucalidad global. En la mayoría delos casos el software sometido areingeniería vuelve aimplementar la función delsistema existente y tambiénañade nuevas funciones omejoras.

Page 15: Mantenimiento del software unidad # 9

Acceder al código fuente de un programa significa acceder a los algoritmos desarrollados por sus creadores. Es la única manera de modificar eficaz y eficientemente un programa.

Liberar un código fuente significa compartir ese texto con cualquier persona que lo desee, esto implica que cualquiera puede analizarlo, copiarlo o modificarlo.

Y también implica ciertos riesgos en cuanto a la seguridad del mismo, pues su funcionamiento exacto queda expuesto.

Page 16: Mantenimiento del software unidad # 9
Page 17: Mantenimiento del software unidad # 9

Glosariodeterminar los valores de las variables

que intervienen en un proceso o sistema para que el resultado que se obtiene sea el mejor posible.

Acción y efecto de reestructurar o reestructurarse.

Que no puede ser justificado o razonado de ningún modo

Reunir leyes o normas en un código.

Aplicar máquinas o procedimientos automáticos en la realización de un proceso o en una industria

Hacer un análisis de determinada cosa

Activar.

Page 18: Mantenimiento del software unidad # 9

Bibliografía

www.sincows.com

www.cnx.org

www.angelfire.com

www.alegsa.com.are