Title :
Reverse engineering as a means of improving and adapting legacy finite element code
Author :
Hoole, S. Ratnajeevan H ; Arudchelvam, T.
Author_Institution :
Dept. of Eng. & Sci., Rensselaer Polytech. Inst., Hartford, CT, USA
Abstract :
The development of code for finite elements-based field computation has been going on at a pace since the 1970s, yielding code that was not put through the software lifecycle - where code is developed through a sequential process of requirements elicitation from the user/client to design, analysis, implementation and testing (with loops going back from the second stage onwards as dissatisfactions are identified or questions arise) and release and maintenance. As a result, today we have legacy code running into millions of lines, implemented without planning and not using proper state-of-the-art software design tools. It is necessary to redo this code to exploit object oriented facilities and make corrections or run on the web with Java. Object oriented code´s principal advantage is reusability. It is ideal for describing autonomous agents so that values inside a method are private unless otherwise so provided - that is encapsulation makes programming neat and less error-prone in unexpected situations. Recent advances in software make such reverse engineering/reengineering of this code into object oriented form possible. The purpose of this paper is to show how existing finite element code can be reverse/re-engineered to improve it. Taking sections of working finite element code, especially matrix computation for equation solution as examples, we put it through reverse engineering to arrive at the effective UML design by which development was done and then translate it to Java. This then is the starting point for analyzing the design and improving it without having to throw away any of the old code.
Keywords :
Java; Unified Modeling Language; finite element analysis; object-oriented programming; reverse engineering; software maintenance; Java; UML design; autonomous agents; finite elements-based field computation; legacy code; object-oriented code; reverse engineering; software lifecycle; Autonomous agents; Encapsulation; Finite element methods; Java; Life testing; Reverse engineering; Sequential analysis; Software design; Software maintenance; Software testing; Class and Sequence Diagrams; FORTRAN; Finite Elements; Java; Legacy Software; Reengineering; Reverse Engineering; UML;
Conference_Titel :
Industrial and Information Systems (ICIIS), 2009 International Conference on
Conference_Location :
Sri Lanka
Print_ISBN :
978-1-4244-4836-4
Electronic_ISBN :
978-1-4244-4837-1
DOI :
10.1109/ICIINFS.2009.5429859