High Level Design
Pertemuan 5 - High Level Design
Nama: Rayhan Almer Kusumah
NRP: 5025211115
Kelas: Perancangan Perangkat Lunak (A)
Tahun: 2024
High Level Design
Desain tingkat tinggi (high-level design) adalah fase dalam proses pengembangan perangkat lunak yang berfokus pada definisi struktur dan arsitektur umum dari sistem. Pada tahap ini, gambaran umum dari sistem dikembangkan dengan menentukan komponen-komponen utama, modul-modul, dan interaksi antar bagian-bagian tersebut tanpa masuk ke dalam detail implementasi. High-level design mencakup pembuatan diagram arsitektur, diagram modul, dan deskripsi komponen yang menjelaskan fungsi dan tanggung jawab utama mereka. Tujuan utama dari tahap ini adalah untuk memberikan pemahaman yang jelas tentang bagaimana sistem akan diorganisasikan dan bagaimana elemen-elemen utama akan berinteraksi satu sama lain untuk memenuhi persyaratan fungsional dan non-fungsional.
Pentingnya desain tingkat tinggi terletak pada kemampuannya untuk membentuk landasan yang solid bagi pengembangan lebih lanjut dan detail desain. Dengan mendefinisikan struktur dasar sistem, high-level design membantu dalam identifikasi potensi masalah arsitektural sejak awal, mengurangi risiko dan biaya perubahan di fase-fase selanjutnya. Selain itu, desain tingkat tinggi memberikan panduan bagi pengembang dan tim teknis lainnya, sehingga semua anggota tim memiliki pemahaman yang sama mengenai tujuan dan struktur sistem. Ini juga memfasilitasi komunikasi antara pemangku kepentingan yang berbeda, memastikan bahwa visi dan tujuan proyek dipahami secara konsisten oleh semua pihak yang terlibat.
Pada tugas pertemuan kali ini yaitu terkait high level design saya akan menganalisa high level design dari aplikasi twitter berdasarkan referensi video yang telah diberikan.
Persyaratan untuk Desain Sistem Twitter
- Harus dapat memposting tweet baru (dapat berupa teks, gambar, video, dll).
- Harus dapat mengikuti pengguna lain.
- Harus memiliki fitur berita yang terdiri dari tweet dari orang-orang yang diikuti pengguna.
- Harus dapat mencari tweet.
- Ketersediaan tinggi dengan latensi minimal.
- Sistem harus dapat diskalakan dan efisien.
- Metrik dan analitik.
- Fungsi retweet.
- Tweet favorit.
Estimasi Kapasitas untuk Desain Sistem Twitter
Untuk memperkirakan kapasitas sistem, kita perlu menganalisis perkiraan tingkat klik harian.
Estimasi Lalu Lintas:Misalkan kita memiliki 1 miliar pengguna total dengan 200 juta pengguna aktif harian (DAU), dan rata-rata setiap pengguna men-tweet 5 kali sehari. Ini memberi kita 1 miliar tweet per hari.
Tweet juga dapat berisi media seperti gambar atau video. Kita dapat berasumsi bahwa 10 persen tweet adalah file media yang dibagikan oleh pengguna, yang memberi kita tambahan 100 juta file yang perlu disimpan.
Untuk Permintaan Sistem per Detik (RPS) kita adalah:
1 miliar permintaan per hari diterjemahkan menjadi 12 ribu permintaan per detik.
Estimasi Penyimpanan:
Misalkan setiap pesan rata-rata berukuran 100 byte, kita akan membutuhkan sekitar 100 GB penyimpanan basis data setiap hari.
10 persen dari pesan harian kita (100 juta) adalah file media sesuai persyaratan kita. Misalkan setiap file rata-rata berukuran 50KB, kita akan membutuhkan 5 TB penyimpanan setiap hari.
Untuk 10 tahun membutuhkan 19 PB penyimpanan.
Karena sistem kita menangani 5,1 TB data masuk setiap hari, kita akan membutuhkan bandwidth minimal sekitar 60 MB per detik.
Desain Use Case untuk Desain Sistem Twitter
Pengguna akan mengklik Halaman Twitter dan mereka akan mendapatkan halaman utama. Di dalam halaman utama, terdapat Halaman Beranda, Halaman Pencarian, dan Halaman Notifikasi.
- Di dalam Halaman Beranda, terdapat halaman Tweet Baru serta opsi untuk Memposting Gambar atau Video.
- Pada Tweet Baru, terdapat tombol untuk menyukai, tidak menyukai, memberikan komentar, serta mengikuti / berhenti mengikuti pengguna lain.
- Pengguna tamu hanya memiliki akses untuk melihat tweet apa pun.
- Pengguna terdaftar dapat melihat dan memposting tweet.
- Mereka dapat mengikuti dan berhenti mengikuti pengguna lain.
- Pengguna terdaftar dapat membuat tweet baru.
Comments
Post a Comment