Software Architecture

 Software application architecture adalah sebuah proses untuk mendefinisikan struktur dari suatu aplikasi yang dapat memenuhi seluruh kriteria dari sisi teknis dan juga operasional, dengan pertimbangan kualitas seperti performance, security, and manageability.

Definisi menurut Martin Fowler 

““The highest-level breakdown of a system into its parts; the decisions that are hard to change; there are multiple architectures in a system; what is architecturally significant can change over a system’s lifetime; and, in the end, architecture boils down to whatever the important stuff is.”

Pada dasarnya ketika membuat sebuah aplikasi, ada 3 komponen utama yang akan saling berkaitan satu sama lain seperti gambar diatas yaitu user, business, dan system. Dan menurut definisi yang sudah dibahas sebelumnya, suatu software architecture yang baik adalah yang mampu memenuhi seluruh kriteria dari komponen-komponen tersebut. Sayangnya, seiring berjalannya waktu biasanya akan terjadi perubahan, baik dari sisi user, business, maupun system. Tapi merubah suatu komponen akan berpengaruh pada komponen yang lainnya.

Seperti contoh ketika kita ingin merubah bisnis model, mau tidak mau kita juga harus merubah dari sisi sistem untuk mampu memenuhi kriteria bisnis model yang baru. Tidak hanya itu, dari sisi user experience pun juga akan mengalami hal yang sama. Oleh karena itu software architecture harus dipersiapkan dengan baik, dan dapat mengantisipasi kemungkinan-kemungkinan perubahan yang akan terjadi pada masa yang akan datang.

Tujuan dari Software Architecture

Untuk menciptakan suatu jembatan antara kebutuhan bisnis dengan kebutuhan teknis melalui use cases yang sudah dibuat, dan menemukan cara bagaimana untuk mengimplementasikan use cases tersebut. Software architecture yang baik akan meminimalisir kemungkinan resiko/kegagalan yang diciptakan oleh para developer. Selain itu, software architecture yang baik juga dapat beradaptasi dengan perubahan yang akan terjadi seiring waktu dalam teknologi perangkat keras dan perangkat lunak, serta dalam skenario dan persyaratan pengguna. Seorang arsitektur aplikasi juga harus mempertimbangkan hasil desain arsitektur yang sudah dibuat agar memiliki performance dan security yang baik.






Referensi




Comments

Popular posts from this blog

Prinsip Desain Software

High Level Design

Studi kasus 1 - Desain Sistem Restauran