***Attributed Goal-Oriented Requirements Analysis* (AGORA)** adalah salah satu metode *goal-oriented requirement engineering*. Metode ini memecahkan masalah dalam metode analisis kebutuhan yang berorientasi pada tujuan *(goal)* seperti i\*, KAOS, dan GRL. Metode-metode tersebut tidak mendukung untuk memfasilitasi kegiatan berikut; memilih tujuan yang akan diuraikan, memprioritaskan dan menyelesaikan konflik tujuan dan konflik pemangku kepentingan pada tujuan, memilih dan mengadopsi tujuan dari alternatif tujuan sebagai spesifikasi kebutuhan, menganalisis dampak ketika kebutuhan berubah, dan meningkatkan kualitas kebutuhan berdasarkan pengukuran kualitas artefak yang dikembangkan oleh metode. Jadi, selain menyelesaikan masalah-masalah tersebut, metode AGORA memperkuat metode yang berorientasi pada tujuan. Di AGORA, nilai atribut *(attribute values)*, mis. nilai kontribusi *(contribution values)* dan matriks nilai preferensi *(preference matrices)*, ditambahkan ke grafik tujuan AND-OR. Seorang analis menempelkan nilai kontribusi dan mekanisme preferensi masing-masing ke *edge* dan *node* dari grafik selama proses penguraian dan penyempurnaan tujuan. Nilai kontribusi dari *edge* menggambarkan derajat kontribusi *sub-goal* terhadap pencapaian *parent-goal*, sedangkan matriks preferensi suatu tujuan mewakili preferensi tujuan untuk setiap pemangku kepentingan. Atribut ini dapat membantu analis untuk memilih tujuan dari alternatif, untuk mengenali konflik di antara tujuan, dan untuk menganalisis dampak perubahan kebutuhan.

AGORA menyediakan teknik analisis kuantitatif pada tujuan. Di sisi lain, pendekatan Chung  untuk kebutuhan non-fungsional memberikan atribut kualitatif (mis. Kontribusi positif atau negatif) dalam metode berorientasi tujuan dan tidak dapat menangani tujuan dari pandangan kuantitatif. Kontribusi lain dari AGORA adalah menyediakan teknik untuk memperkirakan kualitas spesifikasi kebutuhan dari artefak perantara yang dihasilkan selama proses elisitasi kebutuhan. Hampir semua metode yang ada hanya untuk mendukung penciptaan artefak, baik pengukuran kualitasnya maupun peningkatannya berdasarkan pengukuran kualitas. Di AGORA, nilai atribut yang terikat dan karakteristik struktural grafik memungkinkan analis untuk memperkirakan kualitas spesifikasi kebutuhan yang dihasilkan, seperti kebenaran *(corectness)*, ketidakjelasan *(unambiguity)*, kelengkapan *(completeness),* dll. Kualitas perkiraan ini memungkinkan analis untuk mengenali tujuan mana yang harus ditingkatkan dan / atau disempurnakan. Teknik ini menunjukkan bagaimana cara menanamkan pengukuran kualitas ke dalam metode yang ada dan AGORA adalah salah satu contoh di mana kerangka kerja pengukuran kualitas tertanam. Teknik ini dapat diterapkan, contohnya pelekatan atribut ke artefak, ke metode yang ada.

Untuk membentuk fungsi pendukung yang tidak dimiliki oleh metode berorientasi tujuan yang ada, grafik tujuan AGORA adalah versi lanjutan dari grafik tujuan AND-OR, lebih konkretnya adalah grafik tujuan AND-OR yang dikaitkan. Bagian yang diperpanjang dari grafik tujuan AGORA dapat didaftar sebagai berikut;

1. Melekatkan nilai atribut ke *node* dan *edge*. Nilai atribut ini, sebagai tambahan dari karakteristik struktural grafik, memungkinkan untuk memperkirakan kualitas spesifikasi kebutuhan yang dihasilkan dari grafik. Terdapat dua jenis atribut, yaitu:
	* Matriks preferensi: terlekat pada *node*, mis. tujuan, dan merupakan tingkat preferensi atau kepuasan tujuan bagi setiap pemangku kepentingan.
	* Nilai kontribusi: terlekat pada *edge* dan menyatakan tingkat kontribusi tujuan terhadap pencapaian *parent-goal* yang terhubung kepadanya.
2. *Rationale*: Dapat dilekatkan ke atribut, baik *node* ataupun *edge*. Hal ini mewakili alasan mengapa analis menguraikan tujuan menjadi *sub-goal* seperti itu, mengapa ia memilih sub-goal di cabang OR dan mengapa ia melekatkan nilai atribut tersebut ke *edge* atau *node*. Memberikan alasan sangat membantu untuk mempertahankan grafik tujuan AGORA.

Metode AGORA
------------

Prosedur untuk membuat grafik tujuan AGORA adalah sebagai berikut;

### Menetapkan tujuan awal sesuai kebutuhan pelanggan

Tujuan awal dapat dianggap sebagai kebutuhan pelanggan, dan pada awalnya seorang analis menempatkan mereka pada *node* akar dari grafik AGORA.

### Mendekomposisi dan menyempurnakan tujuan menjadi *sub-goal*

Langkah kedua metode AGORA, salah satu langkah paling signifikan, adalah untuk menguraikan dan menyempurnakan tujuan menjadi *sub-goal* satu demi satu, dengan tujuan awal sebagai titik awal. *Sub-goal* terhubung ke *parent-goal* dengan *edge* terarah. Analis dapat memiliki lebih dari satu *sub-goal* dari *parent-goal*, dan juga dapat menggunakan dua jenis dekomposisi yang sesuai dengan kombinasi logis dari sub-goal; yang pertama adalah dekomposisi-AND dan yang lainnya adalah dekomposisi-OR. Dalam dekomposisi-AND, kecuali semua *sub-goal* tercapai, *parent-goal*nya tidak dapat dicapai atau dipenuhi. Di sisi lain, dalam dekomposisi-OR, ketika setidaknya satu *sub-goal* tercapai, *parent-goal*nya dapat dicapai. Analis dapat melekatkan nilai atribut matriks preferensi dan nilai kontribusi masing-masing untuk tujuan dan edge.

Nilai kontribusi melekat pada batas antara *parent-goal* dan *sub-goal*nya dan dapat berupa bilangan bulat dari −10 hingga 10. Nilai ini menyatakan berapa banyak derajat yang disumbangkan oleh *sub-goal* tersebut untuk pencapaian *parent-goal*, dan semakin tinggi nilainya, semakin banyak kontribusi yang diberikan *sub-goal*. Nilai negatif berarti bahwa *sub-goal* menghalangi pencapaian *parent-goal.*

Matriks preferensi menunjukkan tingkat apa yang lebih disukai pemangku kepentingan dari sebuah tujuan atau terpenuhi, dan melekat pada suatu tujuan. Setiap nilai juga mengambil bilangan bulat dari −10 hingga 10. Setiap pemangku kepentingan tidak hanya mencapai nilai preferensi sendiri, tetapi juga memperkirakan nilai preferensi para pemangku kepentingan lainnya. Sebagai hasilnya, preferensi tujuan direpresentasikan dalam bentuk matriks.

### Memilih tujuan dari alternatif tujuan

Setidaknya satu *sub-goal* dipilih untuk mencapai *parent-goal*nya jika *parent-goal*nya telah didekomposisi-OR. Nilai kontribusi dan matriks preferensi membantu analis untuk memilih *sub-goal* yang sesuai. Pada dasarnya, jika suatu *sub-goal* terhubung ke suatu sisi yang memiliki nilai kontribusi tinggi, ia dapat menjadi kandidat untuk dipilih dan diadopsi sebagai penerus dari *parent-goal*nya. Hal ini karena nilai kontribusi *edge* menunjukkan bagaimana *sub-goal* yang terhubung ke *edge* bermanfaat untuk mencapai *parent-goal*nya.

Matriks preferensi juga membantu analis untuk memilih tujuan. Karena sistem yang dijelaskan dalam spesifikasi kebutuhan pada dasarnya untuk pelanggan, nilai preferensi pelanggan adalah indikator yang baik untuk memilih tujuan yang sesuai. Dalam AGORA, dapat direkomendasikan bahwa seorang analis dapat memilih tujuan yang memiliki nilai preferensi pelanggan yang lebih tinggi.

### Mendeteksi dan menyelesaikan konflik pada tujuan

Ada dua jenis konflik pada tujuan; satu adalah konflik antar tujuan dan yang lainnya adalah konflik pada tujuan antara para pemangku kepentingan. Analis dapat mendeteksi dua jenis konflik ini dengan menginvestigasi nilai kontribusi dan matriks preferensi. Ringkasan tujuan mana yang memiliki kemungkinan konflik adalah sebagai berikut;

* Dua tujuan yang terhubung dengan *edge* yang nilai kontribusinya negatif.
* Tujuan di mana elemen-elemen diagonal dari matriks preferensi memiliki varians yang besar atau jauh menyimpang dari nilai rata-rata mereka.
* Jika grafik memiliki sepasang *sub-goal* yang terhubung dengan *edge* memiliki nilai negatif dan analis tidak dapat tidak mengadopsinya, ia harus mempertimbangkan dekomposisi lebih lanjut ke dalam *sub-goal* sehingga ia bisa mendapatkan *sub-goal* yang nilai kontribusinya meningkat.

Ketika analis menemukan varians besar dari elemen diagonal dari matriks preferensi suatu tujuan, ada kemungkinan konflik di antara para pemangku kepentingan untuk tujuan tersebut. Dalam hal ini, para pemangku kepentingan yang relevan akan dipaksa untuk bernegosiasi untuk penyelesaian konflik tujuan.

### Mengakhiri dekomposisi tujuan

Ketika dekomposisi tujuan tumbuh cukup konkret untuk merancang dan menerapkan sistem perangkat lunak yang dimaksud, analis dapat menyelesaikan analisisnya. Salah satu pedoman untuk konkretnya sebuah tujuan adalah bahwa tujuan terdiri dari deskripsi operasional.

Referensi
---------

1. ↑  Mylopoulos, John; Chung, Lawrence; Yu, Eric (1999-01-01). "From object-oriented to goal-oriented requirements analysis". *Communications of the ACM*. **42** (1): 31–37. doi:10.1145/291469.293165. ISSN 0001-0782.
2. ↑  Dardenne, A.; Fickas, S.; van Lamsweerde, A. "Goal-directed concept acquisition in requirements elicitation". *Proceedings of the Sixth International Workshop on Software Specification and Design*. IEEE Comput. Soc. Press. doi:10.1109/iwssd.1991.213081. ISBN 0818623209.
3. ↑  [
m/GRL/. "GRL hompage"] Periksa nilai `|url=` (bantuan).  line feed character di `|url=` pada posisi 29 (bantuan)[*pranala nonaktif permanen*]
4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  Kaiya, H.; Horai, H.; Saeki, M. "AGORA: attributed goal-oriented requirements analysis method". *Proceedings IEEE Joint International Conference on Requirements Engineering*. IEEE Comput. Soc. doi:10.1109/icre.2002.1048501. ISBN 0769514650.
5. ↑  L. Chung, B. Nixon, E. Yu, and J. Mylopoulos. *Non- Functional Requirements in Software Engineering*. Aca- demic Publishers, 1999.