Perancangan Perangkat Lunak - Tugas Pertemuan 5 - High Level Design

 Nama : Timothy Hosia Budianto

NRP : 5025211098

Kelas : PPL - A

Tahun : 2024


High Level Design

High Level Design (Desain Tingkat Tinggi) adalah fase awal dalam proses merancang suatu sistem. Pada tahap ini, perhatian utama difokuskan pada identifikasi dan pemodelan komponen-komponen kunci dari sistem serta hubungan dan interaksi di antara komponen-komponen tersebut. Tujuannya adalah memberikan gambaran umum tentang bagaimana sistem akan beroperasi tanpa terlalu mendetail pada implementasi teknis dari masing-masing komponen.

Beberapa aspek yang dipertimbangkan dalam high-level design mencakup identifikasi komponen utama, penentuan interaksi antarkomponen, skalabilitas, keandalan, keamanan, dan performa sistem. High-level design membentuk kerangka kerja yang menjadi dasar untuk tahap selanjutnya dalam proses desain, yaitu detailed design, di mana detail teknis dari setiap komponen dan interaksi akan diperinci lebih lanjut. Dengan demikian, high-level design memberikan fondasi yang kokoh bagi pengembangan sistem secara menyeluruh.


Facebook High Level Design

Di industri restoran modern, memberikan pengalaman makan yang luar biasa memerlukan lebih dari sekadar hidangan yang lezat. Sistem Manajemen Restoran telah menjadi bahan rahasia untuk operasi yang efisien dan kepuasan pelanggan.

Kami akan merancang sebuah sistem manajemen restoran di mana pengguna dapat dengan mudah menemukan restoran terdekat. Mereka dapat dengan lancar melihat menu, mengeksplorasi rating, dan dengan nyaman melakukan pemesanan secara online, dengan fleksibilitas tambahan untuk memilih antara makan di tempat atau pengantaran ke lokasi mana pun dalam jangkauan yang ditentukan.

Persyaratan Fungsional

  • Memungkinkan pelanggan untuk mencari restoran, melihat menu, dan melakukan pemesanan.
  • Memungkinkan staf restoran untuk mengelola pesanan dan memperbarui menu.
  • Memberikan kemampuan kepada pelanggan untuk melihat rating restoran.
  • Menyediakan opsi bagi pelanggan untuk makan di tempat atau memesan pengantaran.
  • Memungkinkan staf dapur untuk melihat dan mengelola pesanan makanan.
  • Memungkinkan pengemudi pengantaran untuk melihat pesanan pengantaran yang sudah ditugaskan.
  • Memberikan kemampuan kepada pelanggan untuk melacak pesanan mereka.
  • Menyediakan berbagai metode pembayaran kepada pelanggan.

Persyaratan Non-fungsional

  • Scalability (Skalabilitas): Memastikan sistem tetap responsif selama puncak permintaan, mampu menyesuaikan dengan fitur baru, dan mengelola fluktuasi lalu lintas.
  • Reliability (Keandalan): Memastikan pemrosesan pesanan yang konsisten dan akurat untuk membangun kepercayaan pelanggan dan menjaga kontinuitas bisnis.
  • High Availability (Ketersediaan Tinggi): Menjaga ketersediaan sistem untuk meningkatkan kepercayaan pelanggan, mendukung operasi restoran yang efisien, dan memastikan kesuksesan sistem secara keseluruhan.
  • Strong Consistency (Konsistensi Kuat): Memastikan refleksi yang cepat terhadap perubahan seperti pembaruan harga, perubahan menu, lokasi pengguna, dan detail pembayaran.

Asumsi Kapasitas Untuk mengestimasi skala sistem dan kebutuhan penyimpanan, diasumsikan data dan lalu lintas sebagai berikut:

  • 10 juta restoran
  • Pengguna aktif harian = 100 juta
  • Pengguna aktif per detik = 1160 pengguna/detik (perkiraan)
  • Rata-rata Pesanan per menit = 250.000/menit
  • Rata-rata Pesanan per detik = 4200 pesanan/detik (perkiraan)
  • Pesanan puncak = 500.000 pesanan/menit
  • Estimasi Penyimpanan:
    • 100 juta pelanggan x 1KB per pengguna = 100 GB
    • 10 juta restoran x 2 MB per restoran = 20 TB
    • 72 GB per hari untuk pesanan, dengan asumsi pesanan disimpan selama 3 tahun = 77 TB (perkiraan)


Dalam kerangka ini, terdapat tiga layanan fundamental yang memerlukan manajemen:

Layanan Pelanggan
Pelanggan melakukan otentikasi untuk melakukan pemesanan di restoran. Setelah melakukan pemesanan, mereka dapat melacak status pesanan mereka, dengan fleksibilitas untuk melakukan pembayaran melalui berbagai metode.

Layanan Admin Restoran
Otentikasi merupakan langkah awal bagi admin restoran, yang kemudian dapat mengakses semua pesanan yang ditempatkan di tempat mereka. Admin dapat menerima dan memproses pesanan berdasarkan preferensi pengguna untuk makan di tempat atau pengantaran. Selain itu, mereka memiliki otoritas untuk mengubah detail terkait restoran seperti menu dan harga.

Layanan Pengantaran
Agen pengantaran melakukan otentikasi dan berinteraksi dengan Layanan Pengantaran, menggunakan Layanan Peta untuk melacak lokasi mereka. Layanan ini memberitahukan agen tentang pesanan di sekitar mereka, yang dapat mereka terima dan kemudian antarkan kepada pelanggan.

Komponen yang Diperlukan:


Antarmuka Pelanggan Pelanggan berinteraksi dengan sistem melalui aplikasi mobile, antarmuka web, atau aplikasi desktop.

Penyeimbang Beban Dengan meratakan lalu lintas masuk ke beberapa server, penyeimbang beban meningkatkan ketersediaan tinggi dan mengoptimalkan kinerja secara keseluruhan.

Layanan Otentikasi dan Registrasi Layanan ini mengelola otentikasi dan registrasi pengguna. Semua pengguna, termasuk pelanggan, admin restoran, dan agen pengantaran, menjalani proses otentikasi dan registrasi.

Basis Data Menyimpan data pengguna, detail restoran, menu, pesanan, dan metadata, basis data berfungsi sebagai repositori pusat untuk sistem ini.

Layanan Pembayaran Bertanggung jawab atas pengelolaan seluruh data dan layanan terkait pembayaran.

Layanan Pemesanan Pesanan Layanan ini bertugas untuk melakukan pemesanan di restoran dan mengelola semua proses terkait pesanan.

Layanan Pengantaran Berfokus pada operasi terkait pengantaran, layanan ini melacak lokasi agen pengantaran dan memfasilitasi pelacakan paket real-time menggunakan Layanan Peta.

Layanan Admin Restoran Memungkinkan restoran untuk melihat dan mengelola pesanan yang ditempatkan, layanan ini juga memungkinkan admin untuk mengubah menu, harga, dan gambar makanan.

Layanan Peta Melacak lokasi pengguna dan agen pengantaran, Layanan Peta berkolaborasi dengan Layanan Pengantaran dan pelanggan untuk pelacakan lokasi real-time.





Comments

Popular posts from this blog

Pemrograman Perangkat Beregerak - ETS - - Timothy Hosia

Pemrograman Perangkat Beregerak - Tugas Pertemuan 4 - Timothy Hosia

ETS PPL A