Siklus hidup pengembangan perangkat lunak
| English | Bahasa Indonesia |
|---|---|
| requirements/rɪˈkwaɪəmənts/ | persyaratan |
| development life cycle/dɪˈveləpmənt laɪf ˈsaɪkl/ | siklus hidup pengembangan |
| waterfall/ˈwɔːtəfɔːl/ | air terjun |
| maintenance/ˈmeɪntənəns/ | pemeliharaan |
| iterative model/ˈɪtərətɪv ˈmɒdl/ | model iteratif |
| rapid application development/ˈræpɪd ˌæplɪˈkeɪʃn dɪˈveləpmənt/ | pengembangan aplikasi cepat |
| prototype/ˈprəʊtəʊtaɪp/ | prototipe |
| agile/ˈædʒaɪl/ | agile |
| implementation/ˌɪmplɪmənˈteɪʃn/ | implementasi |
Bandara yang dibuka terlambat enam belas bulan
- Bandara baru Denver dijadwalkan buka pada Oktober 1993 dengan sistem bagasi paling ambisius yang pernah dibangun: 4,000 kereta otomatis, 35 km rel, tanpa sentuhan manusia. Bandara ini dibuka pada Februari 1995, $560 juta melebihi anggaran, dengan kereta-kereta itu menghancurkan koper dalam uji coba.
- Jadwal telah ditetapkan sebelum siapa pun menganalisis apa yang harus dilakukan sistem. Kebutuhan terus berubah saat sistem sedang dibangun. Pengujian dimulai ketika tidak ada waktu lagi untuk memperbaiki kesalahan yang ditemukan.
- Setiap kegagalan tersebut memiliki nama dalam pelajaran ini. Siklus hidup pengembangan ada agar sebuah proyek direncanakan, dikelola, dan dikendalikan alih-alih hanya ditemukan secara kebetulan.
- Pelajaran ini menjelaskan fungsi siklus hidup, tiga model yang disebutkan dalam silabus, serta lima tahap yang dilalui setiap program.
Mengapa siklus hidup diperlukan
- Siklus hidup pengembangan adalah serangkaian tahap dari ide hingga perangkat lunak selesai, dipelihara, dan dioperasikan. Tujuannya adalah untuk merencanakan, mengelola, dan mengendalikan sebuah proyek: produk yang tepat, tepat waktu, dengan kualitas yang baik.
- Siklus ini mengelola kompleksitas dengan memecah program besar menjadi fase-fase, mengoordinasikan tim, dan melacak kemajuan terhadap titik-titik pencapaian (milestones).
- Siklus ini memasukkan pengujian sejak awal alih-alih menunggunya hingga akhir, mencatat keputusan desain bagi siapa pun yang akan memelihara program nanti, dan mengelola risiko.
Siklus hidup pengembangan digunakan untuk:
Hal ini menyusun kerja menjadi tahap-tahap agar tim membangun produk yang tepat, tepat waktu, dengan kualitas.
Manakah tujuan siklus hidup pengembangan? Pilih semua yang berlaku.
Siklus hidup merencanakan, mengelola, dan mengendalikan. Hal ini tidak dapat menjamin kebenaran; hal ini menjadikan penemuan dan perbaikan kesalahan sebagai bagian dari rencana.
Mengapa ada lebih dari satu model
- Tidak ada satu siklus hidup pun yang cocok untuk setiap proyek, sehingga terdapat banyak model, dan ujian meminta Anda untuk memilih yang sesuai.
- Pilihan tergantung pada ukuran dan kompleksitas program, seberapa jelas kebutuhan di awal, seberapa banyak perubahan yang diharapkan, risiko jika gagal, tim, dan tenggat waktu.
- Sistem penggajian dengan aturan hukum yang tetap dan permainan video yang pemainnya belum tahu apa yang mereka inginkan adalah proyek yang berbeda. Mereka memerlukan siklus yang berbeda pula.
Waterfall
- Model waterfall (aliran air) adalah urutan linear: analisis, desain, pengkodean, pengujian, pemeliharaan. Setiap tahap diselesaikan, didokumentasikan, dan disetujui sebelum tahap berikutnya dimulai.
- Manfaat: struktur yang jelas, mudah dikelola dan dijadwalkan, dokumentasi menyeluruh di setiap tahap, sangat cocok untuk kebutuhan yang stabil.
- Kekurangan: perubahan kebutuhan di tengah proyek berarti harus kembali ke atas aliran air; pelanggan tidak melihat apa pun yang berfungsi hingga akhir; kesalahan dalam analisis baru muncul saat pengujian.

Air tidak mengalir naik bukit
Model air terjun paling cocok untuk proyek di mana:
Air terjun bersifat linear dengan setiap tahap selesai sebelum tahap berikutnya — sangat baik untuk persyaratan stabil, buruk untuk perubahan di tengah proyek.
Dalam model air terjun, pelanggan melihat versi program yang berfungsi di awal proyek.
Tidak ada yang berjalan sampai pengodean dan pengujian, di akhir. Melihat perangkat lunak yang berfungsi sejak dini adalah kekuatan model iteratif dan RAD.
Iteratif
- Model iteratif melakukan perjalanan berulang. Setiap perjalanan menghasilkan versi parsial yang berfungsi, yang ditinjau oleh pengguna dan disempurnakan dalam perjalanan berikutnya.
- Manfaat: masalah terdeteksi lebih awal; pengguna melihat perangkat lunak yang berfungsi lebih cepat dan sering; bagus ketika kebutuhan ditemukan seiring berjalannya waktu.
- Kekurangan: lebih sulit memperkirakan total biaya dan waktu; tinjauan berulang membutuhkan perhatian pengguna; desain dapat menyimpang tanpa kedisiplinan.

Bangun, tampilkan, sempurnakan, ulangi
Pengembangan aplikasi cepat
- Pengembangan aplikasi cepat (RAD) membangun prototipe dengan cepat, menampilkannya kepada pengguna, dan membangun ulang prototipe berdasarkan umpan balik mereka hingga menjadi produk akhir. Tim sering bekerja pada bagian-bagian secara paralel.
- Manfaat: pengiriman pertama yang sangat cepat; kebutuhan yang berubah diserap saat muncul; pengguna membentuk produk secara langsung.
- Kekurangan: hal ini bergantung pada ketersediaan pengguna sepanjang proses; jalan pintas pada prototipe bisa bertahan hingga menjadi produk akhir; lebih cocok untuk sistem kecil daripada sistem besar yang kritis terhadap keselamatan. Metode Agile mengembangkan ide yang sama lebih jauh, dengan sprint singkat dan pengujian berkelanjutan.

Prototipe, umpan balik, prototipe lagi
Dalam model air terjun, setiap tahap diselesaikan sebelum tahap berikutnya dimulai, whereas agile bekerja dalam sprint iteratif singkat dengan umpan balik konstan.
Waterfall bersifat linear (baik untuk persyaratan yang stabil); agile beradaptasi melalui sprint singkat dengan kolaborasi dan pengujian pelanggan berkelanjutan.
Pasangkan setiap model dengan ide utamanya.
Waterfall = linear; iteratif = penyempurnaan berulang; RAD = berbasis prototipe dan cepat.
Pengembangan aplikasi cepat membangun sebuah ____ yang dicoba pengguna dan memberikan umpan balik, lalu dibangun ulang.
Prototipe adalah ciri khas RAD; umpan balik pengguna atasnya adalah cara persyaratan ditemukan.
Contoh terarah: pilih siklus hidup dan justifikasinya
- Sebuah perusahaan membutuhkan perangkat lunak untuk menghitung gaji karyawan di bawah aturan pajak yang ditetapkan oleh undang-undang. Siklus hidup mana yang dipilih, dan mengapa? Waterfall: kebutuhan bersifat stabil dan sepenuhnya diketahui di awal, aturan dapat didokumentasikan sepenuhnya dalam tahap analisis, dan dokumentasi menyeluruh sangat penting untuk sistem yang harus akurat dan diaudit.
- Sebuah startup ingin membuat aplikasi untuk jenis acara sosial baru; penggunanya belum yakin fitur apa yang mereka inginkan. RAD: kebutuhan tidak jelas dan akan berubah, sehingga prototipe yang dicoba dan direaksikan pengguna dapat mengungkap kebutuhan tersebut dengan cepat, dan sistem yang kecil cocok untuk pembangunan ulang yang cepat.
- Sebutkan modelnya, lalu hubungkan dua sifatnya dengan dua fakta dalam skenario tersebut.
Sebuah tim kecil harus membuat aplikasi di mana penggunanya tidak tahu persis apa yang mereka inginkan, dan pengguna dapat mencoba versi setiap minggu. Siklus hidup mana yang paling cocok?
Persyaratan yang tidak jelas, berubah ditambah pengguna yang tersedia adalah kasus RAD. Waterfall memerlukan persyaratan yang tetap sejak awal.
Lima tahap
- Analisis: tentukan apa program harus lakukan; kumpulkan dan dokumentasikan kebutuhan dari pengguna.
- Desain: tentukan bagaimana: struktur data, algoritma, modul, antarmuka pengguna, tata letak file, yang dinyatakan dalam bagan struktur, flowchart, dan kode semu.
- Pengkodean (implementasi): tulis kode sumber mengikuti desain. Pengujian: jalankan program terhadap data uji yang direncanakan dan perbaiki kesalahan yang ditemukan.
- Pemeliharaan: setelah rilis, pastikan program tetap berfungsi dan bermanfaat, perbaiki cacat, sesuaikan dengan perubahan, dan tingkatkan kinerjanya.
Siklus hidup pengembangan perangkat lunak
Melalui tahap-tahap yang dilalui setiap proyek. Mendapatkan persyaratan yang tepat dalam analisis sangat penting — kesalahan yang tertangkap saat pengujian jauh lebih mahal diperbaiki daripada yang tertangkap sejak dini.
Tahap analisis terutama tentang menentukan:
Analisis mengumpulkan persyaratan (yang "apa"); desain memutuskan yang "bagaimana".
Urutkan tahap-tahap siklus hidup pengembangan program.
Apa, bagaimana, bangun, periksa, terus bekerja. Dalam model iteratif, tahap tengah berulang, tetapi urutan di dalam setiap putaran sama.
Contoh terpecahkan: apa yang terjadi dalam analisis dan desain
- Jelaskan apa yang terjadi selama tahap analisis dan desain dalam siklus hidup pengembangan program. [4]
- Analisis: para pengembang mewawancarai dan mengamati pengguna untuk mengetahui apa yang program harus lakukan; mereka mengidentifikasi input, output, dan pemrosesan yang diperlukan, serta menulis spesifikasi kebutuhan yang disetujui oleh pelanggan.
- Desain: para pengembang memutuskan bagaimana program akan memenuhi persyaratan tersebut; mereka memilih struktur data dan algoritma, memecah program menjadi modul pada bagan struktur, merancang layar dan file, serta menulis pseudocode.
- Dua tindakan dan satu produk untuk setiap tahap. "Mereka menganalisis masalah" hanya mengulang judul dan tidak mendapatkan nilai apa pun.
⟦⟧ Nilai yang sering terlewat
- Analisis adalah apa, desain adalah bagaimana. "Memutuskan algoritma" termasuk dalam kategori desain.
- Waterfall bukan "yang buruk". Kekuatannya terletak pada persyaratan yang stabil dan terdokumentasi; kelemahannya adalah perubahan. Berikan keduanya ketika diminta manfaat dan kekurangan.
- RAD bukan sekadar "cepat". Ciri utamanya adalah prototipe dan umpan balik pengguna terhadapnya.
- Pemeliharaan adalah sebuah tahap, bukan setelah dipikirkan: sebagian besar biaya siklus hidup program dihabiskan di sana.
Anda telah memahaminya
- Siklus hidup merencanakan, mengelola, dan mengendalikan proyek: fase-fase, penanda waktu (milestones), pengujian yang tertanam, keputusan yang tercatat, risiko yang dikelola
- Waterfall: linear, setiap tahap disetujui, paling cocok untuk persyaratan stabil, kurang baik saat ada perubahan · Iteratif: versi berulang yang diperhalus, mendeteksi masalah lebih awal, lebih sulit diestimasi · RAD: prototipe ditambah umpan balik pengguna, cepat dan fleksibel, membutuhkan ketersediaan pengguna
- Pilih berdasarkan kejelasan persyaratan, kemungkinan perubahan, ukuran, dan risiko, lalu justifikasikan dengan skenario yang relevan
- Tahap-tahapnya: analisis (apa) → desain (bagaimana) → pemrograman → pengujian → pemeliharaan