Software Process Model

Judul Buku: Software Engineering
Edisi : Tenth Edition
Pengarang : Ian Sommerville
Penerbit : Pearson Education Limited
Bagian yang dibaca
Bab 2 : Software Processes
Halaman : 43 s.d 65


Software Process adalah serangkaian aktivitas pada pembuatan perangkat lunak.

Ada 4 aktivitas dasar dalam rekaya perangkat lunak yaitu:

  1. Specification, menentukan spesifikasi dari fungsionalitas perangkat lunak dan batasan pengoperasiannya.
  2. Design and implementation, pengembangan perangkat lunak yang sesuai dengan spesifikasi diatas.
  3. Validation, validasi perangkat lunak Perangkat untuk memastikan bahwa perangkat lunak tersebut berfungsi diinginkan pelanggan.
  4. Evolution, evolusi perangkat lunak untuk memenuhi perubahan kebutuhan pelanggan

Software process model atau yang biasa disebut Software Development Life Cyctle (SDLC) adalah suatu representasi sederhana dari rangkaian proses pengembangan software. Dari proses model kita hanya melihat kerangka proses, tetapi tidak melihat detail dari aktivitas masing-masing proses tersebut.
Pada buku ini dijelaskan sejumlah model proses yang sangat umum (paradigma proses) dan biasa digunakan dalam membuat rekayasa perangkat lunak yang lebih spesifik. Berikut ini akan dijelaskan beberapa model proses yang umum digunakan:

1. The Waterfall Model
Tahapan pada model ini dari satu fase ke fase lainnya bersifat cascade, hal ini lah yang menjadikan proses model ini dikenal sebagai model waterfall.Berikut ini adalah tahapan pengembangan software pada model waterfall:

1. Requirements analysis and definition
Pada tahap ini dilakukan analisis requirement dan batasan-batasan pembuatan aplikasi. Hasil dari analisis akan didefinisikan sebagai spesifikasi dari sistem yang dibuat.
2. System and software design
Pada tahap ini dilakukan desain sistem dan aplikasi seperti membuat desain arsitektur sistem secara keseluruhan untuk hardware dan software yang digunakannya.
3. Implementation and unit testing
Tahap ini adalah pembangunan perangkat lunak, selama pembangunan perangkat lunak berlangsung dilakukan juga unit tes terhadap aplikasi untuk memastikan perangkat lunak yang dibuat memenuhi spesifikasi yang telah dibuat.
4. Integration and system testing
Pada tahap ini dilakukan integrasi dari modul-modul yang sudah dibuat sebelumnya dan diuji sebagai sebuah sistem yang lengkap. Pengujian dilakukan untuk memastikan perangkat lunak telah memenuhi semua requirement-nya. Setelah pengujian selesai, perangkat lunak diserahkan ke pelanggan.
5. Operation and maintenance
Pada tahap terakhir ini sistem diinstal di environment production untuk dijalankan. Selama sistem berjalan dilakukan pemeliharaan berupa perbaikan bug.

Model waterfall ini cocok untuk pengembangan software yang memerlukan banyak biaya produksi. Setiap proses yang dilakukan tidak saling tumpah tindih karena untuk melanjutkan fase berikutnya harus menunggu fase sebelumnya benar-benar selesai. Hal ini menjadikan model ini kurang cocok untuk diimplementasi dalam pembangunan software dengan kompleksitas yang tinggi.

2. Incremental Development
Pembangunan inkremental adalah pengembangan software yang dibuat berdasarakan rancangan awal yang dipecah menjadi beberapa fungsi atau bagian sehingga pengembangan software dilakukan secara bertahap. Untuk increment pertama dilakukan pengembangan fitur-fitur utama sesuai dengan spesifikasi kebutuhan aplikasi yang telah didefinisikan diawal pekerjaan. Beberapa modul atau fitur yang telah dibangun dapat langsung dievaluasi lebih awal oleh klien untuk dilihat apakah sistem sudah sesuai kebutuhan. Untuk modifikasi fitur yang lebih canggih dapat dikerjakan pada inkremen selanjutnya dengan tetap memperhatikan timeline penyelesaian proyek.
Dengan mengembangkan software secara bertahap ini akan lebih murah dari segi biaya dan mempermudah dalam melakukan perubahan pada software yang sedang dikembangkan. Tetapi model ini tidak cocok diimplementasi dalam pembangunan sistem yang besar, kompleks, dan berjangka watu yang panjang. Karena sistem yang besar memerlukan kerangka kerja dan arsitektur yang stabil.

3. Integration and Configuration
Proses ini melakukan pendekatan yang berorientasi penggunaan kembali software dengan mengintegrasikannya. Tahapan porses model ini yaitu:
Requirement Specification, tahap ini melakukan deskripsi singkat mengenai pesyaratan penting dan fitur sistem yang akan dibangun.

  1. Software discovery and evaluation, berdasarkan requirement yang sudah dibuat dilakukan pencarian komponen dan sistem yang menyediakan fungsionalitas yang diperlukan lalu dievaluasi untuk melihat apakah komponen tersebut benar-benar penting dan secara umum cocok diimplementasi pada sistem yang akan dibangun.
  2. Requirements refinement
  3. Application system configuration, jika sistem aplikasi siap pakai dan memenuhi persayaratan yang telah ada, maka sistem dapat dikonfigurasi dan digunakan dalam pembuatan sistem baru.
  4. Component adaption and integration, jika tidak ada sistem yang siap pakai, maka masing-masing komponen yang dapat digunakan kembali akan dimodifikasi dan komponen baru akan dikembangkan. Nantinya komponen-komponen ini akan dintegrasikan untuk membuat suatu sistem.
    Dengan menggunakan model ini maka dapat mengurangi biaya pengembangan dan delivery software cenderung lebih cepat.

Pada proses pengembangan software juga terdapat beberapa aktivitas untuk mengatasi perubahan. Hal ini dapat dilakukan dengan pembuatan Prototipe yang bisa membantu mengeksplorasi solusi software dan dalam pembuatan antarmuka. Atau bisa dengan melakukan proses penyampaian yang bertahap sehingga perubahan dapat dilakukan tanpa mengganggu sistem secara keseluruhan. Lalu lakukanlan proses improvement dari pengembangan software yang telah dilakukan sehingga dapat meningkatkan kualitas software yang dibuat.


Kesimpulan:
Pada buku ini dijelaskan proses model dan aktivitasnya yang umum digunakan dalam software development. Setiap tahapan pada masing-masing proses model dijelaskan dengan rinci sampai dengan keuntungan dan kekurangannya. Selain membahas proses model, pada buku ini dijelaskan aktivitas untuk mengatasi perubahan dalam pengambangan software, dan bagaimana kita melakukan proses improvement-nya. Sehingga buku ini dapat dijadikan referensi untuk mempelajari software processes model. Dengan mengetahui tentang beberapa proses model ini dapat memudahkan tim pengembang dalam memilih model proses yang sesuai dengan pekerjannya dan dapar menerapkan sehingga dapat membantu tim pengembang memahami keseluruhan proses bisnis dan proses pengembangan software dapat berjalan dengan efektif.