Abstract:Abstract-Dependency Structure Matrix (DSM) has been successfully applied to identify software dependencies among packages and subsystems. A number of algorithms were proposed to compute the matrix so that it highlights patterns and problematic dependencies between subsystems. However, existing DSM implementations often miss important information to fully support reengineering effort. For example, they do not clearly qualify and quantify problematic relationships, information which is crucial to support remedia… Show more
“…Moose offers various facilities for building software engineering tools, ranging from importing data, source-code modeling, querying, to building software visualizations. In the past, Moose has been successfully leveraged for building a wide variety of tools, such as Torch [27] (a tool supporting source-code change integration), SmallDude [4] (a duplication detector), and eDSM [19] (a tool to detect cyclic dependencies). Within the context of this work, we opted to base our tool on Moose for the following reasons:…”
When using Aspect-Oriented programming the application implicitly invokes the functionality contained in the aspects. Consequently program comprehension of such software is more intricate. To alleviate this difficulty we developed the AspectMaps visualization and tool. AspectMaps extends the Moose program comprehension and reverse engineering platform with support for aspects, and is implemented using facilities provided by Moose. In this paper we present the AspectMaps tool, and show how it can be used by performing an exploration of a fairly large aspectoriented application. We then show how we extended the FAMIX meta-model family that underpins Moose to also provide support for aspects. This extension is called ASPIX, and thanks to this enhancement Moose can now also treat aspect-oriented software. Lastly, we report on our experiences using some of the tools in Moose; Mondrian to implement the visualization, and Glamour to build the user interface. We discuss how we were able to implement a sizable visualization tool using them and how we were able to deal with some of their limitations.Note: This paper uses colors extensively. Please use a color version to better understand the ideas presented here.
“…Moose offers various facilities for building software engineering tools, ranging from importing data, source-code modeling, querying, to building software visualizations. In the past, Moose has been successfully leveraged for building a wide variety of tools, such as Torch [27] (a tool supporting source-code change integration), SmallDude [4] (a duplication detector), and eDSM [19] (a tool to detect cyclic dependencies). Within the context of this work, we opted to base our tool on Moose for the following reasons:…”
When using Aspect-Oriented programming the application implicitly invokes the functionality contained in the aspects. Consequently program comprehension of such software is more intricate. To alleviate this difficulty we developed the AspectMaps visualization and tool. AspectMaps extends the Moose program comprehension and reverse engineering platform with support for aspects, and is implemented using facilities provided by Moose. In this paper we present the AspectMaps tool, and show how it can be used by performing an exploration of a fairly large aspectoriented application. We then show how we extended the FAMIX meta-model family that underpins Moose to also provide support for aspects. This extension is called ASPIX, and thanks to this enhancement Moose can now also treat aspect-oriented software. Lastly, we report on our experiences using some of the tools in Moose; Mondrian to implement the visualization, and Glamour to build the user interface. We discuss how we were able to implement a sizable visualization tool using them and how we were able to deal with some of their limitations.Note: This paper uses colors extensively. Please use a color version to better understand the ideas presented here.
“…They make direct cycles easy to spot but indirect cycles are hard to understand with this approach. Lattix [SJSJ05] and eDSM [LDDB09] are two adaptations of dependency matrix to the visualization of package dependencies. They highlight cycles in SCC and can be used as a starting point to understand the architecture of the system.…”
Section: Related Workmentioning
confidence: 99%
“…Several tools and approaches have been developed over the years [Vai04,MT07b,SJSJ05,LDDB09] to help the developers to detect and/or remove cycles. Yet, an exhaustive experimental study [MT07a] shows that in a lot of programs, classes are involved in huge cyclic dependencies.…”
Many design guidelines state that a software system architecture should avoid cycles between its packages. Yet such cycles appear again and again in many programs. We believe that the existing approaches for cycle detection are too coarse to assist developers to remove cycles from their programs. In this paper, we describe an efficient algorithm that performs a fine-grained analysis of cycles among application packages. In addition, we define multiple metrics to rank cycles by their level of undesirability, prioritizing cycles that are the more undesired by developers. We compare these multiple ranking metrics on four large and mature software systems in Java and Smalltalk.
“…This technique has been successfully applied to identify software dependencies among packages and subsystems. DSM has been enriched with more visual information to identify cycles [137], [138], and class coupling [139].…”
Abstract-Software is usually complex and always intangible. In practice, the development and maintenance processes are timeconsuming activities mainly because software complexity is difficult to manage. Graphical visualization of software has the potential to result in a better and faster understanding of its design and functionality, thus saving time and providing valuable information to improve its quality. However, visualizing software is not an easy task because of the huge amount of information comprised in the software. Furthermore, the information content increases significantly once the time dimension to visualize the evolution of the software is taken into account. Human perception of information and cognitive factors must thus be taken into account to improve the understandability of the visualization. In this paper, we survey visualization techniques, both 2D-and 3D-based, representing the static aspects of the software and its evolution. We categorize these techniques according to the issues they focus on, in order to help compare them and identify the most relevant techniques and tools for a given problem.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.