Skip to main content

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.

Gambar 1

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.

Gambar 2

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

Popular posts from this blog

Proses Perangkat Lunak Menurut Roger S. Pressman

Suatu proses adalah gabungan dari beberapa kegiatan, aksi, dan pekerjaan yang dikerjakan saat akan membuat beberapa produk. Setiap kegiatan memiliki tujuan yang luas (seperti komunikasi dengan pemangku kepentingan) dan diterapkan secara universal, tidak peduli pada domain aplikasi, ukuran proyek, kompleksitas usaha, atau tingkat ketelitian rekayasa perangkat lunak yang digunakan. Aksi (contohnya, desain arsitektur) mencakup rangkaian tugas yang menghasilkan produk utama (sebagai contoh, model desain arsitektural). Sebuah tugas berfokus pada tujuan yang kecil namun terdefinisi dengan baik (seperti melakukan pengujian unit) yang menghasilkan hasil yang konkret. Dalam dunia rekayasa perangkat lunak, suatu proses tidaklah berarti resep yang kaku untuk membuat perangkat lunak. Sebaliknya, proses ini merupakan pendekatan yang dapat disesuaikan yang memungkinkan tim pengembang perangkat lunak untuk memilih dan mengeksekusi serangkaian tindakan dan tugas yang sesuai. Tujuannya adalah untuk sel...

Extreme Programming (XP) Menurut Roger S. Pressman

 Untuk memberikan gambaran yang lebih rinci tentang proses agile, saya akan memaparkan Extreme Programming (XP), suatu pendekatan yang banyak digunakan dalam pengembangan perangkat lunak agile. Meskipun ide dan metode yang terkait dengan XP telah muncul pada akhir 1980-an, Kent Beck telah menulis secara ekstensif mengenai topik ini. Baru-baru ini, sebuah varian XP yang disebut Industrial XP (IXP) telah diajukan. IXP telah menyempurnakan XP dan dirancang untuk digunakan khusus dalam organisasi besar dengan proses yang lebih fleksibel. 1.1 XP Values Sebuah seperangkat lima nilai yang menjadi dasar bagi seluruh pekerjaan yang dilakukan dalam XP telah didefinisikan oleh Beck. Nilai-nilai ini mencakup communication, simplicity, feedback, courage, dan respect, dan masing-masing nilai ini digunakan sebagai motivasi dalam aktivitas, tindakan, dan tugas XP yang spesifik. XP menekankan pada kolaborasi yang erat namun tidak formal secara verbal untuk mencapai komunikasi yang efektif anta...

Other Agile Process Models (Model Process Agile Lainnya) Menurut Roger S. Pressman

 Sejarah pengembangan perangkat lunak telah dicatat dengan banyak deskripsi dan metodologi proses yang telah usang, alat-alat, dan teknologi, serta notasi pemodelan. Semua hal tersebut telah mencapai popularitasnya masing-masing sebelum akhirnya digantikan oleh yang baru dan lebih baik. Dalam upaya mencapai penerimaan di komunitas pengembangan perangkat lunak, berbagai agile process model telah diperkenalkan dan bersaing satu sama lain, mengikuti pola yang sama dengan gerakan sebelumnya. Sudah saya sampaikan pada bagian terakhir bahwa Extreme Programming (XP) merupakan agile process models yang paling sering digunakan. Meskipun demikian, terdapat banyak agile process models lain yang telah diusulkan dan diterapkan dalam berbagai industri. Beberapa model yang paling umum meliputi: Adaptive Software Development (ASD) Scrum Dynamic Systems Development Method (DSDM) Crystal Feature Drive Development (FDD) Lean Software Development (LSD) Agile Modeling (AM) Agile Unified Process (AUP) P...