I software applicativi sono programmi informatici sviluppati per eseguire determinati compiti e supportare persone e task. Vediamo di che si tratta.


I software applicativi sono programmi informatici (software) sviluppati per eseguire determinati compiti e supportare le persone e specifici task (operazioni). In parole più semplici, sono programmi che consentono alle persone di svolgere attività ed azioni ben specifiche. Vediamo in dettaglio di cosa si tratta.

La trasformazione digitale sta portando alla progressiva “softwarizzazione” di tutti gli ambienti in cui è prevista l’interazione tra un dispositivo informatico e un utente che lo utilizza per risolvere una precisa esigenza funzionale. Se un tempo i software consentivano di svolgere soltanto alcune funzioni basilari, come la videoscrittura o i fogli di calcolo, oggi ritroviamo applicativi che ci consentono di fare praticamente qualsiasi cosa, in locale, su internet, in qualsiasi luogo, grazie ai personal computer e alla capillare diffusione dei dispositivi mobile.

Il concetto di software inquadra un contesto molto ampio, che spazia dalla più semplice app per smartphone, ingegnerizzabile nel giro di poche ore, fino al complesso ecosistema applicativo di una grande azienda, fatto di decine di moduli tra loro interconnessi, capace di richiedere centinaia, se non migliaia di ore di sviluppo e di aggiornamento.

Vediamo dunque cosa si intende per software applicativi, quali sono le sostanziali differenze rispetto ad un software di base e quali sono le principali tipologie di software attualmente al centro del business legato allo sviluppo.

Cosa sono i software applicativi

Sviluppati per risolvere una o più specifiche esigenze dell’utente, i software applicativi possono disponibili attraverso varie licenze d’uso.

  • Software commerciale: prevedono di norma l’acquisto una tantum di una determinata versione di software, che offre il diritto agli aggiornamenti almeno fino al rilascio della versione successiva. L’acquirente mantiene in maniera permanente i diritti d’uso del software acquistato, senza particolari vincoli di scadenza.
  • Software rentalware: prevedono il pagamento di un importo che consente di utilizzare il software per un determinato periodo di tempo, senza garantire all’acquirente una licenza perpetua. Si tratta di un modello di pricing sempre più adottato dalle software house, sia per le tradizionali installazioni in locale che per l’utilizzo in cloud di modelli a servizio (SaaS)
  • Software shareware: è di base gratuito, ma oltre un certo periodo può richiedere il pagamento di una quota per continuare ad utilizzarlo o godere di tutte le funzioni. In altre formule può essere richiesta una semplice donazione libera.
  • Software di pubblico dominio: open source, liberamente scaricabile e modificabile, fino allo sviluppo di un software totalmente differente rispetto a quello originale.
  • Software freeware: open source, liberamente scaricabile ma modificabile secondo le condizioni di licenza, solitamente finalizzate a far crescere il software in maniera collaborativa, a vantaggio dell’intera community di utilizzatori. Di rado è concessa la possibilità di sviluppare un software totalmente differente o concorrente sulla base del codice sorgente messo liberamente a disposizione.

Per cogliere in maniera semplice ed immediata il significato e l’essenza di un software applicativo è utile definire la sua differenza rispetto al software di base.

Differenza tra software applicativi e software di base

Il software di base (o software di sistema) è chiamato a gestire le risorse hardware e ad interfacciare il dispositivo informatico con l’utente finale. È il caso dei sistemi operativi, che operano a basso livello, a stretto contatto con la macchina, per rendere disponibili tutte le sue funzionalità, in modo che l’utente possa avviare il sistema e ritrovarlo immediatamente operativo per eseguire le sue applicazioni.

Tra i principali sistemi operativi, a titolo di esempio, ritroviamo Microsoft Windows, Linux o MacOS per personal computer, piuttosto che di iOS o Android per i sistemi mobile.

Tra i software di base ritroviamo anche i driver, che consentono al sistema operativo di dialogare con le periferiche di sistema, oltre a compilatori, interpreti e librerie, indispensabili per sviluppare ed eseguire i software applicativi.

Il software applicativo (o applicazione) è un programma che consente di risolvere una o più esigenze specifiche da parte dell’utente finale. Sono sviluppati per essere eseguiti su piattaforme specifiche, grazie alla presenza di un sistema operativo (software di base). In altri termini si può quindi affermare che il software di base consente il funzionamento e l’efficacia dei software applicativi.

Nella loro accezione tradizionale, si faceva riferimento ai software per i personal computer, ma negli ultimi anni il floridissimo mercato dei sistemi mobile ha introdotto un nuovo formato, quello delle app, disponibili presso i marketplace ufficiali dei principali ecosistemi.

Software applicativi - la rivoluzione delle Mobile App
Software applicativi – la rivoluzione delle Mobile App

Le tipologie di software applicativo

In base alla tipologia di applicazione per cui il software è sviluppato, è frequente sentire parlare di un applicativo orizzontale, verticale, piuttosto che personalizzato. Vediamo le principali differenze.

Orizzontale

Si riferiscono ad una tipologia di software che nasce nella concezione più trasversale del termine, per risolvere esigenze di natura comune e diffusa nelle operazioni di base, come la posta elettronica, le applicazioni per la produttività da ufficio, le presentazioni, le videoconferenze, piuttosto che tutti i software in ambito grafica e multimedia per l’utilizzo generalista: videogiochi, elaborazione immagini, fotoritocco, grafica editoriale, grafica vettoriale, editing sonoro, editing video, effetti visivi, ecc.

Verticale

Se il software orizzontale consente di abbracciare una gamma di funzioni ampia e generalista, il software verticale si focalizza su un’esigenza specifica o verso un ambito di applicazioni in cui, spesso e volentieri, tendono ad imporsi determinati standard di utilizzo.

Tra i software applicativi verticali più diffusi ritroviamo i CAD-BIM per l’architettura e l’ingegneria, i software di calcolo strutturali, gli elaboratori di computi metrici estimativi, i software 3D per il design piuttosto che i CAD-CAM per l’industria meccanica o l’automotive. In ambito aziendale ritroviamo i gestionali verticali, piuttosto che i software di fatturazione mentre in ambito didattico possiamo citare i programmi finalizzati all’autoapprendimento, come nel caso delle lingue straniere, piuttosto che i corsi riguardanti discipline o applicazioni specifiche.

Personalizzato

I software verticali commerciali consentono di risolvere un’ampia gamma di esigenze, solitamente riferibili agli standard del settore di applicazione stesso. Tuttavia, risulta piuttosto frequente il caso in cui un’azienda abbia esigenze specifiche, che risulterebbe oltremodo complesso risolvere con l’adozione delle soluzioni commerciali.

Ciò accade a più livelli, dai gestionali fino ai configuratori di prodotto per i brand attivi nell’ecommerce. In questi casi l’azienda incarica, interamente o in outsourcing, lo sviluppo di un’applicazione dedicata, che vanno dal modulo aggiuntivo per un software commerciale, nel caso in cui sia aperto e predisposto per questo genere di integrazione, fino allo sviluppo ex novo dell’intera applicazione necessaria.

Se l’acquisto di un software orizzontale o verticale coincide con la selezione dell’applicazione più funzionale alle proprie esigenze, in base all’effettiva disponibilità sul mercato, lo sviluppo di un software personalizzato comporta necessariamente l’analisi di una serie di pro e contro. Se da un lato si ha la possibilità di creare da zero un’applicazione che casca in maniera sartoriale sulle esigenze da soddisfare, per contro è opportuno valutare cosa ciò comporta in termini di tempi e costi di sviluppo, senza trascurare la necessità di dover seguire anche tutta la roadmap di aggiornamento, che nel caso di un software commerciale il più delle volte si esaurisce con il download di una semplice patch. Per contro, lo sviluppo personalizzato mette al riparo sia da possibili lock-in che dal rischio di rimanere in balia delle scelte di sviluppo tipiche di un software commerciale, che spesso non dipendono dalla sua evoluzione tecnica, ma dalle sorti dell’azienda che lo distribuisce.

In base agli ambiti applicativi, è invece possibile suddividere i software applicativi nelle seguenti categorie:

  • Software Desktop: legato alla produttività ed in particolare alla office automation, per cui videoscrittura/elaborazione di testi, fogli di calcolo, gestione mail, agenda, messaggistica, grafica, fotoritocco, audio, video, ecc.
  • Software Enterprise: rispetto alla categoria desktop, identifica quei software che hanno un riferimento esclusivo all’esigenza aziendale. Il caso più evidente è dato dai gestionali come CRM e ERP, piuttosto che dagli applicativi di project management. Negli ultimi anni questa categoria di software sta trovando una notevole diffusione anche in Cloud, grazie alla scalabilità dei modelli a servizio (es. SaaS).
  • Software di sviluppo: legato allo sviluppo di altri software, sia di base che applicativi. È il caso dei framework per le app mobile e dei motori grafici per lo sviluppo dei videogiochi.
  • Software Client/Server: vi rientrano le applicazioni che prevedono il costante utilizzo delle risorse allocate su uno o più server, interni o esterni all’azienda per architetture IT on premise o in cloud. Un esempio classico è dato dai servizi legati ai database, piuttosto che ai data storage o alle applicazioni web.
  • Software gaming: i videogiochi e le piattaforme che consentono di gestirli attraverso un unico account, centralizzando la gestione degli acquisti e delle installazioni. Negli ultimi anni si stanno diffondendo anche le piattaforme di cloud gaming, che consentono di giocare attraverso un semplice browser, senza dover installare di fatto nulla e senza doversi preoccupare della potenza di calcolo in locale.
  • Software scientifici: come suggerisce il nome stesso, fanno riferimento ad applicazioni verticali nelle varie discipline della scienza applicata, molte delle quali sono base su tecnologie di intelligenza artificiale: matematica, biologia, chimica, ecc.
  • Software per l’educazione: risolvono sotto vari aspetti l’esigenza didattica, dalla piattaforma per la didattica a distanza ai vari software per l’autoapprendimento, che consentono di fruire on demand, e spesso in maniera interattiva, dei contenuti utili per affrontare il percorso formativo.