Java Specific Issues

  1. How do I see dependencies between jar files or between directories?
  2. When you create a project for the first time using the New Project Dialog, remember to ensure that the option Create Subsystem for Input File is selected. As a result, you will see a partition being created for each of the input jar files. You will now be able to see the dependencies between jar files and drill down.

  3. How can I see all dependencies of a jar files?
  4. Once you create a subsystem corresponding to the jar file, you can see all dependencies associated with the jar file just as any other subsystem. Click on the row or column header for the subsystem and you will see all its dependencies in the Usage tab.

  5. How can I see dependencies by packages?
  6. Create a project for the first time using the New Project Wizard with the option Create Subsystem for Input File not selected. You will see the partitions by package. Click on a subsystem corresponding to the package of interest and you will see all dependencies of the package in the Usage tab.

  7. How can I look at dependencies at a finer granularity such as method level dependencies?
  8. You can do this in two ways:

    • You can create a new project with member level enabled and you will see dependencies at a finer granularity of methods and data members. Note that once a project is created, you can see the members for a subsystem by selecting it (select $root to do this for the entire project), right click and select Expand Members. The members for the selected subsystem are then shown in the DSM.
    • If you already have a project which doesn't have member level enabled, you can simply select a subsystem, right click and select Expand Members. The dialog box then allows you to update the entire project for member level or just the selected subsystem. It then prompts you to do a Project Update. You will then see members in the DSM.
  9. How can I break up a large class into multiple classes?
  10. Expand a large class into its methods and data members. Now partition the class. The partitioning will suggest an inheritance hierarchy. Look for virtual partitions which are independent of each other, there may be other ways to split the class as well.