Descargar

Reuso y reingeniería

Enviado por Pablo Turmero


    edu.red

    Reutilización

    El reuso es una de las técnicas de resolución de problemas que más utilizamos los humanos. De hecho es lo primero que verifica nuestro cerebro.

    El reuso en software nos ayuda a mejorar la producción y calidad del software al “no reiventar la rueda”.

    edu.red

    Reuso El reuso nos permite afrontar los grandes proyectos de software sin mayores complicaciones. Desafortunadamente no todo se puede reutilizar.

    La reutilizacion es la propiedad de utilizar conocimiento, procesos, metodologías o componentes de software ya existente para adaptarlo a una nueva necesidad, incrementando significativamente la calidad y productividad del desarrollo.

    edu.red

    Reutilización La reutilización puede ser composicional y generativa.

    Es composicional cuando se orienta al reuso del producto. Puede ser de caja blanca (si nos interesa modificar el comportamiento), caja negra (cuando no se puede modificar el comportamiento) y adaptativo cuando es una mezcla de ambos.

    edu.red

    Reutilización La reutilización por generación se da cuando se utilizan esfuerzos previos del desarrollo de software.

    Para que un objeto pueda ser reusable se necesita de un alto nivel de abstracción. Entre mayor es su nivel de abstracción, mayor es su nivel de reuso.

    edu.red

    Reuso Tipos de reuso:

    Código reciclado: utilizar parte del código definido en otros proyectos.

    Componentes de código: consiste en utilizar módulos, clases, APIs, etc.

    Esquemas: DFD, Diagramas UML.

    edu.red

    Reuso Frameworks: Solución integrada para la resolución de problemas en un contexto particular. Se pueden utilizar patrones de diseño. Un ejemplo de Framework es .NET

    Las etapas del proceso de reuso son:

    Adquisición del requerimiento.

    edu.red

    Reuso Búsqueda y Recuperación Recuperación por Palabras Claves Recuperación Basada en la Estructura Recuperación Enumerada

    Identificación Adecuación

    edu.red

    Reingeniería del Software Sucede que si una aplicación necesita ser modificada constantemente y no tiene una metodología de seguimiento del desarrollo del proyecto, la modificación del software se vuelve sumamente complicada.

    El mantenimiento de software en algunos casos puede llegar a ser del 60% del total de costos del proyecto.

    edu.red

    Reingeniería del Software Aún cuando un software se haya desarrollado con la mejor metodología de software tendrá que ser modificado en un futuro por algún motivo, debido a que lo único constante es el cambio.

    Los tipos de mantenimiento de Software son: correctivo, adaptativo, mejoras o mantenimiento de perfeccionamiento, mantenimiento preventivo o reingeniería.

    edu.red

    Reingeniería del Software El 80% del tiempo del desarrollo del software se ocupa en la adaptación del software a su ambiente externo.

    La reingeniería de software es costosa y consumidora de tiempo.

    La reingeniería es una actividad de reconstrucción, preferible de realizar antes de que se “derrumbe” la obra.

    edu.red

    Reingeniería de Software Antes de derribar una casa, quizás se necesita corroborar que está mal.

    La reingeniería es un proceso que altera los elementos internos de toda obra, no es una sola remodelación de la fallada.

    Generalmente se siguen los siguientes pasos para aplicar reingeniería:

    edu.red

    Reingeniería de Software Análisis de Inventario Reestructuración de Documentos INGENIERÍA INVERSA Reestructuración de Códigos Reestructuración de Datos Ingeniería directa

    edu.red

    Ingeniería Inversa Se aplica para obtener un modelo detallado de análisis, ingeniería de requerimientos, diseño y en algunos casos implementación teniendo una solución es una actividad consumidora de tiempo.

    Tanto la Ingeniería Inversa como la Reingeniería en la mayoría de las licencias de Software se encuentran penadas por la ley.

    edu.red

    Actividad Realizar el proceso de Ingeniería inversa de los siguientes modelos de avión.

    Se debe obtener como resultado un prototipo idéntico al dado así como su manual de diseño.