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