Files
TD2_DEV51_Qualite_Algo_aissi/complexite_cyclo_1.md

49 lines
1.3 KiB
Markdown
Raw Normal View History

2025-09-18 20:37:27 +00:00
# Complexité Cyclomatique - Projet ping-report
## ping-report.c
- `main()` : **4**
## daemon.c
- `create_daemon()` : **4**
- `ping_request()` : **2**
- `send_check()` : **3**
- `check_keep_working()` : **4**
- `daemon_work()` : **3**
## db-sqlite.c
- `db_connect()` : **1**
- `db_disconnect()` : **1**
- `insert_hourly_report()` : **1**
## utils.c
- `write_pid_file()` : **2**
- `remove_file()` : **1**
## stats.c
- `get_ping_from_temp_log()` : **14****3** (refactorisé)
- `write_ping_log()` : **4**
- `set_stats_ping()` : **12****3** (refactorisé)
## Améliorations apportées
### Fonctions refactorisées (complexité > 6)
**1. `get_ping_from_temp_log()` : 14 → 3**
- Divisée en 5 fonctions d'aide
- Chaque fonction fait une seule chose
- Plus facile à tester et déboguer
**2. `set_stats_ping()` : 12 → 3**
- Divisée en 3 fonctions d'aide
- Structure PingStats pour clarifier
- Logique de calcul séparée
### Avantages (comme vu en cours)
- Code plus lisible
- Maintenance plus simple (si un developpeur veut changer une donnée, il peut le faire à un seul endroit pour que tout puisse changer. Cela évite aussi de copier coller des bouts de codes )
- Tests unitaires possibles
- Réutilisabilité des fonctions d'aide
### Le calcul de la complexité de chaque fonction modifiée a été mise en commentaire directement.