Il concetto di a. è una generalizzazione del concetto classico di funzione (➔ corrispondenza). Si parla di a. di un insieme P in un insieme Q, quando tra i due si stabilisce una corrispondenza del tipo seguente: a ogni elemento di P corrisponde un ben determinato elemento di Q, mentre un elemento di Q può essere il corrispondente di diversi elementi di P, o anche di nessuno. Se a p in P corrisponde q in Q potremo scrivere: q = f(p) e chiamare q l’immagine dell’elemento p nell’a. considerata. Se al variare di p in P la sua immagine q varia in tutto Q (cioè se ogni elemento di Q è immagine di qualche elemento di P), si parla più propriamente di a. di P su Q; diversamente di a. di P in Q. Nel primo caso l’a. si dice suriettiva oppure una suriezione. Se nessun elemento di Q è immagine di più di un elemento di p, l’a. si dice iniettiva oppure una iniezione. Un’a. si dice biiettiva oppure una biiezione quando gli insiemi P e Q risultano equipotenti e l’a. stabilisce tra gli elementi dell’uno e quelli dell’altro una corrispondenza biunivoca.
Nell’ingegneria informatica, un’a. è un programma o gruppo di programmi che svolge un insieme di funzioni proprie di uno specifico ambito organizzativo. Una prima classificazione delle a. può essere rappresentata dalla suddivisione tra le a. destinate a utenti privati e quelle destinate a utenti aziendali, ai quali i produttori tendono a offrire funzionalità più sofisticate e a spettro più ampio, solitamente non necessarie al singolo utente privato. Tuttavia, la pervasività di Internet, che rende sempre più simili tra loro l’ambiente informatico domestico e quello aziendale e la volontà delle aziende produttrici di diminuire i costi, sta riducendo le differenze tra questi due settori e sta favorendo l’emergere di un panorama di a. più omogeneo e indifferenziato.
Nel campo delle a. per l’utenza privata gli ambiti di maggiore sviluppo sono le a. per la produttività individuale, quali gli strumenti di videoscrittura, i fogli di calcolo e i programmi per la posta elettronica; le a. per la gestione di file multimediali, quali i software per la gestione dei lettori audio e video e gli strumenti per la manipolazione e la visualizzazione delle immagini e le a. per la messaggistica e la collaborazione on-line, quali i programmi di messaggistica istantanea, gli strumenti per le chat e i software per la gestione della telefonia (➔) via Internet.
Molto più vasto e diversificato è il panorama delle a. aziendali. Tralasciando le a. che si rivolgono a specifiche aree di interesse o settori di business e considerando quindi solo quelle pensate per la totalità delle aziende, si possono individuare come maggiormente significative le seguenti aree applicative: a) a. gestionali, chiamate anche ERP (➔), che abilitano il funzionamento di tutti i processi amministrativi e finanziari dell’azienda; b) a. per la gestione delle relazioni tra un’azienda e i suoi clienti (➔ CRM), che permettono di svolgere le funzionalità legate all’ambito commerciale e di marketing; c) a. per la gestione di banche dati: software di base per la gestione delle operazioni fondamentali effettuabili sui database e sul patrimonio di dati aziendali; d) a. di business intelligence e archivi di dati ( data warehouse, ➔ dato): questa categoria applicativa permette di abilitare funzionalità analitiche che, sulla base dei dati generati dalle altre a. aziendali, utilizzando algoritmi avanzati generano reportistica di sintesi per supportare le decisioni strategiche dei manager dell’azienda; e) a. per la gestione della catena degli approvvigionamenti (➔ SCM).