Software Architecture Sebagai Blueprint

Faraya Agatha
PsychoTeam
Published in
2 min readMay 2, 2019

Software architecture adalah suatu penggambaran alur interaksi tiap-tiap komponen dalam suatu sistem. Dalam kata lain, software architecture dapat disebut sebagai blueprint dari sebuah sistem secara abstrak untuk mengatur kompleksitas sistem.

Arsitektur perangkat lunak yang diterapkan dalam proyek Psychotip:

Design software architecture PsychoTip

Tujuan dari seorang arsitek perangkat lunak adalah untuk meminimalisasi kompleksitas dengan membagi desain menjadi beberapa bidang berbeda.

Terdapat 5 prinsip desain yang harus diperhatikan dalam membuat desain software architecture. Prinsip-prinsip tersebut di antaranya:

Separation of concerns (SoC): membagi aplikasi menjadi beberapa bagian yang berbeda, dan setiap bagian akan memiliki fungsi yang berbeda. Implementasi prinsip ini pada proyek PsychoTip adalah :

  • Frontend App berfungsi sebagai komponen yang dijalankan oleh perangkat user. Frontend App akan berinteraksi langsung oleh user dan menampilkan data yang dibutuhkan kepada user. Dalam PsychoTip terdapat dua jenis frontend, yaitu: android app dan web app. Android app untuk berinteraksi dengan psikolog dan klien, sementara web app untuk berinteraksi dengan admin.
  • Backend berfungsi sebagai tempat menjalankan semua logika program. Untuk android app kami menggunakan API yang dibuat menggunakan Django REST Framework. Rest framework menyediakan API untuk mengakses database PsychoTip. Sementara untuk web app kami menggunakan Django.
  • PsychoTip Database berfungsi sebagai tempat penyimpanan semua data PsychoTip.

Single Responsibility principle: Setiap komponen hanya memiliki satu fungsi atau tanggung jawab. Penerapan nya dalam proyek PsychoTip adalah dalam membuat desain kami menanamkan hanya satu fungsi pada setiap komponennya seperti penjelasan di atas.

Principle of Least Knowledge (Or Law of Demeter): Suatu komponen harus memiliki batasan pengetahuan tentang komponen lainnya. Hal ini bertujuan untuk mencegah suatu komponen memiliki keterlibatan yang rumit dengan komponen lain. Dalam penerapan nya pada PsychoTip, contohnya adalah hanya REST API yang mengetahui bagaimana cara mengakses PsychoTip database, walaupun yang memerlukan data tersebut adalah Frontend.

Don’t repeat yourself: mengimplementasikan suatu fungsi harus dilakukan di dalam satu komponen saya, fungsi tidak boleh ada duplikasi pada komponen lain. Contoh penerapan pada proyek PsychoTip adalah fungsi memanggil web service hanya dilakukan oleh front app web.

Minimize upfront design: hanya mendesain sesuai kebutuhan pengembangan aplikasi. Hal ini dilakukan untuk menjaga aspek scalability suatu perangkat lunak. Penerapan nya pada PsychoTip adalah desain yang kami buat telah kami usahakan sesederhana mungkin dengan tetap memperhatikan 4 prinsip sebelumnya.

Sekian penjelasan saya mengenai desain arsitektur PsychoTip.

Referensi:

--

--