SlideShare uma empresa Scribd logo
1 de 36
   PREGUNTAS AL FINAL
INGENIERÍA DE SOFTWARE




               REINGENIERIA
Integrantes:
Hernández Juárez Daniel
Bravo Montoya Sergio
Zavala Rodríguez Luis Hugo
Alamilla Cervantes César Geovani
 INTRODUCCION

 REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)

 REINGENIERIA DE SOFTWARE

 INGENIERIA INVERSA

 REESTRUCTURACION

 INGENIERIA DIRECTA
INTRODUCION

¿Qué es?

Es el proceso de reconstrucción del software, crear un producto con una
mejor funcionalidad, mejor desempeño y fiabilidad, así como una mejor
facilidad de mantenimiento.

¿Quién la hace?

En el ámbito de las organizaciones, la reingeniería la llevan a cabo
especialistas en negocios. En nuestro ámbito lo realizan los ingenieros de
software.

¿Por qué es importante?

Por que nos permite mantenernos en el ritmo de las exigencias de las
nuevas tecnologías, por tal motivo el software tendrá que rediseñarse para
estar en ritmo.
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 de
programas 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, entre
otros.

¿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.
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”.
REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Procesos de negocios.

Es un conjunto de tareas lógicamente relacionadas que se ejecutan para lograr
un resultado de negocios específico; dentro de este se combina la gente, el
equipo, los recursos materiales y los procedimientos del negocio para producir
un resultado específico. Los ejemplos de proceso de negocios incluyen el
diseño de un nuevo producto, la compra de servicios y suministros, la
contratación de un nuevo empleado y el pago a proveedores. Cada uno
demanda un conjunto de tareas y también emplea diversos recursos dentro del
negocio.
REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Procesos de negocios.

Cada proceso de negocio tiene un cliente definido: una persona o grupo que
recibe el resultado. Además los procesos de negocio traspasan las fronteras
de 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.
REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Un Modelo de RPN

La RPN es iterativa, las metas del negocio y los procesos con que se logran se
deben adaptar a un entorno de negocios cambiante. Por tal razón no existe
principio ni fin para la RPN.
REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Un Modelo de RPN
Definición del negocio: El mismo que se identifica con cuatro controladores
clave:

Reducción de costo
Reducción de tiempos
Mejora de la calidad
Desarrollo y fortalecimiento del personal.

Identificación del proceso: Se identifican los procesos claves para así lograr
las metas precisas en la definición del negocio.

Evaluación del Proceso: se hace un análisis del proceso existente así como
también identificamos las tareas del proceso, tomamos nota de los costos y el
tiempo que consumen las tareas; aislando los problemas de calidad y
desempeño.
REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Un Modelo de RPN

Especificación y diseño del proceso: Preparamos casos de uso para cada
proceso que será rediseñado. Aquí los casos de uso identifican un escenario
que entrega cierto resultado a un cliente. Con el caso de uso como la
especificación del proceso se diseña un nuevo conjunto de tareas para el
proceso.

Elaboración de Prototipos: Un proceso de negocios rediseñado debe
convertirse en prototipo antes de que sea integrado por completo en el
negocio.

Refinamiento y particularización: Con base en la retroalimentación del
prototipo, el proceso de negocio se refina y luego se particulariza dentro de un
sistema de negocio.
REINGENIERIA DE SOFTWARE
La 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 de
crear versiones de programas ya existentes que sean de mejor calidad y los
mismos tengan una mayor facilidad de mantenimiento.
REINGENIERIA DE SOFTWARE
Mantenimiento del software

El mantenimiento del software se define identificando cuatro actividades
diferentes como lo son: mantenimiento correctivo, mantenimiento
adaptativo, mejora o mantenimiento de perfeccionamiento y mantenimiento
preventivo o reingeniería. Según estadísticas el 20 % del trabajo de
mantenimiento se emplea en “componer errores”. El restante 80% se dedica a
adaptar los sistemas existentes a los cambios en su entorno externo.
REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Análisis de Inventarios: Las organizaciones de software deberían tener un
inventario de todas sus aplicaciones. El inventario tal vez no sea más que un
modelo en una hoja de cálculo que contenga información que proporcione una
descripción detallada (tamaño, edad, importancia para el negocio) de las
aplicaciones activas. Es importante señalar que el inventario deberá visitarse con
regularidad, el estado de las aplicaciones puede cambiar en función del tiempo y, como
resultado, cambiaran las prioridades para la reingeniería.
REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Reestructuración de documentos. La documentación débil es la marca de
muchos sistemas heredados. ¿Pero que se hace acerca de ello? ¿Cuáles son
las opciones?. Crear documentación consume mucho tiempo, si el sistema funciona
Vivirá con lo que tenga. La documentación debe actualizarse pero se tiene recursos
limitados. Se utilizara un enfoque de “documentar cuando se toque”. El sistema es
crucial para el negocio y debe volver a documentarse por completo incluso en este caso
un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de
estas opciones es viable. Una organización de software debe elegir la más apropiada
para cada caso.
REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.

Ingeniería Inversa: Es el proceso de analizar un programa con la finalidad e
crear una representación del programa en un mayor grado de abstracción que
el código fuente. La ingeniería inversa es un proceso de recuperación de
diseño. Las herramientas de la ingeniería inversa obtienen información del
diseño de datos, arquitectónico y de procedimientos a partir de un programa
existente.
REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.

Reestructuración de código: El tipo más común de reingeniería es la
reestructuración de código, se lo puede hacer con módulos individuales que se
codifican de una manera que dificultan comprenderlos, probarlos y
mantenerlos. Llevar a cabo esta actividad requiere analizar el código fuente
empleando una herramienta de reestructuración.
REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.

Reestructuración de datos: La reestructuración de datos es una actividad de
reingeniería a gran escala. En la mayoría de los casos, la reestructuración de
datos comienza con una actividad de ingeniería inversa. La arquitectura de
datos actual se analiza con minuciosidad y se definen los modelos de datos
necesarios, se identifican los objetivos de datos y los atributos, y después se
revisa la calidad de las estructuras de datos existentes.
REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.

Ingeniería directa: La ingeniería directa, también llamada renovación o
reclamación, no solo recupera la información de diseño a partir del software
existente, también utiliza esta información para alterar o reconstruir el sistema
existente con la finalidad de mejorar su calidad global. En la mayoría de los
casos el software sometido a reingeniería vuelve a implementar la función del
sistema existente y también añade nuevas funciones o mejora el desempeño
global.
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.
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.
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.
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.
Estructuras de base de datos

   Permite comprender los objetos existentes y sus
    respectivas relaciones.
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.
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.
PARA COMPRENDER EL PROCESAMIENTO.

   Además se debe considerar la funcionalidad
    de forma global
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?.
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
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.
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
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)
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
GRACIAS
   por su atención, nos reservamos el
derecho de contestar cualquier pregunta

Mais conteúdo relacionado

Mais procurados

DocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióNDocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióNFernanda Garza
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Las diez principales amenazas para las bases de datos
Las diez principales amenazas para las bases de datosLas diez principales amenazas para las bases de datos
Las diez principales amenazas para las bases de datosImperva
 
Planificación de sistemas de información
Planificación de sistemas de informaciónPlanificación de sistemas de información
Planificación de sistemas de informaciónMARCO POLO SILVA SEGOVIA
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de softwareGeorgy Jose Sanchez
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Modelos del Sistema
Modelos del SistemaModelos del Sistema
Modelos del SistemaSofylutqm
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De VidaJgperez
 
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINALSISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINALFrancisco Gonzalez Aguilar
 
Ads sistema-panaderia-ADS
Ads sistema-panaderia-ADSAds sistema-panaderia-ADS
Ads sistema-panaderia-ADSRosarioRuiz35
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datosisraelmillan8
 
Ensayo ciclo de vida del software
Ensayo ciclo de vida del softwareEnsayo ciclo de vida del software
Ensayo ciclo de vida del softwareEmilyOrdez1
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareLia IS
 
Diferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónDiferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónAngel Aguilar
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 

Mais procurados (20)

DocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióNDocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióN
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Las diez principales amenazas para las bases de datos
Las diez principales amenazas para las bases de datosLas diez principales amenazas para las bases de datos
Las diez principales amenazas para las bases de datos
 
Rational rose
Rational roseRational rose
Rational rose
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Planificación de sistemas de información
Planificación de sistemas de informaciónPlanificación de sistemas de información
Planificación de sistemas de información
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de software
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Modelos del Sistema
Modelos del SistemaModelos del Sistema
Modelos del Sistema
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
 
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINALSISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
 
Ads sistema-panaderia-ADS
Ads sistema-panaderia-ADSAds sistema-panaderia-ADS
Ads sistema-panaderia-ADS
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datos
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Ensayo ciclo de vida del software
Ensayo ciclo de vida del softwareEnsayo ciclo de vida del software
Ensayo ciclo de vida del software
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 
Diferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónDiferencias entre arquitectura y organización
Diferencias entre arquitectura y organización
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 

Semelhante a Reingeniería

Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de softwareAlex Hurtado
 
Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Vanessa Toral Yépez
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9naviwz
 
Reingeniería
Reingeniería Reingeniería
Reingeniería one_ramos
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de SoftwareCARMEN
 
Ingeniería de Requerimientos
Ingeniería de RequerimientosIngeniería de Requerimientos
Ingeniería de RequerimientosNaylu Rincón
 
Ingeniería de Requerimientos
Ingeniería de RequerimientosIngeniería de Requerimientos
Ingeniería de RequerimientosNaylu Rincón
 
Javierperez ensayo
Javierperez ensayoJavierperez ensayo
Javierperez ensayojavier peeez
 
Insidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareInsidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareUniversidad De Cordoba
 
Metricas de software
Metricas de softwareMetricas de software
Metricas de softwareMAYRA
 
Desarrollode software (1)
Desarrollode software (1)Desarrollode software (1)
Desarrollode software (1)turlahackers
 
8 creacion de sistemas de informacion
8 creacion de sistemas de informacion8 creacion de sistemas de informacion
8 creacion de sistemas de informacionAbelAbedSilvaSantaCr
 

Semelhante a Reingeniería (20)

Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Reingenieria inversa
Reingenieria inversaReingenieria inversa
Reingenieria inversa
 
Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de software
 
Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9
 
Procesos y calidad i parcial
Procesos y calidad i parcialProcesos y calidad i parcial
Procesos y calidad i parcial
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de Software
 
Qué+es+ru..
Qué+es+ru..Qué+es+ru..
Qué+es+ru..
 
Ingeniería de Requerimientos
Ingeniería de RequerimientosIngeniería de Requerimientos
Ingeniería de Requerimientos
 
Ingeniería de Requerimientos
Ingeniería de RequerimientosIngeniería de Requerimientos
Ingeniería de Requerimientos
 
Javierperez ensayo
Javierperez ensayoJavierperez ensayo
Javierperez ensayo
 
Rup jenny mallqui
Rup   jenny mallquiRup   jenny mallqui
Rup jenny mallqui
 
Qué es rup
Qué es rupQué es rup
Qué es rup
 
RUP
RUPRUP
RUP
 
Insidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareInsidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De Software
 
Metricas de software
Metricas de softwareMetricas de software
Metricas de software
 
Desarrollode software (1)
Desarrollode software (1)Desarrollode software (1)
Desarrollode software (1)
 
8 creacion de sistemas de informacion
8 creacion de sistemas de informacion8 creacion de sistemas de informacion
8 creacion de sistemas de informacion
 

Mais de jose_macias

Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentesjose_macias
 
Gestión del Cambio
Gestión del Cambio Gestión del Cambio
Gestión del Cambio jose_macias
 
Gestión de la calidad
Gestión de la calidadGestión de la calidad
Gestión de la calidadjose_macias
 
Gestión del riesgo de software
Gestión del riesgo de software Gestión del riesgo de software
Gestión del riesgo de software jose_macias
 
Calendarización de Proyectos de Software
Calendarización de Proyectos de SoftwareCalendarización de Proyectos de Software
Calendarización de Proyectos de Softwarejose_macias
 
Administración de proyectos de desarrollo de software
Administración de proyectos de desarrollo de softwareAdministración de proyectos de desarrollo de software
Administración de proyectos de desarrollo de softwarejose_macias
 
Métricas de procesos y proyectos
Métricas de procesos y proyectosMétricas de procesos y proyectos
Métricas de procesos y proyectosjose_macias
 

Mais de jose_macias (7)

Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentes
 
Gestión del Cambio
Gestión del Cambio Gestión del Cambio
Gestión del Cambio
 
Gestión de la calidad
Gestión de la calidadGestión de la calidad
Gestión de la calidad
 
Gestión del riesgo de software
Gestión del riesgo de software Gestión del riesgo de software
Gestión del riesgo de software
 
Calendarización de Proyectos de Software
Calendarización de Proyectos de SoftwareCalendarización de Proyectos de Software
Calendarización de Proyectos de Software
 
Administración de proyectos de desarrollo de software
Administración de proyectos de desarrollo de softwareAdministración de proyectos de desarrollo de software
Administración de proyectos de desarrollo de software
 
Métricas de procesos y proyectos
Métricas de procesos y proyectosMétricas de procesos y proyectos
Métricas de procesos y proyectos
 

Reingeniería

  • 1. PREGUNTAS AL FINAL
  • 2. INGENIERÍA DE SOFTWARE REINGENIERIA Integrantes: Hernández Juárez Daniel Bravo Montoya Sergio Zavala Rodríguez Luis Hugo Alamilla 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 una mejor funcionalidad, mejor desempeño y fiabilidad, así como una mejor facilidad de mantenimiento. ¿Quién la hace? En el ámbito de las organizaciones, la reingeniería la llevan a cabo especialistas en negocios. En nuestro ámbito lo realizan los ingenieros de software. ¿Por qué es importante? Por que nos permite mantenernos en el ritmo de las exigencias de las nuevas tecnologías, por tal motivo el software tendrá que rediseñarse para estar 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 de programas 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, entre otros. ¿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 lograr un resultado de negocios específico; dentro de este se combina la gente, el equipo, los recursos materiales y los procedimientos del negocio para producir un resultado específico. Los ejemplos de proceso de negocios incluyen el diseño de un nuevo producto, la compra de servicios y suministros, la contratación de un nuevo empleado y el pago a proveedores. Cada uno demanda un conjunto de tareas y también emplea diversos recursos dentro del negocio.
  • 8. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN) Procesos de negocios. Cada proceso de negocio tiene un cliente definido: una persona o grupo que recibe el resultado. Además los procesos de negocio traspasan las fronteras de 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 RPN La RPN es iterativa, las metas del negocio y los procesos con que se logran se deben adaptar a un entorno de negocios cambiante. Por tal razón no existe principio ni fin para la RPN.
  • 10. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN) Un Modelo de RPN Definición del negocio: El mismo que se identifica con cuatro controladores clave: Reducción de costo Reducción de tiempos Mejora de la calidad Desarrollo y fortalecimiento del personal. Identificación del proceso: Se identifican los procesos claves para así lograr las metas precisas en la definición del negocio. Evaluación del Proceso: se hace un análisis del proceso existente así como también identificamos las tareas del proceso, tomamos nota de los costos y el tiempo que consumen las tareas; aislando los problemas de calidad y desempeño.
  • 11. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN) Un Modelo de RPN Especificación y diseño del proceso: Preparamos casos de uso para cada proceso que será rediseñado. Aquí los casos de uso identifican un escenario que entrega cierto resultado a un cliente. Con el caso de uso como la especificación del proceso se diseña un nuevo conjunto de tareas para el proceso. Elaboración de Prototipos: Un proceso de negocios rediseñado debe convertirse en prototipo antes de que sea integrado por completo en el negocio. Refinamiento y particularización: Con base en la retroalimentación del prototipo, el proceso de negocio se refina y luego se particulariza dentro de un sistema de negocio.
  • 12. REINGENIERIA DE SOFTWARE La 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 de crear versiones de programas ya existentes que sean de mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.
  • 13. REINGENIERIA DE SOFTWARE Mantenimiento del software El mantenimiento del software se define identificando cuatro actividades diferentes como lo son: mantenimiento correctivo, mantenimiento adaptativo, mejora o mantenimiento de perfeccionamiento y mantenimiento preventivo o reingeniería. Según estadísticas el 20 % del trabajo de mantenimiento se emplea en “componer errores”. El restante 80% se dedica a adaptar los sistemas existentes a los cambios en su entorno externo.
  • 14. REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniería del software.
  • 15. REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniería del software. Análisis de Inventarios: Las organizaciones de software deberían tener un inventario de todas sus aplicaciones. El inventario tal vez no sea más que un modelo en una hoja de cálculo que contenga información que proporcione una descripción detallada (tamaño, edad, importancia para el negocio) de las aplicaciones activas. Es importante señalar que el inventario deberá visitarse con regularidad, el estado de las aplicaciones puede cambiar en función del tiempo y, como resultado, cambiaran las prioridades para la reingeniería.
  • 16. REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniería del software. Reestructuración de documentos. La documentación débil es la marca de muchos sistemas heredados. ¿Pero que se hace acerca de ello? ¿Cuáles son las opciones?. Crear documentación consume mucho tiempo, si el sistema funciona Vivirá con lo que tenga. La documentación debe actualizarse pero se tiene recursos limitados. Se utilizara un enfoque de “documentar cuando se toque”. El sistema es crucial para el negocio y debe volver a documentarse por completo incluso en este caso un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de estas opciones es viable. Una organización de software debe elegir la más apropiada para cada caso.
  • 17. REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniería del software. Ingeniería Inversa: Es el proceso de analizar un programa con la finalidad e crear una representación del programa en un mayor grado de abstracción que el código fuente. La ingeniería inversa es un proceso de recuperación de diseño. Las herramientas de la ingeniería inversa obtienen información del diseño de datos, arquitectónico y de procedimientos a partir de un programa existente.
  • 18. REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniería del software. Reestructuración de código: El tipo más común de reingeniería es la reestructuración de código, se lo puede hacer con módulos individuales que se codifican de una manera que dificultan comprenderlos, probarlos y mantenerlos. Llevar a cabo esta actividad requiere analizar el código fuente empleando una herramienta de reestructuración.
  • 19. REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniería del software. Reestructuración de datos: La reestructuración de datos es una actividad de reingeniería a gran escala. En la mayoría de los casos, la reestructuración de datos comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se analiza con minuciosidad y se definen los modelos de datos necesarios, se identifican los objetivos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes.
  • 20. REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniería del software. Ingeniería directa: La ingeniería directa, también llamada renovación o reclamación, no solo recupera la información de diseño a partir del software existente, también utiliza esta información para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayoría de los casos el software sometido a reingeniería vuelve a implementar la función del sistema existente y también añade nuevas funciones o mejora el desempeño global.
  • 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.
  • 32. 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.
  • 33. 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
  • 34. 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)
  • 35. 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
  • 36. GRACIAS por su atención, nos reservamos el derecho de contestar cualquier pregunta