Addio bug nei software? La soluzione di Intel si chiama ControlFlag

Addio bug nei software? La soluzione di Intel si chiama ControlFlag

Intel sta lavorando su ControlFlag, una tecnologia autonoma capace di rilevare i bug nel codice dei software. L'obiettivo è ridurre drasticamente tempo e denaro attualmente impegnati nel debugging dei programmi.

di pubblicata il , alle 09:21 nel canale Software
Intel
 

Si chiama "ControlFlag" la soluzione di Intel per "rilevare autonomamente errori nel codice" e aiutare gli sviluppatori nel debugging, cioè a correggere errori, dei loro programmi. Questo sistema, al momento ancora in fase di sviluppo, è stato allenato con oltre 1 miliardo di linee di codice senza alcun tipo di tag.

"ControlFlag sarà un nuovo potente strumento che potrebbe ridurre drasticamente il tempo e il denaro richiesto per valutare e debuggare il codice", ha dichiarato Justin Gottschlich, a capo del Machine Programming Research degli Intel Labs. "Secondo gli studi, gli sviluppatori di software passano circa il 50% del tempo nel debugging. Con ControlFlag, e sistemi simili, immagino un mondo dove i programmatori passino molto meno tempo sul debugging e di più in quello che credo facciano meglio: concentrarsi su nuove idee creative".

Il software richiesto dai sistemi basati sulle sempre più diffuse architetture eterogenee è più complesso che mai e questo aumenta la possibilità che vi siano degli errori. È inoltre sempre più difficile trovare programmatori con l'esperienza necessaria per scrivere codice per hardware differente e di conseguenza è più faticoso scovare gli errori.

ControlFlag nasce proprio per risolvere questi problemi, permettendo ai programmatori di dedicarsi alla parte creativa e soprattutto ridurre i costi di sviluppo. La tecnologia di Intel si basa su quello che l'azienda chiama "machine programming", una fusione di "machine learning, metodi formali, linguaggi di programmazione, compilatori e sistemi di calcolo".

Leggi anche: Intel: lo sviluppo del software in futuro? Automatizzato grazie alle reti neurali

ControlFlag lavora per "rilevazione di anomalie": il sistema apprende da esempi verificati per rilevare i normali schemi di programmazione, identificando le anomalie nel codice che potrebbero causare un bug. Inoltre, ControlFlag può rilevare queste anomalie indipendentemente dal linguaggio di programmazione. La tecnologia è inoltre capace di imparare ad adattarsi allo stile dello sviluppatore, identificando e taggando le scelte stilistiche in modo da capire se il presunto errore è invece una semplice "deviazione stilistica tra due team di sviluppatori". Intel ha già iniziato a testare attivamente ControlFlag al suo interno per identificare bug in software e firmware.

9 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
cignox104 Dicembre 2020, 10:49 #1
--Secondo gli studi, gli sviluppatori di software passano circa il 50% del tempo nel debugging
Eh, magari... piú 25%/75% direi.
SpyroTSK04 Dicembre 2020, 12:45 #2
Originariamente inviato da: cignox1
--Secondo gli studi, gli sviluppatori di software passano circa il 50% del tempo nel debugging
Eh, magari... piú 25%/75% direi.


dai, non così tanto, ad oggi passi più tempo a scrivere i test che non il codice (scherzo eh)
Opteranium04 Dicembre 2020, 13:13 #3
e cosa accade quando il bug è di controlflag?
otto.hwupdt04 Dicembre 2020, 13:22 #4
niente più bug?
nelle prossime ore Microsoft dichiarerà fallimento
Hiei360004 Dicembre 2020, 14:08 #5
Ci vorranno comunque i programmatori umani per correggere i bug dato che questo sistema, se funziona, si limita a segnalarli...[SIZE="5"]per ora[/SIZE].

Non credo passerà molto tempo da quando uscirà anche un AI che oltre a segnalare i bug li sa anche correggere....e via altri milioni di disoccupati in tutto il mondo...alla fine rimarranno solo i lavori tipo raccogliere i pomodori nei campi...a no aspetta, mi pare di aver letto che ci sono già sistemi automatizzati anche per quello
aqua8404 Dicembre 2020, 16:05 #6
Originariamente inviato da: Hiei3600
...alla fine rimarranno solo i lavori tipo raccogliere i pomodori nei campi...a no aspetta, mi pare di aver letto che ci sono già sistemi automatizzati anche per quello

certo che esistono già, e costano anche infinitamente meno di un robot, circa 2€/ora
Hiei360004 Dicembre 2020, 16:07 #7
Originariamente inviato da: aqua84
certo che esistono già, e costano anche infinitamente meno di un robot, circa 2€/ora


Come tutte le nuove tecnologie all'inizio costano molto....ne riparliamo fra 10-20 anni magari.
LMCH04 Dicembre 2020, 17:45 #8
( /me legge l'articolo )
Sembra una buona idea .. ma non mi riferisco al semplificare lo sviluppo software.

In Intel mi sa che puntano a vendere molto nuovo hardware per far girare le applicazioni di "machine programming".

Nella sostanza "il fattore umano" è la maggior fonte di errori e bug perchè il grosso dell'analisi, formulazione di requisiti e specifiche e poi codifica e debug/verifica vengono svolti da .. esseri umani.

Ma se ad esempio ti ritrovi con un compilatore che ha qualche bug, che cosa puoi fare a riguardo ? Di solito tale aspetto cade nella parte di debug e verifica dell'applicazione che stai sviluppando.

Ora, immaginate che un "black box basato su algoritmi di machine learning" abbia dei bug ... come fa chi lo usa ad accorgersi che il problema è nel sistema di generazione del codice, capire cosa lo origini e ad aggirarlo in un qualche modo ?

E' ovvio che nuovi strumenti e magari anche AI di supporto sono le benvenute per rendere più efficiente lo sviluppo software, ma da questo a pensare che questo permetta di poter sostituire sviluppatori competenti con il primo tizio che capita ne passa parecchio.
Hiei360004 Dicembre 2020, 23:58 #9
Originariamente inviato da: LMCH
Ora, immaginate che un "black box basato su algoritmi di machine learning" abbia dei bug ... come fa chi lo usa ad accorgersi che il problema è nel sistema di generazione del codice, capire cosa lo origini e ad aggirarlo in un qualche modo ?


Trattandosi di un sistema che controlla l'integrità(assenza di bug) di altri sistemi, credo sia estremamente importante che sia privo di bug.

Il metodo più semplice(relativamente parlando),per fare una cosa del genere ed usare un sistema a "3".

In pratica 3 gruppi di programmatori diversi realizzano un AI che è in grado di raggiungere lo stesso scopo (diagnostica di bug), una volta realizzati questi AI vengono sottoposti dei programmi-campione contenenti dei bug già conosciuti, e si confrontano i risultati.
Ogni volta che i risultati dei 3 AI non sono unanimi (nel senso se non sono tutti positivi o tutti negativi) interviene un team per stabilire quale AI abbia ragione e quali debbano essere "corretti" - in pratica la filosofia di questo approccio è che - trattandosi di 3 AI diversi sviluppati da 3 programmatori diversi, sia statisticamente quasi impossibile che abbiano lo stesso bug, è che quindi sia possibile correggere tutti i bug di questi 3 AI semplicemente con un analisi incrociata dei loro lavori.

Poi ovviamente se alcuni bug sono considerabili "features" quella è un'altra questione....

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^