ensayo gral

12
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 PRESENTAN: Bolaños Duran Juan Carlos Pérez Antonio Julio Cesar Vázquez Gómez Guadalupe Vicente Azamar Timoteo Zarate Castillo Celeste Yamín Febrero de 2012 ISC – 2010/01 MATERIA: Reingeniería de software CATEDRÁTICO: Martínez Morales Ma. de los Ángeles Tuxtepec, Oaxaca; a 14 de Febrero de 2012.

Upload: blue-

Post on 13-Jun-2015

443 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ensayo gral

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

PRESENTAN:Bolaños Duran Juan CarlosPérez Antonio Julio Cesar

Vázquez Gómez GuadalupeVicente Azamar Timoteo

Zarate Castillo Celeste Yamín

ISC – 2010/01

Febrero de 2012

MATERIA:Reingeniería de software

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

Tuxtepec, Oaxaca; a 14 de Febrero de 2012.

Page 2: Ensayo gral

NOMBRE DEL ALUMNO NÚMERO DE CONTROLCORREO

ELECTRÓNICOBolaños Duran Juan

[email protected]

m 083503634

Pérez Antonio Julio Cesar

[email protected]

Vázquez Gómez Guadalupe [email protected] 08350380

Vicente Azamar [email protected] 08350384

Zarate Castillo Celeste Yamín [email protected] 08350385

Page 3: Ensayo gral

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.

Page 4: Ensayo gral

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.

Page 5: Ensayo gral

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

Page 6: Ensayo gral

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

Page 7: Ensayo gral

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.

Page 8: Ensayo gral

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.

Page 9: Ensayo gral

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?