# 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
./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:
./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:
./k_means.py KLASS K
./hierarchical.py KLASS K
Then, to check their silhouette metric run:
./silhouette.py
## Compile report
- Install [Pandoc](https://pandoc.org/);
- Run `pandoc main.md -o main.pdf` in `report` directory.