# 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.