Fokus pertanyaan ini: Beberapa perangkat lunak melakukan "kerja ekstra" untuk meningkatkan peluang hasil "akhirnya berhasil / memuaskan", meskipun ada satu atau lebih kesalahan internal dalam perangkat lunak, yang memerlukan waktu eksekusi yang lebih lama ketika kesalahan tersebut terjadi. Semua ini terjadi tanpa sepengetahuan pengguna jika hasilnya berhasil.
Definisi perangkat lunak yang kompleks:
- Berisi kode yang ditulis oleh (disumbangkan dari) lebih dari 10 pengembang selama masa pakainya, dan tidak ditulis dalam kerangka waktu yang sama
- Tergantung pada lebih dari 10 perpustakaan eksternal, masing-masing dengan peringatan
- Tugas perangkat lunak tipikal (untuk menghasilkan hasil yang diinginkan oleh pengguna) memerlukan 10 atau lebih parameter input, di mana kebanyakan dari mereka memiliki nilai default tetapi dapat dikonfigurasi jika pengguna membutuhkan kontrol.
- Yang paling penting, perangkat lunak yang memiliki kompleksitas yang sesuai relatif terhadap tugas yang dilakukan, yaitu tidak perlu rumit .
Diedit: Apa itu kompleks? Silakan lihat Ada perbedaan besar antara Kompleks dan Rumit . (tautan langsung)
Definisi Redundancy / Robustness dalam pertanyaan ini :
(Ditambahkan Robustness berdasarkan komentar)
- Jika tugas perangkat lunak gagal ketika set parameter saat ini digunakan, coba berbagai parameter.
- Jelas, harus ada pengetahuan di dalam bahwa parameter "berbeda" menggunakan jalur kode yang berbeda, mungkin menghasilkan hasil yang berbeda (semoga lebih baik).
- Kadang-kadang jalur kode yang berbeda ini dipilih berdasarkan pengamatan dari perpustakaan eksternal.
- Pada akhirnya, jika tugas aktual yang dilakukan sedikit berbeda dari spesifikasi pengguna, pengguna akan menerima laporan yang merinci perbedaan tersebut.
- Akhirnya, seperti 10-parameter yang dapat dikonfigurasi, redundansi dan pelaporan juga dapat dikonfigurasi.
Contoh perangkat lunak tersebut:
- Migrasi Basis Data
- Database bisnis
- Basis data kendali sumber, dll.
- Batch mengkonversi antara dokumen Word dan dokumen OpenOffice, PowerPoint dan OpenOffice Draw, dll.
- Terjemahan otomatis seluruh situs web
- Analisis otomatis paket perangkat lunak, seperti Doxygen, tetapi di mana analisis perlu lebih dapat diandalkan (yaitu bukan hanya alat dokumentasi)
- Komunikasi jaringan, di mana paket mungkin hilang dan sejumlah percobaan ulang diharapkan
Pertanyaan ini awalnya terinspirasi dari Bagaimana Anda menangani kode yang sengaja buruk?
tetapi sekarang fokus hanya pada salah satu penyebab software mengasapi. Pertanyaan ini tidak membahas penyebab lain dari mengasapi perangkat lunak, seperti penambahan fitur baru.
Mungkin terkait: