Questa pagina è stata tradotta automaticamente.
Completa un sondaggio di 1 minuto sulla qualità di questa traduzione.
Come viene costruita la fabbrica del software per auto
La progettazione Model-Based estende i principi agili agli sforzi di sviluppo di sistemi che includono componenti fisici e software. Dalla definizione dei requisiti, all'architettura del sistema e alla progettazione dei componenti, fino all'implementazione, alla validazione, al test e alla distribuzione, la progettazione Model-Based abbraccia l'intero ciclo di sviluppo e consente un rapido adattamento ai requisiti in continua evoluzione.
Grazie alle tecnologie di guida intelligente e di abitacolo intelligente, la complessità funzionale dei veicoli sta aumentando rapidamente. Allo stesso tempo, i consumatori pretendono di più dalle loro auto intelligenti. In questo contesto, i veicoli definiti dal software (SDV) sono diventati una tendenza fondamentale e il software è diventato il fulcro della tecnologia automobilistica. La distribuzione degli SDV richiede un cambiamento nel processo di sviluppo, in cui lo sviluppo di software e hardware vengono disaccoppiati per consentire iterazioni software rapide. La capacità di sviluppo software di un'azienda si riflette nella velocità di iterazione e distribuzione degli aggiornamenti ai consumatori. È fondamentale dotare gli sviluppatori di strumenti, processi e metodi efficaci per progettare, testare e aggiornare il software in modo efficiente. Nel frattempo, gli sviluppatori devono esplorare come integrare lo sviluppo agile con l'integrazione continua/distribuzione continua (CI/CD) e il tradizionale modello V per raggiungere un equilibrio efficace tra efficienza e qualità dello sviluppo.
Zeekr, un produttore di veicoli elettrici di alta qualità con sede in Cina, ha recentemente condiviso la sua esperienza nell'applicazione della progettazione Model-Based al suo nuovo ambiente di sistema operativo per veicoli, incluso l'uso di nuove funzionalità in Simulink® per la modellazione di software basato su architettura orientata ai servizi (SOA) e la generazione di codice C++ utilizzando Embedded Coder® (Figura 1).
Il team ha anche sviluppato SOMOC, uno strumento di architettura software per il sistema operativo personalizzato del veicolo Zeekr con System Composer™, MATLAB® e App Designer (Figura 2).
Nelle sezioni successive, gli esperti del Software and Electronics Center di Zeekr condivideranno la loro esperienza nella creazione di una fabbrica di software, tra cui l'integrazione di nuove funzionalità software, l'accelerazione della distribuzione del software, la riduzione dei tempi e dei costi di sviluppo e la garanzia di sicurezza e affidabilità.
Applicazione dell'architettura orientata ai servizi e raggiungimento del disaccoppiamento
Per soddisfare i requisiti di rapida iterazione delle funzionalità, è necessario passare gradualmente dal tradizionale software basato sui segnali a una progettazione orientata ai servizi. Allo stesso tempo, è necessario disaccoppiare il software dall'hardware e disaccoppiare i livelli all'interno dell'architettura software, come il kernel del sistema operativo, il middleware e il livello applicativo. Il disaccoppiamento completo è fondamentale per garantire una rapida iterazione di hardware e software, secondo i rispettivi ritmi, riducendo così il ciclo di sviluppo e soddisfacendo i requisiti degli utenti.
Una strategia fondamentale per consentire un'iterazione rapida è l'adozione di SOA. SOA facilita l'accoppiamento debole tra software applicativo e hardware, nonché tra diverse applicazioni software. Ciò non solo semplifica lo sviluppo e la manutenzione del software, ma porta anche a un coordinamento ottimale tra il software di bordo, la comunicazione, la sicurezza delle informazioni e l'ambiente cloud, creando di fatto un ecosistema cloud completo per i veicoli.
Non esiste una soluzione miracolosa che possa risolvere le sfide poste dallo sviluppo di un sistema software complesso, interdisciplinare e su larga scala. Per alcune applicazioni, l'utilizzo di linguaggi di alto livello come C/C++, in particolare per i moduli che prevedono meccanismi multithreading o publish-subscribe, può essere semplice.
Allo stesso tempo, il team Zeekr vanta una vasta esperienza nello sviluppo di gruppi propulsori, telai e carrozzerie utilizzando la progettazione Model-Based. Di conseguenza, per le funzioni mature, che sono state verificate tramite test di produzione o hanno macchine a stati complesse, il team continua a utilizzare un approccio di progettazione Model-Based. L'obiettivo è integrare questi modelli nella piattaforma SOA. Per rispondere a questa esigenza, Zeekr e MathWorks hanno sviluppato in collaborazione una toolchain di sviluppo integrata basata su modelli (Figura 3).
Riduzione dei cicli di sviluppo e dei costi con la simulazione virtuale dei veicoli
Circa il 90% dei test sugli algoritmi di guida automatizzata viene condotto su piattaforme di simulazione, il 9% su piste di prova e l'1% tramite test su strada reali. I test sulle piattaforme di simulazione sono particolarmente importanti data la difficoltà di riprodurre la varietà apparentemente infinita di scenari di guida riscontrabili nelle reali condizioni stradali.
Man mano che l'industria automobilistica abbraccia i nuovi progressi tecnologici, gli OEM stanno adottando sempre più processi di sviluppo agili, test automatizzati, CI, cloud computing e virtualizzazione. Questi approcci accelerano i cicli di sviluppo del software, con le tecnologie di virtualizzazione e simulazione dei veicoli che hanno il maggiore impatto sull'integrazione e sulla validazione.
Le aziende automobilistiche utilizzano la simulazione per sviluppare e testare sistemi di controllo dei veicoli per l'energia e il movimento. Simulink viene utilizzato per creare modelli dinamici e algoritmi di controllo, nonché per simulare scenari per valutare e ottimizzare i sistemi di controllo, eseguire calibrazioni o mettere a punto algoritmi. In futuro, le tecnologie di simulazione consentiranno la creazione di gemelli digitali, così gli ingegneri potranno utilizzare questi veicoli completamente virtuali per prevedere il comportamento reale del veicolo e per una simulazione esaustiva.
Grazie al supporto di una piattaforma di simulazione integrata, la simulazione virtuale dei veicoli consente ai team di ingegneria di prototipare, calibrare e validare nuove funzionalità software. Grazie al front-loading, possono accorciare notevolmente il ciclo di sviluppo e ridurre i costi. Zeekr sfrutta le funzionalità pronte all'uso di MATLAB e Simulink per creare rapidamente veicoli virtuali (Figura 4).
Riduzione dei tempi di consegna con DevOps
Negli ultimi anni, molte aziende automobilistiche hanno riposizionato la propria attività focalizzandosi sul software. Ciò ha portato a un passaggio verso pratiche di CI e DevOps, in cui i dati vengono raccolti durante il funzionamento, reinseriti nel processo di sviluppo e utilizzati per iterare continuamente il software del veicolo.
Il software per l'automotive è caratterizzato da elevati costi di sviluppo e richiede una grande quantità di codice da sviluppare, integrare e distribuire. L'utilizzo di pratiche CI e DevOps può ridurre i tempi che intercorrono tra l'invio del codice e l'aggiornamento del prodotto, riducendo i tempi di sviluppo e gli errori, garantendo al contempo una distribuzione sicura e di alta qualità del software tramite integrazione continua, test automatizzati e analisi statica del codice.
DevOps dà priorità alle metodologie agili per fornire prodotti più rapidamente. La crescente complessità del software, la riduzione dei tempi di immissione sul mercato, i budget limitati e la divergenza dei cicli di vita di software e hardware hanno reso necessaria l'integrazione della progettazione Model-Based e dei principi di sviluppo agile. L'uso della modellazione e della simulazione, dei test e della validazione automatizzati e della generazione automatica di codice migliorano significativamente l'efficienza dello sviluppo e la velocità di implementazione.
Per raggiungere questi obiettivi, Zeekr utilizza strumenti Polyspace®, come Polyspace Bug Finder™ e Polyspace Code Prover™, per verificare la presenza di difetti software, come specifiche di codifica e vulnerabilità di sicurezza.
Zeekr ha sviluppato una serie di strumenti automatizzati per il test delle unità e la verifica dei servizi; il codice generato viene verificato da questi strumenti per garantire che il programma eseguibile possa essere eseguito in modo affidabile. Allo stesso tempo, Zeekr integra anche lo sviluppo e la verifica dei modelli nel suo sistema DevOps. Proprio come fanno con il codice, gli ingegneri dello sviluppo funzionale possono caricare i modelli in un repository di codice (Figura 5).
Utilizzo dello sviluppo agile e del modello V per garantire la sicurezza funzionale
L'avvento degli SDV ha introdotto numerose innovazioni, come la guida autonoma e un controllo avanzato del veicolo. Questa evoluzione ha però portato con sé anche notevoli sfide in termini di sicurezza funzionale. In particolare, con l'evoluzione dell'architettura software dal classico AUTOSAR a sistemi operativi per veicoli e architetture di servizio eterogenei e distribuiti, emergono nuove incertezze nella costruzione dei tradizionali metodi di analisi della sicurezza funzionale, dei concetti di progettazione della sicurezza software e hardware, dei sistemi di verifica della sicurezza e della sicurezza della toolchain. Pertanto, la sfida fondamentale che devono affrontare i team di ingegneria che lavorano sugli SDV è rappresentata dal test e dalla validazione.
Attualmente, il processo di sviluppo software più comune nel settore automobilistico segue il modello a V, che prevede test corrispondenti in ogni fase di sviluppo, dai requisiti al codice sorgente, con ogni fase che si basa sull'output della precedente. I vantaggi del modello V risiedono nella chiarezza del processo, nella tracciabilità e nel controllo di qualità. Tuttavia, questo approccio presenta anche degli svantaggi, come lunghi cicli di sviluppo, difficoltà di adattamento a requisiti mutevoli, difficoltà di test e mancanza di flessibilità.
Poiché i tradizionali processi di sviluppo software non riescono a tenere il passo con la crescente complessità dei sistemi automobilistici, lo sviluppo agile è emerso come una soluzione. Supporta lo sviluppo del software attraverso iterazioni ripetute, distribuendo il software in piccoli incrementi per consentire aggiornamenti continui, anziché attendere di distribuire tutto il software alla fine del processo di sviluppo.
L'attuale approccio allo sviluppo software di Zeekr combina il modello V con metodologie agili. Questa strategia ibrida mantiene il processo di sviluppo strutturato del modello V per lo sviluppo complessivo del veicolo, introducendo al contempo flessibilità per requisiti specifici, garantendo la sicurezza e l'affidabilità dei prodotti software e facilitando una rapida consegna (Figura 6).
Il costo dello sviluppo e della validazione delle funzionalità è aumentato in modo significativo a causa della centralizzazione delle funzioni su più controller nel tradizionale modello a V. In questo contesto, Simulink offre notevoli vantaggi per lo sviluppo dei modelli. Grazie alla sua suite completa di strumenti di verifica del modello, Simulink supporta toolkit, metodologia e processo di sviluppo software ISO® 26262 maturi e completi. Ciò garantisce in modo efficace l'accuratezza e l'affidabilità del modello.
Inoltre, la progettazione Model-Based estende i principi agili agli sforzi di sviluppo di sistemi che includono componenti fisici e software. Dalla definizione dei requisiti, all'architettura del sistema e alla progettazione dei componenti, fino all'implementazione, alla validazione, ai test e alla distribuzione, la progettazione Model-Based abbraccia l'intero ciclo di sviluppo e consente un rapido adattamento ai requisiti in continua evoluzione. In quanto tale, la progettazione Model-Based può soddisfare le esigenze di un approccio ibrido che combina i principi del modello V e dello sviluppo agile.
Pubblicato nel 2024