Analyze software from a repo
Using this interface, the user can enter the following information:
- The name of the project
- DV8 will generate a project file (.dv8-proj) and an architecture analysis report, and will use this name to refer to the project
- The input folder that contains the source code, or a cloned Git repo
- The output folder that will contain the analysis results
- The programming language used in this project.
- This list includes all the programming languages supported by DV8
After that, you can choose to start analyzing by clicking the button, or click the button to enter revision history information, as shown in the figure below.
- If the input folder doesn't contain revision history information, or only contains source code, then only the "Analyze without revision history" option is available to click; all other options will be disabled. The user can also choose not to analyze the revision history by choosing this option.
- If the folder is a cloned Git repo, then the user can
- choose to analyze the latest version, or a previously tagged version
- choose to analyze all revision history, or history from a specified time range. Please note that for a system with a very long history, choosing a recent evolution period—for example, the past two years—could save time and be more useful.
- Specify a file path prefix that need to be removed
- This function is used to match file names in the source code with those in a Git repo. For example, a source file in a local folder may start with "\apache\avro\", while in the Git repo the file may start with "smith\apache\avro". In this case, the user can enter "\smith\" for this prefix which will then be removed from each file path, so that the system can match source files with their names in the repository.
- In addition, the use can click the button to load a CSV file that contains a list of issue IDs (download an example) as part of the input.
- If an issue list is entered, DV8 will analyze the design structure related to the given list of issues. For example, it can calculate maintenance hotspots related to these issues, or the file structures related to the provided set of bug or feature issues.
- The user needs to collect these issue IDs manually. If this list is not available, this step can be skipped.
- To identify commits that are linked to issues, the user also needs to enter a regular expression specifying an issue ID, for example BUG[0-9]+ or PULSAR[0-9]+, as shown below.
After all the inputs are specified, the user can click the button to proceed. If all the inputs are correct, the analyze will proceed as follows:
After clicking the button, the user will have the following options:
- View the generated DV8 project in DV8 Explorer:
- The analysis will generate a .dv8-proj file that can be used to explore dependencies, simulate changes,and link to the source code that can be opened using the DV8 viewer
- View the generated dependency matrices in DV8 Explorer:
- The user can use this option to open a DSM file that only has dependency information but does not contain detailed source code information
- Open the analysis result folder
- This folder contains all analysis results. Please refer to "Understanding the analysis results" section for details.
- Analyze a different project: this option will return to the first GUI allowing the user to analyze another project.