Siklus hidup pengembangan perangkat lunak memberikan organisasi pendekatan sistematis dan bertahap untuk mengembangkan perangkat lunak yang sukses dengan mengumpulkan kebutuhan awal untuk produk baru. Ini adalah proses sistematis dalam membangun perangkat lunak untuk memastikan kualitas dan ketepatan perangkat lunak yang dibangun serta memenuhi harapan pelanggan.
Model pengembangan utama termasuk model air terjun, model inkremental, model spiral, model fountain, model cerdas, model V, model RAD, model CBSD, metode prototipe, metode XP, metode RUP, dll.
Model Air Terjun
Model air terjun, yang juga dikenal sebagai metode siklus hidup, adalah model pengembangan yang paling umum digunakan dalam metode siklus hidup. Ini membagi proses pengembangan perangkat lunak menjadi enam tahap: perencanaan perangkat lunak, analisis kebutuhan, desain perangkat lunak, pengkodean program, pengujian perangkat lunak, dan operasi serta pemeliharaan. Untuk mencapai urutan tetap dari atas ke bawah, seperti air terjun, mereka jatuh langkah demi langkah.

- Rencana Perangkat Lunak: Utamanya menentukan tujuan pengembangan dan kelayakan perangkat lunak.
- Analisis Kebutuhan: Setelah mengonfirmasi bahwa pengembangan perangkat lunak layak, lakukan analisis mendetail tentang berbagai fungsi yang perlu dicapai oleh perangkat lunak. Tahap analisis kebutuhan adalah tahap yang sangat penting. Pekerjaan yang baik pada tahap ini akan meletakkan dasar yang baik untuk keberhasilan seluruh proyek pengembangan perangkat lunak.
- Desain Perangkat Lunak: Merancang seluruh sistem perangkat lunak, seperti desain kerangka sistem, desain basis data, dll., berdasarkan hasil analisis kebutuhan. Desain perangkat lunak umumnya dibagi menjadi desain keseluruhan (desain garis besar) dan desain rinci.
- Kode Program: Mengubah hasil desain perangkat lunak menjadi kode program yang dapat dijalankan oleh komputer. Dalam proses pemrograman, spesifikasi pemrograman yang bersatu dan sesuai standar harus dirumuskan untuk memastikan keterbacaan program, kemudahan pemeliharaan, dan meningkatkan efisiensi operasional program.
- Pengujian Perangkat Lunak: Setelah desain perangkat lunak selesai, perangkat lunak harus menjalani pengujian yang ketat untuk menemukan dan memperbaiki masalah dalam perangkat lunak selama proses desain. Dalam proses pengujian, perlu untuk menetapkan rencana pengujian yang rinci dan melakukan pengujian sesuai dengan rencana pengujian untuk mengurangi kesewenangan pengujian. Pemeliharaan perangkat lunak:
- Pemeliharaan Perangkat Lunakadalah periode terpanjang dalam siklus hidup perangkat lunak. Setelah perangkat lunak dikembangkan dan digunakan, karena berbagai alasan, perangkat lunak tidak dapat terus memenuhi kebutuhan pengguna. Untuk memperpanjang masa pakai perangkat lunak, perangkat lunak harus dipelihara.
Model Transformasi
Model transformasi (model evolusi) didasarkan pada pengembangan cepat dari sebuah prototipe. Berdasarkan umpan balik dan saran yang diajukan oleh pengguna dalam proses pemanggilan prototipe, prototipe diperbaiki untuk mendapatkan versi baru dari prototipe, dan proses ini diulang hingga berevolusi menjadi produk perangkat lunak akhir.
Model Spiral
Model spiral menggabungkan model air terjun dan model transformasi. Ini menggabungkan keuntungan dari keduanya dan menambahkan analisis risiko. Ini didasarkan pada prototipe dan berputar dari dalam ke luar sepanjang spiral. Setiap putaran memerlukan perencanaan, analisis risiko, rekayasa implementasi, evaluasi pelanggan, dan aktivitas lainnya, dan versi baru dari prototipe dikembangkan. Setelah beberapa spiral, sistem akhir diperoleh.

Model Fountain
Model fountain memberikan dukungan untuk penggunaan kembali perangkat lunak dan integrasi berbagai aktivitas pengembangan dalam siklus hidup, dan terutama mendukung metode pengembangan berorientasi objek. Istilah “fountain” itu sendiri mencerminkan karakteristik iterasi dan tanpa celah. Sebagian tertentu dari sistem sering mengulangi pekerjaan berkali-kali, dan fungsi terkait ditambahkan ke sistem yang berevolusi dalam setiap iterasi. Yang disebut tanpa celah berarti tidak ada batas yang jelas antara analisis, desain, dan pengkodean dalam aktivitas pengembangan.

Model V
Dalam model pengembangan, pengujian sering digunakan sebagai pemikiran setelahnya untuk memperbaiki situasi, tetapi ada juga model pengembangan yang berfokus pada pengujian, yaitu model V. Model V hanya diakui secara samar di industri perangkat lunak. Model V mengklaim bahwa pengujian bukanlah pemikiran setelahnya, tetapi proses yang sama pentingnya dengan proses pengembangan.
Model V menggambarkan beberapa tingkat pengujian yang berbeda dan menjelaskan berbagai tahap dalam siklus hidup yang sesuai dengan tingkat ini. Dalam gambar, penurunan di sebelah kiri adalah berbagai tahap dari proses pengembangan, dan yang sesuai adalah bagian yang naik di sebelah kanan, yaitu berbagai tahap dari proses pengujian.

Harap dicatat bahwa penamaan fase pengujian mungkin berbeda di berbagai organisasi. Nilai dari model V adalah bahwa ia dengan jelas menunjukkan berbagai tingkat yang ada dalam proses pengujian, dan dengan jelas menggambarkan kesesuaian antara fase pengujian ini dan berbagai fase selama proses pengembangan:
- Tujuan utama dari pengujian unit adalah untuk menangani berbagai kesalahan yang mungkin ada dalam proses pengkodean. Misalnya: pengguna memasukkan kesalahan pada nilai batas selama proses verifikasi.
- Tujuan utama dari pengujian integrasi adalah untuk mengatasi masalah yang mungkin ada dalam desain rinci, terutama untuk memeriksa kemungkinan kesalahan di antarmuka antara setiap unit dan bagian program lainnya.
- Pengujian sistem terutama untuk desain garis besar, memeriksa apakah sistem secara keseluruhan beroperasi secara efektif. Misalnya: Apakah kinerja tinggi yang diharapkan tercapai dalam pengaturan produk.
- Pengujian penerimaan biasanya dilakukan oleh ahli bisnis atau pengguna untuk mengonfirmasi bahwa produk benar-benar dapat memenuhi kebutuhan bisnis pengguna.
Model Inkremental
Model inkremental, seperti model implementasi prototipe dan metode evolusi lainnya, pada dasarnya bersifat iteratif. Namun, tidak seperti implementasi prototipe, model inkremental menekankan bahwa setiap inkrement menghasilkan produk yang dapat dioperasikan. Inkrement awal adalah versi “terpisah” dari produk akhir, tetapi mereka memberikan fungsi layanan pengguna dan menyediakan platform bagi pengguna untuk mengevaluasi.
Karakteristik dari model inkremental adalah pengenalan konsep paket inkremental. Anda tidak perlu menunggu sampai semua kebutuhan muncul, selama paket inkremental dari kebutuhan tertentu muncul, Anda dapat memulai pengembangan. Meskipun paket inkremental tertentu mungkin perlu disesuaikan lebih lanjut dengan kebutuhan pelanggan dan perlu diubah, selama paket inkremental cukup kecil, dampaknya dapat ditoleransi untuk seluruh proyek.

Model RAD Model Pengembangan Aplikasi Cepat (RAD) adalah model proses pengembangan perangkat lunak inkremental yang menekankan siklus pengembangan yang sangat pendek.
Model RAD adalah varian “kecepatan tinggi” dari model air terjun, yang memenangkan pengembangan cepat melalui penggunaan luas komponen yang dapat digunakan kembali dan metode konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik dan ruang lingkup proyek dibatasi, model ini dapat digunakan untuk dengan cepat membuat “sistem informasi” yang sepenuhnya fungsional.
Proses dimulai dengan pemodelan bisnis, diikuti oleh pemodelan data, pemodelan proses, generasi aplikasi, pengujian, dan iterasi. Proses perangkat lunak yang menggunakan model RAD ditunjukkan dalam gambar di bawah ini.

Tugas yang harus diselesaikan dalam setiap periode aktivitas model RAD adalah sebagai berikut.
Pemodelan bisnis: Informasi apa yang mendorong operasi proses bisnis? Informasi apa yang akan dihasilkan? Siapa yang menghasilkannya? Ke mana aliran informasi pergi? Siapa yang akan menanganinya? Dapat dilengkapi dengan diagram aliran data.
Pemodelan data: Untuk mendukung aliran data dari proses bisnis, temukan kumpulan objek data, definisikan atribut objek data, dan bentuk model data dengan hubungan dengan objek data lainnya, yang dapat dilengkapi dengan diagram ER.
Pemodelan proses: memungkinkan objek data untuk menyelesaikan berbagai fungsi bisnis dalam aliran informasi. Proses pembuatan menggambarkan penambahan, modifikasi, penghapusan, dan pencarian objek data, yaitu, penyempurnaan kotak pemrosesan dalam diagram aliran data.
Generasi program aplikasi: Gunakan bahasa generasi keempat (4GL) untuk menulis program pemrosesan, menggunakan kembali komponen yang ada atau membuat komponen baru yang dapat digunakan kembali, dan menggunakan alat yang disediakan oleh lingkungan untuk secara otomatis menghasilkan dan membangun seluruh sistem aplikasi.
Pengujian dan pengiriman, karena banyaknya penggunaan kembali, umumnya hanya melakukan pengujian keseluruhan, tetapi komponen yang baru dibuat masih perlu diuji.
Model Berbasis Komponen
Komponen (Component) adalah unit perangkat lunak dengan nilai yang dapat digunakan kembali dan fungsi yang relatif independen. Model Pengembangan Perangkat Lunak Berbasis Komponen (CBSD) adalah menggunakan pendekatan modular untuk memodulasi seluruh sistem, dan dengan dukungan model komponen tertentu, menggunakan kembali satu atau lebih komponen perangkat lunak dalam perpustakaan komponen, melalui kombinasi Proses membangun sistem perangkat lunak aplikasi dengan efisiensi tinggi dan kualitas tinggi.
Model pengembangan berbasis komponen menggabungkan banyak karakteristik dari model spiral, dan pada dasarnya bersifat evolusioner, dan proses pengembangannya bersifat iteratif. Model pengembangan berbasis komponen terdiri dari lima tahap: analisis dan definisi kebutuhan perangkat lunak, desain arsitektur, pendirian perpustakaan komponen, pembangunan perangkat lunak aplikasi, pengujian, dan rilis.

Metode Prototipe
Prototipe perangkat lunak adalah realisasi sebagian dari produk baru yang diusulkan. Tujuan utama dari mendirikan prototipe adalah untuk menyelesaikan masalah permintaan yang tidak pasti pada tahap awal pengembangan produk. Tujuannya adalah untuk memperjelas dan meningkatkan kebutuhan, mengeksplorasi opsi desain, dan berkembang menjadi produk akhir.
Ada banyak cara untuk mengklasifikasikan prototipe. Dari perspektif apakah prototipe mewujudkan fungsinya, prototipe perangkat lunak dapat dibagi menjadi dua jenis: prototipe horizontal dan prototipe vertikal.
Prototipe horizontal juga disebut prototipe perilaku, yang digunakan untuk mengeksplorasi beberapa perilaku spesifik dari sistem yang diharapkan dan mencapai tujuan penyempurnaan kebutuhan. Prototipe horizontal biasanya hanya navigasi fungsi, tetapi mereka tidak benar-benar mengimplementasikan fungsi. Prototipe horizontal terutama digunakan pada antarmuka.
Prototipe vertikal juga disebut prototipe terstruktur, yang mengimplementasikan sebagian dari fungsi mereka. Prototipe vertikal terutama digunakan dalam realisasi algoritma kompleks.

Metode XP
XP adalah metode pengembangan perangkat lunak yang ringan (agile), efisien, berisiko rendah, fleksibel, dapat diprediksi, ilmiah, dan menyenangkan. Dibandingkan dengan metodologi lainnya, perbedaan terbesar terletak pada:
- Memberikan umpan balik yang spesifik dan terus-menerus lebih awal dalam periode yang lebih singkat.
- Perencanaan iteratif, pertama-tama menghasilkan rencana induk dengan cepat di awal, dan kemudian terus mengembangkannya sepanjang proses pengembangan proyek.
- Bergantung pada prosedur pengujian otomatis untuk memantau kemajuan pengembangan dan menangkap cacat lebih awal.
- Bergantung pada komunikasi verbal, pengujian, dan komunikasi program sumber.
- Mendukung desain evolusi yang berkelanjutan.
- Bergantung pada kolaborasi yang erat dalam tim pengembangan.
- Cobalah untuk menyeimbangkan kepentingan jangka pendek programmer dan kepentingan jangka panjang proyek sebanyak mungkin.

Metode Proses Terpadu (UP)
Proses Terpadu adalah kerangka proses umum yang dapat menangani berbagai sistem perangkat lunak, bidang aplikasi yang berbeda, jenis organisasi yang berbeda, tingkat kinerja yang berbeda, dan skala proyek yang berbeda. UP berbasis komponen, yang berarti bahwa sistem perangkat lunak yang dikembangkan olehnya terdiri dari komponen, dan komponen tersebut saling terhubung melalui antarmuka yang terdefinisi dengan baik. Saat menyiapkan semua cetak biru sistem perangkat lunak, UP menggunakan bahasa pemodelan terpadu UML.
Dibandingkan dengan proses perangkat lunak lainnya, UP memiliki tiga karakteristik yang mencolok: berbasis kasus penggunaan, berpusat pada arsitektur dasar, iterasi dan peningkatan. Proses perangkat lunak dalam Proses Terpadu Rasional dibagi menjadi empat fase berurutan dalam waktu, yaitu fase awal, fase penyempurnaan, fase konstruksi, dan fase pengiriman. Di akhir setiap tahap, tinjauan teknis harus diatur untuk menentukan apakah tujuan tahap ini telah tercapai. Jika hasil tinjauan memuaskan, proyek dapat diizinkan untuk melanjutkan ke tahap berikutnya.

Pelajari Lebih Lanjut
- Apa itu Model Proses Perangkat Lunak?
- Perencanaan Adaptif vs Prediktif: Kapan Agile? Kapan Waterfall?
- Apa itu Siklus Hidup Pengembangan Perangkat Lunak?
- Panduan Pembelajaran Scrum
- Panduan Pembelajaran Manajemen Proyek
- Apa itu UML?
- Apa itu Pengembangan Perangkat Lunak Agile?
- Cerita Pengguna vs Kasus Penggunaan untuk Pengembangan Perangkat Lunak Agile
This post is also available in Deutsch, English, Español, فارسی, Français, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.