Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Beberapa ketika dahulu, satu perbualan berlaku antara saya dan seorang kawan baik saya di mana frasa berikut kedengaran:

β€” Bilangan pengaturcara akan sentiasa berkembang - kerana jumlah kod semakin meningkat, dan semakin ramai pembangun sentiasa diperlukan untuk menyokongnya.
β€” Tetapi kod itu semakin lama, sebahagian daripadanya tidak lagi disokong. Malah mungkin terdapat beberapa jenis keseimbangan.

Mengingati mereka beberapa hari kemudian, saya tertanya-tanya sama ada mengekalkan kod, yang memerlukan lebih banyak sumber dari semasa ke semasa, akhirnya boleh melumpuhkan pembangunan fungsi baharu, atau adakah ia memerlukan peningkatan tanpa had dalam bilangan pengaturcara? Analisis matematik dan persamaan pembezaan membantu menilai secara kualitatif pergantungan jumlah sokongan terhadap pembangunan dan mencari jawapan kepada soalan.

Soalan satu. Bolehkah menyokong "memakan" semua sumber pembangunan?

Pertimbangkan satu pasukan pengaturcara di mana bilangan peserta adalah tetap. Kongsi masa bekerja mereka Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? (Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?) dibelanjakan untuk membangunkan kod baharu, dan bahagian masa yang tinggal Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? pergi menyokong. Dalam andaian model, kami mengandaikan bahawa jenis aktiviti pertama bertujuan untuk meningkatkan jumlah kod, dan yang kedua bertujuan untuk mengubahnya (membetulkan ralat) dan tidak mempunyai kesan yang signifikan terhadap jumlah kod.

Mari kita nyatakan Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? keseluruhan jumlah kod yang ditulis sehingga masa itu Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?. Dengan mengandaikan kelajuan menulis kod adalah berkadar Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?, kita mendapatkan:

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Adalah wajar untuk menganggap bahawa kos buruh untuk mengekalkan kod adalah berkadar dengan jumlahnya:

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

atau

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Dari mana

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Kami memperoleh persamaan pembezaan yang boleh disepadukan dengan mudah. Jika pada saat awal jumlah kod adalah sifar, maka

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

pada Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? fungsi Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?Dan Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?. Dan ini bermakna pengurangan beransur-ansur dari semasa ke semasa dalam pembangunan fungsi baharu kepada sifar dan pemindahan semua sumber untuk menyokong.

Namun, jika pada masa itu Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? kod menjadi usang dan tidak lagi disokong, maka jumlah kod yang memerlukan sokongan pada satu masa Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? sudah sama rata Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? Kemudian

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Π° Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? ialah penyelesaian kepada persamaan pembezaan dengan hujah terencat [1]:

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Penyelesaian kepada persamaan sedemikian ditentukan secara unik dengan menentukan nilai Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? "sebelum permulaan masa" Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?. Memandangkan kod itu belum lagi ditulis sebelum masa awal, dalam kes kami Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? pada Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?.

Mari lihat beberapa contoh. Kami akan mengukur masa dalam tahun, dan jumlah kod dalam beribu-ribu baris. Kemudian untuk Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? nilai susunan puluhan boleh diterima, kami akan mengambil 50 dan 100. Iaitu, dalam setahun pasukan pembangunan akan menulis lima puluh dan seratus ribu baris kod, masing-masing. Untuk Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? nilai yang boleh diterima mungkin: Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?, Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?, Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?. Ini bermakna pasukan pembangunan boleh menyokong jumlah kod yang ditulis dalam setahun, sama ada suku, separuh atau sepenuh masa. Sebagai purata hayat kod, kami akan menetapkan nilai berikut: 1, 2 dan 4 tahun. Menyelesaikan persamaan secara berangka, kita memperoleh contoh kelakuan fungsi tersebut Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? untuk beberapa kombinasi parameter Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?.
Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?
Tingkah laku fungsi Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? apabila kod semakin tua, ia telah berubah. Fungsi ini tidak lagi monoton, tetapi turun naik "tenang" dari semasa ke semasa, dan terdapat kecenderungan untuk Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? kepada beberapa nilai tetap. Graf menunjukkan: lebih banyak Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?, Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? ΠΈ Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?, iaitu, semakin perlahan umur kod, semakin cepat pembangunan kod baharu dan semakin rendah kualiti kod, semakin sedikit sumber yang akan ditinggalkan untuk pembangunan fungsi baharu. Terdapat keinginan untuk memberikan sekurang-kurangnya satu contoh di mana Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? "mengangkang" menghampiri sifar. Tetapi ini memerlukan pemilihan penunjuk kualiti pembangunan yang sangat lemah dan kod yang tidak berumur untuk masa yang lama. Walaupun dalam graf kiri bawah, sejumlah besar sumber kekal untuk fungsi baharu. Oleh itu, jawapan yang betul kepada soalan pertama adalah seperti ini: secara teori - ya, mungkin; secara praktikal - hampir tidak.

Soalan yang tidak dapat dijawab:

  1. Adakah benar itu Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? cenderung kepada beberapa had pada Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? untuk semua Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?? Jika bukan untuk semua orang, maka untuk yang mana?
  2. Jika had wujud, bagaimanakah nilainya bergantung pada Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini??

Soalan dua. Bolehkah penyelenggaraan kod menyebabkan pertumbuhan tanpa had dalam bilangan pengaturcara?

Mari kita nyatakan Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? bilangan pengaturcara yang terlibat dalam membangunkan kod baharu. Seperti di atas, Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? β€” jumlah kod yang ditulis sehingga satu titik masa Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?... Kemudian

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Sibukkan sokongan kod Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini? pengaturcara. Dengan mengambil kira kod penuaan,

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Dari mana

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Jika Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?, Kemudian

Berapa ramai pengaturcara yang diperlukan untuk mengekalkan kod yang ditulis sebelum ini?

Oleh itu, jawapan kepada soalan kedua adalah negatif: jika bilangan pembangun kod baharu adalah terhad, maka dalam keadaan kod penuaan, sokongan tidak boleh menyebabkan peningkatan tanpa had dalam bilangan pengaturcara.

Kesimpulan

Model yang dipertimbangkan adalah model matematik "lembut" [2]. Mereka sangat mudah. Walau bagaimanapun, pergantungan hasil simulasi pada nilai parameter sepadan dengan apa yang diharapkan untuk sistem sebenar, ini memihak kepada kecukupan model dan ketepatan yang mencukupi untuk mendapatkan anggaran berkualiti tinggi.

Rujukan

1. Elsgolts L.E., Norkin S.B. Pengenalan kepada teori persamaan pembezaan dengan hujah menyimpang. Moscow. Rumah penerbitan "Sains". 1971.
2. Arnold V.I. Model matematik "keras" dan "lembut". Moscow. Rumah penerbitan MCNMO. 2004.

Sumber: www.habr.com

Tambah komen