Aģentu izstrāde
description
Transcript of Aģentu izstrāde
Aģentu izstrāde
Priekšmets “Mākslīgais intelekts”
Egons Lavendelis
2
Mērķis (1/2)
Līdz šim runāts par dažādiem aģentiem Nav runāts, kā tos praktiski realizēt
Mēģināšu atbildēt uz jautājumu: kā praktiski izstrādāt aģentus, kas realizē lietas, ko kursa ietvaros apguvāt
3
Mērķis (2/2)
Mērķis ir parādīt, kā aģentus var izstrādāt un dot informāciju par to, kas ir nepieciešams, lai
varētu izstrādāt aģentus
NEVIS
Vienas lekcijas laikā iemācīt izstrādāt aģentus kādā konkrētā vidē
4
Lekcijas plāns
Ievads: kādi aģenti praktiski tiek realizēti? Daudzaģentu sistēmas Aģentu īpašības no izstrādes viedokļa
1. daļa: Aģentu izstrādes iespējas Aģentu realizācijas platformas (vides) Aģentorientētas programmēšanas valodas Kopsavilkums un praktiski ieteikumi, kā sākt aģentu realizāciju
2. daļa: Aģentorientēta programmatūras inženierija Lekcijas beigās ieteikumi, kā sākt aģentu izstrādi
5
Daudzaģentu sistēmas
Reāli viena aģenta sistēmas neeksistē (M.Vuldridžs)
Sistēmas, kas sastāv no savā starpā sadarbojošām sastāvdaļām, ir skaitļošanas pasaules ikdiena
Efektīvākais aģentu pielietojums ir daudzaģentu sistēmu ietvaros
6
Tipiska daudzaģentu sistēmas struktūra
7
Kas tad ir jāizstrādā?
Secinājums: Izstrādājot aģentus, jādomā arī par aģentu mijiedarbību
Risinājums tiek iegūts aģentu mijiedarbības rezultātā
Jāizstrādā: Intelekts aģentos Aģentu mijiedarbība savā starpā Aģentu mijiedarbība ar ārējo vidi (t.sk. lietotāju)
8
Aģenti vs objekti - līdzības
Iekapsulēšana – gan objektos, gan aģentos ir apslēpti gan dati, gan uzvedība
Objektiem ir privātas metodes un atribūti, aģentiem - pārliecības un darbības
Gan aģentiem, gan objektiem ir iekšējais stāvoklis. Gan aģentu, gan objektu uzvedību ietekme vēsture
Līdzīgi kā objekts, aģents (parasti) ir klases instance
9
Aģenti vs objekti – atšķirības Aģenti balstās uz stingrākiem iekapsulēšanas
principiem kā objekti – tiem nav citiem aģentiem pieejamu metožu un redzamu atribūtu, izņemot aģenta identifikatoru
Objekti mijiedarbojas ar metožu izsaukumiem, bet aģenti nosūta ziņojumus, izmantojot strukturētas valodas, piemēram FIPA ACL
Aģentiem piemīt sociālas īpašības, objektiem nav organizācijas vai sociālo spēju
Aģenti spēj sadarboties un sacensties, lai sasniegtu savus mērķus, objekti nespēj darboties uz mērķi
Aģenti nevar tikt brīvi izveidoti un iznicināti, kā to var veikt ar objektiem
10
Aģentu dažādība
Racionāli aģenti vs Programmatūras aģenti Refleksu aģenti vs BDI aģenti
(BDI-pārliecības, vēlmes, nodomi)
Bieži vien sistēmas heterogēnas
“Man ir vienalga, vai mans aģents ir intelektuāls, man ir svarīgi, vai tas atrisina
problēmu” (F. Dignum)
11
1. daļa: Aģentu izstrādes iespējas
12
Kā realizēt aģentus?
Asamblerā Objektorientētā programmēšanas valodā
Eksistē platformas, kas vienkāršo aģentu izstrādi Gandrīz visi risinājumi balstās uz valodas Java
Aģentorientēta programmēšanas valoda Grūti atšķirt OO paplašinājumus no AO valodām Vāji attīstītas AgentSpeak – programmē BDI aģentus
13
Aģentu izstrādes platformu piemēri JADE JADEX JACK Jason FIPA OS AgentBuilder ZEUS RETSINA JatLite IMPACT ABLE Aglets Spade Utt.
14
Aģentu realizācija objektorientētās valodās
15
Aģents šajā kontekstā
Process vai pavediens Katram unikāls identifikators Asinhrona mijiedarbība (parasti Java RMI)
16
Aģentu realizācijas/izstrādes platformas piedāvā
Infrastruktūru, kas kopīga visiem aģentu projektiem
Dažādus rīkus, šablonus, klases
17
Vide
Aģents Aģents
Aģents
Aģenta iekšējā struktūra
Mijiedarbība
Mijiedarbība Mijiedarbība
Augsta līmeņa servisi (piem., aģentu komunikācijas valoda, starpniekaģenti, koordinācija)
Zema līmeņa servisi (piem., aģentu vārdu serviss, ziņojumu nosūtīšana)
Aģentu izstrādes rīki (piem., grafiski izstrādes rīki)
Vadības servisi (piem., vizualizācija)
Aģentu testēšanas rīki
FIPA standarti
18
Aģentu realizācijas platformu veidi
Sākotnēji divu veidu platformas: Platformas aģentu mijiedarbības realizēšanai Platformas spriest spējīgu (BDI) aģentu
realizēšanai
Patlaban cenšas iekļaut labāko no abiem veidiem Piemēram, JADEX pievieno BDI arhitektūru JADE
19
FIPA Standarti
FIPA - Foundation for Intelligent Physical Agents Specificē platformas īpašības, lai platformas būtu
savietojamas
Standarti iekļauj: Aģentu dzīves cikla vadību Ziņojumu transportu Ziņojumu struktūru Aģentu mijiedarbības protokolus Ontoloģijas Drošības jautājumus
20
FIPA standarti padara dažādas platformas savietojamas
Aģenti
Dzeltenāslapas
Baltāslapas
Ziņojumu transportaserviss
Aģenti
Dzeltenāslapas
Baltāslapas
Ziņojumu transportaserviss
Aģentu platforma 1 Aģentu platforma 2
21
Platformas piedāvātie servisi Aģentu vadības serviss
Jeb balto lapu serviss Uztur informāciju par aģentiem
Nosaukums, īpašnieks, stāvoklis Dzelteno lapu serviss
Directory facilitator (DF), Yellow pages Operācijas
Piereģistrēties Atsaukt reģistrāciju, mainīt reģistrāciju Meklēt
Uztur aģentu aprakstus Nosaukums, atrašanās vieta (adrese), protokoli, ontoloģija,
kompetence
22
Ziņojuma struktūra
Aploksne (Envelope) Transporta informācija
Derīgā daļa (Payload)
Ziņojums (Message)
Saturs (Contact)
Ziņojums iekodētā formā
Ziņojuma parametri
Ziņojuma saturs
23
Aploksnes parametri
No, uz Reprezentācija (String, XML, utt.) Datums
Kodējums Garums Saņemšanas zīmogs Drošības objekts (sertifikāts)
24
Derīgās daļas kodēšana
FIPA ACL valoda kļuvusi par standartu Lauki: Elements Skaidrojums
mērķis (performative) Kādu darbību šis ziņojums veic?
sūtītājs (sender) Ziņojuma sūtītājs
saņēmējs (receiver) Ziņojuma saņēmējs
atbildēt kam (reply-to) Atbildes uz šo ziņojumu saņēmējs
saturs (content) Ziņojuma saturs
valoda (language) Valoda, kas izmantota satura izteikšanai
kodējums (encoding) Kodējums
ontoloģija (ontology) Ziņojuma ontoloģiskais konteksts
protokols (protocol) Protokols, kam ziņojums pieder
sarunas id (conversation-id) Saruna, kam pieder ziņojums
atbildēt ar (reply-with) Atbildēt ar šādu izteikumu
atbilde uz (in-reply-to) Darbība, uz kuru šis ziņojums atbild
atbildēt līdz (reply-by) Laiks, līdz kuram tiek gaidīta atbilde
25
Ontoloģiju pielietojums
Ontoloģijas ļauj apmainīties ar zināšanām Ontoloģija nodrošina problēmsfēras konceptu un predikātu
vienādu izpratni starp aģentiem Ontoloģija ļauj zināšanas iekodēt satura laukā Satura laukā parasti tiek nosūtīti predikāti
Ontoloģiju izveides rīki Protégé http://protege.stanford.edu/
Integrēti aģentu izstrādes rīkos (piemēram, MASITS) Ziņojuma saturu visbiežāk kodē FIPA-SL valodā
Faktiski var kodēt jebkādā valodā (KIF, Prolog, SQL, FIPA-SL, FIPA-CCL, FIPA-RDF, FIPA-KIF)
26
JADE ontoloģiju atbalsts
JADE satura valodu un ontoloģiju atbalsts
Ziņojuma satura lauks
Aģenta iekšiene
Informācija ir reprezentēta kā simbolu
vai baitu virkne(vienkārši nosūtīt)
Informācija ir reprezentēta kā Java objekti
(vienkārši apstrādāt)
27
Ziņojuma piemērs
Aģents i pieprasa aģentam j (robotam) nogādāt konkrētu kasti konkrētā vietā
(request:sender (agent-identifier :name i):receiver (set (agent-identifier :name j)):content ((action (agent-identifier :name j)
(deliver box017 (loc 12))):protocol fipa-request:language fipa-sl:reply-with order567 )
28
Ārpus FIPA standartiem paliek
Paši aģenti
Respektīvi, standarti nosaka to, kādi ir aģentu “interfeisi”, bet aģentu realizācijas paliek platformas izstrādātāju ziņā
29
Komunikāciju nodrošinošas platformas
Nodrošina FIPA standartiem atbilstošu ziņojumu apmaiņu
Piedāvā FIPA standartiem atbilstošus servisus
Piedāvā dažādus rīkus Aģentu izstrādes rīki Aģentu vadības rīki Aģentu testēšanas rīki
Aģentu “iekšieni” realizē (parasti Java) kodā
30
Kā tas izskatās reāli? JADE aģents
Klases jade.core.Agent apakšklase Katram aģentam ir ziņojumu rinda Aģenti izpilda uzvedības
Aģents ar lietotāja saskarni reaģē uz notikumiem saskarnē
31
Aģenta klases piemērs
32
Uzvedības
Klases Behaviour apakšklases Šādas metodes:
action() – veic uzvedībai atbilstošo darbību done () – atgriež atbildi, vai uzvedība savu darbu
ir beigusi
33
Ziņojumu saņemšana
Ziņojumi tiek ievietoti rindā (“pastkastē”)
Aģents “pastkasti” pārbauda ar speciālu ciklisku uzvedību
Aģents var arī lasīt ziņojumus, kas atbilst kādam kritērijam
34
JADE piedāvātie rīki
Dzelteno lapu un balto lapu servisi Uzraudzības aģents
Kontrolē platformas, konteineru un aģentu dzīves ciklu Ļauj palaist, “nogalināt” aģentus, apturēt un atsākt to
darbu, migrēt aģentus, nosūtīt aģentam ziņojumu
Butaforijas aģents (Dummy Agent) Okšķera aģents Introspekcijas aģents Testēšanas rīki (JADE Test Suite)
35
Uzraudzības aģents
36
Okšķera aģents
37
Introspekcijas aģents
38
Testēšanas rīkiJADE Test Suite
Automatizēta testu izpilde, ko veic testētājaģents
Testi tiek veidoti divos līmeņos Testu grupa kādai funkcionalitātei
Piemēram, komunikācijai starp aģentiem no dažādām platformām
Atomāri testi specifiskam funkcionalitātes aspektam Piemēram, ziņojumu saņemšana no citas platformas
39
Platformas, kas realizē spriest spējīgus aģentus
40
BDI aģenta definīcija
Intelektuāls aģents ir autonoma programmatūras vienība, kam ir skaidri formulēti mērķi, ko tai jāsasniedz, vai
notikumi, ko tai jāapstrādā
41
BDI Aģenti
Uz mērķi balstīti aģenti Balstīts cilvēku spriešanas procesos Izmanto trīs pamatkonceptus
Beliefs – pārliecības Desires - mērķi jeb vēlmes Intentions – tālākās darbības jeb nodomi
Trīs pamatkoncepti realizēti kā primāri objekti, ar ko var manipulēt aģentu iekšienē
42
Kā realizē BDI arhitektūru?Pārliecības
Jebkāda veida Java objekti Glabā pārliecību bāzē Piemēram, JADEX pārliecību bāze
Satur pārliecību identifikatorus simbolu virkņu formā
Identifikatori tiek attēloti pārliecību vērtībās, kas ir patvaļīgi Java objekti
Izmanto vaicājumu valodu, līdzīgu OQL
43
Kā realizē BDI arhitektūru?Mērķi
Attēlo konkrētu motivāciju, kas ietekmē aģenta darbības
Piemēram, konkrēti stāvokļi, ko jāsasniedz JADEX
Mērķi ir centrālais koncepts Mērķi ir konkrētas un momentānas aģenta vēlmes Katram mērķim, kas ir aģentam, tas veiks atbilstošas
darbības, līdz tas zinās, ka mērķis ir sasniegts, nesasniedzams vai vairs nevajadzīgs
Mērķi dažādi: paveikt, sasniegt, iegūt informāciju, uzturēt
44
Kā realizē BDI arhitektūru?Nodomi, plāni
Lai sasniegtu mērķus, aģents izpilda plānus Plāni apraksta konkrētas darbības, ko aģenti
var veikt, lai sasniegtu savus mērķus Plāni ir (parasti Javā kodētas) procedurālas
darbību secības JADEX
Plāns sastāv no galvas un ķermeņa Galva specificē nosacījumus, kādos plāns var
tikt izpildīts Ķermenis ir Javā kodēta darbību secība
45
Spriešana Spriešana balstās (plānošanas terminos)
Pašreizējā stāvokļa apraksts Vēlamā stāvokļa apraksts Iespējamās darbības
Kādā stāvoklī tās var veikt? Kādi ir to rezultāti?
Aģents reaģē uz saņemtajiem ziņojumiem, iekšējiem notikumiem un mērķiem Līdzekļu-rezultātu (means-end) spriešana
Aģents nepārtraukti pārskata mērķus, uzturot nepretrunīgu mērķu apakškopu, ko jāsasniedz
46
BDI aģentu spriešanas cikls
Oriģināli Rao un Georgijevs piedāvāja šādu ciklu (90-to gadu sākums!)
47
JADEX interpretācija
48
Aģentu definēšana JADEX Aģentu īpašības (pārliecības, mērķus un plānus)
definē programmētājs Aģentu apraksta XML failā, ko sauc par aģenta
definīcijas failu
49
Aģentorientētas programmēšanas valodas
50
Java valodas paplašinājums - JACK aģentu izstrādes platforma
JACK aģentu valodaPaplašina Java valodu aģentu realizēšanai
Definē jaunas klases, interfeisus un metodes Paplašina Java sintaksi, lai atbalstītu aģentorientētas
klases Paplašina java semantiku (izpildes atšķirības), lai
atbalstītu aģentorientētai sistēmai nepieciešamo izpildes modeli
JACK aģentu kompilatorsKompilē JACK aģentu valodā rakstītu kodu uz “īstu”
Java kodu
51
Klašu paplašinājumi
Aģents (Agent) Spēja (Capability) Pārliecību kopa (BeliefSet) Notikums (Event) Plāns (Plan)
52
Sintakses paplašinājumi
Piemēram, plāna funkcionalitāte ir realizēta klasē Plan. Konkrēta plāna deklarācija tikai norāda, kā tas tiks lietots
# apzīmē AO konceptus
53
AgentSpeak(L) valoda Loģiskās programmēšanas paplašinājums BDI
aģentiem Aģents tiek izveidots, norādot
Sākotnējo pārliecību kopuPārliecība ir vienkāršs 1. kārtas predikāts
Plānu kopuVienkāršas darbības
Aģentam var būt 2 veidu mērķi Sasniegšanas mērķi Pārbaudes mērķi
Jason interpretators
54
AgentSpeak plāna piemērs
Biļešu rezervēšana māksliniekam A vietā V
55
1. daļas kopsavilkums
Platformas iekļauj gatavas klases, no kurām mantot JADE: Agent, Behaviour, ACLMessage, utt.
Piedāvā rīkus Pievieno atsevišķus valodu paplašinājumus vai
pielieto citas valodas, lai aprakstītu aģentu konceptus Līdzīgi kā C++ paplašina C JADEX: Aģenta apraksts XML valodā JACK Aģentu valoda paplašina Javu AgentSpeak izmanto loģisko programmēšanas valodu
56
Kādi praktiski ieteikumi? Eksistē dažādas pieejas aģentu izstrādē. Kā izvēlēties? Vienkāršākaissarežģītākais apgūšanai
Komunikāciju nodrošinošās platformas JADE nepieciešams zināt tikai aģentu būtību un Java
Dažādi valodu paplašinājumi vai vairāku valodu apvienojumi JACK lietošanai jāzina Java un nedaudz papildus JADEX lietošanai jāzina Java un XML
Specifiskās valodas Lai lietotu Jason, jāzina loģiskā programmēšana, AgentSpeak iekļautie
paplašinājumi un Java Tomēr ne vienmēr var izvēlēties vienkāršāko
Platformas ir brīvi pieejamas JADE+Brīvi pieejama Java izstrādes vide nemaksā neko
Bez Java zināšanām gandrīz neiespējami...
57
2. daļa: Aģentorientēta programmatūras inženierija
58
Vēsture
Programmēšana assemblerā
Procedurālā programmēšana
Objektorientēta programmēšana
Aspektorientēta programmēšana
Aģentorientēta programmēšana
...
59
Jēdzieni
Aģentorientēta (AO) programmatūra – programmatūra, kas sastāv no aģentiem
AO programmatūras inženierija – Agent Oriented Software Engineering (AOSE)
OO programmēšana AO programmēšana OO sistēmanalīze AO sistēmanalīze
Tiek veikts viss tas pats, kas OO gadījumā
60
Aģents šajā kontekstā
Intelektuāla programmatūras vienība
Programmatūras aģentu definē šādi:
“Aģents ir patstāvīga programmatūras vienība, kas uztver, realizē spriešanu, veic darbības un mijiedarbojas ar citiem aģentiem”
61
AOSE metodoloģijas
AOSE ir sarežģīts process, ko ir grūti veikt bez metodoloģiska atbalsta
Definīcija: AO programmatūras izstrādes metodoloģija ir metožu kopums, ko izmanto AO programmatūras izstrādē
62
Metodoloģijai jāiekļauj
Precīzi definētu izstrādes procesu Tehnikas katra soļa veikšanai AOSE atbilstošus konceptus Diagrammu notāciju CASE rīkus Mehānismus/algoritmus, kā no projektējuma
iegūt sistēmas realizāciju
63
Zināmākās AOSE metodoloģijas Prometheus Gaia MaSE INGENIAS AUML MESSAGE ADELFE Tropos MAS-CommonKADS DESIRE COMOMAS Styx OPEN procesu ietvars
PASSI MASSIVE RAP AOMT Metodoloģija daudzaģentu
sistēmu izstrādei organizācijas integrācijai
ARCHON ietvars Cassiopeia Augsta līmeņa un vidēja
projektējuma pieeja BDI aģentu modelēšana
MASITS
64
Dzīves cikls
Pēc būtības tāds pats, kā OO Dažas metodoloģijas izmanto modificētu RUP,
pārējās ~iteratīvu ūdenskritumu Aplūkosim šādas fāzes:
Analīze Projektēšana Realizācija Testēšana Ieviešana Uzturēšana
65
Analīze
Prasības jāiegūst tādā formā, kā tās tālāk ir nepieciešamas
Analīzes fāzē pielieto šādas tehnikas: Lietošanas gadījumu modelēšana Mērķu hierarhija Uzdevumu hierarhija Problēmsfēras modelēšana/Ārējās vides analīze,
organizācijas modelēšanaOntoloģijas
66
Lietošanas gadījumu modelēšana
Lietošanas gadījumu diagramma Lietošanas gadījumu scenāriji Lietošanas gadījumu kartes
Parāda, kā lietošanas gadījums izpildās pa aģentiem Var izmantot, lai identificētu komunikācijas nepieciešamību
starp aģentiem
Iekšējie lietošanas gadījumi
67
Iekšējie lietošanas gadījumi
Parāda, kā aģenti izmanto citus aģentus
Atbilstošā ziņojumu secības karte (MSC)
68
Mērķu modelēšana
Īpaši noderīga, veidojot mērķos sakņotus aģentus
Labi saprotama problēmsfēras ekspertiem Mērķi izstrādes gaitā mainās reti Rezultātā mērķu
hierarhija
69
Uzdevumu dekompozīcija
Līdzīga mērķu modelēšanai Uzdevumi parasti konkrētāki un zemākā līmenī par
mērķiem
Mērķu modelis piemērotāks BDI (Belief, Desire, Intention) aģentiem
Uzdevumu modelis izmantojams JADE aģentiem
Uzdevumiem var veidot atbilstošas aģentu darbības/uzvedības
Mērķiem parasti atbilst lomas Mērķiem var veidot atbilstošus lietošanas gadījumus
70
Organizācijas modelēšana
Modelē organizācijas struktūru Noderīga, ja sistēmai ir jāiekļaujas
organizācijā Nosaka iesaistītās puses, organizācijas to
vienības un lomas, kā arī mijiedarbību un hierarhiju starp tām
71
Problēmsfēras modelēšana
Analizē vidi, kurā aģentiem jādarbojas Iegūst problēmsfēras klašu modeli
No klašu modeļa parasti iegūst problēmsfēras ontoloģiju
Ontoloģiju aģenti izmanto savu zināšanu aprakstīšanai un komunikācijā
72
Projektēšana Projektēšana ir visvairāk no OO atšķirīgā fāze
Parasti iedala divās stadijās 1. stadija atbild uz jautājumiem: kas aģentiem ir jādara un
kā tie mijiedarbojas? Aģentu ārējā projektēšana Augsta līmeņa projektējums Arhitektūras projektējums Var uzskatīt par daudzaģentu sistēmas projektēšanu
2. stadija atbild uz jautājumu: kā aģenti sasniegs savu funkcionalitāti? Aģentu iekšējās struktūras projektēšana Zema līmeņa projektējums Detalizēts projektējums
73
Aģentu definēšana
Var tikt iekļauta Analīzes fāzē, ja aģenti ir prasības Projektēšanas fāzē, ja aģenti ir veids, kā realizēt prasības
Aģentus definē atbilstoši Lietotājiem Organizācijām/iesaistītajām pusēm Mantotām sistēmām Lomām Lietošanas gadījumiem Uzdevumiem Zināšanām
74
Mijiedarbības projektēšana
Specificē, kā aģenti mijiedarbojas 3 detalizācijas pakāpes
Pazīšanās (acquaintance) līmenis Nosūtīto ziņojumu līmenis Formālu mijiedarbības protokolu līmenis
Request Protocol FIPA Contract Net
75
Pazīšanās diagramma
Norāda tikai to, starp kuriem aģentiem eksistē mijiedarbība
Ļoti vienkārša Bieži nepietiekama
76
Nosūtītie ziņojumi
Norāda, kādi ziņojumi tiek nosūtīti starp kādiem aģentiem
Nenorāda ziņojumu secību un kontekstu
77
Mijiedarbības protokoli
Specificē nosūtāmos ziņojumus to secību un līdz ar to kontekstu
Katram ziņojumam ir norādītas iespējas, kā uz to var atbildēt
Faktisks standarts UML protokolu diagramma
Protokoli ir atkārtoti lietojami
78
Projektēšanas otrā stadija
Katram aģentam specificē: Uztveres (t.sk. saņemtie ziņojumi) Darbības ar ārējo vidi (t.sk. nosūtītie ziņojumi),
plāni Zināšanas, pārliecības Spriešanas process Arhitektūra
Iespējams: lomas, spējas, uzdevumi, mērķi
79
Aģenta iekšējais projektējums
Aģents
Notikumi
Ziņojumi
Spriešanas mehānisms
Pārliecības
Ziņojumi
Darbības arārējo vidi
Plāni
Mērķi
80
Realizācija
Jāizvēlas izstrādes platforma Jāpāriet no projektēšanā izmantotajiem
konceptiem realizācijas platformā izmantotajos
Jārealizē sistēma konkrētā platformā Jāveic koda ģenerēšana Jāpapildina ģenerētais kods
81
Izstrādes rīki
Rīki diagrammu zīmēšanai Projektējuma integritātes uzturēšana Diagrammu transformācijas/elementu
ģenerēšana Galvenā funkcija: koda ģenerēšana
82
Rīku piemēri: PDT un agentTool
83
Rīku piemēri: MASITS un IDK
84
Testēšana
Visvājāk attīstītā fāze
Vienlaikus izkliedētu sistēmu testēšana un atkļūdošana ir sarežģīta
Lielākoties izmanto (pielāgotas) klasiskās pieejas
Ir specifiski rīki: JADE Test Suite
85
Ieviešana
Norāda konkrētas aģentu instances, to atrašanās vietas un migrāciju
Ļauj viegli izmainīt sistēmu, nemainot projektējumu
A1: AuthorPCM1:
PCMember A2: Author A3: Author
Chair: PCChair
DataBase:DB
86
Uzturēšana
Principā neatšķiras no OO
Aģenti dod sistēmām atvērtību un augstu modularitāti Atvērtība ļauj izmainīt funkcionalitāti
pievienojot/izslēdzot aģentus Modularitāte atvieglo izmaiņu ieviešanu
atsevišķās sistēmas daļās
87
Kā tas viss izskatās kopā: Prometheus metodoloģija
88
2. daļas kopsavilkums
AOSE metodoloģijas izmanto labi zināmas OO tehnikas, pielāgojot tās AO
Visvairāk atšķiras projektēšana
AOSE ir attīstījusies līdz līmenim, kad to var industriāli pielietot
Jautājums atklāts: vai to industrijai vajadzēs?
89
Kādi praktiski ieteikumi? Metodoloģijām ir brīvi pieejami apraksti/pamācības Metodoloģijas ļoti atšķirīgas, bet saprotot
pamatlietas, var saprast visas metodoloģijas Nav absolūti universālu metodoloģiju
Izvēlieties konkrētam projektam/darbības sfērai piemērotu metodoloģiju
Metodoloģijas vēl tālu no perfektām, bet attīstība notiekIzvēlieties tādu, kuru turpina attīstīt
Pievērsiet uzmanību vienkāršai pārejai no projektējuma uz izstrādi
Izvēlieties metodoloģiju ar atbilstošiem rīkiem