**Model *incremental*** adalah metode pengembangan perangkat lunak di mana produk dirancang, diimplementasikan, dan diuji secara bertahap hingga produk selesai. Model ini menggabungkan elemen-elemen model waterfall dengan filosofi iteratif dari *prototyping*. Ada banyak situasi di mana kebutuhan perangkat lunak awal didefinisikan dengan cukup baik, tetapi ruang lingkup keseluruhan dari upaya pengembangan menghalangi proses yang murni linier. Selain itu, mungkin ada kebutuhan yang mendesak untuk menyediakan seperangkat fungsionalitas perangkat lunak yang terbatas kepada pengguna dengan cepat dan kemudian memperbaiki dan memperluas fungsionalitas tersebut dalam rilis perangkat lunak yang lebih baru. Dalam kasus seperti itu, model yang dibutuhkan adalah model *incremental*.

Model *incremental* menggabungkan elemen aliran proses linier dan paralel. Model *incremental* menerapkan urutan linier seiring berjalannya waktu kalender. Setiap urutan linier menghasilkan "*increment*" yang dapat disampaikan dari perangkat lunak dengan cara yang serupa dengan kenaikan yang dihasilkan oleh aliran proses evolusi. Misalnya, perangkat lunak pengolah kata yang dikembangkan menggunakan model *incremental* dapat memberikan fungsi manajemen file dasar, pengeditan, dan produksi dokumen dalam *increment* pertama; kemampuan edit dan produksi dokumen yang lebih canggih dalam *increment* kedua; pengejaan dan tata bahasa di *increment* ketiga; dan kemampuan tata letak halaman tingkat lanjut di *increment* keempat. Perlu dicatat bahwa aliran proses untuk setiap *increment* dapat memasukkan paradigma *prototyping**.*

Ketika model *incremental* digunakan, *increment* pertama sering kali merupakan produk inti. Artinya, kebutuhan dasar ditangani tetapi banyak fitur tambahan (beberapa diketahui, yang lain tidak diketahui) tetap tidak tersamapaikan. Produk inti digunakan oleh pelanggan (atau menjalani evaluasi terperinci). Sebagai hasil dari penggunaan dan / atau evaluasi, sebuah rencana dikembangkan untuk *increment* selanjutnya. Rencana tersebut membahas modifikasi produk inti untuk lebih memenuhi kebutuhan pelanggan dan penyampaian fitur dan fungsionalitas tambahan. Proses ini diulang setelah penyampaian setiap *increment*, sampai produk lengkap diproduksi.

Model proses *incremental* berfokus pada penyampaian produk operasional dengan setiap *increment*. *Increment* awal adalah versi yang dilepaskan dari produk akhir, tetapi memang menyediakan kemampuan yang dapat melayani pengguna dan juga menyediakan platform untuk evaluasi oleh pengguna. Pengembangan tambahan sangat berguna ketika staf tidak tersedia untuk implementasi lengkap dengan batas waktu bisnis yang telah ditetapkan untuk proyek. *Increment* awal dapat diimplementasikan dengan lebih sedikit orang. Jika produk inti diterima dengan baik, maka staf tambahan (jika diperlukan) dapat ditambahkan untuk mengimplementasikan *increment* berikutnya. Selain itu, *increment* dapat direncanakan untuk mengelola risiko teknis. Sebagai contoh, sistem utama mungkin memerlukan ketersediaan perangkat keras baru yang sedang dikembangkan dan yang tanggal penyampaiannya tidak pasti. Dimungkinkan untuk merencanakan *increment* awal dengan cara menghindari penggunaan perangkat keras ini, dengan demikian memungkinkan fungsionalitas parsial disampaikan kepada pengguna akhir tanpa penundaan yang berlebihan.

Model Incremental

Model
-----

Tahapan ini berlaku umum untuk semua model.

1. Komunikasi *(communication)* : membantu memahami tujuan.
2. Perencanaan *(planning)*: diperlukan karena banyak orang (tim perangkat lunak) bekerja pada proyek yang sama tetapi fungsinya berbeda pada saat yang sama.
3. Pemodelan *(modelling)*: melibatkan pemodelan bisnis, pemodelan data, dan pemodelan proses.
4. Konstruksi *(construction)*: melibatkan penggunaan kembali komponen perangkat lunak dan kode otomatis (proses pembuatan program).
5. Penyebaran *(deployment*): integrasi semua *increment**.*

Kelebihan dan kekurangan model *incremental*
--------------------------------------------

Kelebihan-kelebihan dari model *incremental*, yaitu menghasilkan perangkat lunak yang berfungsi dengan cepat dan lebih awal selama siklus hidup perangkat lunak, lebih fleksibel dan lebih murah untuk mengubah ruang lingkup dan kebutuhan, sehingga menurunkan biaya pengiriman awal. Selanjuntnya model ini lebih mudah untuk melakukan pengujjian dan *debug* selama iterasi yang lebih kecil. Kemudian pelanggan dapat merespons masing-masing *build.* Yang terakhir adanya kemudahan untuk mengelola risiko karena potongan berisiko diidentifikasi dan ditangani selama iterasi. Adapun kelemahan dari model incremental ini, antara lain membutuhkan desain dan rencana yang baik, membutuhkan definisi keseluruhan sistem yang lengkap sebelum dipecah menjadi beberapa *increment,* dan total biayanya lebih banyak dari pada model *waterfall**.*

Referensi
---------

  

1. 1 2 3 4 5 6 7 8 9 10 11  Pressman, Roger S. (2015). *Software engineering : a practitioner's approach*. McGraw-Hill Education. ISBN 9781259253157. OCLC 949696534.
2. ↑  McDermid, J. and P. Rook, "Software Development Process Models," in *Software Engineer’s Reference Book*, CRC Press, 1993, pp. 15/26–15/28.
3. ↑  "What is Incremental model- advantages, disadvantages and when to use it?".