Hva er Software Evolution?

February 8  by Eliza

Programvare evolusjon er en prosess der et kommersielt dataprogram krever kontinuerlig oppdatering, vedlikehold og forbedring over tid for at det skal være et levedyktig produkt. I denne sammenheng, er programvare evolusjon drevet av ekstern virksomhet og forbrukernes behov som endres som annen programvare og teknologier forhånd rundt den. Den drivende faktoren bak programvareutvikling, men er ofte en intern en fokusert på engineering team som produserte produktet og selskapet som er avhengig av sin suksess for lønnsomhet. The Imperial College i London, England, først kunngjort tre grunnleggende lovene i programvare utviklingen i 1970-årene, som har siden blitt utvidet til totalt åtte lover som av 2011. Andre forsøk har også blitt gjort for å kvantifisere prosessen benytte modeller som Linear Sequential Model og Prototype Model, men paradigmet som synes å passer best programvare entropi livssykluser er at av en som ligner darwinistisk evolusjon for levende ting.

De grunnleggende drivkrefter bak endringer i programvarearkitektur ligne de samme kreftene som motiverer bedrifter til å oppgradere industrimaskiner eller standard operasjonsprosedyrer som samfunnsmessige behovene endrer seg. Som programvare blir stadig mer brukt, nye behov eller funksjoner for det blitt klart at må bli jobbet i senere utgaver av produktet. All programvare er også utgitt med tidligere ukjente feil, så periodiske patcher og vedlikeholdsprosedyrer må utføres for å rette situasjoner som for eksempel sikkerhetshull som kan gjøre et selskap utsatt for angrep gjennom selve programvaren. En nøkkel til programvareutvikling er også det faktum at slike programmer må stadig tilpasses til å jobbe på ulike typer nye datautstyr og innenfor ulike operativsystem arkitekturer slik at programmet har bredere appell.

Møte alle disse behovene er avgjørende for å avgjøre om et program er fortsatt levedyktig, og siden programvareressurser er en så viktig del av informasjonsøkonomien som i 2011, har programvareutvikling blitt en grunnleggende del av virksomheten tilpasning og vekst. Meir Lehman, en datamaskin forsker ved Imperial College i London, er kreditert med å skape Lehman lover, som konsist definerte prosessen med programvareutvikling og guidede utviklere i den fremtidsrettede av programvare visualisering. Lehmans lover er basert på premisset om at programvaren utvikler seg som tilbakemelding på sine ytelsen øker og at dens uunngåelige tendensen er å bli stadig mer komplekse.

Lehman har uttalt at innholdet i programvareutvikling speiler naturlige endringer som mutasjon i frukt fluer, slik at byer utvide over tid, og hvordan militære strukturer gradvis forbedre våpensystemer. De tre første lovene i prosessen etterligne disse trendene i detaljering Continuing Change, økende kompleksitet, og det som er kjent som Large Program Evolution. Fortsetter Endre refererer til det faktum at programmet må tilpasses for å møte dagens virkelige verden forretningsforhold, og dette gjenspeiler økende kompleksitet som programmet må oppfylle en stadig voksende mangfold av uventede behov. Stor Program Evolution viser til nødvendigheten for feilretting og nye versjoner av programmet som er knyttet ubønnhørlig til kravene fra markedet.

Av de fem gjenværende lover i programvareutvikling, nummer fire er Organizational Stabilitet og refererer til det faktum at veksten av et program tar på et eget liv uavhengig av hvor mye ressurser vilje viet til det, og nummer fem er Conservation of Kjennskap som sier at inkrementell vekst av programmet er uunngåelig. Nummer seks i de åtte Lehman Laws er fortsatt vekst, noe som er nødvendig for å tilfredsstille forbrukernes etterspørsel, og nummer syv er synkende kvalitet, som understreker det faktum at all programvare til slutt står overfor begrensninger på funksjonalitet som det ikke kan møte. Den endelige Lehman Law for programvareutvikling er den Feedback System selv, som binder sammen alle de kreftene som påvirker levedyktigheten til et program for å raskt kjøre det enten til større suksess eller uunngåelig foreldelse og død.