Pak kohë më parë, mes meje dhe një miku im të mirë u zhvillua një bisedë në të cilën u dëgjuan këto fraza:
— Numri i programuesve do të rritet vazhdimisht - sepse sasia e kodit po rritet dhe gjithnjë e më shumë zhvillues kërkohen vazhdimisht ta mbështesin atë.
— Por kodi po vjetërohet, disa prej tij nuk mbështeten më. Madje është e mundur që të ketë një lloj ekuilibri.
Duke i kujtuar ato disa ditë më vonë, pyesja veten nëse ruajtja e kodit, që kërkon gjithnjë e më shumë burime me kalimin e kohës, mund të paralizojë përfundimisht zhvillimin e funksionalitetit të ri, apo do të kërkonte një rritje të pakufizuar të numrit të programuesve? Analiza matematikore dhe ekuacionet diferenciale ndihmuan për të vlerësuar në mënyrë cilësore varësinë e sasisë së mbështetjes nga zhvillimi dhe për të gjetur përgjigje për pyetjet.
Pyetja e parë. A mund të mbështesë "të hajë" të gjitha burimet e zhvillimit?
Konsideroni një ekip programuesish në të cilin numri i pjesëmarrësve është konstant. Ndarja e kohës së tyre të punës () shpenzohet për zhvillimin e kodit të ri, dhe pjesën e mbetur të kohës shkon në mbështetje. Brenda supozimeve të modelit, supozojmë se lloji i parë i aktivitetit synon rritjen e vëllimit të kodit, dhe i dyti synon ndryshimin e tij (korrigjimin e gabimeve) dhe nuk ka një ndikim të rëndësishëm në vëllimin e kodit.
Le të shënojmë e gjithë sasia e kodit të shkruar deri në atë moment në kohë . Duke supozuar se shpejtësia e shkrimit të kodit është proporcionale , marrim:
Është e natyrshme të supozohet se kostot e punës për ruajtjen e kodit janë proporcionale me vëllimin e tij:
ose
prej të cilit
Ne marrim një ekuacion diferencial që mund të integrohet lehtësisht. Nëse në momentin fillestar sasia e kodit është zero, atëherë
në funksion Dhe . Dhe kjo do të thotë një reduktim gradual me kalimin e kohës në zhvillimin e funksionalitetit të ri në zero dhe transferimin e të gjitha burimeve në mbështetje.
Megjithatë, nëse gjatë kohës kodi bëhet i vjetëruar dhe pushon së mbështeturi, pastaj sasia e kodit që kërkon mbështetje në të njëjtën kohë tashmë është e barabartë atëherë
а është një zgjidhje për një ekuacion diferencial me një argument të vonuar [1]:
Zgjidhja e një ekuacioni të tillë përcaktohet në mënyrë unike duke specifikuar vlerat "para fillimit të kohës" . Meqenëse kodi nuk ishte shkruar ende përpara momentit fillestar në kohë, në rastin tonë при .
Le të shohim disa shembuj. Ne do të masim kohën në vite dhe sasinë e kodit në mijëra rreshta. Pastaj për vlerat e rendit të dhjetëra janë të pranueshme, ne do të marrim 50 dhe 100. Kjo do të thotë, në një vit ekipi i zhvillimit do të shkruajë përkatësisht pesëdhjetë dhe njëqind mijë rreshta kodi. Për vlerat e pranueshme mund të jenë: , , . Kjo do të thotë që një ekip zhvillimi mund të mbështesë sasinë e kodit që shkruan në një vit, pavarësisht nëse është një çerek, gjysma ose me kohë të plotë. Si jetëgjatësi mesatare e kodit, ne do të vendosim vlerat e mëposhtme: 1, 2 dhe 4 vjet. Duke zgjidhur ekuacionin numerikisht, marrim shembuj të sjelljes së funksionit për disa kombinime parametrash .
Sjellja e funksionit me kalimin e vjetër të kodit, ai ka ndryshuar. Funksioni nuk është më monoton, por luhatjet "qetësohen" me kalimin e kohës dhe ka një tendencë për të në një vlerë konstante. Grafikët tregojnë: aq më shumë , и d.m.th., sa më ngadalë të vjetërohet kodi, aq më shpejt zhvillimi i kodit të ri dhe sa më i ulët të jetë cilësia e kodit, aq më pak burime do të mbeten për zhvillimin e funksionalitetit të ri. Kishte një dëshirë për të dhënë të paktën një shembull në të cilin "i strukur" afër zeros. Por kjo kërkonte përzgjedhjen e treguesve të cilësisë shumë të dobët të zhvillimit dhe kodit që nuk plaket për një kohë të gjatë. Edhe në grafikun e poshtëm majtas, një sasi e konsiderueshme burimesh mbeten për funksionalitetin e ri. Prandaj, përgjigja e saktë për pyetjen e parë është më tepër kjo: teorikisht - po, është e mundur; praktikisht - vështirë.
Pyetje që nuk mund të përgjigjen:
- A është e vërtetë që tenton në një farë kufiri në per te gjithe ? Nëse jo për të gjithë, atëherë për cilët?
- Nëse ekziston një kufi, nga varet vlera e tij ?
Pyetja dy. A mund të shkaktojë mirëmbajtja e kodit rritje të pakufizuar të numrit të programuesve?
Le të shënojmë numri i programuesve të përfshirë në zhvillimin e kodit të ri. Si më sipër, — sasia e kodit të shkruar deri në një moment në kohë . atëherë
Mbajeni të zënë mbështetjen e kodit programuesit. Duke marrë parasysh kodin e plakjes,
prej të cilit
Nëse , Pastaj
Kështu, përgjigja për pyetjen e dytë është negative: nëse numri i zhvilluesve të kodit të ri është i kufizuar, atëherë në kushtet e plakjes së kodit, mbështetja nuk mund të shkaktojë një rritje të pakufizuar të numrit të programuesve.
Përfundim
Modelet e konsideruara janë modele matematikore "të buta" [2]. Ato janë shumë të thjeshta. Sidoqoftë, varësia e rezultateve të simulimit nga vlerat e parametrave korrespondon me atë që pritet për sistemet reale, kjo flet në favor të përshtatshmërisë së modeleve dhe saktësisë së mjaftueshme për të marrë vlerësime me cilësi të lartë.
referencat
1. Elsgolts L.E., Norkin S.B. Hyrje në teorinë e ekuacioneve diferenciale me argument devijues. Moska. Shtëpia botuese "Shkenca". 1971.
2. Arnold V.I. Modele matematikore "të vështira" dhe "të buta". Moska. Shtëpia botuese MCNMO. 2004.
Burimi: www.habr.com