SlideShare uma empresa Scribd logo
1 de 9
S.E.P.         D.G.E.S.T.          S.N.E.S.T.



                INSTITUTO TECNOLÓGICO
                                          de Tuxtepec

                               “ENSAYO

                REINGENIERÍA DE SOFTWARE”
                                   CARRERA:
                   Ingeniería en Sistemas Computacionales

                                 MATERIA:
                          Reingeniería de software

                                PRESENTAN:
                         Bolaños Duran Juan Carlos
                          Pérez Antonio Julio Cesar
                         Vázquez Gómez Guadalupe
                          Vicente AzamarTimoteo
                        Zarate Castillo Celeste Yamín

                              CATEDRÁTICO:
                    Martínez Morales Ma. de los Ángeles


                 Tuxtepec, Oaxaca; a 14 de Febrero de 2012.




ISC – 2010/01                                    Febrero de 2012
CORREO
NOMBRE DEL ALUMNO          NÚMERO DE CONTROL
                                                     ELECTRÓNICO
 Bolaños Duran Juan
                          scorpion_03k@hotmail.com
       Carlos                                         083503634

  Pérez Antonio Julio
                            jcpat_10@hotmail.com
        Cesar                                          08350355

   Vázquez Gómez
     Guadalupe              lupev_g@hotmail.com        08350380

Vicente Azamar Timoteo
                          alkon_1_15@hotmail.com       08350384
Zarate Castillo Celeste
        Yamín             celeste_tux@hotmail.com      08350385
RESUMEN


Éste articulo desarrolla y muestra un panorama general del estado de evolución en el
que ha estado inmerso a través del tiempo la reingeniería de software, así mismo con
su gran importancia e impacto que implico el hecho de haberse potencializado en el
mercado del desarrollo de software y de aplicaciones. No obstante el hecho de que
haya tenido un gran auge y aceptación en el mundo quiere decir que dicho proceso
siempre se ha mantenido viento en popa, mas bien existieron diversos factores que
en vez de afectar su influencia ha repercutido en los grandes beneficios que la
reingeniería ha traído consigo. Uno de los grandes beneficios que podemos ser
participes es la innovación de tienen los grandes sistemas que se han ido
desarrollando y aplicando dentro de las grandes organizaciones.




Palabras clave: Reingeniería, innovación y sistema.
ENSAYO

INTRODUCCIÓN


La reingeniería de software una disciplina de preparación para migrar un sistema
que evoluciona. El proceso aplica principios de ingeniería para un sistema existente
con el objetivo de encontrar nuevos requerimientos.
Existen múltiples referencias al concepto de reingeniería de sistema en toda la web.
En las cuales podemos mencionar algunos como Arnold, la definen como “una
actividad que mejora la comprensión del software, o bien, lo prepara o mejora para
incrementar su facilidad de mantenimiento, reutilización o evolución”. Para otros
como Chikofsky que lo define como “es el examen y la alteración de un sistema para
reconstruirlo en una nueva forma y la subsiguiente implementación de esa forma”. El
concepto de reingeniería está muy relacionado con los conceptos de reutilización,
innovación, génesis, desarrollo y así se puede comprobar en los conceptos de Perlis
y Biggerstoff en, donde se refieren a la reutilización como la reaplicación de una
variedad de tipos de conocimientos de un sistema a otro ara reducir el esfuerzo de
desarrollo y mantenimiento de ese sistema; es decir, la reutilización está enfocada a
mejorar la calidad y reducir el esfuerzo haciendo uso de parte de un sistema en un
nuevo contexto.(Tosca & Fernández)
El presente trabajo desarrolla un breve ensayo acerca de qué es la reingeniería de
software, la evolución que ha tenido, la importancia que tiene aplicar reingeniería; asi
como también la función que ésta tiene.
DESARROLLO


La reingeniería surge por la necesidad de poder realizar cambios en un sistema,
permitiendo tener como punto primordial la abstracción esencial del software, esto
permite conservar los valores esenciales del sistema
La reingeniería se divide dependiendo el punto de modificación del sistema, la
modificación puede ser desde en el código fuente o en la interfaz del sistema; es allí
donde entra la labor de reingeniar, esto implica una transformación sistemática de un
sistema existente a una forma nueva para realizar mejoras de la calidad en
operación, capacidad del sistema, funcionalidad, rendimiento o capacidad de
evolución a bajo coste, con el plan de desarrollo corto y bajo riesgo para el cliente.


Si el sistema no tiene como características el bajo costo, que no se pueda realizar en
poco tiempo o porque no tiene poco riesgo, se tiene que considerar la posibilidad de
un nuevo desarrollo.


La reingeniería que hoy conocemos y aplicamos en nuestros productos de software
ha evolucionado rápidamente; y podemos darnos cuenta ya que en tan solo una
década ha podido completar casi todas las etapas que pasan los enfoques.La
reingeniería de software ha tenido varios nombres como: modernización,
transformación, restructuración, rediseño, aunque todos tienen metas comunes:
aumentar la capacidad para competir en el mercado mediante la reducción de
costos, el incremento en la calidad y una mayor velocidad de respuesta.


La evolución y crecimiento de la reingeniería en sus inicios parte de la necesidad de
las empresas en rediseñar sus procesos internos en la década de los ochenta; luego
al inicio de los noventa, gracias al éxito que dichas empresas habían tenido al utilizar
la reingeniería en sus procesos se logra publicar y divulgar masivamente mediante la
venta del libro “Innovación de procesos: reingeniería por medio de la tecnología de la
información”. En consecuencia de dicho acto muchas mas empresas lograron
sumarse al éxito que proveía la reingeniería; pero como todo en este mundo tiene
sus limitaciones, cabe señalar que este proceso fue objeto de una fuerte crítica lo
cual mostraba a la luz las limitaciones y los factores que atentaban contra su éxito.
Esto dio partida a que muchos críticos dieran sus puntos de vistas personales que
lograron influir de manera significativa en las grandes organizaciones, ya que
muchos optaron en modificar radicalmente su entorno competitivo y dinámico en su
proceso productivo. También muchos malinterpretaron sus conceptos y esto originó
que tan solo el hecho de mencionarla causaba un gran descontento en las personas,
ya que ello implicaba una restructuración general y por consiguiente el despido del
personal.
En el plano del software tampoco podemos hacerlo a un lado ya que esa evolución
estuvo ligada a la llamada crisis del software; lo que provoco la necesidad de crear
estándares de desarrollo de software y con ello garantizar software confiable y
eficiente, aunque esto tampoco garantiza el éxito permanente de muchas
organizaciones es necesario aplicar la reingeniería de software en las categorías de
mantenimiento, modernización y remplazo, que estaría fuertemente ligado a la
relación costo beneficio.


Aplicar reingeniería a los sistemas implica, convencer a la dirección sobre el proceso
que ello tiene y la necesidad imperiosa de cambiar, creando a posterioridad un
comité de dirección destinado a hacerse cargo del proyecto de reingeniería.
Es allí donde entra a jugar un papel muy importante el término refactorización, la cual
se usa a menudo para describir la modificación del código fuente sin cambiar su
comportamiento, lo que se conoce informalmente por limpiar el código. La
refactorización es la parte del mantenimiento del código que no arregla errores ni
añade funcionalidad. El objetivo, es mejorar la facilidad de comprensión del código o
cambiar su estructura y diseño y eliminar código muerto, para facilitar el
mantenimiento en el futuro. Añadir nuevo comportamiento a un programa puede ser
difícil con la estructura dada del programa, así que un desarrollador puede
refactorizarlo   primero    para   facilitar   esta   tarea   y   luego   añadir   el   nuevo
comportamiento.(Serrano)
Hay autores que conciben el proceso de reingeniería de software en dos fases
fundamentales. La primera: comprender el software existente, donde el diseño del
sistema se recupera desde su código fuente con actividades como análisis de
dependencias, comprensión del programa, detección, extracción y almacenamiento
del diseño.   La segunda incluye todas las actividades que se realizan para
transformar el software existente en uno más fácil de mantener, entre las cuales cabe
mencionar descomposición, restructuración, remodularización, redocumentación,
etcétera.


Existen muchas definiciones(Rodríguez, Márquez, & Toro)de mantenimiento
mediante las empresas, entra las cuales los autores señalan las siguientes dos:


ANSI /IEE: Las modificaciones de los productos software después de su entrega para
corregir fallos, mejorar rendimiento u otros atributos o adaptar el producto a un
cambio de entorno.
ISO/IEC: Un producto software soporta una modificación en el código y su
documentación asociada para la solución de un problema o por la necesidad de una
mejora. Su objetivo es mejorar el software existente manteniendo su integridad.


Muchas veces es adecuado utilizar una refactorización a nuestros productos de
software sobre todo en este ámbito y a estas alturas donde nos encontramos.
Se determina la calidad técnica y el valor de negocio de cada aplicación medular en
la empresa, con el objetivo de construir una lista de aplicaciones ordenada según sus
prioridades en el proceso de reingeniería.Se determina los costos de cada proyecto
de reingeniería que se vaya a enfrentar: si estos son superiores a los beneficios, la
reingeniería no será una opción viable y la aplicación deberá ser desarrollada de
nuevo o bien adquirirse en el mercado.
CONCLUSIÓN


Podemos concluir que la reingeniería como hoy la conocemos y aplicamos en
nuestro desarrollo de software, a través del tiempo a tenido una grande y rápida
evolución pero que esto a la vez ha tenido un gran impacto en la actualidad; ya que
si nos ponemos a pensar que seria de un programador o desarrollador de software el
hecho de producir un nuevo producto desde cero, vaya eso si seria algo sumamente
tedioso, bueno pero para esto hoy tenemos a disposición el hacer uso de la
reingeniería.
La reingeniería va mas allá de una simple ayuda para el mantenimiento. La
reingeniería es el puente desde las viejas hacia las nuevas tecnologías que las
organizaciones deben usar en la actualidad para responder al cambio de
requerimientos del negocio.
Los programas se hacen obsoletos al paso del tiempo ya que fueron escritos para
hardware y sistemas operativos que ya no existen, donde muchos están llenos de
características y parches no documentados.
Mientras más conocimiento se gestione en la organización y se aprenda de una
forma dinámica y en constante intercambio con el entorno, entonces se tendrán las
bases para saber cuándo es preciso dar un salto cualitativo.
La reingeniería de software constituye una poderosa herramienta para posibilitar que
nuestras empresas se desarrollen tan rápido como nuestras mentes y los
paradigmas tecno-informáticos.
BIBLIOGRAFÍA


    Rodríguez, A., Márquez, A., & Toro, M. (s.f.). Gestión de la evolución del
    software. El eterno problema de los legacy systems.
    Serrano, V. C. (s.f.). Refactorización arquitectónico de software a nivel
    abstracto implementando patrones de diseño.
    Tosca, F. G., & Fernández, R. M. (s.f.). Reingeniería de software, ¿un camino
    o el camino?

Mais conteúdo relacionado

Mais procurados

Reingeniería de procesos
Reingeniería de procesosReingeniería de procesos
Reingeniería de procesosRoxana Martinez
 
Diapositivas amarillas[1]
Diapositivas amarillas[1]Diapositivas amarillas[1]
Diapositivas amarillas[1]karrina002
 
Unidad ii metodologias y herramientas para la reingenieria de procesos
Unidad ii  metodologias y herramientas para la reingenieria de procesosUnidad ii  metodologias y herramientas para la reingenieria de procesos
Unidad ii metodologias y herramientas para la reingenieria de procesosKarla Leticia Aguilar Lopez
 
Reingenieria de procesos
Reingenieria de procesosReingenieria de procesos
Reingenieria de procesosEstefania Perez
 
Reingeniería
ReingenieríaReingeniería
ReingenieríaMILDREND
 
La gestion por procesos su papel e importancia
La gestion por procesos su papel e importanciaLa gestion por procesos su papel e importancia
La gestion por procesos su papel e importanciafabianximena
 
Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.
Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.
Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.Cesar Araya
 
Reingeniería de la organización
Reingeniería de la organizaciónReingeniería de la organización
Reingeniería de la organizaciónYerri Iorimaki
 
Reingeniería de procesos
Reingeniería de procesosReingeniería de procesos
Reingeniería de procesosMiella TravieZa
 
Unidad3 Sesion02 Si Y Reingenieria
Unidad3 Sesion02 Si Y ReingenieriaUnidad3 Sesion02 Si Y Reingenieria
Unidad3 Sesion02 Si Y ReingenieriaXimena Gómez
 

Mais procurados (20)

Reingeniería de procesos
Reingeniería de procesosReingeniería de procesos
Reingeniería de procesos
 
Diapositivas amarillas[1]
Diapositivas amarillas[1]Diapositivas amarillas[1]
Diapositivas amarillas[1]
 
Reingenieria educativa
Reingenieria educativaReingenieria educativa
Reingenieria educativa
 
Introduccion a la reingeniería
Introduccion a la reingenieríaIntroduccion a la reingeniería
Introduccion a la reingeniería
 
Reingeniería De Proceso
Reingeniería De ProcesoReingeniería De Proceso
Reingeniería De Proceso
 
Unidad ii metodologias y herramientas para la reingenieria de procesos
Unidad ii  metodologias y herramientas para la reingenieria de procesosUnidad ii  metodologias y herramientas para la reingenieria de procesos
Unidad ii metodologias y herramientas para la reingenieria de procesos
 
Reingenieria de procesos
Reingenieria de procesosReingenieria de procesos
Reingenieria de procesos
 
BPR
BPRBPR
BPR
 
Reingeniería
ReingenieríaReingeniería
Reingeniería
 
La gestion por procesos su papel e importancia
La gestion por procesos su papel e importanciaLa gestion por procesos su papel e importancia
La gestion por procesos su papel e importancia
 
Reingenieria De Procesos
Reingenieria De ProcesosReingenieria De Procesos
Reingenieria De Procesos
 
Reingenieria de Procesos
Reingenieria de ProcesosReingenieria de Procesos
Reingenieria de Procesos
 
Reingeniería Ensayo
Reingeniería EnsayoReingeniería Ensayo
Reingeniería Ensayo
 
Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.
Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.
Gestión por Procesos y Mejora Contínua. Una mirada de desafíos.
 
Reingeniería de la organización
Reingeniería de la organizaciónReingeniería de la organización
Reingeniería de la organización
 
Reingeniería de procesos empresariales (brp)
Reingeniería de procesos empresariales (brp)Reingeniería de procesos empresariales (brp)
Reingeniería de procesos empresariales (brp)
 
Reingeniería de procesos
Reingeniería de procesosReingeniería de procesos
Reingeniería de procesos
 
Unidad3 Sesion02 Si Y Reingenieria
Unidad3 Sesion02 Si Y ReingenieriaUnidad3 Sesion02 Si Y Reingenieria
Unidad3 Sesion02 Si Y Reingenieria
 
Cambio Organizacional
Cambio OrganizacionalCambio Organizacional
Cambio Organizacional
 
Sepulveda egaf11
Sepulveda egaf11Sepulveda egaf11
Sepulveda egaf11
 

Semelhante a Ensayo gral

Semelhante a Ensayo gral (20)

Ensayo
EnsayoEnsayo
Ensayo
 
Proyecto de reingenieria
Proyecto de reingenieriaProyecto de reingenieria
Proyecto de reingenieria
 
Ensayo fsi --
Ensayo fsi --Ensayo fsi --
Ensayo fsi --
 
Sistema presupuestacion
Sistema presupuestacionSistema presupuestacion
Sistema presupuestacion
 
Dpss u3 a2_maoa
Dpss u3 a2_maoaDpss u3 a2_maoa
Dpss u3 a2_maoa
 
Roles fin
Roles finRoles fin
Roles fin
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Ingeniería del software
Ingeniería del softwareIngeniería del software
Ingeniería del software
 
Rodrigo
RodrigoRodrigo
Rodrigo
 
Rodrigo
RodrigoRodrigo
Rodrigo
 
Dpss u3 a2_paov
Dpss u3 a2_paovDpss u3 a2_paov
Dpss u3 a2_paov
 
Procesos de Evolución del Software
Procesos de Evolución del SoftwareProcesos de Evolución del Software
Procesos de Evolución del Software
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Marcos mendoza ensayo
Marcos mendoza ensayoMarcos mendoza ensayo
Marcos mendoza ensayo
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
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
 
TECNICAS DE MANTENIMIENTO DE SW.pptx
TECNICAS DE MANTENIMIENTO DE SW.pptxTECNICAS DE MANTENIMIENTO DE SW.pptx
TECNICAS DE MANTENIMIENTO DE SW.pptx
 
Desarrollode software (1)
Desarrollode software (1)Desarrollode software (1)
Desarrollode software (1)
 

Mais de Blue ...

Protocolofinal
ProtocolofinalProtocolofinal
ProtocolofinalBlue ...
 
Protocolo evalsist
Protocolo evalsistProtocolo evalsist
Protocolo evalsistBlue ...
 
Reingenieria
ReingenieriaReingenieria
ReingenieriaBlue ...
 
Segunda parte del proyecto
Segunda parte del proyectoSegunda parte del proyecto
Segunda parte del proyectoBlue ...
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativoBlue ...
 
Informe reing
Informe reingInforme reing
Informe reingBlue ...
 
Presentacion reing
Presentacion reingPresentacion reing
Presentacion reingBlue ...
 
Presentacion reing
Presentacion reingPresentacion reing
Presentacion reingBlue ...
 
Presentacion del proyecto
Presentacion del proyectoPresentacion del proyecto
Presentacion del proyectoBlue ...
 
Primera parte proyecto
Primera parte proyectoPrimera parte proyecto
Primera parte proyectoBlue ...
 
Proceso mapa
Proceso mapaProceso mapa
Proceso mapaBlue ...
 
Rolesintegrantes
RolesintegrantesRolesintegrantes
RolesintegrantesBlue ...
 
Roles funciones
Roles funcionesRoles funciones
Roles funcionesBlue ...
 
Proceso mapa
Proceso mapaProceso mapa
Proceso mapaBlue ...
 
Guion mitos
Guion mitosGuion mitos
Guion mitosBlue ...
 
Reingenieria ens
Reingenieria ensReingenieria ens
Reingenieria ensBlue ...
 
Inventarios
InventariosInventarios
InventariosBlue ...
 
Practica13
Practica13Practica13
Practica13Blue ...
 
Practica12
Practica12Practica12
Practica12Blue ...
 
Practica12
Practica12Practica12
Practica12Blue ...
 

Mais de Blue ... (20)

Protocolofinal
ProtocolofinalProtocolofinal
Protocolofinal
 
Protocolo evalsist
Protocolo evalsistProtocolo evalsist
Protocolo evalsist
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Segunda parte del proyecto
Segunda parte del proyectoSegunda parte del proyecto
Segunda parte del proyecto
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Informe reing
Informe reingInforme reing
Informe reing
 
Presentacion reing
Presentacion reingPresentacion reing
Presentacion reing
 
Presentacion reing
Presentacion reingPresentacion reing
Presentacion reing
 
Presentacion del proyecto
Presentacion del proyectoPresentacion del proyecto
Presentacion del proyecto
 
Primera parte proyecto
Primera parte proyectoPrimera parte proyecto
Primera parte proyecto
 
Proceso mapa
Proceso mapaProceso mapa
Proceso mapa
 
Rolesintegrantes
RolesintegrantesRolesintegrantes
Rolesintegrantes
 
Roles funciones
Roles funcionesRoles funciones
Roles funciones
 
Proceso mapa
Proceso mapaProceso mapa
Proceso mapa
 
Guion mitos
Guion mitosGuion mitos
Guion mitos
 
Reingenieria ens
Reingenieria ensReingenieria ens
Reingenieria ens
 
Inventarios
InventariosInventarios
Inventarios
 
Practica13
Practica13Practica13
Practica13
 
Practica12
Practica12Practica12
Practica12
 
Practica12
Practica12Practica12
Practica12
 

Ensayo gral

  • 1. S.E.P. D.G.E.S.T. S.N.E.S.T. INSTITUTO TECNOLÓGICO de Tuxtepec “ENSAYO REINGENIERÍA DE SOFTWARE” CARRERA: Ingeniería en Sistemas Computacionales MATERIA: Reingeniería de software PRESENTAN: Bolaños Duran Juan Carlos Pérez Antonio Julio Cesar Vázquez Gómez Guadalupe Vicente AzamarTimoteo Zarate Castillo Celeste Yamín CATEDRÁTICO: Martínez Morales Ma. de los Ángeles Tuxtepec, Oaxaca; a 14 de Febrero de 2012. ISC – 2010/01 Febrero de 2012
  • 2. CORREO NOMBRE DEL ALUMNO NÚMERO DE CONTROL ELECTRÓNICO Bolaños Duran Juan scorpion_03k@hotmail.com Carlos 083503634 Pérez Antonio Julio jcpat_10@hotmail.com Cesar 08350355 Vázquez Gómez Guadalupe lupev_g@hotmail.com 08350380 Vicente Azamar Timoteo alkon_1_15@hotmail.com 08350384 Zarate Castillo Celeste Yamín celeste_tux@hotmail.com 08350385
  • 3. RESUMEN Éste articulo desarrolla y muestra un panorama general del estado de evolución en el que ha estado inmerso a través del tiempo la reingeniería de software, así mismo con su gran importancia e impacto que implico el hecho de haberse potencializado en el mercado del desarrollo de software y de aplicaciones. No obstante el hecho de que haya tenido un gran auge y aceptación en el mundo quiere decir que dicho proceso siempre se ha mantenido viento en popa, mas bien existieron diversos factores que en vez de afectar su influencia ha repercutido en los grandes beneficios que la reingeniería ha traído consigo. Uno de los grandes beneficios que podemos ser participes es la innovación de tienen los grandes sistemas que se han ido desarrollando y aplicando dentro de las grandes organizaciones. Palabras clave: Reingeniería, innovación y sistema.
  • 4. ENSAYO INTRODUCCIÓN La reingeniería de software una disciplina de preparación para migrar un sistema que evoluciona. El proceso aplica principios de ingeniería para un sistema existente con el objetivo de encontrar nuevos requerimientos. Existen múltiples referencias al concepto de reingeniería de sistema en toda la web. En las cuales podemos mencionar algunos como Arnold, la definen como “una actividad que mejora la comprensión del software, o bien, lo prepara o mejora para incrementar su facilidad de mantenimiento, reutilización o evolución”. Para otros como Chikofsky que lo define como “es el examen y la alteración de un sistema para reconstruirlo en una nueva forma y la subsiguiente implementación de esa forma”. El concepto de reingeniería está muy relacionado con los conceptos de reutilización, innovación, génesis, desarrollo y así se puede comprobar en los conceptos de Perlis y Biggerstoff en, donde se refieren a la reutilización como la reaplicación de una variedad de tipos de conocimientos de un sistema a otro ara reducir el esfuerzo de desarrollo y mantenimiento de ese sistema; es decir, la reutilización está enfocada a mejorar la calidad y reducir el esfuerzo haciendo uso de parte de un sistema en un nuevo contexto.(Tosca & Fernández) El presente trabajo desarrolla un breve ensayo acerca de qué es la reingeniería de software, la evolución que ha tenido, la importancia que tiene aplicar reingeniería; asi como también la función que ésta tiene.
  • 5. DESARROLLO La reingeniería surge por la necesidad de poder realizar cambios en un sistema, permitiendo tener como punto primordial la abstracción esencial del software, esto permite conservar los valores esenciales del sistema La reingeniería se divide dependiendo el punto de modificación del sistema, la modificación puede ser desde en el código fuente o en la interfaz del sistema; es allí donde entra la labor de reingeniar, esto implica una transformación sistemática de un sistema existente a una forma nueva para realizar mejoras de la calidad en operación, capacidad del sistema, funcionalidad, rendimiento o capacidad de evolución a bajo coste, con el plan de desarrollo corto y bajo riesgo para el cliente. Si el sistema no tiene como características el bajo costo, que no se pueda realizar en poco tiempo o porque no tiene poco riesgo, se tiene que considerar la posibilidad de un nuevo desarrollo. La reingeniería que hoy conocemos y aplicamos en nuestros productos de software ha evolucionado rápidamente; y podemos darnos cuenta ya que en tan solo una década ha podido completar casi todas las etapas que pasan los enfoques.La reingeniería de software ha tenido varios nombres como: modernización, transformación, restructuración, rediseño, aunque todos tienen metas comunes: aumentar la capacidad para competir en el mercado mediante la reducción de costos, el incremento en la calidad y una mayor velocidad de respuesta. La evolución y crecimiento de la reingeniería en sus inicios parte de la necesidad de las empresas en rediseñar sus procesos internos en la década de los ochenta; luego al inicio de los noventa, gracias al éxito que dichas empresas habían tenido al utilizar la reingeniería en sus procesos se logra publicar y divulgar masivamente mediante la venta del libro “Innovación de procesos: reingeniería por medio de la tecnología de la información”. En consecuencia de dicho acto muchas mas empresas lograron sumarse al éxito que proveía la reingeniería; pero como todo en este mundo tiene
  • 6. sus limitaciones, cabe señalar que este proceso fue objeto de una fuerte crítica lo cual mostraba a la luz las limitaciones y los factores que atentaban contra su éxito. Esto dio partida a que muchos críticos dieran sus puntos de vistas personales que lograron influir de manera significativa en las grandes organizaciones, ya que muchos optaron en modificar radicalmente su entorno competitivo y dinámico en su proceso productivo. También muchos malinterpretaron sus conceptos y esto originó que tan solo el hecho de mencionarla causaba un gran descontento en las personas, ya que ello implicaba una restructuración general y por consiguiente el despido del personal. En el plano del software tampoco podemos hacerlo a un lado ya que esa evolución estuvo ligada a la llamada crisis del software; lo que provoco la necesidad de crear estándares de desarrollo de software y con ello garantizar software confiable y eficiente, aunque esto tampoco garantiza el éxito permanente de muchas organizaciones es necesario aplicar la reingeniería de software en las categorías de mantenimiento, modernización y remplazo, que estaría fuertemente ligado a la relación costo beneficio. Aplicar reingeniería a los sistemas implica, convencer a la dirección sobre el proceso que ello tiene y la necesidad imperiosa de cambiar, creando a posterioridad un comité de dirección destinado a hacerse cargo del proyecto de reingeniería. Es allí donde entra a jugar un papel muy importante el término refactorización, la cual se usa a menudo para describir la modificación del código fuente sin cambiar su comportamiento, lo que se conoce informalmente por limpiar el código. La refactorización es la parte del mantenimiento del código que no arregla errores ni añade funcionalidad. El objetivo, es mejorar la facilidad de comprensión del código o cambiar su estructura y diseño y eliminar código muerto, para facilitar el mantenimiento en el futuro. Añadir nuevo comportamiento a un programa puede ser difícil con la estructura dada del programa, así que un desarrollador puede refactorizarlo primero para facilitar esta tarea y luego añadir el nuevo comportamiento.(Serrano)
  • 7. Hay autores que conciben el proceso de reingeniería de software en dos fases fundamentales. La primera: comprender el software existente, donde el diseño del sistema se recupera desde su código fuente con actividades como análisis de dependencias, comprensión del programa, detección, extracción y almacenamiento del diseño. La segunda incluye todas las actividades que se realizan para transformar el software existente en uno más fácil de mantener, entre las cuales cabe mencionar descomposición, restructuración, remodularización, redocumentación, etcétera. Existen muchas definiciones(Rodríguez, Márquez, & Toro)de mantenimiento mediante las empresas, entra las cuales los autores señalan las siguientes dos: ANSI /IEE: Las modificaciones de los productos software después de su entrega para corregir fallos, mejorar rendimiento u otros atributos o adaptar el producto a un cambio de entorno. ISO/IEC: Un producto software soporta una modificación en el código y su documentación asociada para la solución de un problema o por la necesidad de una mejora. Su objetivo es mejorar el software existente manteniendo su integridad. Muchas veces es adecuado utilizar una refactorización a nuestros productos de software sobre todo en este ámbito y a estas alturas donde nos encontramos. Se determina la calidad técnica y el valor de negocio de cada aplicación medular en la empresa, con el objetivo de construir una lista de aplicaciones ordenada según sus prioridades en el proceso de reingeniería.Se determina los costos de cada proyecto de reingeniería que se vaya a enfrentar: si estos son superiores a los beneficios, la reingeniería no será una opción viable y la aplicación deberá ser desarrollada de nuevo o bien adquirirse en el mercado.
  • 8. CONCLUSIÓN Podemos concluir que la reingeniería como hoy la conocemos y aplicamos en nuestro desarrollo de software, a través del tiempo a tenido una grande y rápida evolución pero que esto a la vez ha tenido un gran impacto en la actualidad; ya que si nos ponemos a pensar que seria de un programador o desarrollador de software el hecho de producir un nuevo producto desde cero, vaya eso si seria algo sumamente tedioso, bueno pero para esto hoy tenemos a disposición el hacer uso de la reingeniería. La reingeniería va mas allá de una simple ayuda para el mantenimiento. La reingeniería es el puente desde las viejas hacia las nuevas tecnologías que las organizaciones deben usar en la actualidad para responder al cambio de requerimientos del negocio. Los programas se hacen obsoletos al paso del tiempo ya que fueron escritos para hardware y sistemas operativos que ya no existen, donde muchos están llenos de características y parches no documentados. Mientras más conocimiento se gestione en la organización y se aprenda de una forma dinámica y en constante intercambio con el entorno, entonces se tendrán las bases para saber cuándo es preciso dar un salto cualitativo. La reingeniería de software constituye una poderosa herramienta para posibilitar que nuestras empresas se desarrollen tan rápido como nuestras mentes y los paradigmas tecno-informáticos.
  • 9. BIBLIOGRAFÍA Rodríguez, A., Márquez, A., & Toro, M. (s.f.). Gestión de la evolución del software. El eterno problema de los legacy systems. Serrano, V. C. (s.f.). Refactorización arquitectónico de software a nivel abstracto implementando patrones de diseño. Tosca, F. G., & Fernández, R. M. (s.f.). Reingeniería de software, ¿un camino o el camino?