Sunteți pe pagina 1din 21

Metodologia Prometheus

Cap 8

2014/2015

Metodologii de dezvoltare software


O metodologie de dezvoltare software (engl. software
development method) urmareste sa prescrie toate elementele
necesare dezvoltarii unui sistem software, in special in contextul
aplicatiilor comerciale.
La ora actuala exista foarte multe metodologii (unii autori apreciaza un
numar > 1000 !). Unele au fost propuse chiar cu doua decade in urma, iar
altele sunt propuse mai recent.
Intre ele se identifica un numar restrans de abordari, incluzand:

Metodologii structurate
Metodologii orientate pe obiect
Metodologii agile
Programare extrema (engl. extreme programming)

La ele se adauga si metodologiile orientate pe agenti, ce fac parte din


domeniul ingineriei programarii orientata pe agenti (engl. agent-oriented
software engineering AOSE).
2014/2015

Elementele unei metodologii


O metodologie contine doua categorii de elemente:
Elemente referitoare la proces
Elemente referitoare la produs

Cele mai vizibile sunt elementele referitoare la produs. Ele


includ o notatie (limbaj) de modelare cum este UML.
Pe langa acestea, metodologiile mai includ:
Elemente sociale: roluri / persoane, echipe, managementul proiectelor
Managementul calitatii, metrici si standarde
Instrumente suport, de exemplu: modelare, inginerie inversa si dutevino (engl. inverse and round-trip engineering), managementul
versiunilor (engl. versioning)

Metodologiile AOSE sunt in general derivate din:


Ingineria cunostintelor (engl. knowledge engineering) din inteligenta
artificiala
Dezvoltarea orientata pe obiect (engl. object-oriented development)

2014/2015

Terminologia metodologiilor AOSE

2014/2015

Caracteristicile metodologiei Prometheus


Prometheus este o metodologie de dezvoltare a sistemelor multi-agent
(SMA).
Prometheus este o metodologie completa care doreste sa ghideze
proiectatul de la faza de analiza pana la faza de generare de cod.
Metodologia Prometheus include:
O multime de concepte pentru proiectarea agentilor
Un proces de dezvoltare ce consta dintr-o multime de activitati
Un numar de notatii pentru descrierea proiectului unui SMA
Un numar de tehnici sau sfaturi (engl. tips) care pot fi urmate in
realizarea unui proces Prometheus
Prometheus permite proiectarea SMA bazate pe modelul BDI, dar nu este
limitata la acest model.
O parte din activitatile unui proces Prometheus sunt facilitate de
instrumentul software: Prometheus Development Tool PDT
https://sites.google.com/site/rmitagents/software/prometheusPDT

2014/2015

Conceptele folosite de metodologia Prometheus


Un sistem multi-agent (SMA) este compus dintr-o multime de
agenti situati intr-un anumit mediu.
Interfata dintre un agent si mediu se exprima in termeni de:
Percepte sunt intrari ale agentului
Actiuni sunt iesiri ale agentului

Agentii pot fi proactivi sau reactivi.


Agentii proactivi adopta si urmaresc obiective (engl. goals).
Agentii reactivi raspund la evenimente, ce pot fi:
Generate de percepte provenite din mediu
Mesaje primite de la alti agenti
Evenimente interne generate din logica interna a agentului

Agentii sunt sociali. Ei interactioneaza prin schimburi de


mesaje ce sunt parte a unor protocoale de interactiune.
Agentii poseda convingeri si planuri.
2014/2015

Fazele metodologiei Prometheus


Specificarea sistemului: presupune construirea unei
specificatii a sistemului in termeni de obiective si
scenarii. Contine (i) interfata sistemului cu mediul si
(ii) functionalitatile sistemului
Proiectarea arhitecturala: se specifica structura
sistemului, tipurile de agenti, iar scenariile sunt
detaliate folosind protocoale de interactiune
Proiectarea detaliata: presupune detalierea structurii
interne a agentilor (capabilitati, date, eveniments si
planuri). Planurile sunt corelate cu protocoalele de
interactiune prin intermediul diagramelor de procese.
2014/2015

Modele ale metodologiei Prometheus


Modelele dinamice prezinta modul de comportament in timp al
SMA.
Modelele structurale prezinta structura sistemului si a
componentelor sale.
Descriptorii entitatilor prezinta detaliile entitatilor individuale.
Modele dinamice

Modele structurale

Descriptori de entitati

Specificarea
sistemului

Scenarii

Obiective

Functionalitati, actiuni si
percepte

Proiectare
arhitecturala

Protocoale de interactiune
(diagrame de interactiune)

Prezentare generala sistem


(diagrame de cuplaj)
(cunoasterea intre agenti)

Mesaje agenti

Diagrame de proces

Prezentare generala agent


Prezentare generala
capabilitati

Capabilitati, planuri, date


(convingeri), evenimente

Proiectare
detaliata

2014/2015

Privire de ansamblu asupra metodologiei


Prometheus

2014/2015

Exemplu: sistem pentru avertizare de vreme


extrema

Sistemul (AWS Agent-based Weather warning System) ofera


utilizatorilor diverse avertizari de vreme extrema in
aeroporturi in functie de:
Prognoza
Date de la senzorii prezenti in aeroporturi

Prognoza include predictii orare pentru 12 ore in viitor ce sunt


transmise de un agent central de prognoza. Include predictii
pentru:

Viteza vantului (in knot, simbol kn mile nautice / ora)


Caderea de ploaie (in mm)
Temperatura (in grade Celsius - C)
Ceata masurata prin vizibilitate in metri m.

Detalii la:

https://sites.google.com/site/rmitagents/software/prometheusPDT/tutoria
ls/meteorology

2014/2015

Date AWS
Sunt furnizate de senzori plasati la suprafata solului. Datele
sunt actualizate din minut in minut, dar sunt transmise catre
sistem la intervale de 15 min.
AWS poate cere explicit date mai precise, care sunt valide
pentru minutul curent.
Fiecare aeroport va produce si transmite catre AWS un set
propriu de date ce include:

Viteza curenta a vantului (kn)


Caderea curenta de ploaie (mm)
Temperatura curenta (C)
Prezenta cetii (yes / no)

2014/2015

Avertismente emise de AWS


Discrepanta intre prognoza orara si valoarea actuala (conform
citirii senzorilor) a unui parametru:
Diferenta de cel putin 5 kn pentru viteza vantului
Diferenta in prezenta cetei

Posibilitate de vant puternic in orele urmatoare:


Este prognozata viteza vantului mai mare de 30 kn
Valoarea curenta a vantului depaseste 5 kn si este semnificativ mai
mare decat valoarea prognozata, cresterea este rapida
Viteza vantului este in crestere, depaseste 20 kn si este mai mare
decat valoarea prognozata

Schimbarea semnificativa a prognozei in urmatoarele 2 ore:

Viteza vantului a depasit 30 kn


Este ceata
Temparatura este negativa
Exista cadere puternica de ploaie, peste 10 mm

2014/2015

Specificarea sistemului
Porneste de la o idee initiala / descriere sumara a SMA.
Urmareste definirea cerintelor ce cuprinde:

Obiectivele sistemului
Scenariile de utilizare (engl. use case scenarios) si actorii
Functionalitatile sistemului
Interfeta cu mediul extern: actiuni, percepte si date externe

Obiectivele stabilesc la nivel inalt ce trebuie sa realizeze


sistemul. Ele sunt reprezentate intr-o diagrama de obiective ce
specifica si relatiile dintre obiective si sub-obiective.
Scenariile de utilizare prezinta secventa de activitati care au
loc in sistem in cadrul unei executii normale a a acestuia.
Functionalitatile reprezinta parti coerente ale
comportamentului sistemului ce grupeaza obiective corelate,
impreuna cu actiunile, perceptele si datele aferente.
2014/2015

Diagrama de analiza
Diagrama de analiza (engl. analysis overview diagram)
reprezinta interfata dintre SMA si mediu.
Ea contine:
Actorii
Scenariile
Perceptele si actiunile

Actorii reprezinta agenti umani sau sisteme externe care


interactioneaza cu SMA.
Diagrama de analiza constituie cea mai abstracta reprezentare
a sistemului. In cadrul sau se ignora detaliile structurale si
dinamice ale SMA, retinandu-se doar interfata dintre SMA si
mediu.
2014/2015

Exemplu diagrama de analiza

2014/2015

Diagrama de scenarii
Detaliile scenariilor se reprezinta cu diagrama de scenarii
(engl. scenario overview diagram).
Scenariile sunt o reprezintare initiala a partii de dinamica a
SMA. Fiecare scenariu conduce la realizarea unui anumit
obiectiv (engl. goal), astfel ca scenariile si obiectivele sunt
strans corelate. La crearea unui scenariu se creaza implicit si
un obiectiv asopciat, cu acelasi nume cu scenariu (acest nume
se poate schimba ulterior).
Un scenariu reprezinta o urma posibila a executiei normale a
sistemului. El este reprezentat de o multime de pasi ce pot fi:
scenarii, obiective, actiuni, percepte.
2014/2015

Diagrama de obiective
Diagrama de obiective (engl. goal overview diagram)
reprezinta obiectivele SMA si modul lor de structurare in subobuective.
Diagrama de obiective este corelata cu diagrama de scenarii.
Cele doua diagrama sunt de obicei construite impreuna, in
cadrul unui proces iterativ.
Un obiectiv este compus dintr-o multime de subobiective.
Subobiectivele sunt supuse unei constrangeri AND sau OR.
Intre ele pot exista relatii de dependenta.

2014/2015

Proiectarea arhitecturala
Include urmatoarele activitati:
Se decid tipurile de agenti necesari si se dezvolta
descriptorii agentilor
Se defineste structura atotcuprinzatoare a sistemului
utilizand diagrama de prezentare a sistemului (engl. system
overview diagram)
Se descrie comportamentul dinamic al sistemului folosind
diagrame de interactiune (engl. interaction diagrams) si
protocoale de interactiune
2014/2015

Determinarea tipurilor de agenti


O decizie majora in proiectarea arhitecturala este stabilirea
tipurilor de agenti care compun sistemul.
Un tip de agent incapsuleaza o multime de functionalitati
corelate. Alegerea modului de grupare din multiplele
posibilitati se realizeaza aplicand principiile de modularitate:
cuplaj slab si coeziune puternica.
Pentru aceasta se foloseste o diagrama de cuplaj al datelor
(engl. data coupling diagram), iar rezultatul este evaluat
folosind o diagrama de cunoastere intre agenti (engl. agent
acquaintance diagram).
2014/2015

Diagrama de prezentare a sistemului


Pentru fiecare tip de agent se identifica:

Actiunile pe care le poate executa


Perceptele la care trebuie sa reactioneze
Mesajele interschimbate cu alte tipuri de agenti din sistem
Cerintele privind accesul la depozite de date partajate

Toate elementele de mai sus sunt cuprinse apoi in diagrama de


prezentare generala a sistemului.
Diagrama de prezentare a sistemului reprezinta doar caile de
comunicatie intre agenti, dar nu si corelarea temporala a
schimburilor de mesaje. Pentru a surprinde si acest aspect,
scenariile sunt detaliate in diagrame de interactiune intre
agenti (engl. agent interaction diagrams) si protocoale de
interactiune.
2014/2015

Proiectarea detaliata
Proiectarea detaliata are in vedere proiectarea structurii interne
a agentilor cat si a modului in care agentii isi realizeaza
sarcinile in SMA.
Presupune urmatoarele activitati:
Determinarea elementelor interne ale agentilor in termeni de
capabilitati (module interne ale agentilor) sau planuri, evenimente si
structuri de date interne. Pentru aceasta se folosesc diagramele de
prezentare a agentilor (engl. agent overview diagrams) si descriptorii
de capabilitati (engl. capability descriptors).
Se detaliaza dinamica sistemului prin intermediul diagramelor de
procese (engl. process diagrams).
Eventual capabilitatile se detaliaza in termeni de alte capabilitati, prin
intermediul diagramelor de prezentare a capabilitatilor (engl.
capability overview diagrams).
In ultima instanta se specifica planurile, evenimentele si datele prin
descriptorii corespunzatori.

2014/2015

S-ar putea să vă placă și