International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal,
Volume 8, Issue 3, March 2018)
429
A Comparison of Reverse Engineering Tool Code to Visual
Flowchart and Imagix-4D
Rashmi Yadav
1, Ravindra Patel
2Rajiv Gandhi Technical University Bhopal, Madhya Pradesh India
Abstract-- Today modifications are needed in each and every filed and it is equally true in the arena of software. The software that developed earlier is needed to be modified as per the present customer requirements Software industries facing challenge to understand & modify the legacy software as pertoday’s customer requirements. Rebuilding theLegacy software from Scratch is difficult. Reverse engineering is one way to understand the existing huge legacy software. To alleviatethis reverse engineering tools are already available. But little is known about the advantages and disadvantages of the tools in different situations. We have studied of several paper reverse engineering tool study and pick Code to visual flowchart tool and Imagix- 4D. We are picking the Imagix-4D for their inherent features which are widely adopted by the software industries and Code to visual flowchart tool for their good parsing capabilities. In this paper we compare both the tools on the basis of flowchart generation from the existing code. This study will give the capabilities and limitation of the tool and further guide the features that will require in the existing reverse engineering tools and indicate the need of full featured reverse engineering tool.
I.
R
ELATEDW
ORKThe leagacy software are not fulfil the customer todays
need. So we have to modify or renovate the software so
that the software satisfies the current need.When modify
the exiting source code first we need to understand legacy
or any existing software as we know the software is huge
and millions of line of code.Graphical representationis
easier to understandthat’s by understanding the source
code in the form of pictorial representation is good. The
reverse engineering tool is used to solve this problem.
Reverse engineering tool take source code as an input and
visualize
pictorial
representations.Various
reverse
engineering tools are already available like Rigi [1]
Doclike Viewer [2]SNIFF+ [3] Shrimp[4] [5] Code
crawler [6] CSV [7] Solidsx [8] [9] Dalli [10] GUPRO
[11] DEFCTO [13] COLUMBS [14] Reveal Tool [15]
Reverse Engineering tool [16] Super Womble [17] Pilfer
[18] REOffice [19] SVG graph editor[20] The Code
Struc-TureVisualization Tool [21] PL/SQL Reverse
Engineering Tool[22] Code to visual flowchart [23]
WSAD [24] Solid* tools[25] Imagix-4D [26].
Details and feature of all the tools and case study of
Imagix-4D was evaluated and reported [27]. We select the
two tools for comparison first is Imagix-4D for their
inherent capabilities & widely adopted by the industries.
Second is code to visual flowchart for their excellent
parsing capabilities.
Comparison between Imagix-4D and Code to visual
Flowchart tool some sample of source code is taken and
give as an input to the Tool code to visual flowchart and
Imagix-4D and generated flowchart analyse and
comparison is evaluated.
a) Program Prime No. C Program
Thisis a small program in which enters the number by
user it check the Condition if the condition is true the
number is prime Else the number is not prime. It is
implemented in C language.
#include <stdio.h>
int main()
{
int n, i, flag=0;
printf("Enter a positive integer: ");
scanf("%d",&n);
for(i=2;i<=n/2;++i)
{
if(n%i==0)
{
flag=1;
break;
}
}
if (flag==0)
printf("%d is a prime number.",n);
else
printf("%d is not a prime number
",n);
International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal,
Volume 8, Issue 3, March 2018)
430
We give program (a) to Imagix-4D and the generated
flowchart given in figure 1 The inadequacy we have
observed that is displayed FOR loop Two times, first for
loop display in assignment block as well as in conditional
statement also. This repetition may create overhead in
large projects.
[image:2.612.138.466.241.511.2]Same program runs by the Code to visual flowchart and
in figure no. 2 are clearly observable that, for loop is not
repeated. It is easy to understand and less complex. It is
suitable for the large and complex program.But in
Imagix-4D the code is display with line number the code
traceability and understandability isgood but the display
line number is not available in code to visual flowchart.
International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal,
Volume 8, Issue 3, March 2018)
[image:3.612.91.526.121.453.2]431
Figure 2: Flowchart generated by Code to Visual flowchart with coding details.
When the code is huge and we are interested only flow
not in detail coding the Imagix-4D gives the choice to
display the flowchart with minimum coding details in
figure 3.
Code to visual flow chart also having excellent
capability that it Given below figure 4 generates the Flow
chart of Prime Number Program without the source Code
details.
[image:3.612.213.406.517.697.2]International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal,
Volume 8, Issue 3, March 2018)
[image:4.612.72.273.508.720.2]432
Figure 4: Flow chart of Prime Number Program without coding details
b)
A program to find even no. in c++
This program identifies the entered number is even or
not it is implemented in C++ we remove the variable
declaration.
This program given as an input into Imagix-4D and
generated diagram in figure 5 it is clearly shown that the
it display the assignment block for variable declaration
just after the start block. It has no error detection
mechanism available.
#includes<iostream.h>
#include<conio.h>
Void main ()
{
//declaration of variable i removed
while(i<=100)
{
if(i%2==0)
{
cout<<i<<" is even number";
International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal,
Volume 8, Issue 3, March 2018)
[image:5.612.96.522.134.369.2]433
Figure 5: Flow chart of Program(b) generated by Imagix-4D
When we gave input the program (b) to Code to visual
flowchart we observe that the variable declaration box is
not display in the figure 6 which is shown the good
parsing capability whereas the Imagix-4D give the
variable declaration even in the code there is no variable
declaration means Imagix-4D have the no limited paring
International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal,
Volume 8, Issue 3, March 2018)
[image:6.612.76.540.127.468.2]434
Figure 6: Flow chart of Program (b) generated by Code to visual flowchart
II.
C
ONCLUSIONIn this study we found that the Imagix-4D is good as it
display the flowchart with some context like code
traceability is easy due to line number but the repetition
of the loop display many time will increase the overhead
and there is limited parsing capability .
Whereas the code to visual flowchart shows that there
is no traceability as line number is not display in the
flowchart but excellent parsing capability by no repetition
of the loops.
The comparison of these tools articulates that the
individually the Imagix-4D and code to visual flowchart
are not sufficient generate the flowchart of the legacy
code during reverse engineering. The selection of the tool
is depends on the situation. This paper draw a conclusion
that there is no single tool are sufficient to generate the
flowchart from source code so there is need to develop the
Full featured reverse engineering tool for flow chart
generation.
REFERENCES
[1] Muller, H.A. and Kienle, H.M. Rigi—An Environment for Software Reverse Engineering, Exploration, Visualization, and Redocumentation. Science of Computer Programming, Volume 75, Issue 4, pp 247–263, April 2010.
[2] Suleiman, S. Doclike Viewer: A Software Visualization Tool. Proceeding of 1st Malaysian Software Engineer- ing Conference (MySEC’05), Penang, 12-13 Dec. 2005, pp. 263-265.
[3] Bellay, B. and Gall, H. An Evaluation of Reverse Engineering Tool Capabilities.journalof Software Maintenance: Research
Practice,1998,10,pp305-31.http://dx.doi.org/10.1002/(SICI)1096908X(199809/10)10:5<30 5::AIDSMR175>3.0.CO;2-7
[4] Storey M.-A. and Michaud, J. (2001) Shrimp Views: An Interactive Environment for Exploring Multiple Hierarchical Views of a Java Program, in ICSE 2001 (Workshop on Software Visualization). 10.1109/WPC.2001.921719,, pp12-13, May 2001. [5] Rayside, D., Litoiu, M. and Storey, M.-A. (2001) Integrating
International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal,
Volume 8, Issue 3, March 2018)
435
[6] Lanza, M. CodeCrawler—Lessons Learned in Building SoftwareVisualization Tool. Proceeding of 7th European Conference on Software Maintenance and Reengineering, Benevento (Italy), pp.409-418, 28 March2003.
[7] Moberts, I.B. Code Structure Visualization. Master Thesis,
Department of Mathematics and Computer Science,
TechnischeUniversiteit Eindhoven, Eindhoven, 2005.
[8] Reniers, D., Voinea, L., Ersoy, O. and Telea, A. The Solid Toolset for Software Visual Analytics of Program Structure and Metrics Comprehension: From Research Prototype to Product. Science of
Computer Programming, 2014
79,224-240.http://dx.doi.org/10.1016/j.scico.2012.05.002.
[9] Alexandru Tele and HeorhiyByelas, A Framework for Reverse Engineering Large C++ Code Bases‖ Elsevier Electronic Notes in Theoretical Computer Science 233 ,pp143–159,2009.
[10] Kazman, R. and Carriere, S.J. Playing Detective: Reconstructing Software Architecture from Available Evi- dence. Journal Automated Software Engineering , 6, pp107-138, 1999.
[11] Riediger, V. Analyzing XFIG with GUPRO. 7th Working Conference on Reverse Engineering, Brisbane, 23-25.November 2000 http://dx.doi.org/10.1109/WCRE.2000.891466.
[12] Ebert, J., Kullbach, B., Riediger, V. and Winter, A. (2002) GUPRO: Generic Understanding of Programs: An Overview. Electronic Notes in Theoretical Computer Science, 47-56. (http://www.elsevier.nl/ locate/entcs/volume72.html)2002 . [13] H.J.S. Basten and P. KLINT DEFACTO, ―Language- Parametric
fact Extraction from Source Code SLE, volume 5452 of Lecture Notes in Computer Science, page 265-284. Springer, 2008. [14] Rudolf Ferenc, Arpad Beszedes, MikkoTarkiainen, and
TiborGyimothy. Columbus—reverse engineering tool a schema for C++. 18th IEEE International Conference on Software Maintenance (ICSM’02), pages 172–181, October 2002.
[15] Matzko, S., Clarke, P.J., Gibbs, T.H., Malloy, B.A. and Power, J.F.Reveal: A Tool to Reverse Engineer Class Diagrams. Proceeding of the 40th International Conference on Tools Pacific: Objects for Internet, Mobile and Em- bedded Applications, Australia,, pp. 13-21, 1 Feb2002.
[16] Federico Bellucci, Giuseppe Ghiani, Fabio Paternò, Claudio Porta ―Automatic Reverse Engineering of Interactive Dynamic Web Applications to Support Adaptation across Platforms‖ IUI’12, Lisbon, Portugal ACM 978-1-4503-1048,2012.
[17] Jackson, D. and Waingold, A. Lightweight Construction of Object Models from Bytecode. IEEE Transactions on Software Engineeri pp156-169. 2001 http://dx.doi.org/10.1109/32.908960.
[18] Sutton, A. and Maletic, J.I. Mappings for Accurately Reverse
Engineering UML Class Models from C++.WCRE’05:
Proceedings of the 12th Working Conference on Reverse Engineering, Washington DC, 175-1847 Nov 2005.
[19] F. Yang. Using Excel and PowerPoint to build a reverse engineering tool. Master’s thesis,Department of Computer Science, University of Victoria, 2003.
[20] H. M. Kienle, A.Weber, and H. A. M¨uller.Leveraging SVG in the Rigi reverse engineering tool. SVG Open / Carto.net Developers Conference, July 2002.
[21] Kienle, H. and Muller, H.A. 1st International Workshop on Advanced Software Development Tools and Techniques (WASDeTT), 2008.
[22] MartinHabringer Michael Moser and Josef Pichler reverse engineering PL/SQL legacy code , IEEE International Conference on Software Maintenance and Evolution,pp 553-556, 1063-6773/14 ,DOI 10.1109/ICSME, 2014.
[23]
http://code-visual-to-flowchart-full-version.software.informer.com ,visited on 2013.
[24] H. M. Kienle and H. A. M¨uller.A WSAD-based fact extractor for J2EE web projects. Proceedings of the 9th IEEE International Symposium on Web Systems Evolution,Paris, France, DOI: 10.1109/WSE.2007.4380245 Jan-2007.
[25] DennieReniers , Lucian Voinea, OzanErsoy, AlexandruTelea ―The Solid* toolset for software visual analytics of program structure and metrics comprehension: From research prototype to product, Science of Computer programming , A special issue of the Workshop on Academic Software Development Tools and Techniques, Volume 79, Pages 224–240, 2014.
[26] http://www.imagix.com .