Soal text
Transkripsi dicocokkan dengan 3 halaman naskah asli.
Redaksi dirapikan untuk dibaca. Data, pilihan jawaban, dan subsoal mengikuti naskah; diagram dijelaskan dalam teks atau tabel.
Lompat ke soal
UTS Arsitektur Perangkat Lunak 2024/2025
Rabu, 9 April 2025 · 08.00–09.40 WIB (100 menit) · Buku terbuka. Tuliskan NIM/nama setiap lembar; sertakan asumsi/gambar bila perlu.
1. Scalability (20%)
Apa kaitan quality attribute scalability dengan arsitektur? Jelaskan beberapa teknik untuk melakukan scalability.
2. Testability (20%)
Salah satu strategi keterujian ialah mengendalikan ketergantungan eksternal.
class TaxServiceStub:
def get_tax_rate(self):
# Always return a fixed tax rate
return 0.05
# In your tests
def test_calculate_total_with_tax():
cart = ShoppingCart(items=[Item(price=100)])
tax_service = TaxServiceStub()
total = cart.calculate_total_with_tax(tax_service)
assert total == 105 # 100 + 5% tax
Jelaskan fungsi teknik virtualisasi sumber daya pada potongan kode.
3. Integrasi pembayaran (30%)
Aplikasi e-commerce memakai sistem lama transfer manual melalui LegacyBankPayment. Sistem baru mendukung e-wallet dan virtual account memakai PaymentInterface. LegacyBankPayment tidak sesuai antarmuka baru. Mengubah kode lama berisiko/mahal; diperlukan desain penjembatan tanpa mengubahnya. a. Tentukan design pattern yang sesuai. b. Gambarkan struktur class pattern pada kasus ini.
4. Bangun datar (30%)
Diagram: interface Bangun Datar dengan metode publik hitungLuasan():double dan hitungKeliling():double, direalisasikan Lingkaran, Persegi, PersegiPanjang, Trapesium. Banyak class membuat akses satu per satu untuk menghitung luas/keliling merepotkan. Buat solusi design pattern untuk menyederhanakan akses kelompok class. Deskripsikan pattern dan gambar class diagram solusinya.