What Are The Costs Of Software Engineering? (Berapa Biaya Rekayasa Perangkat Lunak?) Menurut Ian Sommerville
Tidak ada jawaban yang mudah untuk pertanyaan ini karena cara biaya didistribusikan di berbagai aktivitas dalam proses pengembangan perangkat lunak tergantung pada jenis perangkat lunak yang sedang dikembangkan dan proses yang digunakan. Sebagai contoh, sistem perangkat lunak real-time mungkin memerlukan lebih banyak validasi dan pengujian dibandingkan dengan sistem berbasis web. Namun, setiap pendekatan generik yang berbeda untuk pengembangan perangkat lunak memiliki pola distribusi biaya yang berbeda untuk setiap aktivitas dalam proses pengembangan perangkat lunak. Jika biaya total untuk mengembangkan sistem perangkat lunak yang kompleks diasumsikan sebesar 100 unit biaya, maka diagram pada Gambar 1 dapat menggambarkan bagaimana biaya tersebut dialokasikan untuk setiap aktivitas dalam proses pengembangan perangkat lunak.
Dalam pendekatan waterfall, biaya untuk spesifikasi, desain, implementasi, dan integrasi dihitung secara terpisah. Namun, perlu diingat bahwa integrasi dan pengujian sistem adalah aktivitas pengembangan yang paling mahal. Kebanyakan kasus, biaya aktivitas ini akan mencapai sekitar 40% dari total biaya pengembangan, namun untuk beberapa sistem yang kritis, kemungkinan besar biaya integrasi dan pengujian mencapai minimal 50% dari total biaya pengembangan sistem.
Jika perangkat lunak dikembangkan menggunakan pendekatan iterative, maka spesifikasi, desain, dan pengembangan tidak lagi dipisahkan secara tegas. Dalam pendekatan ini, biaya spesifikasi dapat dikurangi karena hanya spesifikasi tingkat tinggi yang dibuat sebelum memulai pengembangan. Selain itu, kegiatan spesifikasi, desain, implementasi, integrasi, dan pengujian dilakukan secara paralel dalam suatu proses pengembangan. Meskipun begitu, tetap diperlukan aktivitas pengujian sistem independen setelah implementasi awal selesai.
Dalam masa singkat penggunaannya, pendekatan rekayasa perangkat lunak berbasis komponen kurang memiliki angka akurat untuk biaya aktivitas pengembangan perangkat lunak yang berbeda. Namun, kita dapat memperkirakan bahwa biaya pengembangan relatif menurun dalam pendekatan ini. Namun, biaya integrasi dan pengujian meningkat, karena harus memastikan bahwa komponen yang digunakan sesuai dengan spesifikasinya dan dapat berfungsi dengan baik bersama komponen lainnya.
Selain biaya pengembangan perangkat lunak, terdapat juga biaya yang dikeluarkan untuk melakukan perubahan pada perangkat lunak setelah digunakan. Biaya untuk melakukan evolusi pada perangkat lunak bervariasi tergantung pada jenis sistem yang digunakan. Pada sistem perangkat lunak yang dapat digunakan dalam jangka waktu yang panjang, seperti sistem perintah dan kontrol yang dapat digunakan selama lebih dari 10 tahun, biaya evolusi dapat melebihi biaya pengembangan hingga 3 atau 4 kali lipat, seperti yang ditunjukkan pada bilah bawah di Gambar 2. Namun, pada sistem bisnis yang lebih kecil dengan masa pakai yang lebih pendek, biaya evolusi dapat dikurangi.
Pembagian biaya tersebut hanya berlaku untuk perangkat lunak yang dibuat khusus oleh kontraktor sesuai permintaan pelanggan. Sementara itu, profil biaya dapat berbeda untuk produk perangkat lunak yang umumnya dijual untuk PC. Umumnya, produk semacam itu dikembangkan dari spesifikasi yang lebih umum menggunakan pendekatan pengembangan evolusioner. Biaya untuk spesifikasi cenderung lebih rendah. Namun, karena produk ini ditujukan untuk berjalan pada berbagai konfigurasi, maka pengujian yang ekstensif perlu dilakukan. Anda dapat melihat jenis profil biaya yang mungkin terjadi pada produk semacam ini pada Gambar 2.
Memprediksi biaya evolusi untuk produk perangkat lunak generik sangat sulit. Banyak produk perangkat lunak generik tidak mengalami evolusi formal. Sebaliknya, pekerjaan dimulai pada rilis berikutnya, yang kemudian dapat dianggap sebagai produk baru yang lebih baik daripada versi sebelumnya. Oleh karena itu, biaya evolusi tidak dihitung secara terpisah seperti pada perangkat lunak yang disesuaikan, melainkan hanya dianggap sebagai bagian dari biaya pengembangan untuk rilis berikutnya dari sistem.
Source: Sommerville, Ian. 2007. Software Engineering Eight Edition. s.l. : Addison-. Wisley, 2007.
Comments
Post a Comment