Kamu bisa jelasin ke aku soal Agent-oriented software engineering?

Agent-oriented Software Engineering (AOSE) adalah paradigma rekayasa perangkat lunak baru yang berfokus pada penerapan praktik terbaik untuk Multi-Agent Systems (MAS) dengan berfokus pada penggunaan agen-agen sebagai abstraksi utama. Agen dan Multi-Agent Systems baru-baru ini muncul sebagai teknologi yang kuat untuk menghadapi kompleksitas berbagai skenario TIK saat ini. Pemahaman umum yang muncul ialah bahwa Multi-Agent Systems lebih dari teknologi yang efektif, mewakili paradigma tujuan umum baru untuk pengembangan perangkat lunak. Komputasi berbasis agen (Agent-based computing) mempromosikan desain dan pengembangan aplikasi dalam hal entitas perangkat lunak otonom (agen), yang terletak pada lingkungan tertentu, dan yang dapat secara fleksibel mencapai tujuan mereka dengan berinteraksi satu sama lain dalam hal protokol dan bahasa tingkat tinggi. Ada lebih dari dua lusin metodologi yang berorientasi pada agen, di antaranya adalah MaSE, Gaia, dan Tropos. Metodologi berorientasi agen dapat diklasifikasikan ke dalam dua kelas utama: metodologi dengan tujuan umum dan metodologi dengan domain spesifik. Untuk klasifikasi lainnya, metodologi saat ini dapat dibagi menjadi tiga kategori: metodologi berorientasi agen, metodologi yang secara langsung memperluas atau mengadaptasi metodologi berorientasi objek, dan metodologi yang mengadaptasi model rekayasa pengetahuan atau teknik lainnya.

Ketika mempertimbangkan perspektif berorientasi objek yang tradisional (historis), perbedaan antara perspektif berorientasi objek dan perspektif berorientasi agen pada pemodelan dan pengembangan sistem perangkat lunak sangatlah tajam. Objek, tidak seperti agen, pada prinsipnya tidak otonom atau proaktif, dalam hal aktivitas internalnya hanya dapat diminta oleh permintaan layanan yang berasal dari untaian kontrol eksternal. Dalam aplikasi objek tradisional, tidak ada pemodelan eksplisit dari sebuah "lingkungan (environment)" eksternal: semuanya dimodelkan dalam hal objek, dan objek membungkus sumber daya lingkungan dalam hal atribut internal atau memandang dunia hanya dalam hal nama/ referensi objek lain. Selain itu, komputasi tradisional berbasis objek mempromosikan perspektif pada sistem perangkat lunak di mana komponen adalah "fungsional" atau entitas "berorientasi layanan".