Você está na página 1de 7

Universidad Autnoma de Nayarit Acadmica de Economa

Unidad

Reingeniera del Software


La reingeniera del software es la tecnologa que surge de aplicar las tcnicas de Inteligencia Artificial y matemtica sofisticada al anlisis automatizado y modificacin del cdigo fuente de programas, para abreviarlo y hacerlo ms eficiente. Actualmente la creacin y modificacin de programas de computadora es una tarea principalmente manual, y una tarea difcil e imprevisible. Los programas grandes suelen ser ms complejos y ms difciles de depurar. Aunque la tecnologa todava est en su infancia, la reingeniera del software est empezando a tomar algunas tareas de programacin, particularmente las tareas menos creativas, ms repetitivas y las automatiza. Estos programas de reingeniera, escritos en idiomas especialmente diseados, operan en el cdigo fuente de los programas y realizan una variedad de anlisis y modificaciones. Cuando una aplicacin lleva siendo usada aos, es fcil que esta aplicacin se vuelva inestable como fruto de las mltiples correcciones, adaptaciones o mejoras que han podido surgir a lo largo del tiempo. Esto deriva en que cada vez que se pretende realizar un cambio se producen efectos colaterales inesperados y hasta de gravedad, por lo que se hace necesario, aplicar reingeniera a la misma, si se prev que la aplicacin seguir siendo de utilidad. La Reingeniera de Software es una forma de modernizacin para mejorar las capacidades y/o mantenibilidad de los sistemas de informacin heredados mediante la aplicacin de tecnologas y practicas modernas. La Reingeniera de Software ofrece una disciplina de preparacin para migrar un sistema de informacin heredado hacia un sistema evolucionable. El proceso aplica principios de ingeniera para un sistema existente para encontrar nuevos requerimientos. PASOS PARA APLICAR LA REINGENIERA Una vez diagnosticado y seleccionado el proceso que tiene fallas, tomando en cuenta los aspectos anteriores, seguimos los siguientes pasos para aplicar la reingeniera en el proceso: Formulacin de una estrategia: requisitos del mercado, identificando mercados a los cuales se sirven, productos y servicios que se ofrecen. Desarrollos de productos: es un insumo para producir nuevos diseos de productos. Desarrollo de capacidad de manufactura: Capacidad instalada en cuanto a recursos tecnolgicos y humanos que se cuentan para el desarrollo del producto Comunicacin con el cliente: A travs de estudios hacia nuestros clientes, por medio de encuestas, estudios de mercado, etc., se trata de detectar las requerimientos de los clientes y tratar de estar un paso delante de lo que estos, puedan necesitar.

Sistemas Heredados
Ingeniera del Software Gamboa Campos Cristhian Jhovany

Universidad Autnoma de Nayarit Acadmica de Economa

Unidad

Los sistemas heredados son sistemas informticos socio-tcnicos que han sido desarrollados en el pasado, a menudo usando una tecnologa antigua y obsoleta. Estos sistemas no incluyen hardware y software sino tambin procesos y procedimientos heredados (antiguas formas de hacer cosas que son difciles de cambiar por que dependen de software heredado). Cambios en una parte del sistema inevitablemente implica cambios en otros componentes. Partes lgicas de un sistema heredado y sus relaciones: 1.- Sistema hardware. En muchos casos, los sistemas heredados se crearon para hardware mainframe que ya no est disponible, es costoso de mantener y no es compatible con las actuales polticas de compras de IT organizacionales. 2.- Software de Apoyo. Los sistemas heredados cuentan con una gran variedad de software de apoyo que van desde sistemas operativos y utilidades suministradas por el fabricante de hardware hasta los compiladores utilizados para el desarrollo de sistemas. 3.- Software de Aplicacin.- El sistema de aplicacin que proporciona los servicios del negocio por lo general est compuesto de varios programas independientes a desarrollar. Hace referencia a los sistemas de aplicacin que se compone de varios programas.

4.- Datos de aplicacin. Son los datos procesados por el sistema de aplicacin. 5.- Procesos de Negocio. Son los procesos utilizados en los negocios para lograr algn objetivo del negocio. 6.- Polticas y reglas del negocio. Son las definiciones de cmo llevar a cabo los negocios y las restricciones sobre estos. La utilizacin del sistema de aplicacin heredado esta contenida en estas polticas y reglas.

Reingeniera de procesos
Ingeniera del Software Gamboa Campos Cristhian Jhovany

Universidad Autnoma de Nayarit Acadmica de Economa

Unidad

La Reingeniera de Procesos es una herramienta gerencial moderna, orientada al mejoramiento de los procesos. Su adecuada aplicacin seguida de innovacin y mejoramientos continuos nos permitir mantenernos competitivos, pero en ningn momento puede por s sola serla solucin a los males, problemas o falencias de la organizacin. Y su aplicacin no garantiza tampoco el xito de la empresa. En trminos generales, la Reingeniera es una metodologa apropiada para revisar y redisear procesos, as como para implementarlos. Enfocndose en agregar valor a cada uno de los pasos de un proceso y eliminar aquellos que no den o no puedan dar ningn valor agregado, siendo muy apropiada para generar organizaciones horizontales y organizaciones por procesos, as como para reducir costos, tiempos de procesos, mejorar el servicio y los productos, as como para mejorar la motivacin y la participacin del personal. No consiste en una simple reestructuracin, sino en un cambio radical en la estructura de los procesos, entendidos stos como una secuencia de actividades que crean valor para el clientes Esto es posible de 3 formas distintas: rediseo de las etapas del proceso, cambio de la secuencia lgica y temporal, o cambio de otras caractersticas del proceso, siendo para ello bsico el respaldo de las Tecnologas de la Informacin y las comunicaciones. Es necesario un profundo estudio de los clientes, sus necesidades, gustos y preferencias, as como de sus posibilidades econmicas. Las 3C son: Clientes: La oferta aumenta y se diversifica a un ritmo ms acelerado que la demanda. Competencia: Antes las empresas nacionales se repartan el mercado local pero la presin competitiva se hace ms intensa. Cambio: Acortamiento en el ciclo de vida de los productos Caractersticas comunes:

Orientacin al proceso orientacin al cliente. Definicin de procesos de negocio (ordenacin especfica de actividades, con entradas y salidas). Asuncin de responsabilidad de los procesos por parte de la alta direccin Visin global de los procesos.

INSTRUMENTOS Y TCNICAS El objetivo fundamental de todo programa de Reingeniera es la mejora radical de procesos. Sus tcnicas incluyen: - Visualizacin de procesos Investigacin operativa. Tecnologa de la Informacin. Gestin del cambio. Benchmarking. Ingeniera Industrial. Enfoque al cliente. Caractersticas comunes en todo proceso de Reingeniera de Procesos:

Unificacin de tareas.
Cristhian Jhovany

Ingeniera del Software Gamboa Campos

Universidad Autnoma de Nayarit Acadmica de Economa

Unidad

Participacin de los trabajadores en la toma de decisiones. Cambio del orden secuencial por el natural en los procesos. Realizacin de diferentes versiones de un mismo producto (clientizacin). Reduccin de las comprobaciones y controles (se flexibiliza la estructura organizativa). El responsable de proceso es el nico punto de contacto. Operaciones hbridas centralizadas/des centralizadas.

Ingeniera Inversa
La ingeniera inversa se ha definido como el proceso de construir especificaciones de un mayor nivel de abstraccin partiendo del cdigo fuente de un sistema software o cualquier otro producto (se puede utilizar como punto de partida cualquier otro elemento de diseo, etc.). Estas especificaciones pueden volver ser utilizadas para construir una nueva implementacin del sistema utilizando, por ejemplo, tcnicas de ingeniera directa. Beneficios Ingeniera Inversa La aplicacin de ingeniera inversa nunca cambia la funcionalidad del software sino que permite obtener productos que indican cmo se ha construido el mismo. Se realiza permite obtener los siguientes beneficios: Reducir la complejidad del sistema: al intentar comprender el software se facilita su mantenimiento y la complejidad existente disminuye. Generar diferentes alternativas: del punto de partida del proceso, principalmente cdigo fuente, se generan representaciones grficas lo que facilita su comprensin. Recuperar y/o actualizar la informacin perdida (cambios que no se documentaron en su momento): en la evolucin del sistema se realizan cambios que no se suele actualizar en las representaciones de nivel de abstraccin ms alto, para lo cual se utiliza la recuperacin de diseo. Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados, esta serie de anomalas puede ser detectados por la ingeniera inversa. Facilitar la reutilizacin: por medio de la ingeniera inversa se pueden detectar componentes de posible reutilizacin de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los riesgos de mantenimiento. La finalidad de la ingeniera inversa es la de desentraar los misterios y secretos de los sistemas en uso a partir del cdigo. Para ello, se emplean una serie de herramientas que extraen informacin de los datos, procedimientos y arquitectura del sistema existente. Tipos de Ingeniera Inversa La ingeniera inversa puede ser de varios tipos: Ingeniera inversa de datos: Se aplica sobre algn cdigo de bases datos (aplicacin, cdigo SQL, etc) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relacin
Ingeniera del Software Gamboa Campos Cristhian Jhovany

Universidad Autnoma de Nayarit Acadmica de Economa

Unidad

Ingeniera inversa de lgica o de proceso: Cuando la ingeniera inversa se aplica sobre cdigo de un programa para averiguar su lgica o sobre cualquier documento de diseo para obtener documentos de anlisis o de requisitos. Ingeniera inversa de interfaces de usuario: Se aplica con objeto de mantener la lgica interna del programa para obtener los modelos y especificaciones que sirvieron de base para la construccin de la misma, con objeto de tomarlas como punto de partida en procesos de ingeniera directa que permitan modificar dicha interfaz.

Herramientas para la Ingeniera Inversa


Los depuradores Las herramientas de inyeccin de fallos. Los desensambladores Los compiladores inversos o decompiladores Las Herramientas CASE

Reestructuracin del cdigo


Se analiza el cdigo fuente mediante una herramienta de reestructuracin, se localizan las violaciones de las estructuras de programacin y a partir de ah se reestructura el cdigo. El cdigo resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalas. A continuacin se actualiza la documentacin del cdigo.

Es habitual, por distintos motivos, que la lgica de los programas heredados no sea la ms adecuada, pueden presentar lgica de control no intuitiva lo que puede hacer que los programas no se entiendan fcilmente. Un ejemplo habitual es el caso de los programas Fortran. El principal factor a tener en cuenta es que el control sea estructurado, desde 1966 se conoce que cualquier programa puede reestructurarse con sentencias condicionales sencillas eliminando la instruccin incondicional goto, pero adems se pueden simplificar las condiciones complejas. Se puede llevar a cabo reestructuracin automtica de los programas, convirtindolos a un grafo dirigido, despus se genera el programa estructurado equivalente sin instrucciones goto. Esta reestructuracin automtica presenta los siguientes problemas: prdida de comentarios, prdida de documentacin y necesidad de un hardware sofisticado. En algunos casos el costo, no aconseja reestructurar algn programa, por lo que se utilizan mtricas para identificar los candidatos a ser reestructurados.

Mejora de la estructura del programa

Reestructuracin de datos
En la mayora de los casos, la reestructuracin de datos comienza por una actividad de ingeniera inversa. La arquitectura de datos actual se analiza minuciosamente y se definen los modelos de datos necesarios, se revisan los objetos de datos y atributos a efectos de calidad. Los cambios en los datos darn lugar a cambios o bien en la arquitectura o bien de cdigo.

Ingeniera del Software Gamboa Campos

Cristhian Jhovany

Universidad Autnoma de Nayarit Acadmica de Economa

Unidad

Ingeniera progresiva
Reconstruye el programa empleando prcticas de ingeniera moderna de software y tambin la informacin obtenida durante la ingeniera inversa La ingeniera progresiva que se denomina tambin renovacin o reclamacin no solamente recupera la informacin de diseo de un sw ya existente , si no que adems, utiliza esta informacin para alterar o reconstituir el sistema existente en un esfuerzo para mejorar su calidad global

Economa de la Reingeniera de Software


Muchas veces las empresas que poseen aplicaciones de software se ven en la necesidad de someter sus programas a la tan mencionada reingeniera, pero antes de realizarlo es muy importante realizar un estudio de anlisis de costo-beneficio en las cuales se definen los siguientes parmetros: P1 P2 P3 P4 P5 P6 Costo de mantenimiento anual actual. Costo de operacin anual actual. Valor de negocio anual actual. Costo de mantenimiento anual predicho. Costo de operacin anual predicho. Valor de negocio anual predicho.

Referencias:
Recuperado el 2 de junio del 2011 de http://www.virtual.unal.edu.co/cursos/sedes/manizales/4100010/Lecciones/Cap1/Reingenie ria.htm Reingeniera De Software recuperado el 2 de junio del 2011 de http://clubensayos.com/Tecnolog%C3%ADa/Reingenieria-De-Software/11256.html
Ingeniera del Software Gamboa Campos Cristhian Jhovany

Universidad Autnoma de Nayarit Acadmica de Economa

Unidad

Sistemas heredados Recuperado el 2 de junio del http://losvenudosdedona.blogspot.com/2011/04/sistemas-heredados.html

2011

de

Hierro Mara de los ngeles, Gestin de Calidad y Reingeniera de Procesos, recuperado el 2 de junio del 2011 de http://www.losrecursoshumanos.com/contenidos/95-gestion-decalidad-y-reingenieria-de-procesos.html De la Morena Veronica, Qu es la Ingeniera Inversa?, recuperado el 2 de junio del 2011 de http://cnx.org/content/m17432/latest/ Sommerville, Ian. "Ingeniera del Software", Captulos 5 (seccin 4), 21 y 29. 7 Edicin, Pearson-Addison Wesley, 2005, recuperado el 2 de junio del 2011 de http://isg2.pbworks.com/w/page/7624277/Gesti%C3%B3n-del-Cambio Pressman, R.S."Ingeniera del Software: un enfoque prctico", Captulos 9 y 30.5 Edicin, McGraw-Hill, 2002 recuperado el 2 de junio del 2011 de http://isg2.pbworks.com/w/page/7624277/Gesti%C3%B3n-del-Cambio lvarez Garca Juan Carlos, Metodologia de reingeniera del software para la remodelacin de aplicaciones cientficas heredadas, recuperado el 2 de junio del 2011 de
http://gredos.usal.es/jspui/bitstream/10366/21762/1/DPTOIA-IT-2004-003.pdf

Ingeniera del Software Gamboa Campos

Cristhian Jhovany

Você também pode gostar