Software Architecture

Qurrata Adrianus
Dekowarehouse Project
2 min readApr 19, 2018

Software architecture adalah suatu proses untuk mendefinisikan solusi struktur yang memenuhi requirement baik dalam hal teknis ataupun operational, agar dapat digunakan untuk memaksimalkan atribut-atribut pada software, seperti performa, security, dan manageability. Dengan kata lain, software architecture menjelaskan struktur dari sistem yang terdiri dari komponen-komponen, atribut, dan hubungan antar komponen tersebut.

Selain definisi di atas, Philippe Kruchten, dkk, juga mendefinisikan sebagai berikut:

Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural elements and their interfaces by which the system is composed; behavior as specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural style that guides this organization. Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns

Dari pengertian di atas, dapat diketahui bahwa software architecture meliputi berbagai komponen: fungsionalitas, kegunaan, ketahanan, performa, reusability, komprehensibilitas, constraint ekonomi dan teknologi, dan estetika. Wah, ternyata dalam tahap planning sotware architecture pun sudah banyak yang harus dipikirkan ya?

Kira-kira kenapa ya kita perlu software architecture?

Jadi, terdapat beberapa fungsi dari desain software architecture bagi developer, yaitu:

  1. Menganalisa efektifitas dari desain untuk memenuhi kebutuhan requirement
  2. Mempertimbangkan alternatif lain ketika ada perubahan requirement yang terjadi
  3. Mengurangi risiko yang berkaitan dengan pembangunan software atau coding.

Seperti hal hal kompleks lainnya, software juga harus dibuat dengan fondasi yang kuat. Berbagai risiko dapat menghampiri apabila gagal membuat design/skenario yang tepat dari awal pengembangan. Begitu juga halnya dengan software architecture. Jika software architecture yang digunakan kurang tepat, software yang dihasilkan unstable atau tidak dapat digunakan untuk mendukung kebutuhan bisnis selanjutnya.

Jadi apakah kamu ingin membuat arsitektur software yang baik???

--

--