Tugas Daring RPL Gideon
Tugas Daring RPL Gideon
Tugas Daring RPL Gideon
1. Waterfall Model
System
Engineering
Requiretmen
Analysis
Design
Coding
Testing
Maintanance
A. Rekayasa sistem
Produk perangkat lunak adalah bagian dari sistem yang besar. Oleh karena itu
persyaratan ditentukan untuk semua komponen sistem dan sebagian dari persyaratan ini
dialokasikan untuk perangkat lunak.Pandangan sistem ini diperlukan ketika perangkat lunak
harus berinteraksi dengan elemen lain seperti Perangkat keras, orang, dan basis data
B. Analisis kebutuhan
Persyaratan dianalisis dan dibuat sebelum melanjutkan ke proses lainnya.
Representasi logis (representasi grafis) dari analisis persyaratan diperlukan untuk
menghindari ambiguitas dalam persyaratan.
Simulasi dan pembuatan prototipe yang ekstensif beberapa kali digunakan untuk
menangkap dan menganalisis persyaratan sistem yang berkaitan dengan interaksi manusia
C. Fase Desain
Tujuan dari fase desain adalah untuk mengubah persyaratan yang ditentukan dalam
dokumen SRS menjadi struktur yang sesuai untuk diimplementasikan dalam beberapa
bahasa pemrograman bahasa pemrograman.
Dalam istilah teknis, selama fase desain, arsitektur perangkat lunak diturunkan dari
dokumen SRS
D. Pengkodean
Pengkodean adalah fase di mana kita benar-benar menulis program di bawah
lingkungan bahasa pemrograman yang sesuai. Ini adalah satu-satunya fase
pengembangan yang diakui dalam proses pengembangan awal, tetapi merupakan
salah satu dari beberapa fase dalam proses waterfall.
Hasil dari fase ini adalah kumpulan modul yang telah diimplementasikan dan diuji.
Pengkodean dapat tunduk pada standar perusahaan, yang dapat mendefinisikan
keseluruhan tata letak program, seperti tajuk untuk komentar di setiap unit, penamaan
konvensi untuk variabel dan sub-program, jumlah maksimum baris di setiap
komponen dan aspek lain yang dianggap layak untuk distandarisasi oleh Perusahaan
E. Pengujian
Selama tahap pengujian, modul-modul diintegrasikan secara terencana.
Modul-modul berbeda yang membentuk produk Perangkat Lunak hampir tidak pernah
diintegrasikan dalam dalam satu kesempatan.
Pengujian dilakukan dengan sejumlah langkah, selama, setiap langkah sistem diuji
dan satu set modul yang telah direncanakan sebelumnya ditambahkan ke dalamnya
F. Maintanance
Pemeliharaan didefinisikan sebagai serangkaian aktivitas yang dilakukan setelah
sistem dikirim ke pelanggan.
Pemeliharaan terdiri dari mengoreksi kesalahan yang tersisa dalam sistem,
(pemeliharaan korektif pemeliharaan), mengadaptasi aplikasi terhadap perubahan
lingkungan (pemeliharaan adaptif), dan meningkatkan, mengubah atau menambah
fitur dan kualitas pemeliharaan), dan meningkatkan, mengubah atau menambah fitur
dan kualitas aplikasi pemeliharaan sempurna).
Biaya pemeliharaan sering kali lebih dari 60% dari total biaya perangkat lunak, dan
sekitar 20% dari biaya pemeliharaan dapat dikaitkan dengan masing-masing korektif
dan adaptif pemeliharaan, sementara lebih dari 50% disebabkan oleh pemeliharaan
sempurna.
2. Waterfall Model
adalah salah satu model proses pengembangan perangkat lunak yang mengikuti
pendekatan linear dan sekuensial. Model ini terbagi menjadi beberapa fase yang harus
diselesaikan secara berurutan, di mana setiap fase bergantung pada selesainya fase
sebelumnya. Fase-fase utama dalam model waterfall adalah:
1. Requirement Gathering (Pengumpulan Kebutuhan):
Tahap awal di mana kebutuhan pelanggan dan stakeholder dikumpulkan dan
didokumentasikan secara detail.
2. Analysis (Analisis):
Kebutuhan yang dikumpulkan dievaluasi dan dianalisis untuk memastikan semua
aspek telah dipertimbangkan dan dipahami dengan baik.
3. Design (Desain):
Berdasarkan analisis, perancangan sistem dan struktur perangkat lunak dibuat. Ini
termasuk perancangan arsitektur, logika, dan struktur data.
4. Implementation (Implementasi):
Tahap di mana kode perangkat lunak sebenarnya ditulis dan pengembangan
perangkat lunak dilakukan.
5. Testing (Pengujian):
Setelah implementasi, perangkat lunak diuji untuk memastikan bahwa itu bekerja
sesuai dengan kebutuhan dan tidak memiliki bug yang signifikan.
6.Deployment (Pengimplementasian):
Setelah pengujian selesai, perangkat lunak siap untuk diperkenalkan dan digunakan
oleh pengguna akhir.
7. Maintenance (Pemeliharaan):
Setelah perangkat lunak dideploy, pemeliharaan rutin dilakukan untuk memperbaiki
bug, menambah fitur, atau melakukan perubahan sesuai dengan umpan balik pengguna.
Diagram Model Waterfall:
------------------------------------------------------------------------------------
| Requirement | Analysis | Design | Implementation |
| Gathering | | | |
-----------------------------------------------------------------------------------------
| Testing |
| |
---------------------------------------------------------------------------------------
|
V
Deployment & Maintenance
Kelebihan Model Waterfall:
- Struktur yang jelas dan linear memudahkan pemahaman proses pengembangan perangkat
lunak.
- Cocok untuk proyek dengan kebutuhan yang stabil dan terdefinisi dengan baik.
- Dokumentasi yang kuat karena setiap fase memiliki deliverable yang terukur.
Keterbatasan Model Waterfall:
- Kurangnya fleksibilitas karena setiap fase harus selesai sebelum memulai fase berikutnya.
- Tidak cocok untuk proyek yang memerlukan iterasi dan perubahan berulang.
- Keterbatasan dalam menanggapi perubahan kebutuhan pengguna yang mungkin muncul di
tengah jalan.
3. Prototype model
Prototipe dalam pengembangan perangkat lunak adalah versi awal dari suatu produk
yang dibuat untuk menguji, mendemonstrasikan, dan mengumpulkan umpan balik dari
pengguna sebelum pengembangan produk yang sebenarnya dimulai. Ini membantu tim
pengembangan perangkat lunak untuk memahami kebutuhan pengguna dengan lebih baik,
mengidentifikasi masalah potensial, dan mengurangi risiko pengembangan produk.
Gambar Prototype model:
at
Requirements
Gathering
Quick Design
Refine
Requrents Build
Incoporating Protottype
costumer
Costomer
Evaluation of
Prototype
Acceotance by Costumer
Design
Implementation
Test
Maintanance
A. Requirements Gathering :
Merujuk pada proses mengumpulkan informasi, kebutuhan, dan persyaratan dari
stakeholder, pengguna, atau pihak terkait lainnya terkait suatu proyek pengembangan
perangkat lunak atau solusi teknologi.
B. Quick Design
Quick Design merujuk pada pendekatan desain yang fokus pada penciptaan solusi atau
prototipe dengan cepat, seringkali dalam waktu yang singkat. Tujuan dari "Quick Design"
adalah untuk mendapatkan pemahaman yang lebih cepat tentang kebutuhan pengguna,
memvalidasi konsep, menguji hipotesis, dan meminimalkan risiko sebelum mengalokasikan
sumber daya besar dalam pengembangan produk atau solusi secara penuh.
C. Customer Evaluation of Prototype
adalah proses di mana pelanggan atau pengguna potensial diberikan kesempatan untuk
mengevaluasi atau menguji prototipe produk atau solusi sebelum produk tersebut benar-benar
diluncurkan ke pasar.
D. Proses 'Refine Requirements Incorporating Customer :
mengacu pada langkah-langkah yang diambil untuk memperbaiki atau menyesuaikan
kebutuhan suatu produk atau layanan dengan mempertimbangkan dan menggunakan
masukan dari pelanggan.
7. Untuk setiap aplikasi yang berbeda, ada model siklus hidup pengembangan perangkat
lunak yang lebih cocok tergantung pada kompleksitas, tujuan, dan persyaratan
pengguna. Berikut adalah pilihan model siklus hidup pengembangan yang dapat
dipertimbangkan untuk setiap aplikasi:
(i) Sebuah permainan:
Pilihan model yang cocok adalah Agile atau Iterative model. Dalam pengembangan game,
kecepatan dan fleksibilitas sangat penting. Model ini memungkinkan untuk mengubah desain
dan fitur permainan secara terus-menerus berdasarkan umpan balik dari pengguna atau hasil
pengujian. Pengembang dapat merilis versi permainan yang lebih kecil secara berulang-ulang
(iterasi) sambil terus menambahkan fitur dan memperbaiki kekurangan yang ditemukan.
(ii) Sebuah editor teks baru:
Model yang mungkin lebih cocok adalah Waterfall atau Spiral model. Dalam
pengembangan editor teks, fokus pada fase perencanaan, desain, dan implementasi yang
terstruktur seringkali menjadi prioritas. Waterfall memberikan pendekatan berurutan, di mana
setiap fase harus diselesaikan sebelum melanjutkan ke fase berikutnya. Spiral model juga
cocok karena memungkinkan iterasi dalam pengembangan sambil mempertahankan
pendekatan yang sistematis.
(iii) Kompiler untuk bahasa baru:
Pilihan yang tepat mungkin adalah Spiral atau Incremental model. Dalam pengembangan
kompiler, penting untuk memiliki iterasi yang berulang dan pengujian yang menyeluruh
terhadap setiap bagian dari kompiler. Spiral model memungkinkan perubahan berkelanjutan
sambil tetap fokus pada pengujian yang ketat di setiap iterasi. Incremental model juga efektif
karena memungkinkan kompiler untuk dibangun secara bertahap dengan menambahkan fitur
dan fungsionalitas baru.
(iv) Sebuah perangkat lunak untuk manajemen rumah sakit:
Model yang paling sesuai adalah V-Model atau Incremental model. Dalam pengembangan
perangkat lunak untuk manajemen rumah sakit, validasi yang ketat, dan pengujian yang
komprehensif sangat penting. V-Model memastikan bahwa setiap tahap pengembangan
memiliki fase yang sesuai untuk pengujian yang mendalam sebelum melanjutkan ke tahap
berikutnya. Incremental model juga cocok karena memungkinkan penambahan fungsionalitas
secara bertahap sambil menjaga fokus pada pengujian dan validasi setiap kali fitur baru
ditambahkan.
Pemilihan model yang tepat bergantung pada kompleksitas, kebutuhan pengguna, sifat
aplikasi, dan preferensi pengembang. Jika memungkinkan, kombinasi dari beberapa model
siklus hidup juga dapat diterapkan untuk memenuhi kebutuhan yang berbeda dari setiap
aplikasi.
Yang saya pilih adalahan “A new text editor”
Pemilihan model siklus hidup pengembangan perangkat lunak haruslah berdasarkan
pada tujuan dan kebutuhan spesifik dari proyek yang ingin Anda kerjakan. Berikut adalah
alasan yang tepat untuk memilih model tertentu dalam konteks pengembangan editor teks
baru:
1. Waterfall Model:
->Struktur yang Terorganisir: Waterfall Model menyediakan struktur yang terorganisir
dengan tahapan yang jelas dari perencanaan, analisis, desain, implementasi, pengujian,
dan pemeliharaan. Ini cocok jika Anda memiliki pemahaman yang jelas tentang
kebutuhan dan spesifikasi editor teks yang akan dibuat.
->Ketepatan Spesifikasi Awal: Jika spesifikasi awal editor teks sudah didefinisikan
dengan baik dan ada sedikit kemungkinan perubahan besar pada fitur atau fungsi yang
direncanakan, Waterfall dapat efektif dalam mengikuti rencana yang telah ditetapkan.
2. Spiral Model:
->Fleksibilitas dan Adaptabilitas: Spiral Model lebih cocok jika ada tingkat
ketidakpastian yang lebih tinggi, atau jika ada kemungkinan besar perubahan besar pada
kebutuhan editor teks. Model ini memungkinkan untuk iterasi yang berulang serta
penyesuaian terhadap perubahan yang mungkin terjadi.
->Evaluasi Berulang dan Pengembangan Bertahap: Dalam pengembangan editor teks,
mungkin perlu untuk melakukan evaluasi berulang terhadap fitur-fitur yang sedang
dikembangkan dan menyesuaikan desain atau fitur berdasarkan umpan balik yang
diterima.
Pemilihan model harus didasarkan pada tingkat kompleksitas proyek, kebutuhan
fleksibilitas, serta tingkat perubahan yang mungkin terjadi pada persyaratan atau fitur
editor teks. Kedua model memiliki kelebihan dan kelemahan masing-masing, dan
pemilihan bergantung pada kebutuhan spesifik dari proyek Anda.
10. Ada banyak model pengembangan perangkat lunak yang berbeda, dan setiap model
memiliki pendekatan yang berbeda dalam siklus hidup pengembangan perangkat
lunak. Beberapa model pengembangan perangkat lunak yang umum digunakan
adalah:
1. Model Air Terjun (Waterfall Model): Model ini mengikuti urutan linier dan berurutan
dalam siklus pengembangan, dimulai dari tahap analisis, desain, implementasi, pengujian,
instalasi, dan pemeliharaan. Setiap fase harus selesai sebelum memasuki fase berikutnya.
2. Model Prototipe: Pendekatan ini melibatkan pembuatan prototipe perangkat lunak yang
digunakan untuk memahami kebutuhan pengguna dengan lebih baik. Prototipe ini dapat
berkembang melalui iterasi dan umpan balik untuk mencapai solusi yang diinginkan.
3. Model Spiral: Model ini melibatkan siklus pengembangan berulang yang mencakup
empat fase utama: perencanaan, analisis risiko, rekayasa, dan evaluasi. Setiap siklus
melibatkan identifikasi risiko dan mitigasi sebelum melanjutkan ke fase berikutnya.
4. Model Incremental: Dalam pendekatan ini, proyek dibagi menjadi serangkaian
inkremental (bagian kecil) yang dikembangkan secara terpisah. Setiap inkremental
menambahkan fungsionalitas baru ke produk perangkat lunak, sehingga produk tersebut
berkembang secara bertahap.
5. Model RAD (Rapid Application Development): RAD adalah pendekatan yang
memungkinkan pengembangan cepat dan iteratif dari perangkat lunak dengan
memanfaatkan prototipe dan penggunaan umpan balik. Pendekatan ini fokus pada
pengembangan dengan cepat dalam waktu singkat.
Rinciannya untuk model RAD adalah sebagai berikut:
RAD (Rapid Application Development) adalah suatu metodologi pengembangan
perangkat lunak yang berfokus pada proses pengembangan yang cepat dan adaptif.
Berikut adalah langkah-langkah utama dalam model RAD:
->Pemilihan Tim: Tim pengembangan yang kuat dan terdiri dari anggota yang
berpengalaman dan memiliki kemampuan yang diperlukan dipilih untuk memastikan
efisiensi dalam pengembangan.
-> Pemodelan Bisnis: Tahap awal dalam model RAD adalah pemodelan bisnis yang
intensif. Ini melibatkan pengidentifikasian kebutuhan inti dari pengguna dan proses bisnis
yang akan didukung oleh aplikasi.
->. Pembuatan Prototipe: Berbeda dengan pendekatan tradisional, dalam RAD, prototipe
cepat dibangun dengan fokus pada fungsionalitas inti yang dapat disampaikan kepada
pengguna untuk mendapatkan umpan balik secepat mungkin.
->. Iterasi dan Umpan Balik: Proses ini melibatkan serangkaian iterasi di mana prototipe
dievaluasi oleh pengguna dan stakeholder lainnya. Umpan balik dari pengguna
diintegrasikan ke dalam iterasi berikutnya untuk memperbaiki dan mengembangkan
prototipe lebih lanjut.
->. Pengembangan Secara Iteratif: Berdasarkan umpan balik yang diterima,
pengembangan dilakukan secara iteratif dengan fokus pada peningkatan fungsionalitas,
kinerja, dan keamanan.
->. Integrasi dan Pengujian: Modul-modul yang dikembangkan diintegrasikan secara
terus-menerus dalam siklus pengembangan. Pengujian dilakukan secara terus-menerus
untuk memastikan bahwa produk tetap memenuhi standar kualitas yang ditetapkan.
->. Pengiriman dan Pemeliharaan: Setelah pengembangan selesai, produk perangkat lunak
diberikan kepada pengguna akhir. Selain itu, perawatan dan pemeliharaan rutin dilakukan
untuk memastikan produk tetap berjalan dengan baik dan memenuhi kebutuhan yang
berubah dari waktu ke waktu.
Model RAD memungkinkan perubahan cepat, penyesuaian, dan pengembangan yang
fleksibel untuk memenuhi kebutuhan bisnis yang berkembang dengan cepat. Ini juga
meningkatkan keterlibatan pengguna dalam proses pengembangan, sehingga
menghasilkan produk yang lebih sesuai dengan kebutuhan pengguna akhir.
11. Model Spiral dan Model Prototyping adalah dua pendekatan yang berbeda dalam
pengembangan perangkat lunak, masing-masing memiliki kelebihan dan kekurangan
yang unik.
Model Spiral:
Kelebihan:
1. Manajemen Risiko yang Baik
2. Fleksibilitas dalam Pengembangan
3. Perhatian terhadap Kualitas
Kekurangan:
1. Kompleksitas Pengelolaan Proyek
2. Biaya yang Lebih Tinggi
3. Keterbatasan pada Proyek Kecil
Model Prototyping:
Kelebihan
1. Pemahaman Kebutuhan yang Lebih Baik:
2. Pengembangan Cepat
3. Umpan Balik Pengguna yang Dini
Kekurangan
1. Kualitas yang Rendah
2. Risiko Ketidakjelasan
3. Keterbatasan dalam Skala Besar
13. Setiap model memiliki kelebihan dan kelemahan masing-masing tergantung pada
kebutuhan proyek. Berikut adalah beberapa model rekayasa perangkat lunak beserta
kelebihan dan kekurangannya:
1. Model Air Terjun (Waterfall Model):
Kelebihan:
- Pendekatan yang terstruktur dan mudah dipahami.
- Tahapan yang jelas membuat manajemen proyek menjadi lebih mudah.
- Cocok untuk proyek dengan persyaratan yang stabil dan jelas.
Kekurangan:
- Kurang fleksibel terhadap perubahan persyaratan.
- Kesulitan menyesuaikan perubahan setelah tahapan telah selesai.
- Tidak menampung umpan balik dari pengguna atau pelanggan.
2. Model Prototipe (Prototype Model):
Kelebihan:
- Memungkinkan pengguna melihat dan memberikan umpan balik pada tahap awal
pengembangan.
- Memfasilitasi perubahan persyaratan lebih mudah.
- Mempercepat pengembangan dengan mengurangi kesalahan desain.
Kekurangan:
- Kualitas prototipe awal mungkin rendah karena fokus pada cepatnya pengembangan.
- Memerlukan manajemen yang baik agar prototipe tidak menjadi produk akhir.
3. Model Incremental (Incremental Model):
Kelebihan:
- Memungkinkan untuk pengembangan berulang yang bertahap.
- Kemampuan menghasilkan produk yang dapat digunakan dalam periode singkat.
- Memudahkan pengujian dan integrasi pada setiap inkremental.
Kekurangan:
- Memerlukan perencanaan yang matang untuk menentukan inkremental yang tepat.
- Mungkin sulit mengelola ketergantungan antar-inkremental.
4. Model Spiral:
Kelebihan:
- Menggabungkan elemen dari model lainnya seperti prototyping dan waterfall.
- Memungkinkan untuk pengendalian risiko yang lebih baik dengan penekanan pada
evaluasi risiko secara berkala.
- Dapat diubah untuk memenuhi kebutuhan proyek yang berubah-ubah.
Kekurangan:
- Kompleksitas yang tinggi, terutama dalam mengelola setiap iterasi spiral.
- Membutuhkan tim yang berpengalaman dalam pengelolaan risiko dan evaluasi yang
baik.
5. Model Agile:
Kelebihan:
- Mampu menyesuaikan perubahan persyaratan dengan cepat.
- Memfasilitasi kolaborasi tim yang intensif dan komunikasi yang baik.
- Mengutamakan produk yang berfungsi dengan waktu pengembangan yang cepat.
Kekurangan:
- Diperlukan komitmen yang tinggi dari anggota tim dan keterlibatan pelanggan yang
aktif.
- Kesulitan dalam menjaga dokumentasi yang lengkap.
6. Model DevOps:
Kelebihan:
- Mengintegrasikan pengembangan (development) dan operasi (operations) untuk
penyebaran yang lebih cepat.
- Mempercepat proses pengembangan dan penyebaran melalui otomatisasi.
- Mendorong kolaborasi dan komunikasi antara tim pengembangan dan operasi.
Kekurangan:
- Memerlukan investasi yang besar dalam alat, pelatihan, dan infrastruktur.
- Memerlukan perubahan budaya organisasi yang mungkin sulit diadopsi.
14. Terdapat beberapa model siklus hidup pengembangan perangkat lunak yang berbeda,
dan tiap model memiliki pendekatan serta karakteristiknya sendiri. Berikut
perbandingan antara beberapa model utama:
1. Model Waterfall (Air Terjun):
->Linear dan Berurutan: Proses pengembangan dilakukan secara berurutan dari satu
tahap ke tahap berikutnya.
->Tidak Fleksibel: Kesulitan untuk mengakomodasi perubahan yang terjadi di tengah
proses pengembangan.
-> Sesuai untuk Proyek yang Terdefinisi dengan Jelas: Cocok untuk proyek dengan
kebutuhan yang jelas dan stabil.
2. Model Spiral (Spiral):
->Iteratif dan Berulang: Proses pengembangan dilakukan melalui iterasi yang berulang,
dengan fokus pada mitigasi risiko.
-> Fleksibel dan Responsif terhadap Perubahan: Mampu menangani perubahan
kebutuhan dan risiko dengan lebih baik dibandingkan Waterfall.
-> Lebih Tepat untuk Proyek yang Kompleks: Cocok untuk proyek yang memiliki
banyak risiko dan kebutuhan yang dapat berubah.
3. Model Incremental (Bertahap):
->Pengembangan Berdasarkan Modul/Bagian: Proses pengembangan dilakukan dengan
membuat modul atau bagian secara terpisah dan kemudian digabungkan.
->Mudah untuk Penyesuaian: Memungkinkan penambahan fitur atau perubahan
kebutuhan di setiap tahap pengembangan.
->Cocok untuk Pengembangan yang Terus Menerus: Baik untuk proyek yang
memungkinkan penambahan fungsionalitas secara bertahap.
16. Dalam situasi di mana pengembangan produk melibatkan sejumlah besar risiko teknis
dan risiko terkait pelanggan, pendekatan yang dapat diadopsi adalah menggunakan
model siklus hidup pengembangan produk yang fleksibel dan dapat menangani
perubahan dengan baik. Salah satu model yang bisa cocok adalah model siklus hidup
pengembangan produk adaptif atau model siklus hidup iteratif, seperti model siklus
hidup pengembangan perangkat lunak Agile.
17. Untuk proyek perangkat lunak di mana kebutuhan pelanggan cenderung sering
berubah, pendekatan siklus hidup yang fleksibel dan adaptif seperti model
pengembangan perangkat lunak Agile mungkin lebih sesuai. Salah satu metodologi
Agile yang populer adalah Scrum. Ini adalah pendekatan yang berfokus pada
fleksibilitas, kolaborasi tim yang kuat, dan responsibilitas terhadap perubahan
kebutuhan.
Berikut adalah alasan mengapa model Agile, khususnya Scrum, cocok untuk proyek
seperti ini:
1. Fleksibilitas terhadap perubahan
2. Keterlibatan pelanggan yang kuat
3.Iterasi berulang untuk pengembangan bertahap
4. Peningkatan yang berkelanjutan
5. Kualitas yang lebih tinggi