Scopri come utilizzare il geomarketing e la geolocalizzazione per attrarre più clienti, ottimizzare la tua presenza online e padroneggiare la SEO locale. Fai crescere la tua attività!
Excel ti impedisce di incollare dati? Scopri come risolvere l'errore Ctrl+V, rimuovere le patch problematiche e correggere rapidamente gli errori di formattazione.
Desideri ottimizzare la tua infrastruttura? Scopri i migliori strumenti di orchestrazione IT per automatizzare con successo flussi di lavoro, container e dati.
Scopri tutti gli strumenti di Photoshop. Impara a modificare le immagini come un professionista, dal ritocco di base all'intelligenza artificiale generativa. Tuffati nel mondo del design e diventa un maestro!
Scopri come utilizzare CrystalDiskInfo per analizzare lo stato di salute del tuo disco rigido o SSD. Impara a leggere i dati SMART e a prevenire la perdita di file.
Scopri come installare la tua IA personale a casa con Ollama e LM Studio. Massima privacy, nessun abbonamento e controllo completo sui tuoi dati. Iscriviti ora!
Padroneggia Windows PowerShell con questa guida completa. Impara tutto, dai cmdlet di base alle automazioni avanzate, per gestire il tuo PC come un professionista.
Scopri come scegliere i componenti ideali per il tuo PC. Impara le differenze tra requisiti minimi e consigliati per giocare senza lag e senza spendere una fortuna.
Stanco di Windows ma non hai voglia di imparare tutto da zero? Scopri le migliori distribuzioni Linux identiche a Windows per una transizione senza problemi.
Scopri come creare il tuo agente di intelligenza artificiale. Strumenti, passaggi tecnici e strategie per automatizzare la tua attività oggi stesso. Inizia subito!
Scopri come rafforzare il tuo software integrando la sicurezza fin dalla progettazione. Padroneggia DevSecOps e OWASP SAMM e previeni oggi stesso le vulnerabilità critiche.
Scopri come usare Time Machine per non perdere mai più i tuoi file. Configurazione, suggerimenti per il ripristino e consigli per proteggere il tuo Mac oggi stesso.
Scopri LFM2.5 di Liquid AI: l'intelligenza artificiale che trasforma il tuo smartphone o Raspberry Pi in un agente autonomo e senza cloud. Alimentazione locale e latenza zero!
Non sai quale programma scaricare? Scopri le reali differenze tra software gratuito e shareware, i rischi connessi e come scegliere l'opzione migliore per te.
Scopri le nuove funzionalità basate sull'intelligenza artificiale di Adobe Photoshop Elements per Mac. Modifica foto e video come un professionista con facilità. Inizia subito!
Cerchi un'alternativa a Office sul tuo Mac senza spendere un centesimo? Scopri le migliori alternative gratuite, compatibili e potenti per la tua produttività.
Scopri se la nuova app NVIDIA sta influenzando le prestazioni del tuo PC. Ti mostreremo come risolvere i cali di FPS e configurare la tua GPU come un professionista.
Che cos'è il software? Definizione
Un'era tecnologica come la nostra è definita da una quantità enorme di software che ci circonda e persino ci sopraffà . Il concetto è ormai implicito nella realtà di ognuno di noi. Lo usiamo, come in passato, sui computer , ma anche sui nostri telefoni per prendere appunti, mentre giochiamo, mentre seguiamo un corso di e-learning, mentre cerchiamo lavoro sulle app di ricerca, mentre guardiamo Netflix in televisione e persino per programmare il forno, solo per citare alcuni esempi.
Pertanto, pur essendo circondati da esso, è ironico constatare quanto poco ne sappiamo di questo concetto. Ed è proprio a questo che rimedieremo oggi, spiegandovi cos'è il software, le tipologie esistenti , come e perché viene utilizzato e, in generale, tutto ciò che dovreste sapere su questa risorsa ormai diventata indispensabile nelle nostre vite.
Che cos'è il software e a cosa serve? Definizione
La definizione più semplice che riusciamo a trovare, e che descrive accuratamente di cosa si tratta, è quella fornita da Wikipedia stessa, che la definisce come " software per un sistema informatico ". Tuttavia, non renderemmo giustizia a noi stessi e a voi se ci limitassimo a questa sola definizione.
Si tratta di regole, premesse, azioni e istruzioni che non esistono a livello fisico , che non sono tangibili, non possono essere toccate, ma che nondimeno vengono eseguite e funzionano per comunicare con la macchina in questione, offrendo servizi molto diversificati in apparecchiature informatiche, televisori, smartphone, ecc. Attualmente, queste si avvalgono di complessi algoritmi progettati con l'intelligenza artificiale.
Si tratta quindi di un insieme di componenti logici che, combinati insieme, formano un prodotto progettato per funzionare su un computer. Questa è la sua parte operativa.
Per comprendere meglio questo concetto, possiamo dire che i programmi software comprendono sia quelli utilizzati dall'utente finale, sia tutti quelli coinvolti in un processo più lungo e nascosto che include la progettazione, lo sviluppo e la programmazione di altri software. Come vedremo in seguito, tutto ciò che eseguiamo sui nostri dispositivi è software, di un tipo o dell'altro.
Origine
Le sue origini risalgono ai primi computer, negli anni '40 . A quel tempo, la sua distinzione dall'hardware non era ben definita (lo vedremo più avanti); non era concepito come qualcosa di indipendente da esso.
Questo decennio e il prossimo hanno offerto prodotti gratuiti e senza licenza . Questi venivano scambiati come se qualcuno si scambiasse una ricetta con un vicino.
Storia
Fu verso la fine degli anni '60 , con la nascita di ARPANET, che iniziò a formarsi una comunità che rivelò in modo specifico le caratteristiche, i principi e i valori del software.
L'impulso a questo campo di studi venne da due conferenze sponsorizzate dalla NATO nel 1968 e nel 1969.
Naturalmente, i decenni successivi, oltre ai nuovi sviluppi, furono caratterizzati da diversi problemi che sfociarono addirittura in quella che venne definita la "crisi del software ", l'aspetto più rilevante della storia di questo prodotto, proprio per il suo impatto a tutti i livelli.
Evoluzione
Possiamo affermare che si inizia a parlare di evoluzione dagli anni '60 in poi perché, nonostante, come abbiamo detto, abbia causato una grave crisi, la sua evoluzione stava diventando evidente.
Possiamo definire una prima era caratterizzata dall'utilizzo di software sviluppato dagli stessi programmatori, da un'unica azienda che si occupava della creazione dei programmi man mano che li ideava, per proprio uso.
La seconda era è definita dal concetto di sistemi multipli, che comprende tutti i tipi di sistemi multifunzionali e la multiprogrammazione . Un altro aspetto chiave è l'introduzione di nuovi concetti che hanno favorito l'interazione tra persone e macchine.
La terza era, iniziata a metà degli anni '70 , ha visto la diffusione di questi sistemi, l'utilizzo di diversi computer, ognuno con uno scopo specifico, e tutti interconnessi. A questo punto, l'industria del software rappresentava la parte preponderante dell'economia globale.
Ci troviamo attualmente nella quarta era, caratterizzata dalla definizione delle tecniche utilizzate per progettare , sviluppare e migliorare il software e, di conseguenza, le esperienze utente, che sono diventate l'obiettivo principale del settore.
Classificazione e tipologie di software in base al loro utilizzo
A seconda del loro utilizzo, ovvero dello scopo per cui sono progettati, si distinguono software di programmazione, software di sistema, software applicativo, malware e software sociale.
Software di programmazione
È di fondamentale importanza perché costituisce il fondamento di tutto il resto , compresi, ovviamente, gli altri tipi di software che vedremo più avanti. È indispensabile, al livello più elementare, sia nello sviluppo di app che nell'informatica in generale.
Ciò richiede altri software di programmazione come editor e elaboratori di testo , ambienti IDE, vari compilatori (ce ne sono molti) o software client-server che consentano test, sistemi di controllo di versione, ecc.
Per quanto riguarda le risorse umane, è ovviamente necessaria la conoscenza della programmazione, così come della logica e della matematica.
All'interno di questa tipologia abbiamo i seguenti sottotipi:
Ambiente di sviluppo integrato o IDESi tratta di una sorta di suite o insieme di strumenti di programmazione che aumentano la produttività nello sviluppo. Esistono diverse versioni, ognuna con le proprie funzionalità, che facilitano il progresso in una direzione o nell'altra.
Debugger del codiceCome suggerisce il nome, si tratta di un'attività di debug del codice, sempre apprezzata sia da chi programma e sviluppa, sia da chi lo osserva dall'esterno, una volta che il prodotto sviluppato è in esecuzione.
Editor di testoOffre la possibilità di creare codice pulito senza l'utilizzo di programmi esterni.
compilatoreÈ responsabile della lettura di un programma nella sua lingua originale e della sua decodifica per visualizzarlo in un linguaggio comune, in modo che sia compatibile con il computer e possa essere eseguito su di esso.
Software di sistema
La sua funzione principale è molto generale ma semplice: permette il funzionamento dell'hardware di cui fa parte . Naturalmente, ne esistono molti tipi, progettati per gestire aspetti diversi e con caratteristiche molto diverse (oltre ad alcuni molto simili, ovviamente).
Parleremmo di un sistema operativo , come Android, Linux, MacOS, BlackBerryOS... e anche di driver progettati per garantire la corretta interazione tra il sistema e il dispositivo.
Le applicazioni o utility sono quelle utilizzate in situazioni diverse dalle precedenti , ovvero non per la progettazione e lo sviluppo, né per il funzionamento di apparecchiature. In questo caso, l'obiettivo è fornire funzionalità di interesse per l'utente finale , e tali funzionalità possono essere piuttosto varie.
Tutto ciò che utilizziamo sui nostri dispositivi include software applicativo. Anzi, possiamo dire che comprende tutto ciò che non rientra nelle due categorie precedenti, ovvero le applicazioni per computer dell'utente finale . Un client di posta elettronica, un browser, una piattaforma di streaming, qualsiasi app scaricata dall'App Store o dal Google Play Store e innumerevoli altre cose.
Le tipologie che troviamo all'interno di questa categoria includono:
Questi programmi sono progettati per danneggiare i computer su cui vengono installati, o per fare lo stesso con altri software . In genere mirano a disabilitare i software antivirus, distruggere gli hard disk, disabilitare o rendere inutilizzabili determinate funzioni dei programmi, o semplicemente rubare informazioni, sebbene dietro questi programmi sempre più sofisticati si celino molti altri obiettivi.
A seconda della loro modalità operativa e del loro obiettivo, troviamo:
virusSi tratta di un programma contenente codice dannoso progettato per diffondersi tra i computer. Si installa sul tuo computer senza la tua autorizzazione, tramite un file eseguibile, e si copia sistematicamente in ogni programma che avvii.
WormsSi tratta di un virus particolare, ma la sua conoscenza e i danni che ha causato nel corso della storia sono tali da averlo classificato come una tipologia specifica di malware.
TrojanSi tratta di un programma apparentemente innocuo che, una volta scaricato e installato, contiene software dannoso che gli consente di accedere al computer e ai dati. Non è in grado di riprodursi autonomamente; può rimanere inattivo fino al momento di entrare in azione.
BackdoorCosì come un worm è un tipo di virus che si è guadagnato il nome di malware, una backdoor è un tipo di cavallo di Troia. In questo caso, l'hacker prende il controllo del sistema infetto, consentendogli di installare software aggiuntivo, inviare email di massa e così via.
KeyloggerSoftware in grado di registrare i tasti premuti sulla tastiera, raccogliendo così informazioni su tutto ciò che si digita. Solitamente, gli obiettivi sono le password.
dialerSoftware di composizione automatica dei numeri di telefono che tenta di connettere il dispositivo alla rete. Alcuni sono innocui, mentre altri tentano di comporre numeri a pagamento.
RootkitSi tratta di kit di rooting per dispositivi. Consistono in codici estremamente complessi inseriti in macchine e sistemi per ottenerne il controllo e gestirli, rendendo molto difficile per chiunque rintracciare il cybercriminale a causa dell'assenza di tracce.
SpywareSoftware che mira a raccogliere informazioni dall'utente del computer su cui è installato. Queste informazioni vengono inviate alla parte appropriata, che si tratti del creatore o di una specifica rete informatica. Sono i più facili da individuare e rimuovere.
Di tipo sociale
Si tratta di strumenti di comunicazione progettati per facilitare l'interazione attraverso convenzioni sociali , tra cui servizi di messaggistica, piattaforme di social media, chat room, ecc.
Tra queste funzionalità rientrano il supporto per le conversazioni tra due o più utenti, il feedback, la facilità di condivisione dei contenuti e l'espressione digitale e virtuale di una relazione personale.
Esempi e tipologie di programmi in base al loro tipo di sviluppo
Un'altra classificazione che vale la pena conoscere e considerare è quella basata sul diritto d'autore di questi programmi. Inoltre, un altro aspetto interessante da comprendere è il ciclo di vita dello sviluppo del software , ovvero il processo che va dall'idea iniziale al rilascio agli utenti: un processo laborioso ma stimolante.
Gratuito
Come il concetto stesso indica, stiamo parlando di un prodotto che puoi scaricare sul tuo computer e distribuire gratuitamente , senza alcun compenso da parte tua né da parte di chi lo riceve.
In molti casi, queste funzionalità fanno parte di un programma più ampio e completo che ha un costo. Naturalmente, ci sono anche casi in cui, in cambio della gratuità del servizio, dobbiamo guardare le pubblicità, che rappresentano il modo in cui gli sviluppatori si guadagnano da vivere.
Sebbene sia gratuito, il suo codice sorgente è solitamente non disponibile . Il fatto che sia gratuito non significa che sia libero da copyright . Per questo motivo, nessuno può commercializzarlo a scopo di lucro, né tantomeno rivendicarne la paternità.
Shareware
La sua distribuzione è consentita senza restrizioni, sebbene il suo utilizzo sia limitato dopo un certo periodo di tempo . Per questo motivo, non può essere copiato o installato senza previo pagamento.
Il suo codice sorgente rimane nascosto , come è logico, quindi non si tratta di un programma che può essere modificato in alcun modo. L'esempio più lampante è la versione di prova di qualsiasi programma.
gratis
Non ci sono restrizioni sulla copia, la modifica e la distribuzione . Il codice sorgente è completamente disponibile.
Open source
I programmi open source sono perfettamente distribuibili, copiabili e modificabili, ma sempre previa notifica alla comunità di supporto. La proprietà intellettuale, pertanto, è condivisa tra gli sviluppatori e gli utenti che successivamente modificano il software.
Privato
A differenza del software libero, questo software non può essere modificato o distribuito e, ovviamente, il codice sorgente non è accessibile . Per ovvie ragioni, si tratta di un software a pagamento o premium.
Adware
Il suo scopo è generare profitto . Permette la modifica una volta acquistato, poiché di solito è open source.
Componenti software, loro funzioni e utilità
Un componente, semplicemente per definizione, è qualsiasi elemento che costituisce o fa parte di qualcosa di più grande. Pertanto, i componenti di un programma software sono tutti gli elementi che lo compongono, integrandolo e plasmandolo come un tutt'uno.
Ci riferiamo a moduli che possiedono una propria interfaccia e dipendenze definite in modo sufficiente da poter essere raggruppati in un insieme specifico . Si va dai moduli minimali a quelli che costituiscono un vero e proprio ramo di sottomoduli.
Una delle sue caratteristiche è quella Hanno dipendenze esplicite dal contesto.
Un altro è che Può essere implementato in modo indipendente; possiede un'identità propria.e può essere utilizzato in altre composizioni e database.
Quest'ultimo punto ci conduce a un altro punto, che è il seguente: un gruppo sostituibile.
E, inoltre, riutilizzabile.
La sua interfaccia è perfettamente definita.in modo che il suo utilizzo in un altro gruppo sia semplice e intuitivo,
Infine, abbiamo che riguarda elementi che devono essere coesi.
Differenze tra hardware e software (componenti logici e fisici)
Dopo aver discusso a lungo del software, possiamo riassumere dicendo che si tratta di un componente logico utilizzato in vari modi a seconda dello scopo previsto. Tuttavia, a causa della sua somiglianza con il concetto di "hardware ", chi non è un esperto potrebbe confondere i due o addirittura pensare che siano la stessa cosa.
Data l'ampia definizione che abbiamo già fornito, dobbiamo ora parlare di cosa sia l'hardware, che è semplicemente un componente fisico di un dispositivo: le parti tangibili, le cose che si possono toccare . In altre parole, il software è "ciò che c'è dentro" e l'hardware è "il contenitore".
Il software richiede, a un livello o all'altro, l'esecuzione da parte dell'hardware . Ciò significa che deve esistere un componente fisico, un contenitore, che consenta l'utilizzo del programma, per quanto minimale esso sia.
Pertanto, il software comprende tutti i tipi di programmi come giochi, pagine web, applicazioni che scarichiamo, ecc. , mentre l'hardware sarebbe il monitor su cui vediamo le informazioni, il mouse che ci permette di eseguire i contenuti , il processore che si occupa di rendere possibile l'esecuzione o la memoria RAM che ci permette di memorizzare le informazioni in tempo reale che vengono elaborate.