ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

92
ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1

Transcript of ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Page 1: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

ExpertCommittee

Documentação

Maíra GattiRicardo Gralhoz

2005/1

Page 2: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 2

Sumário

1- Modelagem em MAS-ML

2- Diagramas da Implementação

3- Mapeamento das abstrações

4–Aplicação desenvolvida

5-Roteiro para instalação

6- Conclusão sobre Implementação usando JADE x Modelagem MAS-ML

Page 3: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 3

1- Modelagem em MAS-ML

Elementos Estruturais

–Ambiente

–Organização

–Objetos

–Agente

–Papéis de Agente

Diagramas Estáticos

–Diagramas de Organização

–Diagramas de Papéis

–Diagramas de Classes

Diagramas Dinâmicos

–Diagramas de Seqüência

–Diagramas de Atividades

Críticas sobre a Linguagem de Modelagem

Page 4: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 4

ExpertComitteEnvironment

ExpertComitteeEnvironment

private Researcher : researcherprivate Collection : Papersprivate Agent : UserAgentprivate Agent: AcademicEventOrganization

public get_Papers : Collection public set_Papers( papers Collection) : voidpublic get_Researcher : Object public set_Researcher( researcher Researcher) : voidpublic get_User : UserAgent public set_User( UserAgent user) : voidpublic check_User_Can_Come_In( user : Agent): booleanpublic check_User_Can_Leave( user : Agent): boolean

Page 5: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 5

AcademicEventOrganization<main-organization>

<<goal>> boolean : management_of_submissions_and_revisions = true{ <<sub-goal>> boolean : define_members_of_organization = true defining_members <<sub-goal>> boolean : define_deadlines_of_event = true defining_deadlines} <<belief>> Date : deadline_of_paper_submission<<belief>> Date : deadline_of_answering_revision_proposal<<belief>> Date : deadline_of_sending_papers_for_revision<<belief>> Date : deadline_of_sending_revisions_to_chair<<belief>> Date : deadline_of_sending_camera_ready<<belief>> Chair: chair = null<<belief>> Coordinator: coordinator = null<<belief>> Vector: members_CP = null <<belief>> Vector: reviewers = null<<belief>> Vector: submitted_papers = null<<axiom>> boolean: send_information_about_revisions = true<<axiom>> boolean: resolve_conflict_when_paper_is_strongly_accepted_and_rejected = true<<axiom>> boolean: minimum_of_three_reviews_by_paper = true<<axiom>> boolean: maximum_of_three_papers_by_reviewer = true<<axiom>> boolean: reviewer_cannot_review_paper_from_his_instituton = true<<axiom>> boolean: coordinator_select_1.5_number_of_requested_reviewers = true

{ } define_reviewers { }{ } define_chair{ }{ } define_coordinator { }{ } define_members_CP { }{ } define_deadlines{ }defining_deadlines { define_deadlines } define_deadlines_of_eventdefining_members { define_members_CP, define_reviewers, define_chair, define_coordinator } define_members_of_organization

Page 6: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 6

Objetos

Paper

Title : StringAbstract: StringAuthor : ResearcherInstitution : StringArea : StringFile : StringFileCameraReady : String

getPaper() : PapersetPaper(Paper paper)...

Revision

getResult() : StringsetResult(String result)getFile() : StringsetFile(String file)

result : StringFile : String

Vote

getVote() : VotesetVote(Paper paper)

vote : String

Researcher

Name : StringInstitution : StringInterestArea : String

getResearcher() : ResearchersetResearcher(Researcher researcher)getNome() : StringgetInstitution() : StringgetInterestArea() : String

Agenda

getAgenda() : AgendasetAgenda (Date date, String description)

date : DateDescription : String

Page 7: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 7

Modeling the Agents and Agent Roles

Coordinator UserAgent

Reviewer

Chair

Author

MemberCP

UserAgent/Author

UserAgent/MemberCP

UserAgent/Coordinator

UserAgent/Chair

UserAgent/Reviewer

Page 8: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 8

Modeling the Agents and Agent Roles

UserAgent

....<<belief>> Paper : paper = null

….

Page 9: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 9

<<goal>> boolean : submit_paper = true<<goal>> boolean : publish_paper = true

<<right>> submit_paper<<duty>> {if paper was accepted} send_camera_ready

PublicationPaper { message: {label: Proposal, content: Paper, sender: Author, receiver: Chair} message: {label: AcceptProposal, content: PaperAndRevisions, sender: Chair, receiver: Author }, message: {label: RejectProposal, content: PaperAndRevisions, sender: Chair, receiver: Author }, message: {label: Inform, content: CameraReady, sender: Author, receiver: Chair}}

Author

Action that must be executed if the

condition is satisfied

Page 10: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 10

UserAgent/Author

<<goal>> boolean : submit_paper = true submitting_paper<<goal>> boolean : publish_paper = true publishing_paper

{before paper submission deadline} submit_paper {}{if paper was accepted and before sending camera-ready deadline} send_camera_ready {}

submitting_paper{ submit_paper } → submit_paperpublishing_paper{ send_camera_ready } → publish_paper

Page 11: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 11

<<goal>> boolean : evaluate_revision_proposal = true<<goal>> boolean : review_papers = true

<<right>> consult_agenda<<right>> calculate_free_time<<duty>> accept_or_reject_revision_proposal<<duty>> make_reviews<<duty>> classify_paper<<duty>> send_reviews_to_chair

RevisionProposal{ message: {label: Proposal, content: RevisionProposal, sender: Chair, receiver: Reviewer} message: {label: AcceptProposal, content: RevisionProposal, sender: Reviewer, receiver: Chair}, message: {label: RejectProposal, content: RevisionProposal, sender: Reviewer, receiver: Chair}}PaperRevision{ message: {label: Inform, content: PapersToReview, sender: Chair, receiver: Reviewer} message: {label: Inform, content: PapersAndRevisions, sender: Reviewer, receiver: Chair}}

Reviewer

Page 12: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 12

UserAgent/ Reviewer

<<goal>> boolean : evaluate_revision_proposal = true evaluating_revision_proposal<<goal>> boolean : review_papers = true reviewing_papers<<belief>> Agenda: agenda<<belief>> Integer: number-of-days-to-revise-one-paper<<belief>> Vector: areas-of-interest

{} consult_agenda {}{} calculate_free_time {}{before accepting orrejecting revision proposal deadline} accept_or_reject_revision_proposal {}

{} make_reviews {}{} classify_paper {}{before sending reviews to chair deadline} send_reviews_to_chair {}

evaluating_revision_proposal { consult_agenda, calculate_free_time,

accept_or_reject_revision_proposal } → evaluate_revision_proposalreviewing_papers {

make_reviews, classify_paper, send_reviews_to_chair } → review_papers

Page 13: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 13

<<goal>> boolean : select_new_reviewers = true<<belief>> Vector: reviewers_database

<<right>> consult_database<<duty>> calculate_1.5_of_number_of_requested_reviewers<<duty>> send_additional_reviewers

AdditionalReviewersSelection{ message: {label: Request, content: ReviewersNeed, sender: Chair, receiver: Coordinator } message: {label: Inform, content: AdditionalReviewers, sender: Coordinator, receiver: Chair}}

Coordinator

Page 14: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 14

UserAgent/Coordinator

<<goal>> boolean : select_new_reviewers = true selecting_new_reviewers

{} consult_database {}{} calculate_1.5_of_number_of_requested_reviewers {}{} send_additional_reviewers {}

selecting_new_reviewers { consult_database, calculate_1.5_of_number_of_requested_reviewers, send_additional_reviewers } → select_new_reviewers

Page 15: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 15

<<goal>> boolean : vote_papers_in_conflict = true<<belief>> Hashtable : papers_and_revisions_in_conflict

<<duty>> vote_conflicts<<duty>> send_votes_to_chair

VotingConflicts{ message: {label: Request, content: PapersAndRevisionsInConflict, sender: Chair,

receiver: MemberCP} message: {label: Inform, content: PapersAndRevisionsAndVotes, sender: MemberCP,

receiver: Chair}}

MemberCP

Page 16: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 16

UserAgent/MemberCP

<<goal>> boolean : vote_papers_in_conflict = true voting_papers<<belief>> Hashtable : papers_and_revisions_in_conflict

{} vote_conflicts {}{} send_votes_to_chair {}voting_papers {

vote_conflicts, send_votes_to_chair } → vote_papers_in_conflict

Page 17: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 17

<<goal>> boolean : distribute_revision_proposals_to_reviewers = true<<goal>> boolean : allocate_additional_reviewers_when_necessary = true<<goal>> boolean : send_papers_for_revision = true<<goal>> boolean : register_reviews_of_papers = true<<goal>> boolean : resolve_revision_conflicts_when_necessary = true<<goal>> boolean : send_final_result_to_authors = true<<goal>> boolean : receive_all_camera_ready = true<<belief>> Hashtable : revision_proposals<<belief>> UserAgents : contracted_reviewers<<belief>> Hashtable : papers_and_revisions_and_votes

<<duty>> relate_papers_and_reviewers<<duty>> prepare_revision_proposals<<duty>> send_revision_proposals<<duty>> verify_necessity_of_new_reviewers<<right>> request_new_reviewers<<duty>> evaluate_relation_of_new_reviewers<<duty>> relate_papers_and_new_reviewers<<duty>> send_all_papers_for_revision<<duty>> register_papers_reviews<<duty>> evaluate_revisions_to_detect_conflicts<<duty>> send_conflicts_to_members_of_program_committee<<duty>> evaluate_votes_about_conflicts<<duty>> find_and_register_final_result<<duty>> publish_final_result<<duty>> receive_all_camera_readyPublicationPaper {…}RevisionProposal {…}PaperRevision{…}AdditionalReviewersSelection{…}PapersInConflictDistribution {…}VotingConflicts{…}

Chair

Page 18: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 18

UserAgent/Chair

<<goal>> boolean : distribute_revision_proposals_to_reviewers = true → distributing_revision_proposals<<goal>> boolean : allocate_additional_reviewers_when_necessary = true → allocating_additional_reviewers<<goal>> boolean : send_papers_for_revision = true → sending_papers_for_revision<<goal>> boolean : register_reviews_of_papers = true → registering_reviews<<goal>> boolean : resolve_revision_conflicts_when_necessary = true → resolving_revision_conflicts<<goal>> boolean : send_final_result_to_authors = true → sending_final_result<<goal>> boolean : receive_all_camera_ready = true → receiving_all_camera_ready

{after paper submission deadline} relate_papers_and_reviewers {}{} prepare_revision_proposals {}{} send_revision_proposals {}{after answering revision proposal deadline} verify_necessity_of_new_reviewers {}{if additional reviewers are needed} request_new_reviewers {}{} evaluate_relation_of_new_reviewers {}{} relate_papers_and_new_reviewers {}{before sending papers for revision deadline} send_all_papers_for_revision {}{} register_papers_reviews {}{after sending reviews to chair deadline} evaluate_revisions_to_detect_conflicts {}{if conflicts exist} send_conflicts_to_members_of_program_committee {}{if received all votes} evaluate_votes_about_conflicts {}{} find_and_register_final_result {}{} publish_final_result {}{after sending camera ready deadline} receive_all_camera_ready {}

Page 19: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 19

UserAgent/Chair

…distributing_revision_proposals {

relate_papers_and_reviewers, prepare_revision_proposals, send_revision_proposals } → distribute_revision_proposals_to_reviewers

allocating_additional_reviewers { verify_necessity_of_new_reviewers, request_new_reviewers, evaluate_relation_of_new_reviewers, relate_papers_and_new_reviewers } → allocate_additional_reviewers_when_necessary

sending_papers_for_revision { send_all_papers_for_revision } → send_papers_for_revision

registering_reviews { register_papers_reviews } → register_reviews_of_papers

resolving_revision_conflicts { evaluate_revisions_to_detect_conflicts, send_conflicts_to_members_of_program_committee, evaluate_votes_about_conflicts } → resolve_revision_conflicts_when_necessary

sending_final_result { find_and_register_final_result,publish_final_result } → send_final_result_to_authors

receiving_all_camera_ready { receive_all_camera_ready } → receive_all_camera_ready

Page 20: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Diagramas de Organização

Page 21: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 21

Diagramas de Organização

• Objetivo– Modelar as organizações e os relacionamentos entre as organizações e

outras entidades do SMA.• Participantes

– Ambiente: ExpertComitteEnvironment– Organização principal (main-organization): AcademicEventOrganization– Agente: UserAgent– Papéis:

• Author• Chair• Coordinator• Reviewer• MemberCP

Page 22: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 22

AcademicEventOrganization

Object / Environment

Agent

Organization

Legend:

Role

ExpertComitteEnvironment

Coordinator

UserAgent

Reviewer

Chair

Author

AcademicEventOrganization

MemberCP

inhabitplay

ownership

Page 23: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Diagramas de Papéis

Page 24: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 24

Diagrama de Papéis

• Objetivo:– Modelar os papéis e os relacionamentos entre os papéis.

• Participantes:– Papéis:

• Author• Chair• Coordinator• Reviewer• MemeberCP

– Objetos• Paper• Revision• Vote• Agenda

Page 25: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 25

Diagrama de Papéis

Agent role

Legend:

Object

MemberCPCoordinator

Chair

Vote Paper

Author

Reviewer Revision

*

*

*

*

*

*

*

* *

3 ..*

*

Agenda*

Page 26: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Diagramas de Classes

Page 27: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 27

Diagrama de classes

• Objetivo:– Representar os relacionamentos entre classes e outras

entidades do SMA, e representar os relacionamentos entre agentes, ambientes e organizações.

• Participantes:– Agente: UserAgent– Ambiente: ExpertComitteEnvironment– Objetos:

• Paper• Revision• Vote• Researcher

Page 28: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 28

Diagrama de Classes

UserAgent

Paper

Revision

Vote

Researcheré

ExpertComitteEnvironment

1

3..*

1 *

Page 29: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Diagramas Dinâmicos

Page 30: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 30

Diagramas Dinâmicos

• Diagramas de Seqüência• Diagramas de Atividade

Page 31: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 31

Diagramas de Seqüência

• Objetivos:– Representar as interações entre as instâncias do SMA:

• Modelar trocas de mensagens• Modelar protocolos

– E representar as ações internas dessas instâncias:• Modelar planos e ações

Page 32: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 32

Diagramas de Seqüência

• Modelando Troca de Mensagens e Protocolos– Objetivo

• Modelar o conjunto de mensagens que entidades podem enviar e receber enquanto desempenhando papéis.

– Diagramas• Publication Paper Protocol (Publicação de Artigo)• Revision Proposal Protocol (Propostas de Revisão de Artigo)• Additional Reviewers Selection Protocol (Contratação de Revisores

Adicionais)• Paper Revision Protocol (Revisão de Artigo)• Voting Conflicts Protocol (Resolução de Conflito)

Page 33: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 33

Message

Publication Paper Protocol

Proposal (Paper)

RejectProposal (Paper)

AcceptProposal (PaperAndRevisions)

Inform (CameraReady)

: Author : Chair

else

Publication Paper

[ before paper submission deadline ]

[ before camera ready deadline ]

Page 34: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 34

Revision Proposal Protocol

Proposal (RevisionProposal)

RejectProposal (RevisionProposal)

AcceptProposal (RevisionProposal)

: Chair : Reviewer

else

Revision Proposal

[ before revision proposal deadline ]

Page 35: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 35

Additional Reviewers Selection Protocol

Request (ReviewersNeed)

Inform (AdditionalReviewers)

: Chair : Coordinator

Additional Reviewers Selection

Page 36: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 36

Paper Revision Protocol

Inform (PapersToReview)

Inform (PapersAndRevisions)

: Chair : Reviewer

Paper Revision

[ before deadline of sending revisions to chair ]

[ before deadline of sending papers for revision]

Page 37: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 37

Voting Conflicts Protocol

Request (RevisionsInConflict)

Inform (RevisionsAndVotes)

: Chair : MemberCP

Voting Conflicts

Page 38: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 38

Diagramas de Seqüência

• Modelando Planos e Ações– Objetivo

• Modelar execução interna do User Agent, da AcademicEventOrganization pela execução de seus planos e ações.

– Diagramas• Gerenciamento de Submissões e Revisões• Submissão e Propostas de Revisão de Artigo• Publicação de Artigo• Revisão de Artigos• Contratação de Novos Revisores• Detecção de Conflitos

Page 39: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 39

Mapeamento dos Planos e AçõesEm Diagramas de Seqüência

• AcademicEventOrganization– Planos e Ações

• management_of_submissions_and_revisions– defining_members_of_organizations

» define_reviewers» define_chair» define_coordinator» define_members_CP

– defining_deadlines_of_event» define_deadlines

– Diagrama– Management of submissions and revisions

Page 40: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 40

Management of submissions and revisions

: AcademicEventOrganization

defining_members

define_reviewers

define_chair

Executionof a Plan

Executionof an Action

<<create>>[for each reviewer]

Reviewer/Reviewer : UserAgent/Reviewer

<<create>>Chair/Chair : UserAgent/ Chair

define_coordinator

<<create>>Coordinator/Coordinator : UserAgent/ Coordinator

<<create>>

define_members_CP

[for each member]

MemberCP/MemberCP : UserAgent/MemberCP

Role

define_deadlines

: AcademicEventOrganization

Page 41: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 41

Mapeamento dos Planos e AçõesEm Diagramas de Seqüência

• Planos e Ações– User Agent/Author

• submitting_paper (submit_paper)

– User Agent/Reviewer• evaluating_revision_proposal (consult_agenda, calculate_free_time,

accept_or_reject_revision_proposal)

– User Agent/Chair• distributing_revision_proposal (relate_paper_and_reviews,

prepare_revision_proposals, send_revision_proposals)

• Diagrama• Submission and Proposals of Paper Revision

Page 42: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 42

Submission and Proposals of Paper Revision

Proposal(RevisionProposal)

Reviewer/Reviewer : UserAgent/Reviewer/

AcademicEventOrganization

Chair/Chair : UserAgent/Chair/

AcademicEventOrganization

Proposal (Paper) distributing_revision_proposals

relate_papers_and_reviewers

prepare_revision_proposals

submiting_paper

submit_paper

send_revision_proposals

evaluating_revision_proposals

consult_agenda

calculate_free_time

accept_or_reject_revision_proposal

elseAcceptProposal(RevisionProposal)

RejectProposal(RevisionProposal)

Author/Author : UserAgent/Author/AcademicEventOrganization

Agenda

getAgenda

Page 43: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 43

Mapeamento dos Planos e AçõesEm Diagramas de Seqüência

• Planos e Ações– User Agent/Author

• publishing_paper (send_camera_ready)

– User Agent/Chair• sending_final_result (find_and_register_final_result,

publish_final_result)• receiving_all_camera_ready (receive_all_camera_ready)

• Diagrama• Publishing Paper

Page 44: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 44

Publishing Paper

Chair/Chair :UserAgent/Chair/

AcademicEventOrganization

sending_final_result

find_and_register_final_result

publish_final_result

publishing_paper

Author/Author : UserAgent/Author/

AcademicEventOrganization

else

RejectProposal(Paper)

AcceptProposal(PaperAndRevisions)

Inform (CameraReady) receiving_all_camera_ready

receive_all_camera_ready

send_camera_ready

Page 45: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 45

Mapeamento dos Planos e AçõesEm Diagramas de Seqüência

• Planos e Ações– User Agent/Reviewer

• reviewing_papers (make_reviews, classify_paper, send_reviews_to_chair)

– User Agent/Chair• sending_papers_for_revision (send_all_papers_for_revision)• registering_reviews (register_paper_reviews)

• Diagrama– Papers Revision

Page 46: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 46

Papers Revision

Reviewer/Reviewer: UserAgent/Reviewer/

AcademicEventOrganization

Chair/Chair: UserAgent/Chair/

AcademicEventOrganization

make_reviews

classify_paper

send_reviews_to_chair

Inform(PapersAndRevisions)

registering_reviews

register_papers_reviews

sending_papers_for_revision

send_all_papers_for_revision

Inform(PapersToReview)

reviewing_papers

Revision

setFile

setResult

Page 47: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 47

Mapeamento dos Planos e AçõesEm Diagramas de Seqüência

• Planos e Ações– User Agent/Coordinator

• selecting_new_reviewers (consult_database, calculate_1.5_of_number_of_requested_reviewers, send_addtional_reviewers)

– User Agent/Chair• allocating_addicional_reviewers (verify_necessity_of_new_reviewers,

request_new_reviewers, evaluate_relation_of_new_reviewers ,relate_papers_and_new_reviewers)

• Diagrama– Allocating Addicional Reviewers

Page 48: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 48

Allocating Addicional Reviewers

Request(ReviewersNeed)

Coordinator/ Coordinator : UserAgent/Coordinator/

AcademicEventOrganization

Chair/Chair: UserAgent/Chair/AcademicEventOrganization

allocating_addicional_reviewers

verify_necessity_of_new_reviewers

request_new_reviewers selecting_new_reviewers

consult_database

calculate_1.5_of_number_of_requested_reviewers

send_addtional_reviewersInform(AdditionalReviewers)

[ If is needed ]

evaluate_relation_of_new_reviewers

relate_papers_and_new_reviewers

Page 49: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 49

Mapeamento dos Planos e AçõesEm Diagramas de Seqüência

• Planos e Ações– User Agent/MemberCP

• voting_papers (vote_conflicts,send_vote_to_chair)

– User Agent/Chair• resolving_revision_conflitcts (evaluate_revisions_to_detect_conflicts,

send_conflicts_to_program_committee, evaluate_votes_about_conflicts)

• Diagrama– Conflicts Detection

Page 50: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 50

Conflicts Detection

resolving_revision_conflicts

evaluate_revisions_to_detect_conflicts

send_conflicts_to_program_committee

Request(PapersAndRevisionsInConflict)voting_papers

vote_conflicts

send_votes_to_chair

Inform(PapersAndRevisionsAndVotes)

evaluate_votes_about_conflicts

MemberCP/MemberCP: UserAgent/MemberCP/

AcademicEventOrganization

Chair/Chair: UserAgent/Chair/AcademicEventOrganization

Vote

setVote

Page 51: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Diagramas de Atividade

Page 52: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 52

Diagramas de Atividade

• Objetivo– Representar a modelagem de planos e ações de um agente.

• Componentes– Planos– Ações– Troca de Mensagens e Protocolos

Page 53: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 53

Mapeamento dos Planos e AçõesEm Diagramas de Atividade

• AcademicEventOrganization– Planos e Ações

• management_of_submissions_and_revisions– defining_members_of_organizations

» define_reviewers» define_chair» define_coordinator» define_members_CP

– defining_deadlines_of_event» define_deadlines

Page 54: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 54

Definindo Membros da Organização

define_reviewers

defining_members_of_organizations <<subgoal>> define_members_of_organization

define_chair

define_membersCP

define_coordinator

Page 55: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 55

Definindo Deadlines para o Evento

define_deadlines

defining_deadlines <<subgoal>> define_deadlines_of_event

Page 56: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 56

Mapeamento dos Planos e AçõesEm Diagramas de Atividade

• Planos e Ações– UserAgent/Reviewer

• reviewing_papers (make_reviews, classify_paper, send_reviews_to_chair)

– UserAgent/Chair• sending_papers_for_revision (send_all_papers_for_revision)• registering_reviews (register_paper_reviews)

Page 57: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 57

Revisão de Artigos

make_reviews

reviewing_papers <<subgoal>> review_paper<<role>> reviewer

classify_paper send_reviews_to_chair

Page 58: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 58

Mapeamento dos Planos e AçõesEm Diagramas de Atividade

• Planos e Ações– User Agent/Author

• submitting_paper (submit_paper)

– User Agent/Reviewer• evaluating_revision_proposal (consult_agenda, calculate_free_time,

accept_or_reject_revision_proposal)• revising_papers (make_reviews, classify_paper,

send_reviews_to_chair)

– User Agent/Chair• distributing_revision_proposal (relate_paper_and_reviews,

prepare_revision_proposals, send_revision_proposals)

Page 59: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 59

Submissão de Artigo

submit_paper

submitting_paper <<goal>> submit_paper<<role>> author

<<message>>Proposal

Page 60: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 60

Distribuição de propostas de revisão

relate_paper_and_reviews

distributing_revision_proposals <<goal>> distribute_revision_proposals_to_reviewers<<role>> chair

prepare_revision_proposals

send_revision_proposals<<message>>

Proposal

Page 61: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 61

Avaliação de Revisão de Propostas

consult_agenda

evaluating_revision_proposals <<goal>> evaluate_revision_proposal<<role>> reviewer

calculate_free_time

accept_or_reject_revision_proposal

<<message>>

Reject Proposal

<<message>>

Accept Proposal

[deadline not compatible with free time in belief agenda]

Page 62: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 62

Mapeamento dos Planos e AçõesEm Diagramas de Atividade

• Planos e Ações– User Agent/Author

• publishing_paper (send_camera_ready)

– User Agent/Chair• sending_final_result (find_and_register_final_result,

publish_final_result)• receiving_all_camera_ready (receive_all_camera_ready)

Page 63: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 63

Enviando resultado final

find_and_register_final_result

sending_final_result <<goal>> send_final_result_to_authors<<role>> chair

publish_final_result

<<message>>

Reject Proposal

<<message>>

Accept Proposal

Page 64: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 64

Publicando artigo

send_camera_ready

publishing_paper <<goal>> publish_paper<<role>> author

<<message>>Inform

Page 65: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 65

Recebendo camera-ready

receive_all_camera_ready

receiving_all_camera_ready <<goal>> receive_all_camera_ready<<role>> chair

Page 66: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 66

Mapeamento dos Planos e AçõesEm Diagramas de Atividade

• Planos e Ações– User Agent/Coordinator

• selecting_new_reviewers (consult_database, calculate_1.5_of_number_of_requested_reviewers, send_addtional_reviewers)

– User Agent/Chair• allocating_addicional_reviewers (verify_necessity_of_new_reviewers,

request_new_reviewers, , evaluate_relation_of_new_reviewers relate_papers_and_new_reviewers)

Page 67: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 67

Alocando novos revisores

verify_necessity_of_new_reviewers

allocationg_addicional_reviewers <<goal>> allocate_addicional_reviewers_when_necessary<<role>> chair

request_new_reviewers

[if it is needed]

<<message>>Request

Page 68: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 68

Selecionando novos revisores

consult_database

selecting_new_reviewers <<goal>> select_new_reviewers<<role>> coordinator

send_addtional_reviewers<<message>>

Inform

calculate_1.5_of_number_of_requested_reviewers

Page 69: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 69

Avaliando relação de novos revisores

allocationg_addicional_reviewers <<goal>> allocate_addicional_reviewers_when_necessary<<role>> chair

relate_papers_and_new_reviewers

evaluate_relationg_of_new_reviewers

Page 70: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 70

Mapeamento dos Planos e AçõesEm Diagramas de Atividade

• Planos e Ações– User Agent/MemberCP

• voting_papers (vote_conflicts,send_vote_to_chair)

– User Agent/Chair• resolving_revision_conflitcts (evaluate_revisions_to_detect_conflicts,

send_conflicts_to_program_committee, evaluate_votes_about_conflicts)

Page 71: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 71

Resolvendo conflitos de revisão

evaluate_revisions_to_detect_conflicts

resolving_revision_conflicts <<goal>> resolve_revision_conflicts_when_necessary<<role>> chair

<<message>>Informsend_conflicts_to_program_commitee

Page 72: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 72

Votando nos artigos

vote_conflicts

voting_papers <<goal>> vote_papers_in_conflict<<role>> memberCP

<<message>>Informsend_votes_to_chair

Page 73: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 73

Avaliando votos

evaluate_votes_about_conflicts

resolving_revision_conflicts <<goal>> resolve_revision_conflicts_when_necessary<<role>> chair

Page 74: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 74

Críticas da Linguagem de Modelagem MAS-ML

• Aprendizado e uso da Linguagem de Modelagem: – Qual foi o grau de dificuldade no aprendizado sobre a

Linguagem de Modelagem?• Facilidade no entendimento do conceito• Dificuldade na experimentação

– Ambiente: Qual o critério para que ele seja ativo ou passivo?– Organização principal: Quais são os beliefs?– Papel de objeto: intuição inicial -> todo objeto possui um papel dentro

de uma organização => Errado!– Diagrama de classes:

» Ao modelar o agente, não era claro que quando um agente desempenha mais de um papel e que, nem todo papel tem uma associação com um objeto, esta associação não deve ser representada.

– Diagrama de Papéis» Ao modelar as entidades no diagrama, não era claro que, se um

objeto está associado a todos os papéis de agentes, ele não precisa ser representado no diagrama.

Page 75: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 75

Críticas da Linguagem de Modelagem MAS-ML

• (Cont.) Aprendizado e uso da Linguagem de Modelagem : – Qual foi o grau de dificuldade no aprendizado sobre a

Linguagem de Modelagem?• Diagrama de Atividades:

– A literatura não fornece detalhes sobre diversos cenários de um diagrama de atividade.

– Dúvidas para modelar uma mensagem quando a mesma invoca um plano.

» Não existe.

Page 76: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 76

Críticas da Linguagem de Modelagem MAS-ML

• Aprendizado e uso da Linguagem de Modelagem:– Como você avalia o material (artigos, ferramentas) disponíveis

sobre a Linguagem de Modelagem?• Dificuldade de achar exemplos mais detalhados.• Generalização -> solução por intuição.

Page 77: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 77

2- Diagramas da Implementação

• Diagrama de Classes;• Diagrama de Seqüência;

Page 78: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 78

AcademicEventOrganizationPlan(from model)

AuthorPlan(from model)

Author(from model)

-author

ChairPlan(from model)

CoordinatorPlan(from model)

Coordinator(from model)

-coordinator

MemberProgramComiteePlan(from model)

MemberProgramComitee(from model)

-memberProgramComitee

Chair(from model)

-chair

ReviewerPlan(from model)

Reviewer(from model)

-belief_contracted_reviewers

-reviewer

Agenda(from model)

-belief_agenda

AcademicEventOrganization(from model)

<<singleton>>

-org

Researcher(from model)

Revision(from model) Vote

(from model)

Paper(from model)

-Author -paper

-paper

Behaviour(from jade)

Agent(from jade)

Plan(from model)

Goal(from model)

0..*

1

0..*

1

0..*+subGoal

0..*

Right(from model)

Duty(from model)

ECAgent(from model)

0..*0..*

0..*0..*

0..*0..*

0..*0..*

UserAgent(from model)#org

ACLMessage(from jade)

Protocol(from model)

0..*0..*

0..*0..*

ECFachada(from model)

<<singleton>>ExpertComitteeEnvironment

(from model)

<<singleton>>

-reviewer

2.1. Diagrama de Classes

Page 79: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 79

2.2. Diagrama de SeqüênciaSubmetendo artigo

: Autor : home.jsp

H S

: Servlet :

cmdSubmeterArtigo :

ECFachada :

ExpertComitteeEnvironment :

AcademicEventOrganization :

JadeAgentInst : Paper : Author

submeterArtigo( )doPost( )

execute( )submeterArtigo( ) getInstance( )

AcademicEventOrganization( )<<create>>( )

setTitle(Logical View::java::lang::String)

setAuthor(Researcher)

setInstitution(Logical View::java::lang::String)

setFile(Logical View::java::lang::String)

setArea(Logical View::java::lang::String)

setAbstract(Logical View::java::lang::String)

Author(Researcher,Paper)

<<create>>( )

Motivação JADE Implementação (Mapeamento / DC / Demo) Conclusão

Page 80: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 80

2.2. Diagrama de Seqüência (..)Troca de Mensagens - Enviar

: Author : AuthorPlan : Protocol : ACLMessage

AuthorPlan(Author)selecting_plan( )

submit_paper( )[if this.name = 'submitting_paper' then]

getProtocol(Logical View::java::lang::String)

getMessage( )addReceiver( )

send( )

Motivação JADE Implementação (Mapeamento / DC / Demo) Conclusão

Page 81: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 81

2.2. Diagrama de Seqüência (..) Troca de mensagens - Recebimento

: ChairPlan : Chair : ACLMessage

: Goal

receive( )

[if msg.getName() == 'proposalPaper' then]

getContentObject( )

setPaper(Paper)

getSender( )

setAuthorAID( )

getGoal( )

[selecionando o goal distribute_revision_proposals_to_reviewers]

getPlan(Logical View::java::lang::String)

[selecionando o plano distributing_revision_proposals]

addBehaviour( )

Motivação JADE Implementação (Mapeamento / DC / Demo) Conclusão

Page 82: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 82

3- Mapeamento das abstrações

Características de MAS-ML que foram facilmente implementadas:

• AGENTS:foi criado o ECAgent (do domínio), como herança de Agent de JADE. A partir deste, foi criada a classe UserAgent;

• A comunicação entre agentes foi bem implementada• O ciclo de vida de uma agente em JADE é muito

similar ao de MAS-ML;• O comportamento de cada agente dentro dos PLANS foi

fácil de ser implementado, apesar de ter sido criada uma nova classe que estende a classe Behaviour de JADE;

Page 83: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 83

3- Mapeamento das abstrações(..)

Características de sistemas multi-agentes que não puderam ser implementadas somente com JADE:

• ROLES – cada papel se tornou um agente. Este também herdou características do agente userAgent;

• DUTIES, RIGHTS e GOALS – foram criadas novas classes;

• BELIEFS – foram implementados com atributos dos agentes;

• ENVIRONMET e ORGANIZATION - foram criadas novas classes;

• PROTOCOLS – foi criada uma nova classe.

Page 84: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 84

4–Aplicação desenvolvida

• Cenários principais: Submissão de artigo; Distribuição de propostas de revisão; Avaliação de proposta de revisão; Distribuição dos artigos aos revisores; Enviar revisão dos artigos; Divulgação da revisão de artigos; Artigo aceito X rejeitado;

• Execução do EC utilizando a Web.– Formulário de entrada de dados;– Relatório da execução;

Page 85: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 85

5-Roteiro para instalação

Passo 1: Descompactar a pasta ExpertComittee.zip;

Passo 2: Abrir a pasta ExpertComitte;Passo 3: Copiar o arquivo ec.war e a pasta ec

para a pasta webapps do Tomcat.Passo 4: Deve-se usar a URL

http://localhost:8080/ec para acessar a página inicial do sistema.

Page 86: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 86

6- Conclusão sobre Implementação usando JADE x Modelagem MAS-ML

6.1. Aprendizado e uso da tecnologia JADE

6.2. Pontos fortes de JADE

6.3. Pontos fracos de JADE

6.4. Melhorias

Page 87: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 87

6.1. Aprendizado e uso da tecnologia JADE

• A idéia geral de JADE é de fácil entendimento, mas montar o ambiente de desenvolvimento tem um grau médio de dificuldade e em certos casos, difícil. O uso requer estudo prévio, e pôde ser facilitado com o uso de exemplos prontos.

• As ferramentas oferecidas pelo JADE são muito boas, pois funcionam de maneira eficaz, possuem recursos interessantes (inclusive visuais) como o Sniffer.

• Para JADE existem diversos artigos disponíveis, por ser uma tecnologia muito difundida entre os pesquisadores de SMA. Contudo, os principais artigos usados são extensos e, em alguns casos, faltam exemplos mais simples e explicações menos abstratas e mais práticas.

Page 88: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 88

6.2. Pontos fortes de JADE

• Material é vasto, e bem dirigido;• A comunicação entre agentes foi bem implementada e é

de fácil aprendizado. Foi possível, com certa criatividade, adaptar as MESSAGES;

• Os estados dos agentes foram bem implementados;• Ferramentas de suporte facilitam o trabalho do

Engenheiro de Software;• A biblioteca de classes foi bem desenvolvida;• As facilidades de JADE colaboraram para o

desenvolvimento de um bom trabalho;• Não foram encontrados erros de funcionamento da

tecnologia;• Depois de entendido o funcionamento de JADE,o

comportamento dos agentes é fácil de ser implementado.

Page 89: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 89

6.3. Pontos fracos de JADE

• Pesquisas demoradas em cada etapa da implementação, usando JADE - que não implementa diversas abstrações de MAS-ML.

• A etapa inicial (mapear as definições para código) foi trabalhosa, pois foi necessário criar um conjunto de novas classes para atender aos conceitos relacionados aos agentes;

• Para implementar a comunicação entre agentes, foi necessário know-how de JADE (fomos bem orientados pelo Rodrigo Paes);

• Dificuldades na implementação da Organização em “controlar” a ação dos agentes (autônomos);

• A instalação do JADE não está muito bem explicada no material disponível;

Page 90: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 90

6.4. Melhorias

• Pré / post conditions: modelados como contrato;

• Uma extensão de Jade partindo da modelagem em MAS-ML como ponto de partida as novas classes criadas: Duty, Right, Goal, Belief, Plan e Protocol.

Page 91: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 91

6.4. Melhorias

• Planos– Como implementamos

• Existe uma única classe para cada agente estendendo a classe Plan, que possui um nome

– Exemplo: Author -> AuthorPlan

• Sempre que um agente seleciona um plano de um goal, ele seta o nome do plano

• Quando o action (método do Jade) de cada plano for executado, ele testa o nome do plano e chama o conjunto de ações correspondentes ao mesmo.

– Como poderia ser feito• Cada plano seria uma classe e seu action não precisaria fazer o teste.

Page 92: ExpertCommittee Documentação Maíra Gatti Ricardo Gralhoz 2005/1.

Laboratório de Engenharia de Software – PUC-Rio 92

Bibliografia

• Silva, V.; Garcia, A.; Brandao, A.; Chavez, C.; Lucena, C.; Alencar, P. ?Taming Agents and Objects in Software Engineering? In: Garcia, A.; Lucena, C.; Zamboneli, F.; Omicini, A; Castro, J. (Eds.), Software Engineering for Large-Scale Multi-Agent Systems, Springer-Verlag, LNCS 2603, pp. 1-26, 2003.

• Silva, V.; Lucena, C. "From a Conceptual Framework for Agents and Objects to a Multi-Agent System Modeling Language", In: Sycara, K., Wooldridge, M. (Edts.), Journal of Autonomous Agents and Multi-Agent Systems, Kluwer Academic Publishers, 2004. (aceito para publicação).

• Java Agent DEvelopment Framework , 2004