61 lines
1.4 KiB
Markdown
61 lines
1.4 KiB
Markdown
# Information Modelling & Analysis: Project 1
|
|
|
|
Student: *enter your name here*
|
|
|
|
### Project instructions:
|
|
Please follow the instructions provided in the project slides.
|
|
For your convenience, the source code to be analyzed (xerces2)
|
|
has already been added to this repository (*/resources/xerces2-j-src*).
|
|
|
|
**Attention**: Please consider the submission instructions available on iCorsi.
|
|
|
|
**Report**: You may want to use the template distributed on iCorsi.
|
|
|
|
## Install dependencies
|
|
|
|
```shell
|
|
# create venv
|
|
python -m venv env
|
|
source env/bin/activate
|
|
|
|
pip3 install -r requirements.txt
|
|
```
|
|
|
|
## Running part 1: find god classes
|
|
|
|
```shell
|
|
./find_god_classes.py
|
|
```
|
|
|
|
The resulting CSV file containing a list of God classes is generated in the `god_classes/god_classes.csv` path.
|
|
|
|
## Running part 3: clustering and silhouette metric
|
|
|
|
To compute optimal k-means and agglomerative clusterings using silhouette
|
|
validation for all classes run:
|
|
|
|
```shell
|
|
./silhouette.py --validate --autorun
|
|
```
|
|
|
|
To compute k-means or agglomerative clustering for a specific number of
|
|
clusters `K` and a specific class `KLASS` run respectively:
|
|
|
|
```shell
|
|
./k_means.py KLASS K
|
|
```
|
|
|
|
```shell
|
|
./hierarchical.py KLASS K
|
|
```
|
|
|
|
Then, to check their silhouette metric run:
|
|
|
|
```shell
|
|
./silhouette.py
|
|
```
|
|
|
|
## Compile report
|
|
|
|
- Install [Pandoc](https://pandoc.org/);
|
|
- Run `pandoc main.md -o main.pdf` in `report` directory. |