Fork me on GitHub

Eclipse DSM-Viewer

Project description

Eclipse DSM-Viewer plugin is a powerful tool for counting, analysing and displaying of all kinds of dependencies between the Java source code components.

In simple words, this is an SWT/JFace app which improves Eclipse code analisys functionality. It`s main tasks are:

  • To found and count all kinds of relationships between the components of Java programming systems are opened at Eclipse workspace (on all levels of their code hierarchy).
  • To display these relationships using the special format of "Design Structure Matrices" or DSMs.

This application also provides all kinds of Eclipse integration: code navigation, context help, flexible settings customization, and so on.

Licensed with Eclipse Public License v1.0

Detailed description

Currently graph representation is the most popular format when representing programming systems with their internal relationships: example. But if the graph contains more than 30 nodes (or 100+ edges), it becomes almost unreadable for an average person.

Modern Java applications contains thousands or even millions dependencies: 10.000 and more classes per Java application nowadays is really not a limit. DSMs solves such readability problems (you can see comparison for simple examples here link!).

DS-matrices remains human-readable in case of huge sets of code is being analysed because DS-matrix can display the huge set of code dependencies in more intuitive way, than graphs.

In many cases DSM representation of systems is more convenient and useful for most commonly used dependency analysing tasks.

Since the proposed plugin is announced to support dependency counting/analising/displaying for large and complex programming systems, as the first thing we should be able to display dependencies between Java code components in form of DS-matrices, not in the form of graphs.

But we don`t deny the further need to have ability to view the dependencies for some particles of result DSMs as graphs (We will return to this during the next plugin releases).

Questions

Main project goals

  • Create native to Eclipse plugin with free license to let all Eclipse developers to encorporate DSM analysis during development (not as "after commit" analysis).

  • Implement such kinds of user-allowed operations:
    • dependency counting / grouping / displaying;
    • cyclic dependencies detection / highlighting;
    • code navigation;
    • matrix clusterization with highlighting and proper displaying of strongly related system`s modules;

  • Implement convenient UI presentation: make the result plugin as human-friendly as possible.

  • Improve performance: force the result plugin to be as fast as possible even on large sets of input data.
  • Versions history

    • The first ready version of plugin (0.0.1) uses the Dtangler library to count dependencies. It displays the DS-Matrices for single scope from 2 allowed scopes: "Java packages" or "Java classes". This version detects the cyclic dependencies and marks appropriate matrix cells with the red color. It is the first test version to check Dtangler library possibilities. Operating screenshot is below:

    • We expect that the next version will use Eclipse AST instead of Dtangler for dependency searching purposes and provide huge set of additional options and improvements. Main of desired improvements:

      • Code navigation;
      • Matrices clusterization (link!);
      • Performance improvement (the first version is unusable for DSMs with size larger than 200x200 cells as it dosn`t support matrix lazy-loading and virtuality);
      • Implementation of wide on-the-fly help support (tooltips, help pages);
      • Implementation of flexible plugin settings (ability to manually set types of dependencies are desired to find, colors, fonts, etc.).

    Contributor

    Daniil Yaroslavtsev: Daniil.Yaroslavtsev@gmail.com

    Curator

    Roman Ivanov: ivanov-jr[*]mail[*]ru

    Download

  • You can install the DSM-viewer plugin using the link to this page as Eclipse update site.
  • You can download this project in either zip or tar formats.
  • You can also see it`s source code on GitHub: EclipseDSM/Eclipse-DSM-viewer
  • And, finally, you can clone the project with Git by running:
    $ git clone git://github.com/EclipseDSM/Eclipse-DSM-viewer
  • Another SevNTU Team projects: