Yani’s Weblog

it’s all about software engineering…

S/W Architecture vs NFRs

Arsitektur seperti apa yang cocok untuk software yang sedang kita bangun, erat kaitannya dengan kebutuhan non fungsional yang telah ditetapkan (non functional requirements/NFRs). Satu NFR dengan NFR lainnya bisa saling sinergi, bisa juga terjadi konflik. Berikut adalah beberapa contohnya:

  • Jika performansi adalah NFR yang kritis, pilihkan arsitektur software yang melokalisasi fungsi-fungsi yang kritis pada sebuah modul atau sejumlah kecil modul. Dengan demikian, fungsi-fungsi kritis tersebut dapat dieksekusi tanpa butuh banyak effort untuk komunikasi antar-modul…
  • Jika security adalah NFR yang kritis, maka struktur layered architecture adalah pilihan tepat. Aset yang harus diamankan disembunyikan di lapisan terdalam dengan validasi tingkat tinggi untuk setiap akses terhadap layer ini…
  • Jika safety adalah NFR yang kritis, maka fungsi-fungsi terkait safety ini juga sebaiknya dilokalisasi di satu atau sejumlah kecil modul sehingga meminimasi biaya dan effort untuk melakukan safety validation…
  • Jika availability adalah NFR yang kritis, pastikan ada komponen yang berjalan redundant sehingga jika terjadi kegagalan pada suatu komponen software, komponen cadangannya bisa mengambil alih…
  • Jika maintainability adalah NFR yang kritis, maka arsitektur yang membagi software dalam komponen-komponen yang masing-masing terbungkus dengan baik, adalah pilihan yang tepat. Modifikasi dilokalisasi di sebuah komponen, dengan efek perubahan yang seminimal mungkin terhadap komponen lainnya…

Bagaimana jika ada konflik ??

Kompromi perlu dilakukan untuk menentukan prioritas kebutuhan, sehingga solusi yang dipilih adalah solusi optimal…

January 27, 2009 Posted by yaniwid | software architecture | | 6 Comments