EAS KPPL (E)
Nama : Amelia Nova Safitri
NRP : 5025231041
EAS Konsep Pengembangan Perangkat Lunak (KPPL)
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
Jawab:
- Proses analisys model ke desain model merupakan langkah yang penting untuk "menjembatani" analisis dan implementasi perangkat lunak.
- Langkah yang perlu dilakukan untuk transformasi dari fase analisis model ke desain model:
- Memastikan kebutuhan dalam requirements model dipahami dengan baik
- Aktivitasnya bisa berupa meninjau ulang dokumem kebutuhan dan mengidentifikasi elemen penting seperti fitur, fungsi, dan batasan sistem.
- Memilih pendekatan yang sesuai dengan kebutuhan sistem
- Pilihan strategi: top-down, bottom-up, hybrid approach.
- Mentranslasikan elemen dalam requirements model ke komponen desain
- Aktivitasnya berupa:
- functional requirements diterjemahkan menjadi modul, fungsi atau layanan dalam desain
- non-functional requirements diterjemahkan menjadi atribut sistem seperti kinerja, keamanan, dan skalabilitas
- actors dan use cases diterjemahkan menjadi UI
- Merancang struktur sistem tingkat tinggi
- Aktivitasnya berupa menentukan pola arsitektur dan membuat diagram arsitektur
- Merancang struktur data
- Aktivitasnya berupa membuat model data, menentukan format penyimpanan data, skema database, atau API
- Merancang interaksi antara pengguna dan sistem serta antarkomponen sistem
- Aktivitasnya berupa merancang UI dan mendefinisikan API
- Merinci komponen individual yang membentuk sistem
- Aktivitasnya berupa menentukan class, method, dan atribut jika menggunakan OOP
- Memastikan model desain memenuhi kebutuhan dan batasan
- Aktivitasnya bisa berupa meninjau desain dengan tim pengembang serta memperbaiki kesalahan minor.
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.
Jawab:
- 5 tahap waterfall yaitu:
- Requirements Analysis
- Design
- Development
- Testing
- Maintenance
- Penjelasan:
- Requirements Analysis
- Mengumpulkan persyaratan fungsional dan non-fungsional yang akan menjadi dasar pengembangan software
- Design
- Requirement Analysis diterjemahkan menjadi desain perangkat lunak mulai dari desain arsitekturnya, desai UI nya, desain basis data, dan desain modul perangkat lunak
- Development/Implementation
- Tim developer akan membuat kode implementasi dari software berdasarkan desain yang telah ditentukan sebelumnya
- Testing
- Setelah implementasi selesai, software akan diuji dulu untuk memastikan fungsinya sudah sesuai atau belum. Di tahap ini juga mengidentifikasi bug (jika ada), pengujian fungsionalitas dan integrasi, serta pengujian kinerja
- Deployment dan Maintenance
- Tahap terakhir ini terjadi setelah software dirilis dan digunakan pengguna. Tujuannya memelihara software agar tetap berjalan sesuai dengan fungsinya
- Kelebihan metode Waterfall:
- Karena membangun softwarenya dengan tahapan yang berurutan maka membantu mengurangi kemungkinan terjadinya kesalahan
- Memiliki sistem rangkaian alur dan akhir yang jelas
- Kekurangan metode Waterfall:
- Tidak fleksibel dan membutuhkan waktu yang lama
- Memiliki keterbatasan dalam menangani perubahan yang mungkin terjadi
- Kesimpulan penggunakan waterfall untuk konteks proyek besar yang memiliki persyaratan tetap:
- Menurut saya metode waterfall dapat diaplikasikan untuk proyek besar dan memiliki persyaratan tetap. Alasannya jika persyaratan stabil, jadwal dan anggarannya jelas, kebutuhan untuk dokumentasinya detail, metode waterfall adalah pendekatan yang efektif karena persyaratan tidak berubah ubah.
Jelaskan perbedaan antara architectural design dan detailed design. Mengapa kedua jenis desain tersebut diperlukan dalam proses pengembangan perangkat lunak?
Jawab:
- Konsep desain merupakan prinsip dan teknik dasar yang mendasari desain perangkat lunak.
- Tujuan adanya konsep desain adalah untuk menciptakan perangkat lunak yang berukualitas tinggi dengan struktur yang baik, mudah dipahami, dipelihara, dan diperluas.
- Ada beberapa komponen utama dalam konsep desain, yang saya sebutkan di bawah ada 2 yaitu
- Architectural design
- Arsitektural desain adalah kerangka kerja yang mengatur komponen sistem dan hubungan antarkomponen.
- Detailed design
- Model desain yang menyediakan detail tentang struktur data perangkat lunak, antarmuka, dan komponen
- Perbedaan kedua komponen utama tersebut dalam analogi sederhana yaitu
- Architectural Design: Rencana arsitektur gedung informatika its secara keseluruhan
- Detailed Design: Rencana detail setiap ruangan yang ada di gedung informatika its, jaringan komputernya, sistem listrik, dll
- Keduanya sangat penting dalam proses pengembangan perangkat lunak karena saling melengkapi. Keduanya sangat dibutuhkan karena agar sebuah software tidak hanya memenuhi kebutuhan fungsional tetapi juga dapat diimplementasikan secara efektif, efisien, dan berkelanjutan
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 tertulis dan terangkan dalam video presentasi yang diupload di Youtube.)
Jawab:
- Pertama-tama harus membuat System Description dengan nama aplikasi (TokoSedia)
Sistem E-Commerce untuk TokoSedia - Tujuan aplikasi
- Bertujuan untuk memungkinkan pelanggan membeli produk secara online, mempermudah transaksi online, meningkatkan penjualan dengan menyediakan fitur yang memudahkan proses jual beli
- Lingkup aplikasi
- Melayani siklus pembelian produk mulai dari pencarian produk, penambahan ke keranjang belanja, pemudahan pembayaran. Sistem ini bisa diakses oleh pelanggan, admin toko
- Fungsionalitas Utama
- Fitur pencarian katalog produk
- Fitur Pembayaran
- Fitur manajemen produk untuk admin toko
- Fitur manajemen pengguna untuk pelanggan
- Komponen Utama
- UI/UX
- Server back-end
- Database
- API Gateway
- Kebutuhan Pengguna
- Pelanggan: membeli produk dengan mudah dan mendapat informasi tentang produk yang akan dibeli
- Admin toko: mengelola inventaris, harga, dan promo
- Interaksi Sistem dengan Lingkungan Eksternal
- Sistem berinteraksi dengan layanan pembayaran pihak ketiga untuk proses transaksi
- Asumsi dan Batasan
- Sistem ini diasumsikan akan beroperasi pada lingkukan berbasis web dan mendukung akses dari perangkat mobile
- Pembayaran dilakukan melalui integrasi dengan penyedia layanan pembayaran eksternal yang aman
- Saya akan menggunakan metode Agile Scrum untuk merancang sistem tersebut karena:
- Kebutuhan berubah-ubah (tidak cocok dengan metode waterfall)
- Memungkinkan perbaikan berkelanjutan
- Risiko dapat dimitigasi lebih dulu
- Stakeholder (kliennya) terlibat aktif dalam penggunaan aplikasi
- Identifikasi Stakeholder
- Stakehoder utama: Pelanggan, Admin Toko
- Tim scrum: PO, Scrum master, tim pengembang
- Tahapan dan proses dalam metode scrum
- perencanaan print misal 2 minggu
- meeting harian dengan maksimal 15 menit untuk membahas apa yang telah dan akan dikerjakan, hambatan yang dihadapi
- incremental development
- sprint review
- sprint retreospective untuk mengevaluasi proses sprint
- tahapan pengembangan perangkat lunak
- perancangan
- prototyping
- implementasi
- testing
- pemantauan dan pemeliharaan
- monitoring
- menyediakan fitur feedback untuk aplikasi agar pengguna dapat menyampaikan masukan
Komentar
Posting Komentar