Daru Fadhilah Nahdi
5025221282
KPPL E
Evaluasi Akhir Semester
Soal :
- 1. Dalam Pengembangan Perangkat Lunak ada fase Analisis dan Desain.
- - Terangkan aktivitas yang dilakukan dalam fase Analisis dan Desain
- - Apa Output dari aktivitas tersebut untuk mendukung pengembangan perangkat lunak.
- 2. Dalam model Waterfall, setiap tahap memiliki fungsi spesifik. Jelaskan lima tahap utama dalam model ini, serta sebutkan kelebihan dan kekurangan dari model tersebut dalam konteks proyek besar yang memiliki persyaratan tetap.
- 3. Jelaskan perbedaan antara architectural design dan detailed design. Mengapa kedua jenis desain tersebut diperlukan dalam proses pengembangan perangkat lunak?
- 4. Studi Kasus
- Sebuah perusahaan membutuhkan sistem e-commerce untuk menjual produk digital seperti foto, video, desain poster, ebook. Saat ini transaksi dihandle dengan WhatsApp. Namun seiring dengan perkembangan bisnis tools tersebut tidak mampu menangani lonjakan transaksi. Buatkan sistem / aplikasi yang mampu menangani lonjakan transaksi pada musim tertentu. Jelaskan pendekatan rekayasa perangkat lunak yang akan Anda gunakan untuk merancang, membangun, dan menguji sistem tersebut agar memenuhi kebutuhan klien.
Jawaban :
1. a.
- Pada fase analisis, para developer fokus dalam pengumpulan data dan observasi kebutuhan sistem. Mereka bisa mengumpulkan informasi dengan berbagai media seperti mewawancara potential usernya dan survei ke masayarakat juga. Setelah itu baru bisa mengidentifikasi masalah yang muncul dan evaluasi apakah masalah yang ditemukan dapat diselesaikan nanti. Lalu mereka bisa menetapkan tujuan projek dan merumuskan batasan dari sistem.
- Fase desain dimulai setelah analisis kebutuhan sudah mencukupi. Disini para developer akan memulai dengan perancangan arsitektur sistem. Hal ini penting karena akan menjadi fondasi bagaimana software akan bekerja. Jadi disini ditentukan blueprint teknisnya seperti struktur data, algoritma, dan user interface. Karena itu pendesainan UI juga menjadi proses ini. Lallu untuk mengembangkan desain lebih lanjut bisa dibuat prototype nya agar bisa mendapat feedback sebelum implementasi.
b. Output dari aktivitas
Jika kedua fase tersebut sudah selesai, maka akan didapatkan beberapa hal. Tim developer akan memiliki dokumen yang memberi tahu kebutuhan apa saja yang dibutuhkan untuk implementasi. Tentunya juga akan ada diagram proses akan bagaimana sistem akan berkerja. Lalu juga ada sebuah prototype untuk memberikan gambar kisaran implementasi.
2. --- 5 Tahap Utama :
Di tahap ini para developer berfokus pada pengumpulan dan pemahaman kebutuhan pengguna dalam sistem software ini melalui beberapa cara seperti wawancara dan survei. Dari sini para developer dapat membuat sebuah dokumen spesifikasi kebutuhan yang mencakup persyaratan fungsional dan non-fungsional.
Pada tahap ini hal yang dilakukan adalah merancang desain software yang memenuhi kebutuhan yang telah dikumpulkan . Desainnya termasuk arsitektur sistem, uesr interface, serta spesifikasi teknis lainnya.
Di tahap ini software akan diimplementasikan dan dibuat untuk production. Proses ini mencakup integrasi modul-modul yang sudah dikembangkan oleh para developer tim.
Setelah implementasi selesai, perangkat lunak akan di test untuk memastikan bahwa semua fungsi berjalan sesuai dengan kebutuhan. Testing bertujuan untuk menemukan dan memperbaiki bug sebelum software di deploy .
Setelah software di deploy, fase maintenance akan dilaksanakan untuk menjaga software agar tidak rusak. Hal ini mencakup dari penjagaan dari physical server sampai ke pengembangan atau update software lebih lanjut untuk memenuhi keinginan user yang baru.
--- Kelebihan Model Waterfall
- Model ini strukturnya jelas sehingga tahapannya terdefinisi dengan baik yang memudahkan manajemen projek.
- Karena model ini memiliki fase yang bertahap, para developer memiliki kontrol terhadap pengembangan yang lebih baik terhadap hal seperti jadwal.
--- Kekurangan Model Waterfall
- Model ini tidak mendukung perubahan setelah fase analisis selesai. Jika ada kesalahan atau perubahan kebutuhan di kemudian hari, akan sulit untuk kembali dan melakukan revisi. Jadinya kurang fleksibel
- Dalam proyek besar dengan persyaratan tetap, jika kesalahan terjadi pada tahap-tahap awal, dampaknya bisa sangat besar dan mahal untuk diperbaiki di tahap selanjutnya
- Model Waterfall lebih cocok untuk proyek dengan kebutuhan yang jelas dan stabil. Jika ada kemungkinan perubahan, metode ini bisa menjadi kurang efektif.
3. Perbedaan antara Architectural Design dan Detailed Design
Architectural design adalah tahap awal dalam proses desain software yang berfokus pada struktur keseluruhan sistem. Hal ini mencakup penentuan komponen utama, hubungan antar komponen, dan gaya arsitektur yang akan digunakan pada softwaer. Tujuannya adalah untuk menciptakan kerangka kerja yang mendukung kebutuhan fungsional software, seperti keamanan dan skalabilitas. Tahap ini berfokus untuk menyusun gambaran besar dari sistem software, termasuk bagaimana berbagai komponen akan berinteraksi satu sama lain. Hasil dari tahap ini biasanya berupa dokumen arsitektur yang mencakup diagram dan deskripsi tentang komponen serta interaksi di antara komponen.
Detailed design adalah tahap berikutnya setelah architectural design, di mana fokusnya adalah pada spesifikasi detil dari setiap komponen yang telah ditentukan sebelumnya. Hal ini mencakup perancangan interface, algoritma, dan struktur data yang akan digunakan dalam implementasi. Tahap ini berfokus untuk menyediakan detail teknis yang diperlukan untuk implementasi softwarenya. Hal ini mencakup dalam mendefinisikan kelas, metode, dan interaksi spesifik antar modul. Hasil dari tahap ini adalah dokumen desain yang berisi spesifikasi teknis, termasuk diagram kelas dan diagram urutan.
- Mengapa Kedua Jenis Desain Diperlukan
Proyek software sering kali kompleks dan memerlukan pendekatan terstruktur untuk memastikan bahwa semua aspek sistem dipertimbangkan dengan baik agar tidak rugi kedepannya. Architectural design memberikan kerangka kerja untuk memahami bagaimana sistem akan dibangun secara keseluruhan, sementara detailed design menguraikan cara implementasi setiap bagian dari kerangka tersebut. Dengan memisahkan desain menjadi dua tahap, developers dapat lebih mudah mengidentifikasi dan mengelola risiko di setiap level. Architectural design memungkinkan identifikasi masalah potensial pada tingkat sistem sebelum detail teknis ditentukan.
4.
Untuk merancang, membangun, dan menguji sistem e-commerce yang mampu menangani lonjakan transaksi, pendekatan rekayasa perangkat lunak yang dapat digunakan adalah Agile Development. Pendekatan ini memungkinkan tim developer untuk beradaptasi dengan perubahan kebutuhan dalam pengembangan. Berikut adalah langkah-langkah yang akan diambil dalam setiap fase pengembangan sistem tersebut:
1. Perencanaan dan Analisis Kebutuhan
Mengumpulkan kebutuhan dari kepentingan, termasuk fitur yang diinginkan seperti sistem pembayaran, manajemen produk digital, dan analisis penjualan. Tahap ini menghasilkan sebuah dokumen spesifikasi kebutuhan yang mencakup semua fitur penting serta skenario penggunaan.
2. Desain Arsitektur
Menentukan arsitektur sistem yang skalabel dan dapat menangani lonjakan trafik, seperti menggunakan arsitektur berbasis microservices. Memilih teknologi yang tepat untuk front-end (misalnya React atau Vue.js) dan back-end (misalnya Node.js atau Django). Tahap ini akan menghasilkan diagram arsitektur sistem dan dokumen desain arsitektur yang menjelaskan interaksi antar komponen.
3. Desain Rinci
Mengembangkan desain rinci untuk setiap komponen, termasuk database, User Interface , dan API untuk integrasi dengan payment gateway.
4. Pengembangan
Melakukan pengembangan/implementasi berdasarkan desain rinci. Mengimplementasikan fitur-fitur seperti keranjang belanja, sistem pembayaran, dan pengelolaan produk digital. Pada akhirnya akan telah terbuatnya source code yang bisa dilakukan testing
5. Testing
Melakukan berbagai jenis pengujian, termasuk pengujian unit, integrasi, dan beban load untuk memastikan sistem dapat menangani lonjakan transaksi saat puncak permintaan. Lalu akan dibuat laporan hasil pengujian yang mencakup bug yang ditemukan dan status perbaikan untuk evaluasi.
6. Implementasi
Deploy sistem software ke lingkungan production. Memberikan pelatihan kepada para pengguna tentang cara menggunakan sistem baru. Tahap ini menghasilkan sistem e-commerce yang berfungsi penuh dan siap digunakan oleh user.
7. Pemeliharaan dan Pembaruan
Memantau kinerja sistem secara terus-menerus dan melakukan pembaruan berdasarkan umpan balik pengguna serta analisis data penjualan. Melakukan tahap ini akan menghasilkan versi terbaru dari perangkat lunak dengan perbaikan bug dan penambahan fitur baru sesuai kebutuhan pasar.
Dengan menggunakan pendekatan Agile dalam rekayasa perangkat lunak untuk sistem e-commerce ini, perusahaan akan dapat merespons perubahan dengan cepat serta memastikan bahwa sistem dapat menangani lonjakan transaksi secara efektif. Hal ini sangat penting untuk mendukung pertumbuhan bisnis di masa depan, terutama selama musim puncak penjualan.
Comments
Post a Comment