Using the Class Dependency Analyzer for OODT By Joshua Garcia
Motivation A software system has many dependencies – Programming language level Finding relevant dependencies Displaying dependencies in an understandable form Usable Simple
Motivation – iRODS - Prescriptive 3 Source:
Motivation – iRODS - Descriptive 4
Overview Class Dependency Analyzer (CDA) – Find dependencies – Visualize them – Relatively Usable and Simple Granularity – Package, class, jar, directory structure
Compiling OODT You will need Apache Maven Please refer to the Maven website about how to install Maven Maven will need to download dependencies Compiling all of OODT takes long – If you want try compiling all of OODT, going to the top directory containing all the source directories and a pom.xml file and type mvn install You can change to each source directory in the OODT tar.gz file that has a pom.xml and use the following command to compile – mvn install Compiling with Maven – Go to the core directory of OODT and type “mvn install” without the quotes
Installation of CDA Unzip the archive pf-cda-x.x.zip to any directory you want. Then ensure that environment variable JAVA_HOME is set to a Java Runtime Environment or higher. Open a command shell in the directory to which you unzipped the archive. Run the script sssgen.bat or sssgen.sh to generate a start shell script that invokes the tool with absolute classpath entries in order to allow to start it from anywhere in the file system. Eventually a run.bat (or run.sh on Linux) must be available in the directory Source:
Importing Source to Analyze File->New Workset Wizard dialog appears In the General tab, enter a Name in the associated text box In the Classpath tab, click the add button – Can select jar, Eclipse.classpath file, folder containing.class files Display Filter tab and Ignore Filter tab – Filter out package patterns Once you click the save button in the Workset Wizard, you will be asked to save your workset.
Highlighted Features Find – All dependents – Direct dependents – All implementors – …. Graphs that show all dependencies between two classes Show dependency, graph, or hierarchy view for selected elements Tabular views of dependencies – Copy and paste to text Different icons for different kinds of entities Finding main methods – Right click on the workset row or icon Find duplicate classes Circular dependencies – Doesn’t seem to work