# lucamigliaccio25/sw_security_project architecture

> Architecture diagram of the GitHub repository lucamigliaccio25/sw_security_project, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lucamigliaccio25/sw_security_project
- Repository: https://github.com/lucamigliaccio25/sw_security_project

## Overview

This repository is an experimental-analysis project, not the FlashSyn implementation itself. Its main workflow is to compare FlashSyn benchmark logs and report profit, timing, and solving metrics across RQ1 variants and RQ2. A separate documented capability classifies detected vulnerabilities against CWE/CVE standards; the tree includes classification spreadsheets, but the sampled source does not show how they are produced. The graph therefore limits source-backed relationships to the benchmark scripts’ log-reading behavior and marks the classification connection unverified.

Main entry points: [`script test/RQ1_CheeseBank.py`](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_CheeseBank.py) (RQ1 CheeseBank), [`script test/RQ1_test1.py`](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_test1.py) (RQ1 Test 1), [`script test/RQ1_test2.py`](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_test2.py) (RQ1 Test 2), [`script test/RQ2_test1.py`](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ2_test1.py) (RQ2 Test 1)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experiments["Experiment analysis"]
  node_rq1_cheese["RQ1 CheeseBank<br/>[RQ1_CheeseBank.py]"]
  node_rq1_test1["RQ1 Test 1<br/>[RQ1_test1.py]"]
  node_rq1_test2["RQ1 Test 2<br/>[RQ1_test2.py]"]
  node_rq2_test1["RQ2 Test 1<br/>[RQ2_test1.py]"]
  node_results["Experiment metrics"]
end

subgraph group_classification["Vulnerability classification"]
  node_classification_csv["CWE/CVE results"]
  node_analysis_csv["CVE analysis"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs"| node_rq1_cheese
node_researcher -->|"runs"| node_rq1_test1
node_researcher -->|"runs"| node_rq1_test2
node_researcher -->|"runs"| node_rq2_test1
node_rq1_cheese -->|"reports metrics"| node_results
node_rq1_test1 -->|"reports metrics"| node_results
node_rq1_test2 -->|"reports metrics"| node_results
node_rq2_test1 -->|"reports profit"| node_results
node_results -.->|"informs classification"| node_classification_csv
node_classification_csv -.->|"supports analysis"| node_analysis_csv

click node_rq1_cheese "https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_CheeseBank.py"
click node_rq1_test1 "https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_test1.py"
click node_rq1_test2 "https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_test2.py"
click node_rq2_test1 "https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ2_test1.py"
click node_classification_csv "https://github.com/lucamigliaccio25/sw_security_project/blob/main/Risultati%20CVE-CWE/Risultati_con_classificazione_CWE.csv"
click node_analysis_csv "https://github.com/lucamigliaccio25/sw_security_project/blob/main/Risultati%20CVE-CWE/Analisi_FlashSyn.csv"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_rq1_cheese,node_rq1_test1,node_rq1_test2,node_rq2_test1,node_results toneBlue
class node_classification_csv,node_analysis_csv toneAmber
class node_researcher toneIndigo
```

## Components

### Experiment analysis

- [RQ1 CheeseBank](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_CheeseBank.py): `script test/RQ1_CheeseBank.py`
- [RQ1 Test 1](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_test1.py): `script test/RQ1_test1.py`
- [RQ1 Test 2](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ1_test2.py): `script test/RQ1_test2.py`
- [RQ2 Test 1](https://github.com/lucamigliaccio25/sw_security_project/blob/main/script%20test/RQ2_test1.py): `script test/RQ2_test1.py`
- **Experiment metrics**

### Vulnerability classification

- [CWE/CVE results](https://github.com/lucamigliaccio25/sw_security_project/blob/main/Risultati%20CVE-CWE/Risultati_con_classificazione_CWE.csv): `Risultati CVE-CWE/Risultati_con_classificazione_CWE.csv`
- [CVE analysis](https://github.com/lucamigliaccio25/sw_security_project/blob/main/Risultati%20CVE-CWE/Analisi_FlashSyn.csv): `Risultati CVE-CWE/Analisi_FlashSyn.csv`

### Other components

- **Researcher**

## Connections

- Researcher → RQ1 CheeseBank: runs (evidence: `script test/RQ1_CheeseBank.py`)
- Researcher → RQ1 Test 1: runs (evidence: `script test/RQ1_test1.py`)
- Researcher → RQ1 Test 2: runs (evidence: `script test/RQ1_test2.py`)
- Researcher → RQ2 Test 1: runs (evidence: `script test/RQ2_test1.py`)
- RQ1 CheeseBank → Experiment metrics: reports metrics (evidence: `script test/RQ1_CheeseBank.py`)
- RQ1 Test 1 → Experiment metrics: reports metrics (evidence: `script test/RQ1_test1.py`)
- RQ1 Test 2 → Experiment metrics: reports metrics (evidence: `script test/RQ1_test2.py`)
- RQ2 Test 1 → Experiment metrics: reports profit (evidence: `script test/RQ2_test1.py`)
- Experiment metrics → CWE/CVE results: informs classification
- CWE/CVE results → CVE analysis: supports analysis
