Un pachet software este un grup de programe care sunt grupate pentru a servi unui scop comun. Adesea, un pachet de software va include, de asemenea, codul sursă care a creat programele executabile, precum și o varietate de documentație pentru programele în sine. Unele pachete software vor include, de asemenea, fișiere exemple care pot ilustra în continuare modul în care funcționează celelalte componente ale pachetului.
Componentele unui pachet software pot face lucruri semnificativ diferite, dar toate componentele pachetului se reunesc într-un tot unitar. Unele pachete software au un singur program principal care încapsulează toate programele mai mici, în timp ce altele adoptă o abordare mai fragmentată și au mai multe executabile mici, specializate, în scopuri diferite. Fiecare abordare are avantaje și dezavantaje, precum și audiențe specifice care beneficiază de fiecare.
Pachetele care încapsulează toate funcționalitățile lor într-un singur program mare sunt utile pentru majoritatea utilizatorilor de computere. Ele sunt de obicei ușor de instalat, relativ ușor de înțeles și destul de ușor de rulat. Uneori, un utilizator poate descărca suplimente pentru ele, dar toate acestea se fac în spatele scenei cu interacțiune și efort minim din partea utilizatorului respectiv. Pachete software all-in-one ca acestea sunt disponibile pentru mai multe scopuri, de la gestionarea documentelor la modelarea 3D și redarea imaginilor.
Un pachet de software care își păstrează funcționalitatea mai fragmentată este adesea direcționat către utilizatorii mai cunoscători de computere. Aceste pachete vor avea adesea instrumente de linie de comandă, împreună cu documentație extinsă și capabilități extrem de flexibile. Modificările la aceste pachete trebuie de obicei făcute fie prin manipularea structurilor de directoare brute, fie prin descărcarea completă a unei noi versiuni a pachetului. Suplimentele nu sunt la fel de comune pentru aceste tipuri de pachete. Pachetele software grupate ca acestea sunt deseori adresate cadrelor universitare și inginerilor, în scopuri precum analiza datelor biologice și crearea de noi programe software.
Unele pachete software conțin cod complet unic, în timp ce altele încorporează programe existente pentru a combina funcționalitatea algoritmilor existenți. Dezbaterea dintre aceste două metodologii este în desfășurare. Unii programatori preferă să scrie propriul cod pentru orice, iar alții preferă să conecteze mai multe programe existente. Există multe pachete care utilizează fiecare tip de cadru și oricare metodologie poate fi folosită pentru a crea o suită de software de succes.
Odată cu extinderea mișcării software cu sursă deschisă, tot mai multe programe, algoritmi și pachete software au devenit gratuite pentru a fi utilizate în software-ul nou, fără probleme de licențiere. În domeniile științifice, de exemplu, mulți algoritmi și programe noi sunt publicate cu așteptarea că vor fi utilizați în mod liber nu numai pentru analiză, ci și pentru construirea de noi programe. Un nou pachet de software poate fi construit cu ușurință sau modelat după unul vechi, iar această împărtășire a cunoștințelor a devenit esențială în dezvoltarea software-ului.