International Journal of Software Engineering and Its Applications Vol. 7, No. 3, May, 2013 353 Visualizing and Analyzing the Structure of AspectJ Software under the Eclipse Platform Sassi Bentrad 1 and Djamel Meslati 2 Computer Science Department, LRI Laboratory Badji Mokhtar-Annaba University, Annaba, Algeria 1 sassi_bentrad@hotmail.fr, 2 meslati_djamel@yahoo.com Abstract Software is naturally intangible and abstract which makes the understanding task difficult. There is a growing need for visualizations that improve the comprehensiveness of its structure, behavior and evolution. Graphically visualizing abstract concepts provides a way to raise the abstraction level and therefore, to reduce the software complexity. The graphical visualization has an important contribution by presenting the software under an abstract synthetic view that gives a quick idea of its content, logic, structure and its entities' relationships. It is widely accepted that it can represent a valuable support during the development and maintenance processes. As AspectJ is a relatively new language with powerful specific constructs, it deserves support tools to visualize its software systems. This paper presents our recent work in software visualization with respect to analyze and visualize the AspectJ software structures using graphical elements well-known from daily life such as the Polymetric View and the City Metaphor to conduct various powerful analyses and permit an intuitive understanding of a given visualization and therefore, to get quickly an overview of a huge and complex software. VizzAspectJ-2D and VizzAspectJ-3D are two tools support we have built on top of the Eclipse platform respectively for the 2D and 3D visualizations. Keywords: Software maintenance, Program comprehension, Program analysis, Software visualization, Software metrics, Visualization metaphor, AspectJ 1. Introduction Today industrial systems require more complex software development with high qualities in terms of maintainability and reusability. The maintenance cost of a software system is frequently estimated between 50% and 75% of its total cost [1], and more than a half of the maintenance effort is devoted to understanding the application itself. Consequently, the understanding phase becomes a crucial issue whose enhancement highly motivates scientific work in the context of visualization [2]. Software visualization depends on paradigms. It must evolve as paradigms used to develop software systems evolve. In this context, both object-oriented development and aspect- oriented development have become standard for software development. The concepts introduced by these approaches have provided an answer to many problems of software engineering. In particular, they allow a more accurate modeling of reality, a better control of software complexity, and an easier reuse of artifacts produced. Although these approaches are successful in the production of complex software, practical experience with large projects has shown that programmers still face difficulties in maintaining their code [3]. Therefore, new methods and new assessment and understanding tools of software are needed to help both managers and developers in the maintenance activities. It helps to better understand and perceive the relationships (i.e., dependencies) and interactions within the