0% encontró este documento útil (0 votos)
77 vistas12 páginas

299 585 2 PB

Este documento describe un proyecto de reingeniería de software para una empresa marmolera en México. Las aplicaciones existentes de la empresa se volvieron obsoletas, por lo que se decidió aplicar reingeniería en lugar de crear nuevas aplicaciones. El proyecto involucra a estudiantes y profesores del Instituto Tecnológico de la Laguna trabajando con el departamento de sistemas de la empresa. El proceso incluye un inventario de componentes, análisis, diseño y programación de una nueva aplicación basada en la herencia

Cargado por

celso marquez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
77 vistas12 páginas

299 585 2 PB

Este documento describe un proyecto de reingeniería de software para una empresa marmolera en México. Las aplicaciones existentes de la empresa se volvieron obsoletas, por lo que se decidió aplicar reingeniería en lugar de crear nuevas aplicaciones. El proyecto involucra a estudiantes y profesores del Instituto Tecnológico de la Laguna trabajando con el departamento de sistemas de la empresa. El proceso incluye un inventario de componentes, análisis, diseño y programación de una nueva aplicación basada en la herencia

Cargado por

celso marquez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

Uso de reingeniería de software en la


reestructuración de aplicaciones científicas
heredadas dentro de una empresa marmolera

Msc. Miguel Ángel de la Vara Ramírez


Instituto Tecnológico de la Laguna
miguel_vara@hotmail.com

Dra. Elisa Urquizo Barraza


Instituto Tecnológico de la Laguna
elisaurquizo@gmail.com

Dr. Enrique Cuan Durón


Instituto Tecnológico de la Laguna
kcuand@gmail.com

Msc. Antonio de Santiago Barragán


Instituto Tecnológico de la Laguna
aga6308@yahoo.com.mx

Dr. Diego Uribe Agundis


Instituto Tecnológico de la Laguna
diegouribeagundis@gmail.com

Resumen
La reingeniería de software tiene como principal función reestructurar o rediseñar
aplicaciones de software viejo y funcional en operación dentro de las empresas, que
con los avances de tecnologías tanto de hardware y software se vuelven obsoletas,
para lo cual es necesaria su operación sobre nuevas plataformas. Dentro de las
PYMES en México es un punto poco tomado en cuenta enfocando la mayoría de las

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~218~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

ocasiones en seguir trabajando con las aplicaciones originales o desecharlas por


completo incurriendo en grandes inversiones tanto económicas como en tiempo. La
finalidad del presente artículo es ejemplificar en un caso de uso de la reingeniería de
software dentro de una empresa del ramo del mármol en la ciudad de Gómez Palacio
Durango, haciendo uso del proceso de inventario de componentes, Proceso Unificado
así como software licenciamiento libre. En este trabajo participan profesores y alumnos
de la maestría de sistemas computacionales del Instituto Tecnológico de la Laguna, así
como personal del departamento de la empresa del ramo del mármol.

Palabras Clave: Ingeniería de Software, Proceso Unificado, Reingeniería de Software,


Software de Licenciamiento Libre

Abstract

The software reengineering have an a main function of restructure and redesign old and
functional applications software that are in operation on business, with advance on new
technologies in hardware and software that became obsolete, nevertheless is important
operation in a new platforms. For all SME on Mexico is not important considered use of
reengineering, is more common will work over the same systems or create a new
applications, that became a spend money and time too. The main focus of this article is
show a use case of software reengineering on a marble business located in Gomez
Palacio, Durango, Mexico, using a inventory process components, unified Process (UP)
and free software licensing. For this project works students from the master on computer
system of the Instituto Tecnológico de la Laguna and the department of systems of a
marble business.

Keywords: Free Software Licensing, Software Engineering, Software Reengineering,


Unified Process.

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~219~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

1. Introducción

Canteras el Delfín S.A de C.V es una empresa líder del ramo marmolero ubicada en la
ciudad de Gómez Palacio Durango con más de 20 de su fundación, esta empresa se
dedica a la extracción, procesamiento y comercialización de mármol en México,
principalmente su venta es en los Estados Unidos. Hace 15 años establece su
departamento de sistemas computacionales con la finalidad de desarrollar sus propias
aplicaciones, todas ellas basadas en Delphi como lenguaje de programación con
manejador de base de datos en Firebird, todas ellas en equipos de cómputo de
escritorio bajo Windows Xp como sistema operativo con acceso a una red local. A partir
del año 2005 decide establecer un plan de expansión creando dos plantas de
procesamiento de mármol en la ciudad de Gómez Palacio, Durango y una tercera
planta en el municipio de Puente Nacional en el estado de Veracruz, además de un
centro de distribución en los Estados Unidos.

El tener un esquema de aplicaciones software centralizado agregado a la evolución de


las plataformas de sistemas operativos (Windows, Linux, IOS, Android), además de
nuevas tecnologías con respecto al hardware genero deficiencias en el acceso a la
información tanto procesada como a o los resultados, creando un gran problema para la
toma de decisiones. Para solucionar esta problemática la empresa decidió tomar
algunas acciones al respecto entre las que se determinó aplicar un proceso de
reingeniería de software en lugar de la creación por completo de nuevas aplicaciones
software, basado principalmente en el hecho de contar con suficiente información
detallada de sus procesos productivos plasmados en sus sistemas computacionales.
Con el proceso de reingeniería obtendría nuevas aplicaciones basadas en nuestro
software heredado, documentación, además de nuevas funcionalidades producto del
conocimiento del personal que las opera pero sobre todo a un menor costo económico y
en tiempos. Para llevar a cabo el plan anterior se desarrolló una estrategia de trabajo
con el posgrado de sistemas computacionales del Instituto Tecnológico de la Laguna
junto al departamento de sistemas de la empresa, los cuales trabajan en conjunto
aprovechando las experiencias de ambas partes.

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~220~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

Como plan de trabajo se decide dividir el proyecto en tres aspectos principales:

a) Reingeniería de Software
b) Análisis, diseño y modelado de la nueva aplicación
c) Programación de la aplicación.

2. Métodos

Reingeniería de software

Hasta este punto se ha hablado del concepto de reingeniería de software, pero antes
debemos definir la reingeniería como: “la revisión fundamental y el rediseño radical de
procesos para alcanzar mejoras espectaculares en medidas críticas y contemporáneas
de rendimiento, tales como costos, calidad, servicio y rapidez” (Hammer y Champy,
p.34). Para hacer uso de reingeniería se deben de aplicar tres conceptos
fundamentales (Kamiya, p.66):

a) Definir objetivos y dividir proyectos en unidades manejables

b) Reformar a la administración intermedia para convencerla de la necesidad del


cambio

c) Adoptar las tecnologías de información como una herramienta inherente a la


empresa.

Algunos de los beneficios que se logran con la reingeniería son (Cuatrecasas, p.601):

a) Cambio positivo a procesos más eficientes.

b) Comportamiento activo de las personas, que aportan ideas y opiniones,


implicándose en la evolución y mejora de los procesos.

c) Cambio a procesos que precisen menos controles y verificaciones.

d) Integración de trabajos, varias tareas se combinan en una sola.

e) Una mejor organización del trabajo.

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~221~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

Como podemos observar de acuerdo a lo anterior la reingeniería busca optimizar


procesos, con la finalidad de obtener mejor resultados modificando nuestras
operaciones actuales, es decir no empezando de cero. Como es el caso de la empresa
Canteras el Delfín, SA de CV.

Teniendo claro el concepto de reingeniería, procedemos a definir la reingeniería de


software como: “la modificación de un producto software, o de ciertos componentes,
usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la
etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se
oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento,
reutilización, comprensión o evaluación”.

El presente proyecto contempla un proceso metodológico de reingeniería de software


que incluye el inventario de componentes actuales de las aplicaciones para determinar
su estado, seleccionar y clasificar cada componente por su grado de utilidad en el
nuevo sistema (lenguaje, claridad, eficiencia de algoritmos, etc.), después se sigue con
fases de la ingeniería inversa para generar los elementos de diseño y de análisis con
diferentes grados de granularidad y de abstracción hasta llegar a una documentación
de los sistemas actuales que sea útil al punto departida de la ingeniería directa.

Figura 1. Metodología de reingeniería de software

La implementación de la metodología de reingeniería se define en 5 etapas (figura 1):

1) Análisis de la metodología de Reingeniería de Software: Options Analysis for


Reingeneering (OAR).- Es un método sistemático, de arquitectura central y de

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~222~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

toma de decisiones para la identificación y extracción de componentes dentro de


grandes y complejos sistemas de software. Consiste de 5 etapas que presentan
tareas escalables enfocadas a la selección y análisis de los módulos a extraer de
las aplicaciones existentes:

a. Establecimiento del contexto de extracción

b. Inventario de componentes

c. Analizar componentes candidatos

d. Plan de opciones de extracción

e. Selección de opciones de extracción

2) Análisis del Modelo Cíclico para Reingeniería de Software.- Esta metodología


comprende seis fases que pueden abordarse de forma cíclica (figura 2):

a. Análisis de inventarios

b. Reestructuración de documentos

c. Ingeniería inversa

d. Reestructuración de código

e. Reestructuración de datos

f. Ingeniería directa

3) Combinación y adecuación de modelos para la industria marmolera.- Las


metodologías anteriores deberán analizarse y adecuarse a las aplicaciones del
control de producción de la empresa. La resultante debe ser la metodología a
seguir en el proyecto.

4) Análisis de inventario de componentes de Software.- Esta fase se refiere a la


extracción de cada componente de código de las diferentes aplicaciones del
software existente. Estos componentes se clasifican y se revisa su utilidad en
función de herramientas de desarrollo, eficiencia de algoritmos, facilidad de

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~223~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

mantenimiento, documentación, etc. Se determina el estado de cada uno de ellos


y se guardan en un repositorio de componentes. Esto independientemente de la
metodología que predomine en el proceso de reingeniería.

5) Restauración de documentos.- Esta fase se refiere a la revisión de la


documentación, si existiera, y de la misma forma se analizaría lo que pudiera
servir para la reestructuración de las aplicaciones.

Figura 2. Modelo Cíclico para Reingeniería de Software

Análisis y diseño de la nueva aplicación

Una vez empleada la metodología descrita previamente se procede al análisis y diseño


de la nueva aplicación software, para lo cual se hace uso de las métricas de ingeniería
de software así como la ingeniería de requisitos para determinar cuáles son las nuevas
funcionalidades que debe de contar la aplicación de acuerdo al contacto con los
usuarios. Para su análisis diseño y modelado contamos con los artefactos del Proceso
Unificado (UP) la cual es una metodología de análisis basada en iteraciones, así como
UML para su documentación. Una fortaleza muy importante que contendrá esta nueva
aplicación es la documentación, que en muchos de los casos es un punto poco tomado
en cuenta al momento de nuevos desarrollos, generando al final grandes problemas al
momento de dar mantenimiento o soporte a los sistemas.

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~224~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

Programación de la nueva aplicación

Uno de los principales motivos que propiciaron la reingeniería de los sistemas en


operación dentro de la empresa fue la portabilidad y funcionamiento dentro de diversas
plataformas así como el acceso en forma remota, por lo cual se determinó como
ambiente de operación la web, permitiendo el acceso desde diversos dispositivos
conectados al internet. Como lenguaje de programación se seleccionó software de
licenciamiento libre como lo son: PHP, HTML, java scripts, componentes jquery, etc. En
la parte de base de datos se utiliza MySql, y la aplicación residirá en servidores
basados en arquitectura Linux. El uso de todas estas herramientas le da un valor
agregado al no tener que hacer grandes inversiones en la adquisición de licencias, con
lo que se obtiene un ahorro considerable.

3. Resultados

Como resultado del inventario de componentes software, se determinaron que sistemas


se les aplicaría el proceso de reingeniería, seleccionado:

 Extracción materia prima

 Corte de bloques

 Línea de producción

 Producción en proceso

 Producto terminado

La importancia de trabajar en estas aplicaciones principalmente fue por el hecho de ser


la información que se utiliza en todas las plantas establecidas y a la vez determinan el
rendimiento del material que se procesa, con lo cual se obtiene que tan rentable sea la
operación de la planta y del material que produce.

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~225~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

Como se comentó desde el inicio estas aplicaciones se encuentran funcionando en


ambientes y bajo plataformas que los hacen ineficientes para los tiempos de respuesta
y conectividad que la empresa requiere. Una problemática que inicialmente se resolvió
fue la facilidad de mantenimiento de estos sistemas ya que anteriormente era imposible
hacer actualizaciones e incorporar nuevos algoritmos que hicieran óptimo el corte de los
bloques de piedras y que minimizaran el desperdicio. La documentación de estas
aplicaciones era escasa y para algunos módulos era inexistente. Al aplicar técnicas y
metodologías de Reingeniería de Software se conservó la funcionalidad de las
aplicaciones, algunos datos de las bases de datos que eran importantes y se
reestructuró el código hacia un lenguaje soportado en web. Se generó la
documentación bajo el paradigma unificado de desarrollo, UP, y la documentación del
análisis y diseño correspondiente a los Casos de Uso, Modelo del Dominio de las
aplicaciones, Diagramas de Colaboración y Diagramas de Clases. Los manuales
técnico y de usuario, anteriormente inexistentes, actualmente se encuentran en su fase
de redacción.

Figura 3. Interface de captura de la aplicación heredada

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~226~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

En la figura 3 se muestran algunas pantallas de captura de la aplicación en su estado


inicial, y su comparativo en la figura 4 con la nueva aplicación resultado de los procesos
mencionados anteriormente, cabe hacer mención que se ha mantenido el orden de
captura de la información, principalmente para evitar alguna resistencia al cambio por
parte de los usuarios. En todas las etapas de diseño y programación se ha tomado en
cuenta las recomendaciones y comentarios por parte de los usuarios que tienen acceso
a la aplicación, sobre todo que las mejoras que desean se encuentren disponibles.

Figura 4. Interface de captura de la nueva aplicación

4. Discusión y trabajos futuros

Lo presentado en este proyecto de reingeniería de software proporciona a las


organizaciones una alternativa viable para el desarrollo de aplicaciones software a partir
de sus aplicaciones existentes en operación (software heredado) las cuales ya
cumplieron su ciclo de vida. Se proporciona una alternativa menos costosa tanto en la
parte económica, tiempos de desarrollo y en resistencia al cambio por parte de los

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~227~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

usuarios, ya que sus nuevas aplicaciones contarán con las funciones originales para las
cuales fueron desarrolladas, más nuevas opciones producto de sus recomendaciones.

Para la empresa Canteras el Delfín SA de CV el presente proyecto de reingeniería se


ha convertido en un beneficio, por un lado la capacitación proporcionada a su
departamento de sistemas por parte del posgrado en sistemas computacionales del
tecnológico de la laguna, además de la renovación de sus aplicaciones software

De acuerdo a los tiempos planeados para la duración del proyecto (2 años), en los
próximos meses se dispondrá de la operación en paralelo de las dos aplicaciones
(software heredado y el nuevo sistema producto del proceso de reingeniería de
software) con la finalidad de observar su comportamiento así como la familiarización por
parte de los usuarios y evidenciar las ventajas del nuevo sistema. Cabe hacer mención
que en este proyecto se cuenta con dos alumnos de posgrado haciendo una estancia
en la empresa, que junto al departamento de sistemas trabajan de manera coordinada.

Bibliografía

[1] Cuatrecasas Arbós, Lluis. Gestión de la calidad total, Ediciones Díaz de Santos,
P601. 2012.

[2] GestioPolis.com Experto. (2001, marzo 12). Definición de reingeniería. [En línea]
consultado el 14/09/2015. Disponible en: http://www.gestiopolis.com/definicion-
de-reingenieria/

[3] Gracia, J. C. (2004). Metodología de Reingeniería del software para la


remodelación de aplicaciones científicas heredadas. 2015 [En línea]. Disponible:
http://hdl.handle.net/10366/21762

[4] Hammer M. y Champy J., Reingeniería, Editorial Norma, 1994. Kamiya, Marco.
Reingeniería y administración japonesa, En: Quehacer,Ed.101, p34 1995

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~228~
Pistas Educativas, No. 114, Diciembre 2015. México, Instituto Tecnológico de Celaya.

[5] I. Sommerville, Software Engineering. 6ta edición. Addison Wesley, 2001

[6] J. Leiva, Construcción de especificaciones de interfaces en un proceso de


reingeniería, 2da. Conferencia Iberoamericana en Sistemas, Cibernética e
Informática, 2003, USA, pp 202-208.

[7] Kamiya, Marco. Reingeniería y administración japonesa, En: Quehacer, Ed.101,


P-66. 1995

[8] Klein, Mark M. y Manganelli, Raymond L., Cómo hacer reingeniería, Editorial
Norma, 2004.

[9] R. Pressman, Ingeniería del software: Un enfoque práctico. 6ta Edición. McGraw-
Hill, 2005.

[10] Sametinger, J.: Software engineering with reusable components, Springer-Verlag,


1997.

Pistas Educativas Año XXXVI - ISSN 1405-1249


Certificado de Licitud de Título 6216; Certificado de Licitud de Contenido 4777; Expediente de Reserva 6 98 92

~229~

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy