Software Architecture

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


Link Jurnal: 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

Popular posts from this blog

ETS Perancangan Perangkat Lunak

High Level Design