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…
No comments yet.
Leave a comment
-
Archives
- January 2010 (1)
- December 2009 (8)
- November 2009 (5)
- October 2009 (15)
- September 2009 (12)
- August 2009 (5)
- July 2009 (4)
- June 2009 (7)
- May 2009 (14)
- April 2009 (7)
- March 2009 (7)
- February 2009 (18)
-
Categories
- analysis
- aspect oriented
- CBSE
- critical system
- design
- digital learning
- e-business
- ecosystem
- final project
- fun
- health informatics
- introduction
- lecture
- maintenance
- method
- oop
- others
- programming
- project
- project management
- quality
- real time system
- requirement
- research
- service computing
- soa
- software architecture
- software developer
- software metrics
- software process
- software product
- software quality
- software standard
- technology
- testing
- tools
- Uncategorized
- webE
-
RSS
Entries RSS
Comments RSS