Pertemuan 4 - Software Architecture
Nama: Rayhan Almer Kusumah
NRP: 5025211115
Kelas: Perancangan Perangkat Lunak (A)
Tahun: 2024
Software Architecture
Arsitektur perangkat lunak (software architecture) adalah struktur fundamental dari sebuah sistem perangkat lunak yang mencakup elemen-elemen perangkat lunak, hubungan antara elemen-elemen tersebut, dan prinsip-prinsip yang mengatur desain dan evolusi mereka dari waktu ke waktu. Arsitektur ini bertindak sebagai cetak biru yang mendefinisikan bagaimana sistem akan dikembangkan, dipelihara, dan diimplementasikan. Ini melibatkan pemilihan teknologi, penentuan modul-modul utama dan komponen-komponen, serta hubungan dan interaksi antara komponen-komponen tersebut. Arsitektur perangkat lunak berfungsi untuk memastikan bahwa sistem yang dibangun akan memenuhi kebutuhan fungsional dan non-fungsional, seperti kinerja, skalabilitas, keandalan, dan keamanan.
Pentingnya arsitektur perangkat lunak terletak pada kemampuannya untuk mempengaruhi keberhasilan proyek perangkat lunak. Dengan desain yang baik, arsitektur perangkat lunak dapat mengurangi risiko teknis, meningkatkan efisiensi pengembangan, dan mempermudah pemeliharaan sistem di masa depan. Sebaliknya, arsitektur yang buruk dapat menyebabkan kesulitan dalam pengembangan, peningkatan biaya, dan kegagalan sistem untuk memenuhi kebutuhan pengguna. Oleh karena itu, peran arsitek perangkat lunak sangat krusial dalam proyek-proyek teknologi, di mana mereka harus memastikan bahwa semua keputusan desain yang dibuat sesuai dengan tujuan dan kebutuhan bisnis serta teknis dari sistem yang dikembangkan.
Pada tugas pertemuan kali ini yaitu terkait software architecture saya menggunakan referensi jurnal yang berjudul Perancangan Arsitektur Perangkat Lunak Microservices pada Aplikasi Open Library Universitas Telkom Menggunakan gRPC.
Referensi Jurnal
Deskripsi Aplikasi
Aplikasi Perpustakaan Open Library Universitas Telkom merupakan sebuah website yang dikembangkan sebagai
sarana informasi terbuka untuk setiap buku, karya ilmiah, dan jurnal dengan beberapa fitur seperti pencarian, katalog,
dan reservasi buku. Berdasarkan pengumpulan data yang peneliti lakukan berupa non-functional software testing, aplikasi
existing membutuhkan peningkatan pada scalability dan performance dikarenakan sistem tidak dapat melayani request
pada jumlah dan waktu tertentu sesuai dengan skenario yang ditentukan. Penelitian ini bertujuan untuk
mengimplementasikan arsitektur perangkat lunak dengan gaya arsitektur Microservices. Teknik yang digunakan untuk
melakukan evaluasi dari penelitian ini dengan melakukan non-functional software testing untuk mengukur batas user yang
bisa mengakses pada waktu bersamaan. Peneliti melakukan migrasi perangkat lunak dimulai dengan mengumpulkan
setiap fungsi dan proses dari existing sistem dan memisahkan setiap proses bisnis ke domain independen dengan
menerapkan konsep domain driven design. Setelah dilakukan penguraian proses bisnis, peneliti melakukan migrasi
arsitektur perangkat lunak monolitik ke microservices dengan menerapkan konsep strangler pattern serta pengembangan
sampai tahap functional testing pada setiap modul dan non-functional testing skenario yang telah ditentukan. Hasil dari
pengembangan arsitektur perangkat lunak menggunakan microservices, organisasi dapat meningkatkan performa dan
kebebasan dalam memilih teknologi tertentu sesuai dengan masalah yang sedang dihadapi.
Arsitektur (Microservices)
Merupakan sebuah gaya arsitektur pada perangkat lunak
dengan kumpulan antar layanan yang mudah di-maintain dan
di-test, loosely coupled, di-deploy independen, terorganisir
berdasarkan kapabilitas bisnis, dan dapat dimiliki oleh tim
kecil. Setiap layanan yang ada pada arsitektur Microservices
dapat menggunakan teknologi yang sesuai dengan kebutuhan
tanpa mengetahui teknologi yang digunakan sebelumnya.
Microservices memperkuat struktur modular yang sangat
penting bagi tim yang sangat besar. Menurut Martin Fowler,
ini adalah key benefit yang juga aneh jika dikatakan
kelebihan, karena tidak ada alasan apapun mengapa
Microservices memiliki struktur modular yang lebih kuat
daripada monolitik.
Use Case Diagram
Use Case Diagram merupakan diagram yang
menggambarkan fungsionalitas sistem serta kebutuhan yang
diinginkan atau dikehendaki oleh pengguna. Pada Gambar 2
secara keseluruhan pada sistem Aplikasi Open Library
Universitas Telkom. Fitur terdiri dari login yang merupakan
proses authentication antar request user dan sistem, fitur
peminjaman buku untuk melakukan peminjaman dan
pengembalian buku oleh user, fitur katalog buku untuk
menampilkan katalog yang ada pada perpustakaan berupa list
dan detail, Fitur Pencarian yang akan menampilkan list
katalog buku paling mirip dengan masing masing buku
dengan keyword yang dimasukan oleh user.
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) adalah sebuah
tahapan atau siklus dalam industri pengembangan perangkat
lunak untuk melakukan design, pengembangan, dan
pengujian dari perangkat lunak dengan kualitas yang baik.
Comments
Post a Comment