Upload
anon19319513
View
218
Download
0
Embed Size (px)
Citation preview
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
1/12
MATERIA:REINGENIERA DEL SOFTWARE
CATEDRATICO:MARIA LUISA ACOSTA SANJUAN
CARRERA:ING.EN SISTEMAS COMPUTACIONALES
TRABAJO:ENSAYO SOBRE LA FUNCIN Y BENEFICIO DELA REINGENIERA DEL SOFTWARE
PRESENTA:JESSE E. HERRERA SANTIAGO
YONIC NIETO ZEFERINOJONATHAN GIRON DE LA CRUZJORGE LUIS MENESES GARCIA
AARON NICOLAS MORENOGRUPO: SEMESTRE:B 8-,
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
2/12
RESUMENComo sabemos hemos cado en la famosa crisis del software pero para elaborarlo
debemos tener en cuenta unos puntos fundamentales para garantizar la calidad del
software y su desarrollo, funcionamiento, y beneficios, la mayor parte de los grandes
sistemas de informacin que estn hoy funcionando en las empresas del pas fueron
desarrollados en los aos ochenta. La irrupcin de las tecnologas relacionadas con
Internet, el paradigma de objetos, los componentes distribuidos y la nueva mentalidad
empresarial que intenta ofrecer mejores servicios a sus clientes, a travs de la
evolucin en el que se encuentra actualmente el proceso de la refactorizacin de
aplicaciones, partiendo desde la base de una reingeniera enfocada a un nivel de
abstraccin superior al comnmente utilizado en las aplicaciones, como lo es a nivel de
clases, mtodos, variables entre otros el desarrollo de la etapa de reingeniera del MD y
su incorporacin a un Sistema de Soporte de Decisin (DSS) para la localizacin de
sensores. El objetivo de la reingeniera del mtodo es automatizar tareas que hasta
ahora eran realizadas en forma manual por el ingeniero, a fin de optimizar tiempos y
reducir la introduccin de errores humanos y as poder tener una alternativa tambin al
problema El nuevo software fue testeado en el DI de una planta de sntesis de
amoniaco. El desempeo logrado por el nuevo software fue muy satisfactorio ya que
agiliz la labor del ingeniero, permitindole reducir significativamente los tiempos de
anlisis y evaluacin de resultados. En base a esto, consideramos que la reingeniera
del paquete posibilitar trabajar con problemas de media a gran escala, donde el
nmero de variables y ecuaciones requieren un manejo de estructuras de datos de
tamao real. De este modo, el paquete resultante podr ser incorporado a otras
herramientas de software que requieran el uso de MD como tcnica de clasificacin de
variables.
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
3/12
PALABRAS CLAVES
BUG: Es un error o un defecto del software o hardware que hace que un programa
funcione incorrectamente.
MD: Es una consulta
DSS: Decisiones de soporte de sistemas
ANTLR: Es el nombre de un sistema que utiliza una herramienta llamada LOOK#, que
permite hacer un analizador lxico
SGItm's: Son las siglas de un sistema que se encarga de separa la escena de los datos
del cdigo
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
4/12
IntroduccinComo poder ver y mejorar las visin de la calidad del software y porque su importacin
simplemente un buen trabajo para una buena paga y satisfacer las necesidades del
cliente. La situacin de la ingeniera del software en los aos 80 slo permita una
arquitectura fsica y lgica restringida a lo que ofreca los grandes fabricantes de
software y hardware (sobre todo IBM, que suministraba ambos componentes
consiguiendo as una dependencia total del cliente). Estos sistemas son sometidos a un
mantenimiento estresante y, normalmente, indocumentado, que desemboca en una
degradacin de la aplicacin y, por ende, en un servicio deficiente para el usuario. Las
necesidades de evolucin y adaptacin a los nuevos requerimientos tecnolgicos y de
negocio empujan al sistema a una nueva situacin a la que no es posible llegar a
travs del mantenimiento clsico. En una primera aproximacin, la solucin a estos
problemas se puede presentar a travs de dos caminos: un nuevo desarrollo que
incorpore nuevas tecnologas y funcionalidades o por medio de la aplicacin de
reingeniera al legacy system. En esto hay puntos fundamentales e importantes para el
desarrollo para una buena calidad del software y su eficiencia En la actualidad es muy
comn encontrar gran diversidad de herramientas que apoyan la refactorizacin de
software pero principalmente a nivel del cdigo fuente, como mtodos clases, variables
entre otras, pero no se enfocan principalmente hacia un replanteamiento de una
arquitectura solida, flexible y escalable con el tiempo de los nuevos y cambiantes
requerimientos a los que es inevitable evadir. El ahondarse en este tema e intentar
darle un enfoque a la refactorizacin a nivel de patrones de diseo con miras de
optimizar un modelo existente es una aporte que sin duda vale la pena enfatizar tanto a
nivel acadmico como productivo. Y en los enfoques en la refactorizacin. En muchos
de los aportes en investigacin hechos en el tema de la refactorizacin se han aportado
varios enfoques en la aplica labilidad y sentido de la refactorizacin en la cual se
destacan: A. Enfocados a Crud En la cual se hace nfasis de refactorizacin en la
persistencia de los datos B. Meta - Anlisis Se describe la dependencia del anlisis en
la cual se identifican las relaciones de las 72 refactorizaciones en java con las siete
categoras especificadas por de flower's C. Usando clusterings Basado en algotitmos
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
5/12
para sistemas de clusterings como kRED, HAC y PAMRED la cual tienen como funcin
identificar los apropiados refactorings que sern desarrollados en sistemas orientados a
objetos. Con el tiempo tambin se empeso a hablar del MD y como consiguiente, La
implementacin del MD surgi a partir de un prototipo, y por ende, varios aspectos
relativos a la interaccin del MD con las restantes herramientas de software usadas
para DI no fueron inicialmente consideradas. En particular, no fue definida una interface
con el ModGen. Por este motivo, el ingeniero de procesos es el encargado de
manipular la informacin las ecuaciones del proceso e ingresar los datos manualmente
al MD.
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
6/12
Porque la importancia de la reingeniera del software
Ante una situacin como la descrita anteriormente, las organizaciones tienen que tomar
una determinacin que se resume en un cambio del sistema para adecuarlo a las
nuevas necesidades.
Este cambio puede concretarse en una de las opciones siguientes para su mejor
desarrollo:
Reingeni-ar el sistema
Abandonar el sistema y sustituirlo por otro nuevo
Optar por una solucin hbrida entre las dos anteriores
Reingeni-ar el sistema
La definicin dada por el Reengineering Center del Software Engineering Institute de la
Universidad Carnegie Mellon es Reingeniera es la transformacin sistemtica de un
sistema existente a una nueva forma para realizar mejoras de la calidad en operacin,
capacidad del sistema, funcionalidad, rendimiento o capacidad de evolucin a bajo
coste, con un plan de desarrollo corto y con bajo riesgo para el cliente. En esta
definicin se enfatiza que el hecho de que la reingeniera es la mejora de sistemas
existentes de modo que la inversin resulte muy rentable y que, de todas formas, dicha
mejora podra ser obtenida a travs de un nuevo desarrollo. Si la reingeniera no tiene
un coste bajo, no est acabada en poco tiempo, no tiene poco riesgo o no ofrece un
valor aadido para el cliente, hay
que considerar la posibilidad de un nuevo desarrollo.
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
7/12
Abandonar
Un sistema se abandona cuando no es capaz de
seguir el ritmo de las necesidades del negocio y su
reingeniera no es posible o no se puede hacer con un
coste efectivo. Normalmente, estos sistemas adolecen
de documentacin, de actualizacin y de capacidad de
expansin. El abandono de un sistema comporta
riesgos:
Es una actividad que consume muchos recursos y
que implica a los mantenedores actuales del sistema.
Estos recursos estarn ocupados en el mantenimiento del sistema y, seguramente, no
conocern las nuevas tecnologas que van a ser aplicadas en el desarrollo del nuevo
sistema.
Abandonar el sistema no significa empezar un desarrollo desde cero. No se puede
pensar que los datos que contiene el legacy van a desecharse y que los valores que
conservan los expertos del sistema van a perderse. El abandono del sistema debe venir
precedido por un anlisis exhaustivo que permitan decidir el mtodo que se va a utilizar
para la migracin de la informacin del sistema actual al nuevo, incluyendo datos,
funciones de negocio y arquitectura del sistema.
Gestionar la evolucin
Durante el proceso de cambio del sistema hay que prever cul va a ser la gestin de su
evolucin posterior, sobre todo para que la situacin que se vive ahora no vuelva a
repetirse o, por lo menos, sea menos traumtica. La gestin de la evolucin debe
consistir en dar una respuesta rpida, preparada y eficiente a los cambios que se
produzcan en el entorno ya sean estos de ndole tecnolgico o de gestin del propio
negocio.
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
8/12
Cmo!
La evolucin de un sistema es un concepto amplio; abarca desde una simple
modificacin para corregir un bug de un programa hasta una reimplantacin completa
del sistema. Las actividades de evolucin que se pueden realizar sobre un sistema son
de tres tipos: mantenimiento, reingeniera y abandono.
Reingeniera o modernizacin
Posterior a las tcnicas de micro evolucin del mantenimiento, que tienden a moverse a
los niveles de abstraccin ms bajos del sistema, surge la reingeniera para cubrir la
necesidad de una evolucin ms amplia del sistema. La reingeniera trabaja todos los
niveles de abstraccin (desde la implementacin hasta el diseo) para conseguir
realizar cambios ms drsticos preservando los valores de negocio del sistema.
La reingeniera de sistemas puede clasificarse segn los niveles de conocimientos
requeridos para llevar a cabo el proyecto. La reingeniera que requiere conocimientos a
bajos niveles de abstraccin (cdigo fuente) se llama ingeniera inversa o
modernizacin de caja blanca y aquella que slo requiere el conocimiento de las
interfaces del sistema se llama reingeniera propiamente dicha o modernizacin de caja
negra
REINGENIERA DEL MTODO DIRECTO
La reingeniera del Mtodo Directo forma parte de la reingeniera completa del Sistema
de Soporte de Decisin. Resolver los puntos dbiles de la implementacin del MD
requera una reestructuracin profunda de tamao considerable. Como alternativa a un
mantenimiento del MD, se decidi realizar la reingeniera del paquete con el objetivo de
mantener el algoritmo base del mtodo intacto, mientras se removan las falencias de
su implementacin. Como primer paso de la reingeniera se trabaj con las estructuras
de datos internas originales. El diseo original del MD es altamente procedural, esttico
y no contempla un escenario cambiante relacionado con la magnitud de los casos de
estudio. Adems para la
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
9/12
implementacin de la matriz de ocurrencia se utilizaba un arreglo esttico con una
capacidad mxima de ecuaciones y variables que poda contener. Dado que la longitud
del arreglo que implementaba a la matriz estaba fija era imposible extenderla o
disminuirla segn el tamao real de la matriz. Como consecuencia o bien existan casos
de estudio que no podan desarrollarse o se produca un desperdicio de espacio de
memoria considerable.
Por estas razones, se propuso trabajar con las estructuras dinmicas brindadas por el
lenguaje de programacin al que se migr en la reingeniera del DSS. Visual Studio
.NET (Balena et. al., 2003) permite: el manejo transparente de arreglos dinmicos,
acceso directo a los elementos del arreglo y acceso secuencial de los datos de la
matriz. De esta manera, se extrajo informacin de las estructuras estticas
estableciendo un marco de trabajo para el rediseo de todas las estructuras estticas,
no solo la matriz de ocurrencia.
HERRAMIENTAS Y TCNICAS DE DETECCIN DE REFACTORIZACIN.
La refactorizacin se apoya en muchas tcnicas y herramientas para poder afectar en
donde se hace necesario una refactorizacin y de esta manera ser ms efectiva y
objetiva al momento de su implementacin en el proceso de optimizacin de software, y
entre ellas encontramos:
A. Aplicaciones de refactorizacin
1) Basadas en ANTLR
Es un sistema que utiliza una herramienta llamada LOOK#, que permite hacer unanalizador lxico que parsea el cdigo en C++. Dicho analizador construye un abstracto
rbol sintctico para cada archivo del programa.
2) Basadas en Visualizacin
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
10/12
Denominado SGItm's, que separa la escena de los datos del cdigo de la aplicacin con
el objetivo de poder manipular la informacin mediante diferentes interfaces y visualizar
los datos de una manera diferente para cada interface.
B. Tcnicas de refactorizacin
1) Orientadas a caractersticas de acoplamiento y cohesin. A partir del anlisis de las
dimensiones de acoplamiento y cohesin en que se encuentre el modelo.
2) Anlisis de la arquitectura Definiendo la arquitectura y configurando la refactorizacin
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
11/12
ConclusinLa gran variedad de tcnicas y tecnologas existentes para la realizacin de la
reingeniera de software ampla el prisma de posibilidades para llevar a cabo de una
manera correcta la refactorizacin en un software, y esto de acuerdo a cada necesidad
y enfoque que se necesite implementar. Es muy claro que existen gran cantidad de
herramientas y tcnicas enfocadas a la reingeniera a nivel de cdigo fuente pero muy
pocas enfocadas a la reingeniera a un nivel ms abstracto como lo es a nivel de
patrones de diseo en bsqueda de optimizar la arquitectura existente en una
aplicacin. En este trabajo se present la reingeniera de software correspondiente al
mdulo de anlisis de observabilidad, el cual forma parte de un paquete de clasificacin
de variables para diseo de instrumentacin de plantas de procesos. El objetivo fue
lograr un software con una mejor calidad global respecto al existente, con el fin de
adaptarlo a casos de estudio de tamao real. Los principales cambios introducidos con
el rejuvenecimiento del software apuntaron a optimizar el uso de memoria, a travs de
la migracin a estructuras de datos dinmicas y reduccin del almacenamiento de datos
temporales, mejorar la interaccin hombre-mquina y disminuir la introduccin de
errores humanos provenientes de la manipulacin no automatizada de datos por parte
del usuario. Como resultado se obtuvo un software superior, cuyo alcance como
herramienta se extiende ms all del diseo de instrumentacin, siendo til a otros tipos
de problemas que utilicen la clasificacin de variables en diferentes contextos de
desarrollo. Dado que este desarrollo se enmarca dentro de un proyecto de reingeniera
de un sistema de soporte de decisin, las prximas etapas de nuestras investigaciones
consistirn en aplicar la experiencia de esta primera fase en el rediseo e
implementacin de los mdulos de anlisis de redundancia y locacin inicial de
sensores.
8/3/2019 Funcion y Beneficios de La Reingenieria Del Software
12/12
BIBLIOGRAFA
http://escolar.ittux.edu.mx/file.php/298/Lecturas-ensayo_/GestionArchivosLegacy.pdf
http://escolar.ittux.edu.mx/file.php/298/Lecturas-ensayo_/Refactorizacion-arquitectonico-
de-software.pdf
http://escolar.ittux.edu.mx/file.php/298/Lecturas-ensayo_/reingenieria-de-un-paquete-
de-software.pdf
http://klit.startnow.com/s/?q=pdf&src=defsearch&provider=&provider_name=yahoo&pro
vider_code=&partner_id=693&product_id=741&affiliate_id=&channel=&toolbar_id=200&toolbar_version=2.4.0&install_country=MX&install_date=20111105&user_guid=D3447C
E7F15B4E1AB9D9FE4A3493BB78&machine_id=c66b96501dafde35ade283bed0a6e08
1&browser=CR&os=win&os_version=6.1-x86-SP0
*__FIN__*