Guida allo sviluppo di un Sistema elettronico (parte prima): Software garantito e valore aggiunto

Software garantito e valore aggiunto

Dr. Val Lynch, CEO bei AND Technology Research
Steve Norman, Manager, Global Ecosystems, Renesas Electronics Europe
Lo sviluppo di un sistema basato sull’elettronica è sia un processo creativo, sia un arduo compito di ingegneria.
Gli ingegneri innovano costantemente per produrre sempre il meglio e/o qualcosa di nuovo.
Gli obiettivi includono migliore qualità, migliore funzionalità e migliore prezzo.
Durante i processi di sviluppo nascono nuovi metodi e nuove tecniche, ma talvolta si rischia di lavorare su qualcosa di già esistente: in questi casi potrebbe sembrare che “la ruota venga reinventata”.
Riutilizzo e riconfigurazione del software sono buoni metodi per sfruttare al meglio gli investimenti nel software stesso, ma questo risulterebbe probabilmente vero, qualora si possa dimostrare che il software sia già provato ed affidabile.
Come introduzione, riporto di seguito tre definizioni:
COTS: Commercial-Off-The-Shelf Components (hardware e software), che possono essere amalgamati in un sistema. E’ possibile acquistare questi componenti con facilità, proprio come in un supermercato.
Proven: Controllati o che si possa dimostrare che è stato raggiunto uno standard fissato. E’ necessario dimostrare che i componenti software e hardware siano comprovati.
Value: Il valore relativo o l’utilità di qualcosa, che include ma non è limitato al valore monetario. Conoscenza acquisita, tempo risparmiato, qualità e esperienza sono esempi di unità di misura alternative.
Durante ogni progetto verrà generata una banca dati di codici, design e conoscenze. Questa banca dati non dovrà essere eliminata o ignorata alla fine del progetto, in quanto potrebbe contenere informazioni preziose.
Gli sviluppatori del software potranno generare una banca dati di conoscenze legate a determinate tecnologie o strutture che possono essere utilizzate per progetti futuri.
Il codice già testato è un’estensione di ciò, dove il codice (forse all’interno di un sistema) è stato verificato sul campo e può essere riutilizzato per lo sviluppo di progetti futuri.
L’utilizzo del codice già testato è un’opzione interessante durante lo sviluppo di nuovi progetti, in quanto sfrutta gli investimenti precedenti.
E’ quindi possibile risparmiare tempo e denaro, aumentare la qualità e guadagnare valore.
Tuttavia, occorre prestare attenzione alla scelta del software collaudato da utilizzare e al modo in cui applicarlo se si desidera ottenere i migliori risultati.
Quando si importa un codice già testato, che sia da una banca dati depositata interna all’azienda o sotto forma di COTS da terze parti, la cosa più importante è assicurarsi che sia adatto all’applicazione e rispetti le norme vigenti.
Potrebbe sembrare invitante cimentarsi subito nel progetto con un codice riciclato, ma è opportuno valutare l’impatto che esso potrebbe avere su un nuovo ambiente.
Si noterà che il codice avrà raggiunto un particolare standard, ma nessun codice è da considerarsi completamente senza difetti.
Un buon punto di partenza è accettare che ogni codice contiene difetti e deve quindi essere sottoposto a una serie di test che ne verifichino la validità nel nuovo ambiente.
Ciò può essere difficile da compiere, soprattutto quando il codice sorgente non è sempre disponibile, ma non impossibile.
Tutto dipenderà dal livello di copertura del test che può essere raggiunto e se è accettabile.
Ogni caso deve essere valutato in base al merito, ma l’uso di un software comprovato potrebbe portare all’attuazione di un progetto che altrimenti non risulterebbe redditizio.
Codici disponibili da sviluppatori di community open source e codici royalty-free forniti da altre fonti, come, ad esempio, società produttrici di semiconduttori, sono spesso utilizzati dagli ingegneri come spunto per “iniziare” o per fornire funzioni importanti come interfacce hardware e sistemi operativi.
Va comunque sempre ricordato che questi codici non sono necessariamente già testati.
La differenza tra un codice comprovato e un non comprovato è la base di conoscenze.
Un codice non testato può comunque essere un utile input per un progetto, ma dovrebbe essere attuata una verifica della sua qualità e il suo utilizzo prolungato dovrebbe essere valutato con saggezza.
Ad esempio, quando si utilizza un codice open source, il numero dei membri della comunità che lo sfruttano e il suo livello di manutenzione possono essere considerati indicatori della sua qualità.
Occorre, inoltre, considerare se la banca dati di conoscenza interna debba essere estesa mediante la creazione di un nuovo codice piuttosto che mediante il riutilizzo di un vecchio codice o di uno ottenuto da fonti esterne.
Un nuovo codice che potrebbe esso stesso divenire comprovato in futuro potrebbe eventualmente aggiungere un valore maggiore a lungo termine.
La scelta tra la creazione di un nuovo codice e l’utilizzo di uno preesistente è una variante del problema di “fare o acquistare”.
La corrispondenza con il focus aziendale è ancora una volta chiave quando si effettua una decisione di questo genere.
Se, ad esempio, la soluzione ad un problema non è banale e al di fuori dell’esperienza del team interno, o la sfida è legata ad una specialismo al di fuori del focus aziendale principale, l’acquisizione di un codice proveniente da terze parti potrebbe essere più conveniente, ma se, invece, i lavori di sviluppo aumenterebbero la competenza interna e le possibilità di sfruttamento nell’attuazione di altri progetti, sarebbe allora opportuno considerare la creazione di un nuovo codice.
Quest’ultimo caso può richiedere un investimento più sostanzioso, che potrebbe però a lungo termine portare ad un guadagno maggiore.
Riconoscere dove viene creato il valore maggiore, e assicurarsi che questo valore possa essere acquisito e riutilizzato, sarà la chiave per dimostrare quanto detto sopra.
Renesas ha riconosciuto il dilemma del “fare o acquistare” affrontato dalle aziende, quando si è impegnata nello sviluppo dei suoi prodotti ed è ora in grado di fornire un software collaudato pronto per l’utilizzo sulla gamma di prodotti Synergy.
Tale software fornisce accesso ai driver hardware, al sistema operativo ed alla sicurezza.
Queste aree software sono onnipresenti nel design elettronico dei prodotti, cioè non riguardano specifiche funzionalità del prodotto, e gli ingegneri che usano il codice sono quindi liberi di concentrarsi sulle aree di applicazione del prodotto e del sistema.
Le aziende sono, inoltre, liberate dal sostenere i costi di proprietà di questo software.
Renesas fornisce piena garanzia sui componenti del software, che corrisponde a quella fornita sui componenti hardware, e assicura periodici aggiornamenti del software quando richiesti.
La riduzione dei costi di proprietà e il risparmio sui tempi di sviluppo equivalgono ad un aumento del guadagno.
Inoltre, anche la capacità degli ingegneri di concentrarsi sulla creazione di software legati al core business può aumentare il valore.
Ciò che assicura il fatto di aver creato un software di valore è la fase di test. Tale fase di test dimostrerà che il software garantito è stato implementato correttamente e permetterà anche a del nuovo software di diventare garantito.

> Per ulteriori informazioni su come il software Renesas Synergy riduce il tempo di acquisizione della conoscenza, visitare: https://www.renesas.com

 

Redazione Fare Elettronica