Architettura modulare: cos’è e quando conviene. Un esempio in ambito informatico

Uno degli argomenti di più stringente attualità nel dibattito tecnologico mette di fronte modularità VS integrazione.
Ognuna delle due apporta dei benefici, perciò c’è un’accesa discussione, tuttora in corso, che verte intorno all’adozione di un approccio piuttosto che dell’altro. Ne parla questo chiaro ed esaustivo articolo di Richard Bennet, che potete leggere, in inglese, cliccando sul link sottostante.
http://hightechforum.org/modularity-vs-integration-system-design/
Prima di esaminare la questione, però, spieghiamo il concetto.
Per architettura modulare, o modularità, si intende la progettazione di un qualsiasi sistema a partire da componenti separate che sono connesse tra loro, chiamate moduli. Ogni compito è portato a termine da un solo componente, ma un componente può assolvere più compiti. In questo modo, è possibile portare a termine un numero elevato di task partendo da una base relativamente limitata di moduli, un po’ come, a partire da un numero basso di lettere (21) si possono formare migliaia e migliaia di parole.
L’opposto dell’architettura modulare è l’architettura integrata (sarebbe opportuno fare un post anche su quell’argomento!!), nella quale non vi è una differenziazione netta tra i diversi moduli che compongono.
Benefici della modularità
Gli ingegneri del software progettano codici tenendo in considerazione il principale beneficio della modularità, cioè la possibilità di riusare blocchi di codice nei sistemi futuri.
Più volte un modulo di codice viene usato, più esperienza accumuliamo, poiché riusciamo a capire sempre meglio i bug e i possibili miglioramenti che si possono apportare. I moduli popolari tendono a crescere nel tempo, ma periodicamente vengono riscritti, per ridurne le dimensioni, la complessità e l’overhead, termine che in gergo informatico designa la quantità di risorse necessaria per portare a termine una determinata operazione. E’ una buona prassi, quindi, incorporare pezzi di codice già esistente nei nuovi progetti.
Benefici dell’integrazione
I sistemi integrati sono più veloci dei sistemi modulari. In questi ultimi, infatti, vi è un notevole overhead, in quanto i moduli devono funzionare bene in situazioni differenti.
Perciò, quando abbiamo bisogno di rendere un sistema molto veloce, lo scriviamo dallo scratch, cioè da un ambiente di programmazione di tipo grafico. Questo migliora le performance sia di operazioni complesse sia di operazioni semplici.
L’integrazione può anche essere utilizzata per migliorare l’affidabilità e la resilienza, cioè la capacità di saper rispondere alle sollecitazioni e agli stimoli esterni.
Apple VS Windows
Apple e Windows sono casi scuola, che esemplificano bene i pregi e i difetti della modularità e dell’integrazione. Semplificando:

  • Microsoft ha storicamente privilegiato la modularità, perciò Windows, il suo sistema operativo, è progettato per funzionare su una vasta gamma di hardware. Apple, al contrario, funziona solo su hardware Apple
  • Windows, proprio in virtù della modularità, funziona in ogni dispositivo, dai semplici computer “domestici” ai PC di alta fascia. Apple, al contrario, ha sistemi operativi differenti: iOS per device piccoli, OS X per device grandi.

Conseguenza di ciò, è la predominanza di Microsoft nel mercato dei pc, e la superiorità di Apple, capace di integrare i suoi hardware e i suoi software, in quello degli smartphone e dei laptop, che sono più affidabili e performanti. Attualmente, le carte si stanno un po’ rimescolando, e Microsoft si sta adeguando alle nuove sfide che il mercato presenta, abbandonando, almeno in parte, la modularità.
Conclusione

  • La scelta tra modularità e integrazione riguarda non solo l’informatica, ma tutti i prodotti, ed è fondamentale, perché da essa dipenderanno la strategia con cui si impiegheranno le risorse aziendali e il modo con cui il prodotto stesso sarà concepito.
  • Essa dipende da una molteplicità di fattori, dalle caratteristiche del prodotto, al know how disponibile, al settore di mercato in cui ci si vuole posizionare.
  • Per fare questa scelta in modo accurato, occorre analizzare e monitorare accuratamente tutti i processi aziendali.

© 2021 Configuratore di prodotto IPERTECH

Scarica l'E-book

Scopri i vantaggi per la tua azienda, inserisci i tuoi dati per ricevere la guida ai vantaggi del configuratore