Slaidi par aģentu izstrādi
Download
Report
Transcript Slaidi par aģentu izstrādi
Aģentu izstrāde
Priekšmets “Mākslīgais intelekts”
Egons Lavendelis
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
2
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ē
3
Lekcijas plāns
Ievads: kādi aģenti praktiski tiek realizēti?
1. daļa: Aģentu izstrādes iespējas
Daudzaģentu sistēmas
Aģentu īpašības no izstrādes viedokļa
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
4
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
5
Tipiska daudzaģentu sistēmas struktūra
6
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)
7
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
8
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
9
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)
10
1. daļa: Aģentu izstrādes
iespējas
11
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
12
Aģentu izstrādes platformu
piemēri
JADE
JADEX
JACK
Jason
FIPA OS
AgentBuilder
ZEUS
RETSINA
JatLite
IMPACT
ABLE
Aglets
Spade
Utt.
13
Aģentu realizācija
objektorientētās valodās
14
Aģents šajā kontekstā
Process vai pavediens
Katram unikāls identifikators
Asinhrona mijiedarbība (parasti Java RMI)
15
Aģentu realizācijas/izstrādes
platformas piedāvā
Infrastruktūru, kas kopīga visiem aģentu
projektiem
Dažādus rīkus, šablonus, klases
16
Aģenta iekšējā
struktūra
Vide
Aģents
Mijiedarbība
Mijiedarbība
Aģents
Mijiedarbība
Aģents
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)
FIPA standarti
Aģentu testēšanas rīki
17
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
18
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
19
FIPA standarti padara dažādas
platformas savietojamas
Aģentu platforma 1
Aģenti
Dzeltenās
lapas
Baltās
lapas
Ziņojumu transporta
serviss
Aģentu platforma 2
Aģenti
Dzeltenās
lapas
Baltās
lapas
Ziņojumu transporta
serviss
20
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
21
Ziņojuma struktūra
Aploksne (Envelope)
Transporta informācija
Derīgā daļa (Payload)
Ziņojums iekodētā formā
Ziņojums (Message)
Ziņojuma parametri
Saturs (Contact)
Ziņojuma saturs
22
Aploksnes parametri
No, uz
Reprezentācija (String, XML, utt.)
Datums
Kodējums
Garums
Saņemšanas zīmogs
Drošības objekts (sertifikāts)
23
Derīgās daļas kodēšana
FIPA ACL valoda kļuvusi par standartu
Elements
Skaidrojums
Lauki:
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
24
Ontoloģiju pielietojums
Ontoloģijas ļauj apmainīties ar zināšanām
Ontoloģiju izveides rīki
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
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, FIPASL, FIPA-CCL, FIPA-RDF, FIPA-KIF)
25
JADE ontoloģiju atbalsts
Ziņojuma satura
lauks
Informācija ir
reprezentēta kā simbolu
vai baitu virkne
(vienkārši nosūtīt)
Aģenta iekšiene
JADE satura valodu
un ontoloģiju atbalsts
Informācija ir reprezentēta
kā Java objekti
(vienkārši apstrādāt)
26
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 )
27
Ā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ņā
28
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ā
29
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ē
30
Aģenta klases piemērs
31
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
32
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
33
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)
34
Uzraudzības aģents
35
Okšķera aģents
36
Introspekcijas aģents
37
Testēšanas rīki
JADE 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
38
Platformas, kas realizē spriest
spējīgus aģentus
39
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ā
40
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ē
41
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
42
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
43
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
44
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
45
BDI aģentu spriešanas cikls
Oriģināli Rao un Georgijevs piedāvāja šādu
ciklu (90-to gadu sākums!)
46
JADEX interpretācija
47
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
48
Aģentorientētas
programmēšanas valodas
49
Java valodas paplašinājums JACK aģentu izstrādes platforma
JACK aģentu valoda
Paplaš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 kompilators
Kompilē JACK aģentu valodā rakstītu kodu uz “īstu”
Java kodu
50
Klašu paplašinājumi
Aģents (Agent)
Spēja (Capability)
Pārliecību kopa (BeliefSet)
Notikums (Event)
Plāns (Plan)
51
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
52
AgentSpeak(L) valoda
Loģiskās programmēšanas paplašinājums BDI
aģentiem
Aģents tiek izveidots, norādot
Aģentam var būt 2 veidu mērķi
Sākotnējo pārliecību kopu
Pārliecība ir vienkāršs 1. kārtas predikāts
Plānu kopu
Vienkāršas darbības
Sasniegšanas mērķi
Pārbaudes mērķi
Jason interpretators
53
AgentSpeak plāna piemērs
Biļešu rezervēšana māksliniekam A vietā V
54
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
55
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
Dažādi valodu paplašinājumi vai vairāku valodu apvienojumi
JADE nepieciešams zināt tikai aģentu būtību un Java
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...
56
2. daļa: Aģentorientēta
programmatūras inženierija
57
Vēsture
Aspektorientēta
programmēšana
Programmēšana
assemblerā
Procedurālā
programmēšana
Objektorientēta
programmēšana
Aģentorientēta
programmēšana
...
58
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ā
59
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”
60
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ē
61
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
62
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
63
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
64
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ēšana
Ontoloģijas
65
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
66
Iekšējie lietošanas gadījumi
Parāda, kā aģenti izmanto citus aģentus
Atbilstošā ziņojumu
secības karte (MSC)
67
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
68
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
69
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
70
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ā
71
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
72
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
73
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
74
Pazīšanās diagramma
Norāda tikai to, starp kuriem aģentiem
eksistē mijiedarbība
Ļoti vienkārša
Bieži nepietiekama
75
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
76
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
77
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
78
Aģenta iekšējais projektējums
Aģents
Mērķi
Ziņojumi
Notikumi
Spriešanas
mehānisms
Darbības ar
ārējo vidi
Ziņojumi
Pārliecības
Plāni
79
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
80
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
81
Rīku piemēri: PDT un agentTool
82
Rīku piemēri: MASITS un IDK
83
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
84
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: Author
PCM1:
PCMember
DataBase:
DB
A2: Author
A3: Author
Chair:
PCChair
85
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
86
Kā tas viss izskatās kopā:
Prometheus metodoloģija
87
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?
88
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
notiek
Izvē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
89
Paldies par uzmanību!!!
Jautājumi, atsauces:
[email protected]
90