Lebih banyak kode = lebih banyak bug


10

Kembali di perguruan tinggi, saya ingat seorang profesor mengajar di kelas salah satu hukum ilmu komputer. Dia mengatakan sesuatu seperti "Lebih banyak kode sama dengan lebih banyak bug" dan memberinya nama (The Law Of Whatchamacallit) dan menghubungkannya dengan seseorang.

Adakah yang tahu dari mana "hukum" ini berasal, siapa yang mengatakannya atau apa kata aslinya?


6
Mengingatkan saya pada, "Seorang desainer tahu dia telah mencapai kesempurnaan bukan ketika tidak ada yang tersisa untuk ditambahkan, tetapi ketika tidak ada yang tersisa untuk diambil." -Antoine de Saint-Exupery
Kirk Woll

4
Mengingatkan saya pada 'Tidak ada kode lebih cepat dari tidak ada kode' (Panduan Taligent untuk Merancang Program).
Luke Woodward

1
Nah, karena Anda menyebutkannya di sini dan tidak ada yang tahu apa namanya, sebut saja "Hukum Jeff".
FrustratedWithFormsDesigner

@Kirk, kutipan serupa dari Arthur William Radford (lukisan): "Setengah dari seni tahu kapan harus berhenti". Sangat tepat dalam konteks ini juga.
Berin Loritsch

Saya suka "Hukum Jeff". Berikutnya adalah kesepakatan buku. Siapa yang akan membantu saya menemukan penerbit? :)
Jeff

Jawaban:


7

Selain itu, sejumlah besar masalah yang disebabkan oleh perangkat lunak kereta, yang terjadi karena vendor terus menambahkan lebih banyak fitur ke program mereka, yang pasti berarti lebih banyak kode dan dengan demikian lebih banyak bug.

Oleh Andrew Tannenbaum


2
Tautan ke pencarian Google tidak terlalu berguna. Dapatkah Anda mengekstrak informasi yang relevan dan mempostingnya di jawaban Anda.
ChrisF

1
@ ChrisF, ini adalah hasil pertama dalam pencarian buku. Ini materi berhak cipta, dan saya lebih suka tidak mengutip secara tekstual. Terima kasih atas komentar Anda.
Dr. belisarius

2
Saya membayangkan penggunaan yang adil akan mencakup kutipan.
Orbling

1
Anda sepertinya tidak mau melakukan pengeditan, jadi saya lakukan untuk Anda.
Josh K

ini kedengarannya benar. Terima kasih! Saya sudah mencoba mengingat ini selama bertahun-tahun.
Jeff

4

Buku Boehm, Ekonomi Rekayasa Perangkat Lunak memilikinya sebagai formula dasar.

Usaha = k * S ^ a

Di mana S adalah Source Lines of Code.

Dan fungsi daya, a >> 1.0.


4

@belisarius: Terlihat dengan baik dengan Tannenbaum.

@ Jeff: Jika Tannenbaum tidak membunyikan lonceng, profesor Anda mungkin telah menyebutkan Occam dan hukum ekonomi / keberhasilan. (Lihat Pisau Cukur Occam .)

@ S.Lott: Dijkstra digunakan untuk berdebat sangat menentang penggunaan baris kode sebagai ukuran pekerjaan yang bermanfaat. Dia pada dasarnya mengatakan itu memaksimalkan variabel yang salah. Tentu saja, upaya Boehm untuk memodelkan upaya, dan baris kode di sana harus mencakup baris kode yang dihapus.

Edit:

Saya pikir saya akan menambahkan bahwa Dijkstra juga mengatakan "kesederhanaan adalah prasyarat untuk keandalan".


7
Gunakan "tambah komentar" di bawah jawaban untuk menambahkan komentar alih-alih menuliskannya dalam jawaban.

1
@ Thorbjørn Ravn Andersen - sayangnya sebagai <50 pengguna rep ia tidak dapat menambahkan komentar.
ChrisF

1
@ Thorbjørn: Anda perlu 50 rep untuk dapat meninggalkan komentar. @Kevin: Jika Anda menautkan akun SO dan Programmer Anda, Anda akan mendapatkan 100 rep, langsung membiarkan Anda meninggalkan komentar.
Anon.

1
@Kevin - Programmer bukan forum tetapi situs Tanya Jawab. Anda dipersilakan untuk mengirim jawaban yang memiliki lebih banyak informasi daripada yang disediakan oleh jawaban saat ini, tetapi Anda tidak boleh memposting komentar sebagai jawaban. Jika Anda memeriksa FAQ, Anda akan melihat bahwa Anda perlu 50 reputasi untuk dapat berkomentar, tetapi ini cukup mudah untuk dicapai.
ChrisF

1
@Anon - Anda membutuhkan> 200 rep di setidaknya satu situs untuk mendapatkan bonus. Sayangnya Kevin hanya 160 pada SO saat ini. Tetapi Anda dapat mengaitkan kembali akun Anda kapan saja sehingga ketika Anda mencapai 200 di satu situs Anda akan bisa mendapatkan bonus di semua.
ChrisF
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.