Evoluția software-ului este un proces prin care un program de calculator comercial necesită actualizare, întreținere și îmbunătățire continuă în timp pentru ca acesta să rămână un produs viabil. În acest sens, evoluția software-ului este condusă de nevoile externe ale afacerilor și ale consumatorilor care se schimbă pe măsură ce alte software și tehnologii avansează în jurul acestuia. Factorul motor din spatele evoluției software este, însă, deseori unul intern, concentrat pe echipa de ingineri care a produs produsul și pe compania care depinde de succesul acestuia pentru profitabilitate. Colegiul Imperial din Londra, Anglia, a promulgat pentru prima dată trei legi fundamentale ale evoluției software-ului la începutul anilor 1970, care de atunci au fost extinse la un total de opt legi începând cu 2011. Au fost făcute și alte încercări de cuantificare a procesului utilizând modele precum Modelul Secvențial Linear și Modelul Prototipului, dar paradigma care pare să se potrivească cel mai bine cu ciclurile de viață entropiei software este aceea a uneia care seamănă cu evoluția darwiniană pentru lucrurile vii.
Factorii de bază din spatele schimbărilor în arhitectura software seamănă cu aceleași forțe care motivează companiile să modernizeze mașinile industriale sau procedurile standard de operare pe măsură ce nevoile societății se schimbă. Pe măsură ce software-ul este din ce în ce mai utilizat, devin evidente noi nevoi sau funcții pentru acesta, care trebuie să fie prelucrate în versiunile ulterioare ale produsului. Tot software-ul este, de asemenea, lansat cu erori necunoscute anterior, așa că trebuie efectuate patch-uri periodice și proceduri de întreținere pentru a corecta situații precum lacune de securitate care ar putea face o companie vulnerabilă la atacuri prin intermediul software-ului însuși. O cheie a evoluției software este, de asemenea, faptul că astfel de programe trebuie să fie din ce în ce mai adaptate pentru a funcționa pe diferite tipuri de echipamente informatice emergente și în cadrul diferitelor arhitecturi ale sistemelor de operare, astfel încât programul să aibă un atractiv mai larg.
Îndeplinirea tuturor acestor nevoi este crucială pentru a determina dacă un program software rămâne viabil și, deoarece activele software sunt un aspect atât de crucial al economiei informaționale din 2011, evoluția software-ului a devenit un aspect fundamental al adaptării și creșterii afacerii. Meir Lehman, un informatician la Colegiul Imperial din Londra, este creditat cu crearea Legile lui Lehman, care au definit succint procesul de evoluție a software-ului și i-au ghidat pe dezvoltatori în gândirea de viitor a vizualizării software. Legile lui Lehman se bazează pe premisa că software-ul evoluează pe măsură ce feedback-ul asupra performanței sale crește și că tendința sa inevitabilă este de a deveni din ce în ce mai complex.
Lehman a afirmat că natura evoluției software-ului reflectă schimbările naturale, cum ar fi mutația la muștele fructelor, modul în care orașele se extind în timp și modul în care structurile militare se îmbunătățesc treptat asupra sistemelor de arme. Primele trei legi ale procesului emulează aceste tendințe în detalierea schimbării continue, complexității în creștere și a ceea ce este cunoscut sub numele de evoluția programelor mari. Schimbarea continuă se referă la faptul că programul trebuie adaptat pentru a îndeplini condițiile actuale de afaceri din lumea reală, iar acest lucru reflectă o complexitate în creștere, deoarece programul trebuie să răspundă unei diversități tot mai mari de nevoi neașteptate. Evoluția mare a programului se referă la necesitatea corectării erorilor și a noilor versiuni ale programului care sunt legate inexorabil de cerințele pieței.
Dintre cele cinci legi rămase în evoluția software-ului, numărul patru este stabilitatea organizațională și se referă la faptul că creșterea unui program capătă viață proprie, indiferent de nivelul resurselor care i se consacră în mod intenționat, iar numărul cinci este conservarea familiarității. care afirmă că creșterea progresivă a programului este inevitabilă. Numărul șase din cele opt legi Lehman este creșterea continuă, care este necesară pentru a satisface cererea consumatorilor, iar numărul șapte este calitatea în scădere, care subliniază faptul că toate programele se confruntă în cele din urmă cu limite de funcționalitate pe care nu le poate îndeplini. Legea Lehman finală pentru evoluția software-ului este Sistemul de Feedback în sine, care leagă împreună toate forțele care afectează viabilitatea unui program software pentru a-l conduce rapid fie la un succes mai mare, fie la învechirea și moartea inevitabile.