• Like
Reingeniería
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,167
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
91
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.  PREGUNTAS AL FINAL
  • 2. INGENIERÍA DE SOFTWARE REINGENIERIAIntegrantes:Hernández Juárez DanielBravo Montoya SergioZavala Rodríguez Luis HugoAlamilla Cervantes César Geovani
  • 3.  INTRODUCCION REINGENIERIA DE PROCESOS DE NEGOCIO (RPN) REINGENIERIA DE SOFTWARE INGENIERIA INVERSA REESTRUCTURACION INGENIERIA DIRECTA
  • 4. INTRODUCION¿Qué es?Es el proceso de reconstrucción del software, crear un producto con unamejor funcionalidad, mejor desempeño y fiabilidad, así como una mejorfacilidad de mantenimiento.¿Quién la hace?En el ámbito de las organizaciones, la reingeniería la llevan a caboespecialistas en negocios. En nuestro ámbito lo realizan los ingenieros desoftware.¿Por qué es importante?Por que nos permite mantenernos en el ritmo de las exigencias de lasnuevas tecnologías, por tal motivo el software tendrá que rediseñarse paraestar en ritmo.
  • 5. INTROCUCION¿Cuáles son los pasos? El proceso de reingeniería de software incluye análisis de inventarios,reestructuración de documentos, ingeniería inversa, reestructuración deprogramas y datos, e ingeniería avanzada.¿Cuál es el producto obtenido?Se produce una diversidad de productos de trabajo de reingeniería. Ejemplo:Modelos de análisis, modelos de diseño, procedimientos de prueba, entreotros.¿Cómo puedo estar seguro de que lo he hecho correctamente? Utilizando las mismas prácticas de SQA (Software de control de calidad) que se aplican a cualquier proceso de ingeniería del software: las revisiones técnicas formales evalúan los modelos de análisis y de diseño; las revisiones especializadas consideran la aplicabilidad y la compatibilidad en el negocio; y las pruebas se aplican para descubrir errores en contenido, funcionalidad e interoperabilidad.
  • 6. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)“La búsqueda e implementación de un cambio radical en el proceso de negocios para lograr resultados de vanguardia”.
  • 7. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)Procesos de negocios.Es un conjunto de tareas lógicamente relacionadas que se ejecutan para lograrun resultado de negocios específico; dentro de este se combina la gente, elequipo, los recursos materiales y los procedimientos del negocio para producirun resultado específico. Los ejemplos de proceso de negocios incluyen eldiseño de un nuevo producto, la compra de servicios y suministros, lacontratación de un nuevo empleado y el pago a proveedores. Cada unodemanda un conjunto de tareas y también emplea diversos recursos dentro delnegocio.
  • 8. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)Procesos de negocios.Cada proceso de negocio tiene un cliente definido: una persona o grupo querecibe el resultado. Además los procesos de negocio traspasan las fronterasde la organización.Cada sistema de negocio está compuesto de uno o mas procesos de negocio,y cada proceso de negocio lo define un conjunto de subprocesos.
  • 9. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)Un Modelo de RPNLa RPN es iterativa, las metas del negocio y los procesos con que se logran sedeben adaptar a un entorno de negocios cambiante. Por tal razón no existeprincipio ni fin para la RPN.
  • 10. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)Un Modelo de RPNDefinición del negocio: El mismo que se identifica con cuatro controladoresclave:Reducción de costoReducción de tiemposMejora de la calidadDesarrollo y fortalecimiento del personal.Identificación del proceso: Se identifican los procesos claves para así lograrlas metas precisas en la definición del negocio.Evaluación del Proceso: se hace un análisis del proceso existente así comotambién identificamos las tareas del proceso, tomamos nota de los costos y eltiempo que consumen las tareas; aislando los problemas de calidad ydesempeño.
  • 11. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)Un Modelo de RPNEspecificación y diseño del proceso: Preparamos casos de uso para cadaproceso que será rediseñado. Aquí los casos de uso identifican un escenarioque entrega cierto resultado a un cliente. Con el caso de uso como laespecificación del proceso se diseña un nuevo conjunto de tareas para elproceso.Elaboración de Prototipos: Un proceso de negocios rediseñado debeconvertirse en prototipo antes de que sea integrado por completo en elnegocio.Refinamiento y particularización: Con base en la retroalimentación delprototipo, el proceso de negocio se refina y luego se particulariza dentro de unsistema de negocio.
  • 12. REINGENIERIA DE SOFTWARELa reingeniería de software involucra diferentes actividades como lo son:análisis de inventarios, reestructuración de documentos, ingeniería inversa,reestructuración de programas y datos, e ingeniería directa; con la finalidad decrear versiones de programas ya existentes que sean de mejor calidad y losmismos tengan una mayor facilidad de mantenimiento.
  • 13. REINGENIERIA DE SOFTWAREMantenimiento del softwareEl mantenimiento del software se define identificando cuatro actividadesdiferentes como lo son: mantenimiento correctivo, mantenimientoadaptativo, mejora o mantenimiento de perfeccionamiento y mantenimientopreventivo o reingeniería. Según estadísticas el 20 % del trabajo demantenimiento se emplea en “componer errores”. El restante 80% se dedica aadaptar los sistemas existentes a los cambios en su entorno externo.
  • 14. REINGENIERIA DE SOFTWAREUn modelo de Proceso de Reingeniería del software.
  • 15. REINGENIERIA DE SOFTWAREUn modelo de Proceso de Reingeniería del software.Análisis de Inventarios: Las organizaciones de software deberían tener uninventario de todas sus aplicaciones. El inventario tal vez no sea más que unmodelo en una hoja de cálculo que contenga información que proporcione unadescripción detallada (tamaño, edad, importancia para el negocio) de lasaplicaciones activas. Es importante señalar que el inventario deberá visitarse conregularidad, el estado de las aplicaciones puede cambiar en función del tiempo y, comoresultado, cambiaran las prioridades para la reingeniería.
  • 16. REINGENIERIA DE SOFTWAREUn modelo de Proceso de Reingeniería del software.Reestructuración de documentos. La documentación débil es la marca demuchos sistemas heredados. ¿Pero que se hace acerca de ello? ¿Cuáles sonlas opciones?. Crear documentación consume mucho tiempo, si el sistema funcionaVivirá con lo que tenga. La documentación debe actualizarse pero se tiene recursoslimitados. Se utilizara un enfoque de “documentar cuando se toque”. El sistema escrucial para el negocio y debe volver a documentarse por completo incluso en este casoun enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una deestas opciones es viable. Una organización de software debe elegir la más apropiadapara cada caso.
  • 17. REINGENIERIA DE SOFTWAREUn modelo de Proceso de Reingeniería del software.Ingeniería Inversa: Es el proceso de analizar un programa con la finalidad ecrear una representación del programa en un mayor grado de abstracción queel código fuente. La ingeniería inversa es un proceso de recuperación dediseño. Las herramientas de la ingeniería inversa obtienen información deldiseño de datos, arquitectónico y de procedimientos a partir de un programaexistente.
  • 18. REINGENIERIA DE SOFTWAREUn modelo de Proceso de Reingeniería del software.Reestructuración de código: El tipo más común de reingeniería es lareestructuración de código, se lo puede hacer con módulos individuales que secodifican de una manera que dificultan comprenderlos, probarlos ymantenerlos. Llevar a cabo esta actividad requiere analizar el código fuenteempleando una herramienta de reestructuración.
  • 19. REINGENIERIA DE SOFTWAREUn modelo de Proceso de Reingeniería del software.Reestructuración de datos: La reestructuración de datos es una actividad dereingeniería a gran escala. En la mayoría de los casos, la reestructuración dedatos comienza con una actividad de ingeniería inversa. La arquitectura dedatos actual se analiza con minuciosidad y se definen los modelos de datosnecesarios, se identifican los objetivos de datos y los atributos, y después serevisa la calidad de las estructuras de datos existentes.
  • 20. REINGENIERIA DE SOFTWAREUn modelo de Proceso de Reingeniería del software.Ingeniería directa: La ingeniería directa, también llamada renovación oreclamación, no solo recupera la información de diseño a partir del softwareexistente, también utiliza esta información para alterar o reconstruir el sistemaexistente con la finalidad de mejorar su calidad global. En la mayoría de loscasos el software sometido a reingeniería vuelve a implementar la función delsistema existente y también añade nuevas funciones o mejora el desempeñoglobal.
  • 21. Ingeniería Inversa Proceso de analizar el software con el objetivo de recuperar su diseño y especificación. Requiere de entradas tal como el código fuente. Se diferencia de la reingeniería pues esta trata de obtener un nuevo sistema más sostenible.
  • 22. Ingeniería Inversa Grado de Abstracción.- Se refiere a la sofisticación del diseño que es obtenido del código fuente. Conforme aumenta el nivel se obtiene información que permitirá entender de mejor manera los diferentes programas. Completitud:- Se refiere al grado de detalle que se ofrece en un grado de abstracción, lo cual provee de una mejora en proporción directa con la cantidad de análisis que efectúa quien realiza la ingeniería inversa. Además tomamos en cuenta la interactividad refiriéndose al grado en que el humano esta integrado con las herramientas para crear un proceso de ingeniería inversa efectivo. En consecuencia con el aumento de los puntos antes mencionados se deberá incrementar la completitud. Direccionalidad.- tiene que ver en dos sentidos, para el caso de ser unidireccional, la información obtenida del código fuente servirá en cualquier actividad de mantenimiento. Por otra parte si es bidireccional, la información alimentara a herramientas de REINGENIERIA que reestructurara o regenerara el software anterior.
  • 23. PARA COMPRENDER DATOS. Es una de las primeras tareas de reingeniería, ya que la frecuente ocurrencia de los datos en distintos niveles de abstracción, las estructuras de los datos internos son sometidos a esta tarea para ajustarlos con los paradigmas de la gestión de BBDD, con lo cual se establecen escenarios para la introducción a bases de datos nuevas que contengan todo el sistema.
  • 24. Estructuras de datos internos Enfoca a la definición de clases de objetos para examinar el código con el fin de agrupar las variables que se pueden relacionar.
  • 25. Estructuras de base de datos Permite comprender los objetos existentes y sus respectivas relaciones.
  • 26. Estructuras de base de datos QUE PASOS SE SIGUEN? 1. Construcción de un modelo inicial de objeto. 2. Determinación de los candidatos claves. 3. Refinar las clases tentativas. 4. Definición de generalidades. 5. Descubrimiento de asociaciones. Luego se realiza una serie de transformaciones para correlacionar con el modelo anterior con la nueva.
  • 27. PARA COMPRENDER EL PROCESAMIENTO. Trata de comprender y extraer abstracciones de los procedimientos que se representan en el código. Para esto se debe analizar en grados variables de abstracción como sistema, programa, componentes, patrones y planteamiento.
  • 28. PARA COMPRENDER EL PROCESAMIENTO. Además se debe considerar la funcionalidad de forma global
  • 29. DE INTERFACES DE USUARIO. Antes de reconstruir cualquier interfaz de usuario se realiza actividades de II, se requiere especificar estructuras y comportamientos de las interfaces. Consideraciones ¿Cuáles son las acciones básicas que procesa la interfaz? ¿Descripción del comportamiento del sistema a dichas acciones? ¿Qué equivalencia de las interfaces es mas relevante?.
  • 30. Reestructuración Modifica el código o los datos con la finalidad de adecuarlos para futuros cambios. No modifica la arquitectura sino que se enfoca sobre detalles de diseño de los módulos y en la estructura de datos
  • 31. Reestructuración de código Genera un diseño que produzca la misma función del programa pero con mayor calidad. El objetivo es tomar una porción de código y derivar el diseño de procedimientos que concuerden con la filosofía del mismo.
  • 32. Reestructuración de datos Primero se realiza el ANALISIS del código fuente. Se evalúan las definiciones de los datos, archivos, O/I e Interfaces. Extraer elementos y objetos de datos para obtener información del flujo de datos y comprender la estructura
  • 33. Reestructuración de datos Rediseño de datos trata de que exista consistencia de los mismos (nombres y formatos de registro) en una estructura de datos o formato de archivo. Racionalización de nombre asegura que el nombramiento de datos concuerden con el estándar local y elimina los pseudónimos (flujo de datos a través del sistema)
  • 34. INGENIERIA DIRECTA Se puede trabajar modificación tras modificación y luchar con el diseño para implementar los cambios. Intentar conocer el funcionamiento interno del SW para realizar modificaciones eficientes. Rediseñar, recodificar y. probar el Sw en un enfoque de Ingeniería de Sw
  • 35. GRACIAS por su atención, nos reservamos elderecho de contestar cualquier pregunta