Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Біраз уақыт бұрын мен және менің жақсы досымның арасында мынадай сөз тіркестері естілді:

— Бағдарлама жасаушылардың саны үнемі өсетін болады - өйткені кодтың көлемі өсіп келеді және оны үнемі қолдауға көбірек әзірлеушілер қажет.
— Бірақ код ескіріп барады, кейбіріне қолдау көрсетілмейді. Тіпті қандай да бір тепе-теңдік болуы мүмкін.

Бірнеше күннен кейін оларды еске түсіре отырып, мен уақыт өте келе көбірек ресурстарды қажет ететін кодты сақтау, сайып келгенде, жаңа функционалдық мүмкіндіктердің дамуын парализациялауы мүмкін бе, әлде бағдарламашылар санын шектеусіз көбейтуді талап ете ме деп ойладым. Математикалық талдау және дифференциалдық теңдеулер қолдау көлемінің дамуға тәуелділігін сапалы бағалауға және сұрақтарға жауап табуға көмектесті.

Бірінші сұрақ. Барлық даму ресурстарын «жеуге» қолдау көрсете ала ма?

Қатысушылар саны тұрақты болатын бағдарламашылар тобын қарастырайық. Олардың жұмыс уақытының үлесі Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? (Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?) жаңа кодты әзірлеуге жұмсалады, ал қалған уақыт үлесі Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? қолдауға барады. Модельдің болжамдары шеңберінде әрекеттің бірінші түрі код көлемін ұлғайтуға бағытталған, ал екіншісі оны өзгертуге (қателерді түзетуге) бағытталған және код көлеміне айтарлықтай әсер етпейді деп есептейміз.

белгілейік Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? осы уақытқа дейін жазылған кодтың бүкіл көлемі Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?. Кодты жазу жылдамдығы пропорционалды деп есептейміз Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?, Біз алып жатырмыз:

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Кодты ұстауға жұмсалатын еңбек шығындары оның көлеміне пропорционалды деп болжауға болатын табиғи нәрсе:

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

немесе

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Орналасуы

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Оңай интегралдайтын дифференциалдық теңдеуді аламыз. Егер уақыттың бастапқы сәтінде код мөлшері нөлге тең болса, онда

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

жанында Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? ерекшелігі Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?мен Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?. Және бұл уақыт өте келе жаңа функционалдылықты дамытуды нөлге дейін бірте-бірте азайтуды және барлық ресурстарды қолдауға беруді білдіреді.

Дегенмен, егер уақыт ішінде Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? код ескіреді және қолдау көрсетуді тоқтатады, содан кейін бір уақытта қолдауды қажет ететін код мөлшері Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? қазірдің өзінде тең Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? Содан кейін

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

а Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? баяу аргументі бар дифференциалдық теңдеудің шешімі болып табылады [1]:

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Мұндай теңдеудің шешімі мәндерді көрсету арқылы бірегей түрде анықталады Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? «уақыт басталғанға дейін» Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?. Біздің жағдайда код бастапқы сәтке дейін әлі жазылмағандықтан Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? at Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?.

Бірнеше мысалды қарастырайық. Біз уақытты жылдармен, ал код көлемін мыңдаған жолдармен өлшейтін боламыз. Содан кейін үшін Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? ондық ретінің мәндері қолайлы, біз 50 және 100 қабылдаймыз. Яғни, бір жылдан кейін әзірлеушілер тобы тиісінше елу және жүз мың жолдық код жазады. Үшін Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? қолайлы мәндер болуы мүмкін: Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?, Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?, Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?. Бұл әзірлеу тобы тоқсан, жарты немесе толық уақыт болса да, бір жылда жазатын код көлеміне қолдау көрсете алатынын білдіреді. Кодтың орташа қызмет ету мерзімі ретінде біз келесі мәндерді орнатамыз: 1, 2 және 4 жыл. Теңдеуді сандық жолмен шешу арқылы функцияның әрекетінің мысалдарын аламыз Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? кейбір параметр комбинациялары үшін Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?.
Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?
Функцияның әрекеті Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? код ескірген сайын ол өзгерді. Функция енді монотонды емес, бірақ уақыт өте келе ауытқулар «тыныштанады» және Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? қандай да бір тұрақты мәнге. Графиктер: соғұрлым көп Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?, Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? и Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?, яғни кодтың жасы неғұрлым баяу болса, жаңа код соғұрлым тезірек әзірленеді және код сапасы соғұрлым төмен болса, жаңа функцияларды әзірлеуге ресурстар аз қалады. Ең болмағанда бір мысал келтіргім келді Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? нөлге жақын «қосарылды». Бірақ бұл өте нашар даму сапасының көрсеткіштерін және ұзақ уақыт бойы қартаймайтын кодты таңдауды талап етті. Төменгі сол жақ графикте де жаңа функционалдылық үшін ресурстардың айтарлықтай мөлшері қалады. Сондықтан бірінші сұрақтың дұрыс жауабы мынау: теориялық тұрғыдан – иә, мүмкін; практикалық - әрең.

Жауап бере алмайтын сұрақтар:

  1. Ол рас па Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? белгілі бір шектеуге ұмтылады Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? барлығына Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?? Барлығы үшін болмаса, қайсысы үшін?
  2. Егер шектеу бар болса, оның мәні қалай тәуелді болады Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет??

Екінші сұрақ. Кодты қолдау бағдарламашылар санының шексіз өсуіне әкелуі мүмкін бе?

белгілейік Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? жаңа кодты әзірлеуге қатысқан бағдарламашылар саны. Жоғарыдағыдай, Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? — белгілі бір уақытқа дейін жазылған код мөлшері Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?. Содан кейін

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Кодтық қолдауды бос ұстаңыз Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет? бағдарламашылар. Қартаю кодын ескере отырып,

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Орналасуы

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

егер Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?содан кейін

Бұрын жазылған кодты сақтау үшін қанша бағдарламашы қажет?

Осылайша, екінші сұраққа жауап теріс: егер жаңа кодты әзірлеушілер саны шектеулі болса, кодтың қартаюы жағдайында қолдау бағдарламашылар санының шексіз өсуіне себеп бола алмайды.

қорытынды

Қарастырылған модельдер «жұмсақ» математикалық модельдер [2]. Олар өте қарапайым. Дегенмен, модельдеу нәтижелерінің параметр мәндеріне тәуелділігі нақты жүйелер үшін күтілетінге сәйкес келеді, бұл модельдердің сәйкестігі мен жоғары сапалы бағалауларды алу үшін жеткілікті дәлдік пайдасына айтады.

Әдебиеттер тізімі

1. Эльсгольц Л.Е., Норкин С.Б. Ауытқымалы аргументі бар дифференциалдық теңдеулер теориясына кіріспе. Мәскеу. «Ғылым» баспасы. 1971 жыл.
2. Арнольд В.И. «Қатты» және «жұмсақ» математикалық модельдер. Мәскеу. MCNMO баспасы. 2004.

Ақпарат көзі: www.habr.com

пікір қалдыру