![Show Menu](styles/mobile-menu.png)
![Page Background](./../common/page-substrates/page0071.png)
71
CODE REUSE |
software
EMBEDDED
56 • maggio • 2015
te messe a punto molteplici tecniche per risolvere
i problemi di riusabilità del codice, ma spesso la
carenza di una armonica fusione tra esse non ha
permesso di raggiungere gli obiettivi desiderati.
Sul versante non tecnico, per abbracciare con effi-
cacia le iniziative di riuso, talvolta l’organizzazio-
ne deve prima rivedere dall’alto, dai vertici, le pro-
prie policy interne sul tema. In altri casi, invece,
gli obiettivi di efficienza da perseguire attraverso
le politiche di riuso possono non essere percepiti e
condivisi dai dipendenti, ad esempio dai team di
sviluppatori, che temono che la pratica di riuso del
codice, e un certo livello di standardizzazione nel
processo di sviluppo del software, possano compro-
mettere il valore della loro specifica professionali-
tà e capacità di progettazione.
Requisiti di design nell’era del Web degli oggett
i
Il riuso del codice quindi torna d’attualità oggi,
spronato dalla prorompente diffusione della IoT e
delle sue applicazioni. E la ragione forse più evi-
dente è che la crescente miriade di oggetti e dispo-
sitivi elettronici più o meno intelligenti connessi
alla rete sta trasformando i tradizionali requisiti
dello sviluppo software. Ora più che mai diventa
indispensabile che tali oggetti siano in grado di
interoperare e comunicare fra loro in modo fluido,
affinché sia realmente possibile convertire le enor-
mi moli di dati (Big Data) che raccolgono e produ-
cono in informazioni efficacemente utilizzabili per
migliorare le decisioni aziendali e la conduzione
del business.
Le tecnologie di sviluppo devono privilegiare cri-
teri come la rapidità di progettazione del codice,
la minimizzazione del time-to-market e l’ottimiz-
zazione del ROI (return on investment). Di conse-
guenza, come indicano alcune analisi di mercato, i
team di progettazione tendono a migrare da certe
tecnologie e processi di programmazione proprie-
tari consolidati per indirizzarsi verso strumenti
object-oriented e metodologie di sviluppo più mo-
derne e dinamiche. Nei progetti IoT uno stesso
software deve essere riutilizzabile e ingegneriz-
zabile per funzionare su piattaforme con differen-
ti caratteristiche hardware, da quelle potenti, a
quelle più limitate. In quest’ottica, ad esempio, il
linguaggio Java, e in particolare Java Embedded,
si posiziona nel settore come un buon candidato
fra gli strumenti di programmazione che consen-
tono di creare codice velocemente riutilizzabile, in
grado, una volta scritto, di funzionare con diversi
sistemi operativi, ambienti, applicazioni e piatta-
forme di computing. Dunque adatto a sviluppa-
re interoperabilità. In aggiunta, Java consente
nella programmazione di suddividere il codice in
componenti e moduli riutilizzabili, ed ha un ricco
insieme di librerie standard e caratteristiche che
ne facilitano la portabilità, rispetto ad esempio a
dover fare il porting di programmi scritti con lin-
guaggi come C, o C++.
Esigenze e scelte degli ingegneri
Negli attuali ambienti di progettazione embed-
ded, il riuso del codice si conferma una metodolo-
gia stabile. Il livello di riutilizzo del software nelle
organizzazioni risulta elevato e la previsione è che
continui a mantenersi tale. Questo è il dato chia-
ve emergente dal 2014 Embedded Market Study,
che disegna uno scenario aggiornato del settore a
livello globale. L’indagine, condotta da
UBM Techin collaborazione con la società di ricerche
Wilson Research Group, ha analizzato attraverso un son-
daggio web-based online tutti gli aspetti essenzia-
li del processo di sviluppo embedded: dai tipi di
tecnologie e tool utilizzati, alle applicazioni, agli
ambienti di lavoro, ai metodi e processi, ai siste-
mi operativi adottati, all’emergere del trend IoT.
I risultati del sondaggio mondiale traguardano un
periodo che va dai tre ai cinque anni, e sono stati
elaborati sulla base delle opinioni di 2.258 rispon-
denti. Di questi, il 55,2% sono residenti negli Stati
Uniti e in Canada; il 22,8% in Europa, il 14% in
Asia, il 3,8% in America Latina, il 2,2% in Africa
e Near East, e il 2% in Australia. Le organizzazio-
ni considerate comprendono realtà multinaziona-
li che vanno da aziende con meno di 100 addetti,
a imprese con oltre 20mila impiegati. A livello di
funzioni ricoperte in azienda, solo per citare i nu-
meri più rilevanti, il 57,8% dei rispondenti opera
nell’area dell’integrazione hardware/software; il
57,1% nella scrittura di firmware/software per
sistemi embedded; il 56,7% svolge funzioni di de-
bugging di firmware/software. Un 42,6% si occupa
di project management, mentre il 38,1% è addetto
al testing di firmware/software. Il 27,1 ha funzioni
di co-design hardware/software, e il 18,9% opera