Ingegneria del Software “Studying Faults in Cyber-Physical Systems”
Università degli Studi del Sannio - A.A. 2021/2022
Gruppo: Falco Ida - Iuliano Roberto - Morgillo Clementina
Docente: Di Penta Massimiliano
Obiettivi
- Scaricare bug report di codici open-source relativi a Cyber Physical Systems;
- Analizzare la natura dei bug per i progetti considerati.
Elenco dei Cyber Physical System analizzati
- PX4/PX4-Autopilot;
- Ardupilot/ardupilot;
- carla-simulator/carla;
- cyberbotics/webots;
- nasa/fprime;
- cartographer-project/cartographer;
- mavlink/mavros;
- cleanflight/cleanflight;
- paparazzi/paparazzi.
Fasi
- 2 Sampling - Sampling 3
- Labellatura - Labelling
- Individuazione e download dei bug
- 1 - Download bug report
Filtraggio e tassonomia
- Filtraggio:
- By state
- By label
- Stratified sampling:
- Sample Size Calculator
- Tassonomia bug:
- Category
- Root Cause
- Specifico del CPS
- Calcolo indice Cohen’s Kappa.
Fase 1: Download bug report
Fase 1 - Download bug report: filtraggio by state
- Selezione issue risolte “closed” →
Fase 1 - Download bug report: filtraggio by label
- Investigazione delle label per selezionare le issue di interesse.
Fase 1 - Download bug report: filtraggio by label
- Investigazione delle label per selezionare le issue di interesse. →
Fase 1 - Download bug report: filtraggio by label
- Investigazione delle label per selezionare le issue di interesse.
Label individuate per PX4:
- “bug”
- “safety” →
- “failsafe”
- “priority-critical” →
Fase 1 - Download bug report: filtraggio by state/label
- Issue #14888, repository PX4.
Fase 1 - Download bug report: script python (1)
- GitHub CLI - utilizzo di GitHub da riga di comando; → →
Fase 1 - Download bug report: script python (1)
- GitHub CLI - utilizzo di GitHub da riga di comando:
- gh issue list: elenca le issue del repository;
- Opzioni:
- -l: filter by label;
- --limit: numero massimo di issue da recuperare;
- -s: filter by state {open|closed|all};
- -S: search issue con query.
Fase 1 - Download bug report: script python (2)
- Esempio di duplicato:
- Script per l’eliminazione dei duplicati.
Fase 1 - Download bug report: output script python (2)
Output: file csv con le informazioni sulle issue:
- Identificativo
- Stato
- Titolo
- Label
- Data
- Repository
Dimensione: 3344 righe.
Fase 1 - Download bug report: output script python (2)
Tabella riassuntiva dei risultati ottenuti:
- Sistemi sotto analisi;
- Label selezionate;
- Conteggio issue scaricate.
| CPS | Label | Conteggio issue |
|---|---|---|
| PX4 | ['bug','safety','failsafe','priority-critical'] | 1364 |
| ArduPilot | ['BUG','InternalError','Safety'] | 737 |
| Carla | ['bug','critical','possible bug'] | 256 |
| Webots | ['bug','crash'] | 551 |
| Fprime | ['bug', 'High Priority'] | 76 |
| Cartographer | ['bug'] | 24 |
| Mavros | ['bug','build error’] | 129 |
| Cleanflight | ['BUG','Critical'] | 122 |
| Paparazzi | ['Blocking', 'bug', 'Major', 'Minor'] | 85 |
- Totale issue: 3344
- Totale: 3344
Fase 2: Sampling
Fase 2 - Sampling
- Obiettivo: individuare un campione significativo per condurre un’opportuna analisi sui bug.
- Tipologia sampling: stratified.
Fase 2 - Sampling
- Obiettivo: individuare un campione significativo per condurre un’opportuna analisi sui bug.
- Tipologia sampling: stratified. →
Il campione (statistico) è un insieme di unità statistiche estratto da una popolazione.
Tramite il campione si possono stimare, entro determinati limiti di errore, le proprietà dell'intera popolazione.
Fase 2 - Sampling
- Obiettivo: individuare un campione significativo per condurre un’opportuna analisi sui bug.
- Tipologia sampling: stratified. →
Il campionamento stratificato consiste nel suddividere la popolazione (insieme totale di bug) in un numero determinato di strati o classi, in modo tale che le unità appartenenti ad uno st
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Presentazione Crittografia Finale
-
Presentazione Tesi (Sistemi SPSS)
-
Presentazione allenamento
-
Presentazione Seminario Monte Carlo