Anda di halaman 1dari 9

Modul 3 Agent Oriented Software Engineering (AOSE) : An Introduction

(Rekayasa Perangkat Lunak Berorientasi Agent) Ringkasan Modul 3


1. Latar Belakang Software Engineering is Difficult Software Engineering is Getting Harder Tackling Complexity in Software 2. Complex Systems Conventional SE vs AOSE AOSE Now AOSE Encompasses 3 main Diciplines Ontologies AOSE Design 3. AO Decomposition 4. AO Analysis & Design AAII Methodology The Gaia Methodology Cassiopeia 5. Formal Methods for AOSE

1. Latar Belakang Rekayasa Software merupakan bidang yang sulit


Rekayasa Software merupakan salah satu tugas konstruksi yang sangat kompleks Rekayasa Software menyediakan model dan teknik-teknik untuk memudahkan penanganan kompleksitas tersebut Data menunujukkan bahwa sekitar 20% dari projek pembuatan software dihentikan (cancelled) karena ketidaksesuaian dengan persyaratan dan sekedul. Dan lebih dari 80% softwre ketika dirilis tidak kompilt. Hampir semua projek software mengalami pembengkakan biaya dari perkiraan awal

Pengembangan software juga makin lebih sulit karena:


Waktu hidup (lifecycles) pengembangan makin singkat Persyaratan yang makin ambisius Persyaratan ysng sering berobah Lingkungan yang lebih menantang misal, Internet - heterogeneous, scalable, kebutuhan yang tinggi untuk sistim terdistribusi. Greater dynamism Greater openness

Pendekatan Pendekatan Agent-oriented Agent-oriented dapat dapat meningkatkan meningkatkan kemampuan kemampuan kita kita dalam dalam pemodelan, perancangan dan pembangunan sistim-sistim software pemodelan, perancangan dan pembangunan sistim-sistim software terdistribusi terdistribusi yang yang kompleks. kompleks.

Dalam menangani kompleksitas pada software, dilakukan:


Dekomposisi (Decomposition) membagi problem besar kedalam ukuran kecil, agar lebih mudah dikelola (manage) Abstraksi (Abstraction) proses penetapan model sederhana dari sistim Hirarki (Hierarchy) proses identifikasi dan pengaturan hubungan-hubungan antar berbagai komponen problem solving

2. Karakteristik Sistim kompleks (Complex Systems Characteristics)


Kompleksitas dalam sistim Software adalah bersifat struktural (yaitu, dengan menambah komponen baru kedalam sistim menyebabkan struktur terdepresiasi secara progresif) Kompleksitas mengambil bentuk dari hirarki Kumpulan/Koleksi dari sub-sistim yang berhubungan dengan tingkat abstraksi yang berbeda. Misal, client-server Hubungan-hubungan dari sub-sistim berubah terhadap waktu (mis, dinamsi, tidak statis) Sub-sistim dapat diperlakukan bahwa diantara mereka hampir saling independen, tapi sebenarnya terdapat beberapa interaksi diantara mereka Sistim kompleks terdiri dari sejumlah sub-sistim yang berhubungan dan teroganisasi dalam bentuk hirarki Sub-sistim bekerja bersama untuk mencapai funsionalitas dari sistim induk Hubungan diatara sub-sistem umumnya adalah dinamis Didalam sub-sistem, komponen-komponen kerja bersama untuk memenuhi keseluruhan fungsionalitas keseluruhan sub-sistim Dengan demikian suatu sitim dapat dimodel menggunakan komponen yang saling berinteraksi dan bekerja bersama untuk mencapai tujuan tertentu.

SE Konvensional vs AOSE
Pendekatan rekayasa software konvensional adalah penanganan interaksi internal dalam sub-sistim tertentu. Sedangkan AOSE menawarkan paradigma baru untuk menangani interaksi eksternal dari sub-sistim dan umumnya untuk aplikasi heterogen terdistribusi dalam skala sangat besar Paradigma ini fokus pada interaksi dari otonom-otonom dan juga proses-proses yang dapat beradaptasi terhadap manusia dan agen lainnya

Status AOSE Saat ini


Dewasa ini, pengembangan sistim Agent kebanyakan masih mengacu pada petunjukpetunjuk informal dari pada prinsip formal atau dengan kata lain masih sedikit teknikteknik rekayasa yang telah diformulasikan secara baik Boleh dikatakan AOSE masih dalam taraf baru lahir (infancy)

AOSE meliputi 3 disiplin ilmu utama


Kecerdasan Buatan (Artificial Intelligence- AI). Metoda AI ini digunakan untuk membantu agent-agent dalam belajar, dan juga dalam reperesentasi domain knowledge (domain pengetahuan) menggunakan ontologi-ontologi. Rekayasa Perangkat Lunak (Software Engineering) Operasi Research (Operation Research) digunakan dalam aspek yang menyangkut pengorganisasian dari AOSE, yaitu untuk identifikasi dan pengaturan hubunganhubungan diantara sub-sistim, melalui: Pengelompokan sejumlah sub-sitim dan memperlakukannya sebagai suatu sistim tingkat tertinggi (higher-level system) Menjelaskan hubungan antar berbagai sub-sistim (mis, sub-sistems dapat bekerja sama untuk memberi fungsionalitas tertentu).

Ontologi
Menurut Tom Gruber ontology adalah suatu deskripsi (seperti spesifikasi formal dari suatu program) dari konsep-konsep dan hubungan-hubungannya yang terdapat pada agent atau suatu komunitas agent Suatu ontology merupakan perbendaharaan umum bagi peneliti (researchers) atau agents yang memerlukan saling berbagi informasi (share information) dalam beberapa area domain pengetahuan

Pengembangan Ontologi
Domain Ontology menjelaskan domain persoalan tertentu Penetapan konsep-konsep dan hirarki Penetapan pengertian dari konsep-konsep Mendefenisikan hubungan-hubungan Task ontology memberi arti pada pesan-pesan (messages) dalam domain tertentu Agar suatu pesan dari suatu agent dimengerti oleh yang lain, maka harus ditetapkan arti yang sama bagi pesan dan digunakan secara konstan Sebelum melewatkan pesan-pesan, pertama-tama agent akan mencari tahu apakah mereka share dalam domain yang saling dimengerti

Kenapa digunakan Ontologi?


Untuk saling berbagai (share) pengertian-pengertian umum akan struktur informasi diantara orang ataupun software agent Agar domain pengetahuan dapat diguna ulang (reuse) Untuk memisahkan domain pengetahuan dari operasional pengetahuan Untuk menganalisa domain pengetahuan

Langkah dalam Perancangan AOSE


Uraikan (Decompose) sistim kedalam sub-sistim dalam bentuk sesuai target yang hendak merekai capai Rancang atau import task ontology darai domain

Bangun model abstract (use-case) dan tambahkan interaksi dan hubungan organisasional menggunakan task ontology Bangun model use-case untuk tiap agent menggunakan model agent yang telah ditetapkan Rancang atau import domain ontology. Berdasarkan domain ontology, rancang basis-pengetahuan (knowledge-base) tiap agent Tambahkan tambahan keahlian cognitive pada taiap agent (mekanisme untuk bekerjasama, berkoordinasi dan berkompetisi (jika diperlukan)) Jika diperlukan, derive dan record sifat-sifat organisasional berdasarkan interaksi dari pasanganan agent yang kooperatif.

3. Penguraian Agent-Oriented (Agent-Oriented Decomposition)


Uraikan sitim kedalam sistim dalam bentuk sesuai target yang hendak mereka capai Sistim kompleks memiliki multi-titik kendali: oleh karenanya komponen individual haruslah: Mempunyai pengendalian sendiri (yaitu mereka harus aktif) Entitas-entitas haruslah memiliki kendali atas pilihan-pilihan dan aksi-aksi mereka (yaitu mereka harus otonom). Interaksi dalam sistim kompleks akan terjadi Pada waktu yang tak dapat diperkirakan, untuk alasan yang tak dapat diperkirakan dan antar komponen yang tak dapat diperkirakan. Komponen-komponen haruslah memiliki kemampuan dalam mengambil keputusan tentang sifat dan skop dari interaksi mereka pada saat run-time.

Dekomposisi Dekomposisi Agent-oriented Agent-oriented adalah adalah cara cara natural natural untuk untuk mengurai mengurai suatu suatu sistim sistim kompleks dalam bentuk komponen-komponen otonom untuk mencapai yang kompleks dalam bentuk komponen-komponen otonom untuk mencapai yang dapat dapat saling saling beriteraksi beriteraksi untuk untuk mencapai mencapai tujuan tujuan tertentu. tertentu.

4. Analisis dan Perancangan AO


Terdapat dua kelompok metoda, yaitu: Berdasarkan atas pengembangan berorientasi agent The Australian AI Institute (AAII) methodology (metodologi AAII) The Gaia methodology (metodology Gaia) Agent UML (unified Modelling Language) Berdasarkan rekayasa pengetahuan (Based on knowledge engineering) Cassiopeia

4.1 Metodologi AAII


Dikembangkan sebagai hasil pengalaman yang diperoleh dengan berbagai aplikasi didasarkan aristektur BDI OASIS suatu sistim kendali airtraffic yand saat ini sedang dalam percobaan pada lapangan terbang Sydney SWARMM sistim simulasi pada angkatan udara Australia SPOC (Single Point of Contact) sistim manajemen proses bisnis Didasarkan atas arsitektur BDI dan distributed multiagent reasoning

Menggunakan metodologi berorientasi objek dan perluasannya dengan konsep-konsep berbasis agent Metodologi AAAI bertujuan bagi konstruksi sekumpulan model untuk menetapkan suatu spesifikasi sistim agent
Model Eksternal Model Internal

Model dalam Metodologi AAII:


External Model
Penentuan hubungan inheritance (warisan) antar klas agent (agent classes) Identifikasi instances dari klas-klas agent ini yang akan muncul saat runtime External model tersusun dari dua model yaitu, model agent model interaksi (interaction) Dalam model agent ditetapkan agent dan klas agent, juga hubungan dari klas-klas ini terhadap yang lain melalui inheritance (sifat warisan), aggregation . Lebih lanjut model agent dibagi dalam dua model yaitu: an agent class model an agent instance model

Model Internal
Perancangan struktur belief, desire dan intention dari agent Setiap klas agent diasumsikan memiliki paling tidak 3 atribut: Beliefs Desires Intentions

Langkah dalam Penerapan Model


1. Identifikasi aturan-aturan yanga relevan dalam domain aplikasi dan kembangkan hirarki klas agent Contoh suatu peran ( role) pemantau cuaca (suatu agent) mempunyai tanggung jawab untuk membuat agent lain agar peduli terhadap kondisi cuaca setiap jam 2. Identifikasi tanggung jawab (responsibilities) terkait dengan setiap role, services yang diperlukan dan yang disediakan oleh role, dan juga menetapkan goals (target) terkait dengan setiap service. Contoh goal 1 - cari tahu kodisi cuaca saat ini goal 2 - buat agent tertentu untuk peduli akan infomasi kondisi cuaca ini 3. Untuk setiap goal, tentukan rencana yang dapat digunakan untuk mencapainya, dan dalam konteks kondisi seperti apa tiap rencana tersebut memenuhi Contoh goal - membuat agent tertentu agar peduli kondisi cuaca rencana - kirim pesan pada agent 4. Tentukan struktur belief dari sistem, yaitu informasi yang diperlukan untuk setiap rencana dan goal. Contoh - a unary predicate windspeed(x)

4.2. Metodologi Gaia


System analyst bergerak dari tingkat abstract ke konsep konkrit (concrete concepts) Pada tiap move diperkenalkan implementasi lebih detail Analisa dan perancangan menggunakan Gaia merupakan proses pengembangan dalam meningkatkan detailed models dari sistem

Konsep-konsep Gaia
Konsep Abstracts digunakan dalam tahap analisa untuk konseptualisasi sistem Roles Permissions Responsibilities Protocols Activities Konsep Konkrit (Concrete Concepts ) digunakan dalam tahap perancangan dan implementasi Agent Types (jenis agent) Services (layanan) Acquaintances (perkenalan)

Konsep Abstract Gaia


Sistem dipandang sebagai kumpulan peran (role) yang berinteraksi satu sama lain Contoh: Role dalam sekolah tinggi Ketua sekolah, ketua jurusan, direktur penelitian, dst. Hubungan antar role dan individuals adalah many-to-many Setiap role dibatasi oleh 4 attribut Responsibilities Permissions Activities Protocols

The Gaia Roles: Responsibilities & Permissions


Responsibilities Menetapkan fungsionalitas dan atribut kunci Dua jenis responsibilitas liveness properties (sifat keberhidupan) agent harus membawa sistim kedalam keadaan (state) something good happens safety properties (sifat keselamatan) agent mempertahankan keadaan (state) tertentu nothing bad happens Permissions Hak-hak yang berkenaan dengan suatu role Sumber informasi yang tersedia bagi role untuk merealisasi responsibilitasnya

The Gaia Roles: Activities & Protocols


Activities Tindakan yang dapat dilakukan oleh agent tanpa interaksi dengan agent lainnya juga disebut sebagai agents private actions

Protocols Penetapan cara bagi setiap role untuk dapat berinteraksi dengan role lain

4.3 Agent UML (Unified Modelling Language)


Modifikasi notasi UML untuk pemodelan sistem agent

4.4 Cassiopeia
Cassiopeia vs Gaia & AAII
Cassiopeia menggunakan pendekatan bottom up pada dekomposisi sistem Sedangkan metodologi Gaia dan AAII adalah pendekatan top down Cassiopeia didasarkan atas model behaviour Brooks Sedangkan metodologi Gaia dan AAII berdasar model BDI Dimulai dari kebutuhan behaviours untuk melaksanakan beberapa tugas Sedangkan metodologi Gaia dan AAII dimulai dengan roles

Langkah dalam Cassiopeia


1. Identifikasi elementary behaviours yang diterapkan oleh keseluruhan task sistem. 2. Identifikasi hubungan antara behaviour-behaviour ini. 3. Identifikasi organisational behaviours dari sistem misalnya, cara bagaimana agentagent membentuk mereka sendiri kedalam group

5. Metoda Formal untuk AOSE


Spesifikasi dari sistem AO Implementasi dar sistem AO Refinement Eksekusi langsung dari spesifikasi agent Compiling spesifikasi agent

Metoda-metoda Spesifikasi Formal


Menetapkan secara formal persyaratan untuk suatu sistem agent Sistem Agent adalah intentional systems yaitu, setiap agent berada dalam mental state tertentu yang ditentukan oleh beliefs, desires dan intentions Haruslah mampu menghadirkan aspek-aspek sistem berbasis-agent berikut: Beliefs informasi yang dipunyai oleh agent tetang lingkungan (environment) Goals Hal yang akan coba dicapai oel agent Actions pelaksaan tugas agent dan pengaruhnya terhadap lingkungan Ongoing interactions bagaimana agent berinteraksi dengan yang lain dan dengan lingkunan

Metoda Implementasi (Implementation Methods)


Refinement informal Eksekusi langsung dari spesifikasi agent - formal Compiling agent specifications formal

Implementation Methods: Refinement


Transform spesifikasi kedalam bentuk executable melalui beberapa principle tapi dengan langkah informal Dekomposisi sistem dengan pendekatan top-down Top-down refinement = Wirths stepwise refinement Spesifikasi sistem di refine (didetailkan) kedalam sejumlah kecil abstrak spesifikasi subsistem Subsytems di refine lagi dst, hingga subsitem cukup ringkas diimplementasi secara langsung

Eksekusi Langsung Spesifikasi Agent (Directly Executing Agent Specifications)


Eksekusi dapat dipandang sebagai proses iteratif dua-jalur Lingkungan membuat beberapa kondisi true Agent merespon dengan melakukan sesuatu, misal membuat condition true lain dalam model Environment responds making something else true, etc. An agent is playing a game against the environment The goal of the game is represented by the specifications the agent must keep the goal satisfied the environment tries to prevent the agent from doing so The game is played by the agent and the environment taking turns to build a little bit more of the model The agent loses if the specification becomes false The game is never over in real reactive systems the agent has to play forever Winning strategy be prepared! for each input for the environment the agent should know what to do (execution algorithm for the logic should be present) Contoh Concurrent MetateM a programming language for multiagent systems to directly execute the agent specifications Based on 3 basic rules (represented in the language as formulae) Rule 1: If someone asks then give Rule 2: Dont give unless someone has asked since you last give Rule 3: Dont give to more then one person at a time

Compiling Agent Specifications


The abstract specification is transformed into a concrete computational model via automatic synthesis process Advantages over direct execution same as compilation over interpretation in programming: Run-time efficiency much faster May find errors in the specifications

AOSE - Advantages (Keuntungan AOSE)


The AOSE supports decomposing problems in terms of autonomous agents Decentralization reduces the amount of interaction between components The systems total control know-how is taken from a centralized repository and localized inside agents This matches the natural multiple points of control in complex systems

Key Obstacles for AOSE (Rintangan utama AOSE)


Sort out the relationship of AOSE and other software paradigms e.g. OOSE Agent-oriented methodology in its infancy, no agreement on the main concepts Engineering for open systems how to specify such systems, we need a better understanding of them Engineering for scalability how to safely and predictably engineer systems that consist of number of dynamically interacting agents

References
Wooldridge, M. & Ciancarini, P (2000) Agent-Oriented Software Engineering: The State of the Art http://www.csc.liv.ac.uk/~mjw/pubs/aose2000a.ps.gz N. Jennings (1999) Agent-Oriented Software Engineering http://www.ecs.soton.ac.uk/~nrj/download-files/cairo.pdf T. Gruber (2001) What is an Ontology http://www-ksl.stanford.edu/kst/what-is-an-ontology.html Noy, N. & McGuiness, D. (2000) Ontology Development 101: A Guide to Creating Your First Ontology http://www.ksl.stanford.edu/people/dlm/papers/ontology-tutorial-noymcguinness-abstract.html Agent UML Web Site http://www.auml.org/

Anda mungkin juga menyukai