Kas yra programinės įrangos evoliucija?

Programinės įrangos evoliucija yra procesas, kurio metu komercinę kompiuterinę programą reikia nuolat atnaujinti, prižiūrėti ir tobulinti, kad ji išliktų gyvybinga. Šiuo atžvilgiu programinės įrangos evoliuciją lemia išoriniai verslo ir vartotojų poreikiai, kurie keičiasi, kai aplink ją tobulėja kita programinė įranga ir technologijos. Tačiau pagrindinis programinės įrangos evoliucijos veiksnys dažnai yra vidinis veiksnys, orientuotas į inžinierių komandą, kuri gamino produktą, ir įmonę, kurios pelningumas priklauso nuo jos sėkmės. Imperatoriškasis Londono koledžas, Anglija, aštuntojo dešimtmečio pradžioje pirmą kartą paskelbė tris pagrindinius programinės įrangos evoliucijos įstatymus, kurie nuo 1970 m. buvo išplėsti iki aštuonių įstatymų. Taip pat buvo bandoma kiekybiškai įvertinti procesą naudojant tokius modelius kaip, pvz. Linijinis nuoseklus modelis ir prototipo modelis, tačiau atrodo, kad programinės įrangos entropijos gyvavimo ciklams geriausiai tinka paradigma, panaši į Darvino evoliuciją gyviems dalykams.

Pagrindiniai veiksniai, lemiantys programinės įrangos architektūros pokyčius, yra panašūs į tas pačias jėgas, kurios skatina įmones atnaujinti pramonės mašinas arba standartines veiklos procedūras, keičiantis visuomenės poreikiams. Kadangi programinė įranga vis dažniau naudojama, išryškėja nauji jos poreikiai ar funkcijos, kurios turi būti įtrauktos į vėlesnius produkto leidimus. Visa programinė įranga taip pat išleidžiama su anksčiau nežinomomis klaidomis, todėl turi būti atliekamos periodinės pataisos ir priežiūros procedūros, siekiant ištaisyti tokias situacijas, kaip saugumo spragas, dėl kurių įmonė gali tapti pažeidžiama atakų per pačią programinę įrangą. Raktas į programinės įrangos evoliuciją taip pat yra tai, kad tokios programos turi būti vis labiau pritaikytos dirbti su įvairių tipų naujai atsirandančia kompiuterine įranga ir įvairiose operacinių sistemų architektūrose, kad programa būtų patrauklesnė.

Visų šių poreikių tenkinimas yra labai svarbus norint nustatyti, ar programinė įranga išliks gyvybinga, o kadangi nuo 2011 m. programinės įrangos turtas yra labai svarbus informacijos ekonomikos aspektas, programinės įrangos evoliucija tapo pagrindiniu verslo prisitaikymo ir augimo aspektu. Meiras Lehmanas, informatikas iš Londono imperatoriškojo koledžo, yra priskiriamas Lehmano dėsnių sukūrimui, kuris glaustai apibrėžė programinės įrangos evoliucijos procesą ir vedė kūrėjus į tolesnį programinės įrangos vizualizavimo mąstymą. Lehmano dėsniai grindžiami prielaida, kad programinė įranga vystosi, kai didėja grįžtamasis ryšys apie jos veikimą ir kad jos neišvengiama tendencija tampa vis sudėtingesnė.

Lehmanas pareiškė, kad programinės įrangos evoliucijos pobūdis atspindi natūralius pokyčius, tokius kaip vaisinių muselių mutacija, miestų plečiamasis būdas laikui bėgant ir kaip karinės struktūros laipsniškai tobulėja ginklų sistemose. Pirmieji trys proceso dėsniai imituoja šias tendencijas, detalizuodami nuolatinius pokyčius, didėjantį sudėtingumą ir tai, kas žinoma kaip didelė programos raida. Tęsti pokyčiai reiškia faktą, kad programa turi būti pritaikyta, kad atitiktų dabartines realias verslo sąlygas, o tai atspindi didėjantį sudėtingumą, nes programa turi patenkinti vis didėjančią netikėtų poreikių įvairovę. Didelė programos raida reiškia būtinybę ištaisyti klaidas ir išleisti naujus programos leidimus, kurie yra nenumaldomai susieti su rinkos poreikiais.

Iš penkių likusių programinės įrangos evoliucijos dėsnių ketvirtas yra organizacijos stabilumas ir nurodo faktą, kad programos augimas pradeda savo gyvenimą, nepaisant sąmoningai jai skirtų išteklių, o penktasis yra pažinimo išsaugojimas. tai teigia, kad laipsniškas programos augimas yra neišvengiamas. Aštuoniuose Lehmano įstatymuose šeštas numeris yra nuolatinis augimas, kuris yra būtinas vartotojų paklausai patenkinti, o septintas – prastėjanti kokybė, kuri pabrėžia faktą, kad visos programinės įrangos funkcionalumas ilgainiui susiduria su apribojimais, kurių ji negali atitikti. Galutinis programinės įrangos evoliucijos Lehmano dėsnis yra pati grįžtamojo ryšio sistema, kuri sujungia visas jėgas, turinčias įtakos programinės įrangos gyvybingumui, kad ji greitai pasiektų didesnę sėkmę arba neišvengiamą senėjimą ir mirtį.