BIOMEDICALE: PROGRAMMAZIONE SOFTWARE PER IBD SRL.
Brief
NIER è stata ingaggiata per contribuire allo sviluppo software di un innovativo dispositivo di emodialisi utilizzato in ambito biomedicale. Essendo un dispositivo medico a diretto contatto con il paziente, è quindi soggetto a determinati vincoli di sicurezza. Precisione, affidabilità, robustezza, sicurezza ma anche semplicità di utilizzo sono solo alcune delle caratteristiche necessarie per questo tipo di dispositivo biomedicale. Sono pertanto richieste competenze di programmazione software (in particolare di “basso” livello e in ambiente safety critical), ma anche competenze nell’ambito dei test software, oltre alle capacità ingegneristiche necessarie a comprendere il comportamento funzionale della macchina.
Sfide di progetto
La sfida principale per NIER è stata quella di riuscire a fornire in tempi rapidi un supporto alla programmazione software di un sistema biomedicale complesso. Grazie alle competenze maturate nello sviluppo di sistemi safety critical anche in altri ambiti (es: ferroviario), NIER è riuscita a adattarsi velocemente ed efficacemente alle esigenze del cliente.
Soluzione
L’attività principale di NIER è stata quella di fornire supporto allo sviluppo della macchina a stati che determina il funzionamento del dispositivo di emodialisi. Quest’ultimo implementa meccanismi di protezione tramite un’architettura fail-safe tollerante al singolo guasto (single-fault tolerant). Lo sviluppo del software applicativo su piattaforma STM32 è basato su ecosistema STM32Cube di STMicroelectronics (STM), che fornisce un insieme di tool e librerie per lo sviluppo e il debug del software. Nello specifico, utilizza un’architettura basata su due microcontrollori della famiglia STM32 che comunicano tra loro attraverso un CAN bus. Uno volge il ruolo di controllore dell’applicazione, mentre l’altro svolge il ruolo di supervisore, verificando che il comportamento del controllore sia corretto ed intervenendo in caso non lo sia attraverso meccanismi di protezione atti a garantire la sicurezza del paziente. Come linguaggio di programmazione è stato scelto dal cliente il linguaggio C.
Fasi di esecuzione
Acquisizione e studio preliminare delle specifiche di input del cliente biomedicale.
Implementazione delle modifiche software secondo quanto indicato dalle specifiche del cliente.
Verifica della correttezza delle modifiche effettuate tramite test in laboratorio direttamente dal cliente.
Risultati ottenuti
Il supporto di Nier allo sviluppo dell’applicativo software ha permesso al cliente il raggiungimento degli obbiettivi prefissati nei tempi previsti. Nier ha avuto modo, inoltre, di incrementare la propria conoscenza in ambito biomedicale e in particolare nello sviluppo di applicazioni software safety critical.