Rabu, 07 Maret 2012

Best Practices of Software Engineering


Perkembangan dunia bisnis meningkatkan ketergantungan terhadap perangkat lunak terutama dikarenakan kebutuhan bisnis untuk meningkatkan produktivitas dan kualitas dalam waktu yang lebih singkat. Pengembangan perangkat lunak mengalami peningkatan baik dalam hal ukuran, kompleksitas, persebaran maupun tingkat kepentingan dari aplikasi yang digunakan dalam bisnis. Peningkatan kebutuhan pengembangan perangkat lunak tidak sejalan dengan peningkatan SDM berkualitas untuk memenuhi kebutuhan tersebut. Keterbatasan SDM yang dimiliki untuk memenuhi kebutuhan pengembangan perangkat lunak yang meningkat menyebabkan banyak proyek pengembangan perangkat lunak mengalami kegagalan.

Kegagalan yang terjadi pada pengembangan perangkat lunak seringkali diketahui hanya terbatas pada gejala permasalahan tanpa mengetahui akar permasalahan yang dimiliki. Penanganan yang dilakukan terdahap masalah pun terbatas pada mengatasi gejala yang timbul tanpa menyelesaikan akar permasalahan yang sebenarnya. Hal ini menyebabkan banyak proyek pengembangan perangkat lunak gagal ataupun tidak sesuai dengan anggaran dan waktu yang telah ditetapkan.

Untuk mengatasi kegagalan-kegagalan yang terjadi dalam proyek perangkat lunak sejumlah gejala dan akar permasalahan yang pernah terjadi diidentifikasi dan dipelajari. Hasil penelitian terhadap penyebab kegagalan tersebut kemudian dijadikan dasar dalam menyusun sebuah best practice dalam pengembangan perangkat lunak untuk meminimalisasi kemungkinan terjadinya kegagalan tersebut. Adapun beberapa best practice tersebut antara lain :

Develop Iteratively
Pengembangan secara iterative dilakukan dengan membangun perangkat lunak secara bertahap untuk mengurangi resiko. Pengembangan dilakukan dengan membuat prototype atau model yang merupakan inti dari sebuah perangkat lunak yang menjadi landasan untuk pengembangan pada tahap selanjutnya. Keberadaan prototype mmbuat pengembang dapat lebih cepat mengetahui kekurangan dan dapat dengan segera melakukan perubahan. Dengan demikian pengembang dapat menekan resiko pada tahapan awal dan membuat mitigasi resiko.

Manage Requirements
Requirements merupakan hal yang penting dalam pengembangan perangkat lunak. Tujuan utama dalam pengembangan perangkat lunak ialah membuat sistem yang tepat untuk memberikan solusi berdasarkan requirement yang disampaikan. Oleh karena itu, pengelolaan requirement penting dilakukan untuk memastikan pengembang menyelesaikan masalah yang tepat dengan membuat sistem yang tepat. Pengelolaan requirement dapat dilakukan dngan cara mengelisitasi, mengelola, dan mendokumentasikan fungsionalitas dan constraint yang dibutuhkan sistem, menetapkan dan mengelola persetujuan mengenai perubahan requirement sebuah perangkat lunak. Mengelola requirements dengan baik mengurangi kesalahan yang terjadi dan mengurangi kegagalan pengembangan perangkat lunak yang dapat terjadi.

Use Component Architectures
Pengembangan berbasis komponen merupakan hal yang penting dalam pengembangan perangkat lunak. Pengembangan berbasis komponen memungkinkan penggunaan kembali (reuse) dan kustomisasi komponen perangkat lunak dari berbagai sumber yang pernah dibuat sebelumnya.
Model Visually
Pemodelan visual ialah proses penggambaran kode dalam bentuk visual. Penggambaran secara visual mendeskripsikan sistem dari berbagai perspektif, memperlihatkan konsistensi sistem, serta membantu pengecekan kesesuaian implementasi sitem dengan rancangan awal. Pemodelan visual pada RUP dibantu oleh keberadaan UML yang merupakan bahasa pemodelan terpadu. Dengan pemodelan visual, kompleksitas dari perangkat lunak menjadi lebih mudah dipahami.

Verify Quality
Verifikasi kualitas perangkat lunak perlu dilakukan untuk mengetahui kualitas suatu perangkat lunak dengan cara melihat beberapa aspek yaitu fungsionalitas, kehandalan serta kinerja dari aplikasi dan sistem yang dikembangkan. Verifikasi kualitas perlu dilakukan secara berkala untuk menghindari besarnya biaya yang dikeluarkan untuk memperbaiki sistem apabila sistem telah dideploy. Dengan melakukan verifikasi kualitas secara berkala, dapat diketahui kualitas perangkat lunak sehingga perbaikan dini terhadap perangkat lunak dapat dilakukan dan biaya yang dikeluarkan dapat berkurang.

Control Changes
Kontrol perubahan sangat diperlukan dalam proses pengembangan perangkat lunak. Tidak adanya kontrol terhadap perubahan-perubahan yang terjadi dalam proses pengembangan perangkat lunak  dapat menimbulkan resiko yang besar dan berdampak pada kekacauan.  RUP menyediakan kemampuan untuk melakukan manajemen control yang baik dengan mendokumentasikan semua perubahan yang telah dilakukan, sehingga terstruktur dengan baik dan dapat dilihat dengan mudah.

Tidak ada komentar:

Posting Komentar