Peran System Architect Dalam Pengembangan Aplikasi Enterprise


Pengembangan aplikasi skala enterprise dari waktu ke waktu akan menghadapi tantangan. Tantangan itu meliputi : tantangan untuk meningkatkan produktifitas pengembangan, tantangan dalam merespon permintaan yang terus bertambah, tantangan menjaga keberlangsungan nilai sebuah sistem informasi yang sedang berjalan, dan tantangan menjaga keamanan sistem. Untuk itu peranan arsitektur piranti lunak menjadi sangat penting untuk menyelesaikan isu-isu tersebut.

Arsitektur piranti lunak mendeskripsikan struktur-struktur sistem seperti : (1) Elemen-elemen piranti lunak yang dipotret sebagai abstraksi dan berbentuk modul-modul sistem atau komponen-komponen  level tinggi; (2) External Visible Properties of elements yang mendeskripsikan fitur-fitur elemen yang diekspos dan merepresentasikan layanan yang disediakan untuk elemen-elemen lainnya; dan (3) Relationships of elements yang mendeskripsikan cara elemen-elemen berinteraksi dengan yang lainnya.

Sistem piranti lunak besar membutuhkan struktur dari berbagai sudut pandang. Contoh sudut pandang itu adalah sudut pandang disain berorientasi objek yang memfokuskan kepada fungsionalitas sistem dan sudut pandang deployment merefleksikan deployment fisik dari komponen-komponen piranti lunak ke dalam piranti keras komputasi. Perubahan krusial di rekayasa piranti lunak telah menumbuhkan pentingnya arsitektur yang menekankan kepada isu-isu skalabilitas, distribusi, keamanan, mengurangi risiko-risiko proyek, menangkap quality-related decisions, dan memfasilitasi disain implementasi, dan deployment aplikasi. Di sinilah peranan seorang arsitek menjadi sangat penting.

Seorang arsitek di fase inception  melakukan aktifitas sebagai berikut : (1) membantu menganalisis kebutuhan dengan membuat model use case untuk mendefinisikan kebutuhan fungsional dan menentukan service Level Requirements (SLR) untuk non kebutuhan fungsional; (2) bekerja dengan manajer proyek untuk mengidentifikasi piranti keras, piranti lunak, dan sumber daya manusia yang akan mendukung jalannya proyek dan memvalidasi rencana proyek. Pada tahap elaborasi, seorang arsitek membuat cetak biru arsitektur seperti mendisain  model domain dalam cetak biru yang dibuat dari model use case dengan mengidentifikasi komponen-komponen sistem tingkat tinggi dan menulis dokumen deskripsi arsitektur yang dibuat berdasarkan SLR untuk mendeskripsikan hubungan, interaksi dan distribusi komponen-komponen.

Seorang arsitek terlibat dalam tanggung jawab teknis dan manajerial. Tanggung Jawab Teknis seorang arsitek meliputi membuat arsitektur untuk memenuhi kebutuhan, mengidentifikasi use case arsitektural (concurrency. performance, dan legacy integration), merekomendasikan teknologi-teknologi dan framework tepat guna yang mendukung proyek, dan mengembangkan atau mengarahkan pengembangan prototipe arsitektur. Sedangkan tanggung Jawab Manajerial arsitek adalah  memahami dan mengelola biaya proyek, mengelola komunikasi , memperbaharui dan mengklarifikasi  kebutuhan, meyakinkan pihak-pihak yang berkepentingan dalam pengambilan keputusan dan menjadi  mentor untuk anggota tim proyek.

Salah satu wujud tanggung jawab dari seorang arsitek adalah memastikan bahwa deliverable terkait arsitektur disampaikan pada waktunya. Deliverable tersebut meliputi: (1) domain model yang di dalamnya memotret hubungan struktural dan perilaku antara komponen-komponen level sistem; (2) menyusun Architecture Description Document (ADD) yang merepresentasikan lingkungan pengembangan, menunjukkan di mana komponen-komponen diletakkan dan bagaimana komponen-komponen tersebut saling berkomunikasi yang biasanya dibuat dalam bentuk diagram UML; dan (3) prototipe arsitektur yang menyediakan demonstrasi atau implementasi end-to-end teknologi dan komponen utama.

Apa saja yang harus tercakup dalam cetak biru arsitektur ? Cetak biru harus mencakup Domain Model and ADD, fokus pada quality-related requirements, dan memotret berbagai sudut pandang sistem yang mencakup sudut pandang Logik ( mendeskripsikan dekomposisi sistem ke dalam modul-modul piranti lunak abstrak), sudut pandang proses (mendeskrisikan concurrency dan  distribusi fungsionalitas ke dalam proses-proses komunikasi),  sudut pandang pengembangan (mendeskripsikan cara modul-modul piranti lunak diorganisir di dalam lingkungan pengembangan), sudut pandang deployment (memetakan modul-modul piranti lunak ke node-node piranti keras), dan sudut pandang use case (memetakan kebutuhan fungsional).

Arsitek juga harus menghasilkan prototype arsitektur.  Prototype ini harus mendemonstrasikan kelangsungan teknologi-teknologi dan produk-produk  yang dirumuskan dalam cetak biru arsitektur, menyediakan pltaform pengujian untuk kebutuhan-kebutuhan quality-of-service (QoS), menampilkan tampilan konkrit model komponen, standar dan rekomendasi-rekomendasi lainnya yang diperlukan, dan membentuk backbone pengembangan proyek ke depannya. Prototipe arsitektur dapat dibuat pada tingkat konsep menggunakan dokumen-dokumen dan diagram-diagram, umunya berupa executable skeleton system (dikenal sebagai evolutionary prototype).

Terakhir, seorang arsitek harus mengambil peran dalam working practices dan skill tim secara umum, arsitek harus memahami bagaimana arsitektur memberi dampak pada tim, dan arsitek bekerja dengan tim untuk menjamin bahwa produk sesuai dengan arsitektur. Inilah yang menjadikan gaji arsitek lebih besar daripada gaji developer lain karena tugas dan tanggung jawabnya yang lebih berat.

Pustaka:
[1] ______________, Developing Architectures for Enterprise Java Applications. Edition 1.0. Oracle.2009


Tinggalkan Balasan