Tuesday, September 24, 2024
Unified Process
Tuesday, September 17, 2024
Process Model
Metode Waterfall
Sebagai salah satu metode software development, Waterfall juga dikenal sebagai Software Development Life Cycle (SDLC) di mana merupakan salah satu metode pengembangan perangkat lunak yang mengikuti pola aliran, seperti air terjun. Dalam metode ini, setiap tahapan pengembangan dilakukan secara berurutan, mengalir dari atas ke bawah.
Metode Waterfall adalah pendekatan awal dalam SDLC yang digunakan dalam pengembangan perangkat lunak. Adapun metode ini pertama kali diperkenalkan di Symposium on Advanced Programming Method for Digital Computers pada tanggal 29 Juni 1956 oleh Herbert D. Benington. Perkenalan ini ia sampaikan saat mempresentasikan mengenai pengembangan software Semi Automatic Ground Envinronment (SAGE).
Kemudian, Benington kembali mempresentasikan metode Waterfall pada 1983. Pada kala itu, Benington menjelaskan tentang fase dalam proses pengembangan Waterfall. Dua tahun setelahnya, Departemen Pertahanan Amerika Serikat juga mulai menggunakan metode Waterfall dengan menerapkan enam fase Waterfall, yaitu Preliminary Design, Detailed Design, Coding and Unit Testing, Integration, dan Testing.
Bagaimana Proses Metode Waterfall?
Dinamakan “Waterfall” karena model pengembangannya menyerupai aliran air terjun, di mana setiap tahapan harus diselesaikan sebelum melanjutkan ke tahapan berikutnya.
Dalam metode Waterfall, proses pengembangan perangkat lunak dibagi menjadi beberapa tahap, di antaranya adalah analisis kebutuhan, perancangan, implementasi, pengujian, dan pemeliharaan.
Setiap tahapan memiliki target dan deliverables yang harus dicapai sebelum melanjutkan ke tahapan selanjutnya. Pemisahan tahapan ini bertujuan untuk mencapai kejelasan dan keteraturan dalam proses pengembangan dengan asumsi bahwa setiap tahap telah selesai dengan baik sebelum memasuki tahap berikutnya.
Pada metode Waterfall, umumnya tidak ada kemungkinan untuk kembali ke tahapan sebelumnya setelah tahapan tersebut selesai. Artinya, jika ada perubahan atau kekurangan yang ditemukan di tahap selanjutnya, perbaikan akan dilakukan di tahap pemeliharaan setelah tahap pengujian selesai.
Metode Waterfall telah menjadi salah satu pendekatan yang paling awal dan populer dalam pengembangan perangkat lunak. Meskipun sekarang ada banyak metode pengembangan yang lebih fleksibel dan adaptif, Waterfall masih digunakan dalam proyek-proyek dengan kebutuhan yang jelas, terbatasnya perubahan, dan ketegasan dalam rencana dan jadwal.
Tahapan metode Waterfall
Beberapa tahapan dalam proses metode Waterfall antara lain requirements analysis (analisis kebutuhan), design (perancangan), implementation (implementasi), testing (pengujian), dan deployment & maintenance (deploy dan pemeliharaan).
Requirements analysis
Tahap awal ini melibatkan identifikasi dan pemahaman yang mendalam terhadap kebutuhan pengguna dan pemangku kepentingan. Tujuan utamanya adalah mengumpulkan persyaratan fungsional dan non-fungsional yang akan menjadi dasar dari pengembangan software.
Design
Pada tahap ini, persyaratan yang telah dikumpulkan diterjemahkan menjadi desain perangkat lunak yang spesifik. Perancangan mencakup desain arsitektur sistem, desain user interface atau antarmuka pengguna, desain basis data, dan desain modul perangkat lunak. Tujuannya adalah menciptakan panduan yang jelas bagi tim pengembang dalam mengimplementasikan software.
Implementation
Tahap ini melibatkan proses pengkodean atau implementasi aktual dari software berdasarkan desain yang telah ditentukan sebelumnya. Tim developer menggunakan bahasa pemrograman dan alat pengembangan untuk menghasilkan software yang sesuai dengan spesifikasi desain.
Testing
Setelah implementasi selesai, software akan diuji untuk memastikan bahwa itu berfungsi sesuai dengan persyaratan yang ditentukan sebelumnya. Pengujian meliputi pengujian fungsionalitas, pengujian kesalahan (bug), pengujian integrasi, dan pengujian kinerja. Tujuannya adalah untuk menemukan dan memperbaiki kesalahan yang mungkin ada sebelum perangkat lunak diperkenalkan kepada pengguna akhir.
Deployment and Maintenance
Tahap pemeliharaan terjadi setelah software diluncurkan dan digunakan oleh pengguna. Ini melibatkan pemeliharaan rutin, pembaruan, dan perbaikan yang diperlukan untuk memastikan kinerja yang optimal dan kepatuhan dengan perubahan kebutuhan atau lingkungan yang terjadi seiring waktu.
Adapun tahapan-tahapan tersebut dijalankan secara berurutan, di mana setiap tahap harus selesai sebelum melanjutkan ke tahap berikutnya. Pendekatan linear inilah yang membedakan metode Waterfall dari metode pengembangan software yang lebih iteratif dan adaptif.
Kelebihan dan kekurangan metode Waterfall
Adapun beberapa kelebihan dari metode Waterfall di antaranya adalah memberikan kemampuan untuk departementalisasi dan kontrol yang efektif. Pengembangan perangkat lunak dilakukan melalui serangkaian fase yang berurutan sehingga membantu mengurangi kemungkinan terjadinya kesalahan.
Metode Waterfall juga memiliki sistem rangkaian (alur) dan akhir yang jelas. Proses pengembangan dimulai dari konseptualisasi, melalui tahap desain, implementasi, pengujian, instalasi, penyelesaian masalah, dan berakhir pada tahap operasi dan pemeliharaan.
Walau demikian, layaknya beberapa metode pengembangan software pada umumnya, Waterfall juga memiliki beberapa kekurangan, antara lain tidak fleksibel dan membutuhkan waktu yang lebih lama. Misalnya saja, jika terjadi perubahan di tengah jalan maka akan sulit bagi developer untuk mengubahnya. Sebab, alur linear seperti Waterfall memaksa developer untuk sesuai dari awal hingga akhir.
Metode Waterfall menjadi pendekatan yang telah membentuk dasar dalam pengembangan software selama beberapa dekade. Meskipun metode ini memiliki kelebihan, seperti kejelasan struktur, manajemen project yang terprediksi, dan dokumentasi yang komprehensif, juga terdapat beberapa kekurangan, seperti kurangnya fleksibilitas dan keterbatasan dalam menangani perubahan yang mungkin terjadi.
Pilihan menggunakan metode Waterfall dalam pengembangan software harus didasarkan pada kebutuhan dan karakteristik spesifik dari project tersebut. Jika persyaratan stabil, jadwal dan anggaran yang jelas, serta kebutuhan untuk dokumentasi yang detail, metode Waterfall dapat menjadi pendekatan yang efektif.
Namun, dalam lingkungan yang berubah dengan persyaratan yang tidak pasti atau di mana responsibilitas tim dan kolaborasi yang tinggi diperlukan, metode pengembangan software yang lebih adaptif dan iteratif mungkin lebih cocok.
Referensi
Pressman, Roger.S. "Software Engineering : A Practioner's Approach."
Latihan
Absensi
Tuesday, September 10, 2024
Struktur Proses PL
Struktur proses perangkat lunak atau software process structure adalah serangkaian aktivitas yang dilakukan untuk menentukan, merancang, mengimplementasikan, dan menguji sistem perangkat lunak.
Model proses perangkat lunak adalah representasi abstrak dari proses tersebut, yang menggambarkan proses dari berbagai perspektif. Model ini juga dikenal sebagai siklus hidup pengembangan perangkat lunak.
Model proses perangkat lunak bertujuan untuk meningkatkan desain, manajemen produk, dan manajemen proyek.
Proses Perangkat Lunak adalah serangkaian aktivitas yang koheren untuk menentukan, merancang, mengimplementasikan, dan menguji sistem perangkat lunak. Model proses perangkat lunak adalah representasi abstrak dari suatu proses yang menyajikan deskripsi suatu proses dari beberapa perspektif tertentu.
- Software specification atau requirements engineering adalah sebuah proses untuk memahami dan mendefinisikan layanan apa saja yang diperlukan oleh sistem dan mengidentifikasi kendala pada sistem operasi dan pengembangan.
- Software design and implementation adalah sebuah tahap dimana Software specification di implementasikan kedalam sebuah sistem yang dapat di eksekusi. Proses ini selalu melibatkan desain dan programming tetapi jika pendekatan pengembangan secara bertahap digunakan maka dapat dilakukan penyempurnaan spesifikasi perangkat lunak.
- Software validation atau yang lebih umum dikenal sebagai validasi dan verifikasi dimaksudkan untuk menunjukkan bahwa sistem sesuai dengan spesifikasi dan juga memenuhi ekspektasi pelanggan.
- Software evolution adalah sebuah tahapan dimana perangkat lunak dapat dikembangkan lagi dikemudian hari apabila ada permintaan dari pelanggan.
Jenis-jenis Model Proses Perangkat Lunak
- Model Waterfall air terjun
- Model V
- Model Inkremental
- Model RAD
- Model Agile - Tangkas
- Model iteratif
- Model spiral
- Model prototipe
Referensi
Pressman, Roger.S. "Software Engineering : A Pract ioner's Approach."
Tugas
- https://www.researchgate.net/profile/Aceng-Wahid/publication/346397070_Analisis_Metode_Waterfall_Untuk_Pengembangan_Sistem_Informasi/links/5fbfa91092851c933f5d76b6/Analisis-Metode-Waterfall-Untuk-Pengembangan-Sistem-Informasi.pdf
- https://www.academia.edu/50739307/Comparative_Analysis_of_Software_Process_Models_in_Software_Development
- https://www.academia.edu/61153056/Software_process_models_a_review_and_analysis?uc-g-sw=80199525
- https://ejurnal.itats.ac.id/iptek/article/view/252/298
- https://www.researchgate.net/publication/325699454_Software_process_models_A_review_and_analysis
- https://ejurnal.itats.ac.id/iptek/article/view/252
Monitoring Kelas
Absensi
Tuesday, September 3, 2024
Software Engineering
Quality
- Maintainability – software harus dapat dikembangkan untuk memenuhi kebutuhan yang terus berubah.
- Efficiency – software tidak boleh menggunakan perangkat komputasi yang boros, seperti memori dan processor cycle.
- Correctness – produk software harus memenuhi persyaratan yang sudah ditentukan di dokumen software requirements specification (SRS) dan diimplementasikan dengan benar.
- Reusability – software memiliki reusability yang baik jika modul produk bisa digunakan kembali untuk mengembangkan produk baru.
- Testability – software bisa digunakan untuk menetapkan kriteria pengujian dan mengevaluasi perangkat lunak sesuai dengan kriteria yang sudah ditetapkan.
- Reliability – berkaitan dengan sejauh mana suatu program bisa melakukan fungsi sesuai keinginan dalam periode waktu yang berubah-ubah.
- Portability – software dapat ditransfer dari satu sistem komputer ke lainnya.
- Adaptability – software memungkinkan untuk menjalankan sistem sesuai kebutuhan pengguna.
- Interoperability – kemampuan dua atau lebih functional unit untuk memproses data secara bersamaan.
Proses
Umbrella Activity
Referensi
- Pressman, Roger.S. "Software Engineering : A Pract ioner's Approach."
- https://www.geeksforgeeks.org/umbrella-activities-in-software-engineering/
- https://revou.co/panduan-karir/software-engineering-adalah
- https://www.youtube.com/watch?v=qxv6vPlx2Cs&list=PLmAmHQ-_5ySyCjVtHdSjJ64QU2x5TH8Dy
- https://www.knowledgehut.com/blog/web-development/software-engineering-framework#frequently-asked-questions
- https://www.geeksforgeeks.org/software-engineering-software-process-framework/#what-is-a-software-process-framework
- https://edscl.in/pluginfile.php/1659/mod_resource/content/1/Software%20process%20structure%20and%20model-doc.pdf