Reuso y Reingeniera M C Juan Carlos Olivares

  • Slides: 16
Download presentation
Reuso y Reingeniería M. C. Juan Carlos Olivares Rojas

Reuso y Reingeniería M. C. Juan Carlos Olivares Rojas

Reutilización • El reuso es una de las técnicas de resolución de problemas que

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

Reuso • El reuso nos permite afrontar los grandes proyectos de software sin mayores

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.

Reutilización • La reutilización puede ser composicional y generativa. • Es composicional cuando se

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.

Reutilización • La reutilización por generación se da cuando se utilizan esfuerzos previos del

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.

Reuso • Tipos de reuso: • Código reciclado: utilizar parte del código definido en

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.

Reuso • Frameworks: Solución integrada para la resolución de problemas en un contexto particular.

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.

Reuso • Búsqueda y Recuperación – Recuperación por Palabras Claves – Recuperación Basada en

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

Reingeniería del Software • Sucede que si una aplicación necesita ser modificada constantemente y

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.

Reingeniería del Software • Aún cuando un software se haya desarrollado con la mejor

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.

Reingeniería del Software • El 80% del tiempo del desarrollo del software se ocupa

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.

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

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:

Reingeniería de Software • • • Análisis de Inventario Reestructuración de Documentos INGENIERÍA INVERSA

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

Ingeniería Inversa • Se aplica para obtener un modelo detallado de análisis, ingeniería de

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.

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

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.

¿Preguntas, dudas y comentarios?

¿Preguntas, dudas y comentarios?