Home > design, introduction > Software Architecture

Software Architecture

Shaw dan Garlan mendefinisikan software architecture secara abstrak sebagai “the description of the elements that compose the system, their interactions, the patterns and principles that guide their composition and design, and the constraints on those patterns” (Shaw, M.,Garlan, D. 1996. Software Architecture: Perspectives on an Emerging Discipline. Upper Saddle River, NJ: Prentice-Hall).

IEEE (Recommended Practice for Architecture Description of Software-Intensive Systems – IEEE standard 1471–2000) mendefinisikan arsitektur sebagai “the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.

Untuk memahami definisi di atas, kita bisa menganalogikannya dengan arsitektur bangunan. Arsitek membuat gambar arsitektur bangunan yang menggambarkan bagian-bagian bangunan dan keterhubungan antar-bagiannya. Misalnya, pada bangunan tersebut ada kamar, ruang tamu, dapur, dsb. Selanjutnya, ada pintu yang menghubungkan satu ruang dengan ruang lainnya, ada sistem listrik yang terhubung di setiap ruangan, dst. Akan tetapi, akan lebih tepat menganalogikan software system saat ini dengan sebuah perumahan. Sebuah software yang berevolusi dapat kita bayangkan seperti sebuah perumahan yang berkembang. Ada tambahan rumah, ada pelebaran jalan untuk mengatasi kemacetan, ada bangunan kumuh yang dihancurkan untuk diganti dengan sebuah mall, dst…

Jadi sederhananya, software architecture menggambarkan elemen/komponen software dan keterkaitan antar-elemen/komponennya.

Lalu, kenapa kita perlu merancang software architecture ? Agar mudah menjawabnya, kembali kita bayangkan analoginya. Kenapa gambar arsitektur bangunan atau perumahan perlu dibuat ? Dengan merancang gambar arsitekturnya, kita bisa membayangkan seperti apa bangunan/perumahan tersebut nantinya. Kita bisa mengelola kompleksitas bangunan/perumahan tersebut, kita bisa mengubah/memodifikasi tata letak, interaksi, dll dengan mudah karena masih bekerja dengan ‘gambar’. Bayangkan kalau kita harus langsung memodifikasi bangunan/perumahannya. Tiba-tiba kita perlu memindahkan letak dapur karena terlalu jauh dari ruang makan, dst…

Jadi, software architecture sebenarnya membantu kita untuk mengelola kompleksitas dan memastikan bahwa kualitas software tersebut nantinya akan optimal…

Categories: design, introduction
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: