The Artima Developer Community
Sponsored Link

Java Community News
Dependency Analysis with DSM in IntelliJ IDEA

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Dependency Analysis with DSM in IntelliJ IDEA Posted: Jan 25, 2008 11:41 AM
Reply to this message Reply
Summary
The latest version of JetBrains' IntelliJ IDEA includes a new dependency analysis tool that presents a structured matrix of dependencies in a large Java codebase. Maria Khalusova introduces this tool in a recent article.
Advertisement

Many problems in a software project result from a system's complexity, and one measure of complexity is the degree to which system components depend on one another, according a recent article by Maria Khalusova, Dependency Analysis with DSM. The article's focus is a dependency analysis tool included in the IntelliJ IDEA Java IDE that helps create a visual overview of a project's dependencies.

The visual technique used in IntelliJ for representing project dependencies is a dependency structure martix, or DSM:

[DSM] a method for exploring dependencies between program parts (modules, classes, etc.), and provides a compact matrix representation of a project. It helps you visualize the dependencies between the parts of a project and highlights the information flow within a project.

Khalusova's article includes several visual examples of what a DSM martix looks like, and how it can be used to quickly spot overly complex dependencies in a large Java codebase, such as the following:

The various highlights in this diagram are explained in the article. This sort of rapid overview draws attention to possible risks in a codebase:

While exploring dependencies you may find that some part of your project deserves more attention and should be discovered in detail while the rest of the project is not of interest at the moment. In such case, you can limit the scope of your DSM to the selected rows, or dependencies...

What do you think of the dependency matrix used in IntelliJ as a way to visualize software complexity? What dependency analysis tools do you use in your Java projects?

Topic: The Busy Java Developer's Guide to Scala Previous Topic   Next Topic Topic: A Year of Wicket

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use