
 
4  CONCLUSIONS AND FUTURE 
WORK 
This paper describes the utilization of grouping 
algorithms in cooperation with control flow graphs 
for software analysis purposes. While a number of 
algorithms for grouping common visual graphs and 
their elements have been proposed, control flow 
graph clustering algorithms imply a different kind of 
processing. In this context we extended our previous 
work on program analysis and we replaced the 
existing module that creates the control flow graph 
with a new, modified algorithm that can manipulate 
the control flow graph prior to displaying it so as to 
provide optional levels of details. The basic program 
analyzer was tested extensively in a number of 
programs ranging from 100 to 20,000 lines of code, 
and having different types of statements. The results 
demonstrate the ability of the proposed grouping 
feature of the new control flow algorithm is able to 
handle large programs with different types of 
statements (or equivalently different complexity). In 
addition, this paper introduces a new software 
module, which performs code coverage processing, 
the latter enhancing and completing the proposed 
architecture. 
With the above feature the modified Basic 
Program Analyzer broadens its scope and allows its 
usage by additional types of application tools: The 
grouping of vertices in different levels of detail 
provides the means to investigate larger programs, 
since performance and memory no longer constrain 
the process. In addition, the ability to select the level 
of display detail aids the easy comprehension of a 
large program graph, since the analyzer is able to 
depict the same information with less graph 
elements.  
REFERENCES 
Andreou, A. and Sofokleous, A., 2004. Designing and 
implementing a layered architecture for dynamic and 
interactive program analysis, Proceedings of IADIS 
International Conference, Portugal, Spain. 
Berry, J., Dean, N., Goldberg, M., Shannon, G. and 
Skiena, S., 1999. Graph Drawing and Manipulation 
with LINK, Proceedings of the Symposium on Graph 
Drawing GD’97, Springer–Verlag pp425-437. 
Cesar, C., L., 1999, 1999.-last update, graph foundation 
classes for java, IBM2005. 
Cooper, K., D., Harvey, T., J. and  Waterman, T., 2002. 
Building a Control-flow Graph from Scheduled 
Assembly Code. TR02-399. 
Damian, D., 2001. On Static and Dynamic Control-Flow 
Information in Program Analysis and Transformation, 
Ph.D. Thesis, BRICS Ph.D. School, University of 
Aarhus, Aarhus, Denmark 
Everitt, B., 1974. Cluster Analysis. 1st edn. Heinemann 
Educational Books. 
Fenton, N., E., Whitty, R., W. and Kaposi, A., A., 1985. A 
generalised mathematical theory of structured 
programming. Theoretical Computer Science, 36, pp. 
145-171. 
Ferrante, J., Ottenstein, K., J. and Warren, J., D., 1987. 
The program dependence graph and its use in 
optimization. ACM Transactions on Programming 
Languages and Systems, 9(3), pp. 319-349. 
Herman, I., Melancon, G. and Marshall, M.S., 2000. 
Graph Visualization and Navigation in Information 
Visualization: a Survey. IEEE Transactions on 
Visualization and Computer Graphics, 6, pp. 1-21. 
Jones, N., D. and Mycroft, A., 1986. Data flow analysis of 
applicative programs using minimal function graphs, 
Proceedings of the 13th ACM SIGACT-SIGPLAN 
symposium on Principles of programming languages, 
St. Petersburg Beach, Florida, pp296-306. 
Kimelman, D., Leban, B., Roth, T. and Zernik, D., 1994. 
Reduction of Visual Complexity in Dynamic Graphs, 
Proceedings of the Symposium on Graph Drawing GD 
’93, Springer–Verlag. 
MCcabe, T., 1976. A Complexity Measure. IEEE 
Transactions on Software Engineering, SE-2, no.4, pp. 
308-320. 
Mirkin, B., 1996. Mathematical Classification and 
Clustering, Kluwer Academic Publishers. 
Ottenstein, K., J. and Ottenstein, L., M., 1984. The 
program dependence graph in a software development 
environment. Proceedings of the ACM 
SIGSOFT/SIGPLAN Software Engineering 
Symposium on Practical Software Development 
Environments, 19(5), pp. 177-184. 
Richardson, D., J., O'Malley, T., O., Moore, C., T. and 
AHA, S., L., 1992. Developing and Integrating 
ProDAG in the Arcadia Environment, In SIGSOFT 
'92: Proceedings of the Fifth Symposium on Software 
Development Environments, pp109-119. 
Shivers, O., 1991. Control-Flow Analysis of Higher-Order 
Languages. CMU-CS-91-145. Carnegie Mellon 
University, Pittsburgh, Pennsylvania 
ICEIS 2006 - DATABASES AND INFORMATION SYSTEMS INTEGRATION
262