A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

ExpertCommittee Documentação

Apresentações semelhantes


Apresentação em tema: "ExpertCommittee Documentação"— Transcrição da apresentação:

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

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 Laboratório de Engenharia de Software – PUC-Rio

3 1- Modelagem em MAS-ML Elementos Estruturais Diagramas Estáticos
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 Laboratório de Engenharia de Software – PUC-Rio

4 ExpertComitteeEnvironment
ExpertComitteEnvironment ExpertComitteeEnvironment private Researcher : researcher private Collection : Papers private Agent : UserAgent private Agent: AcademicEventOrganization public get_Papers : Collection public set_Papers( papers Collection) : void public get_Researcher : Object public set_Researcher( researcher Researcher) : void public get_User : UserAgent public set_User( UserAgent user) : void public check_User_Can_Come_In( user : Agent): boolean public check_User_Can_Leave( user : Agent): boolean 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_event defining_members { define_members_CP, define_reviewers, define_chair, define_coordinator }  define_members_of_organization Laboratório de Engenharia de Software – PUC-Rio

6 Objetos Paper Vote Agenda Researcher Revision Title : String
Abstract: String Author : Researcher Institution : String Area : String File : String FileCameraReady : String getPaper() : Paper setPaper(Paper paper) ... Vote getVote() : Vote setVote(Paper paper) vote : String Agenda getAgenda() : Agenda setAgenda (Date date, String description) date : Date Description : String Researcher Name : String Institution : String InterestArea : String getResearcher() : Researcher setResearcher(Researcher researcher) getNome() : String getInstitution() : String getInterestArea() : String Revision getResult() : String setResult(String result) getFile() : String setFile(String file) result : String File : String Laboratório de Engenharia de Software – PUC-Rio

7 Modeling the Agents and Agent Roles
Author UserAgent/Author MemberCP UserAgent/MemberCP UserAgent Coordinator UserAgent/Coordinator Chair UserAgent/Chair Reviewer UserAgent/Reviewer Laboratório de Engenharia de Software – PUC-Rio

8 Modeling the Agents and Agent Roles
UserAgent .... <<belief>> Paper : paper = null …. Laboratório de Engenharia de Software – PUC-Rio

9 Action that must be executed if the condition is satisfied
Author <<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} } Action that must be executed if the condition is satisfied Laboratório de Engenharia de Software – PUC-Rio

10 <<goal>> boolean : submit_paper = true  submitting_paper
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_paper publishing_paper{ send_camera_ready } → publish_paper Laboratório de Engenharia de Software – PUC-Rio

11 <<goal>> boolean : evaluate_revision_proposal = true
Reviewer <<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} Laboratório de Engenharia de Software – PUC-Rio

12 <<goal>> boolean : review_papers = true  reviewing_papers
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 or rejecting 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_proposal reviewing_papers { make_reviews, classify_paper, send_reviews_to_chair } → review_papers 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 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 Laboratório de Engenharia de Software – PUC-Rio

15 <<goal>> boolean : vote_papers_in_conflict = true
MemberCP <<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} } Laboratório de Engenharia de Software – PUC-Rio

16 <<belief>> Hashtable : papers_and_revisions_in_conflict
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 Laboratório de Engenharia de Software – PUC-Rio

17 <<goal>> boolean : send_papers_for_revision = true
Chair <<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_ready PublicationPaper {…} RevisionProposal {…} PaperRevision{…} AdditionalReviewersSelection{…} PapersInConflictDistribution {…} VotingConflicts{…} Laboratório de Engenharia de Software – PUC-Rio

18 {after paper submission deadline} relate_papers_and_reviewers {}
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 {} Laboratório de Engenharia de Software – PUC-Rio

19 distributing_revision_proposals { relate_papers_and_reviewers,
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 Laboratório de Engenharia de Software – PUC-Rio

20 Diagramas de Organização

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 Laboratório de Engenharia de Software – PUC-Rio

22 AcademicEventOrganization
play inhabit ExpertComitteEnvironment UserAgent Author Reviewer Coordinator MemberCP Chair AcademicEventOrganization ownership Object / Environment Agent Organization Legend: Role Laboratório de Engenharia de Software – PUC-Rio

23 Diagramas de Papéis

24 Diagrama de Papéis Objetivo: Participantes:
Modelar os papéis e os relacionamentos entre os papéis. Participantes: Papéis: Author Chair Coordinator Reviewer MemeberCP Objetos Paper Revision Vote Agenda Laboratório de Engenharia de Software – PUC-Rio

25 Diagrama de Papéis Coordinator MemberCP Vote Paper Chair Author
* Vote Paper * * * * Chair Author * * * * Reviewer Revision 3 ..* * * Agent role Legend: Object Agenda Laboratório de Engenharia de Software – PUC-Rio

26 Diagramas de Classes

27 Diagrama de classes Objetivo: Participantes:
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 Laboratório de Engenharia de Software – PUC-Rio

28 ExpertComitteEnvironment
Diagrama de Classes ExpertComitteEnvironment UserAgent Researcher é Paper 1 * Vote 1 3..* Revision Laboratório de Engenharia de Software – PUC-Rio

29 Diagramas Dinâmicos

30 Diagramas Dinâmicos Diagramas de Seqüência Diagramas de Atividade
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 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) Laboratório de Engenharia de Software – PUC-Rio

33 Publication Paper Protocol
Message : Author : Chair [ before paper submission deadline ] Proposal (Paper) Publication Paper RejectProposal (Paper) else AcceptProposal (PaperAndRevisions) [ before camera ready deadline ] Inform (CameraReady) Laboratório de Engenharia de Software – PUC-Rio

34 Revision Proposal Protocol
: Chair : Reviewer Proposal (RevisionProposal) Revision Proposal [ before revision proposal deadline ] RejectProposal (RevisionProposal) else AcceptProposal (RevisionProposal) Laboratório de Engenharia de Software – PUC-Rio

35 Additional Reviewers Selection Protocol
: Chair : Coordinator Request (ReviewersNeed) Additional Reviewers Selection Inform (AdditionalReviewers) Laboratório de Engenharia de Software – PUC-Rio

36 Paper Revision Protocol
: Chair : Reviewer [ before deadline of sending papers for revision] Inform (PapersToReview) Paper Revision [ before deadline of sending revisions to chair ] Inform (PapersAndRevisions) Laboratório de Engenharia de Software – PUC-Rio

37 Voting Conflicts Protocol
: Chair : MemberCP Request (RevisionsInConflict) Voting Conflicts Inform (RevisionsAndVotes) 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 Laboratório de Engenharia de Software – PUC-Rio

39 Mapeamento dos Planos e Ações Em 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 Laboratório de Engenharia de Software – PUC-Rio

40 Management of submissions and revisions
: AcademicEventOrganization : AcademicEventOrganization defining_members Role define_reviewers define_deadlines Execution of a Plan [for each reviewer] <<create>> Reviewer/Reviewer : UserAgent/Reviewer define_chair <<create>> Execution of an Action Chair/Chair : UserAgent/ Chair define_coordinator <<create>> Coordinator/Coordinator : UserAgent/ Coordinator define_members_CP [for each member] <<create>> MemberCP/MemberCP : UserAgent/MemberCP Laboratório de Engenharia de Software – PUC-Rio

41 Mapeamento dos Planos e Ações Em Diagramas de Seqüência
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 Laboratório de Engenharia de Software – PUC-Rio

42 Submission and Proposals of Paper Revision
Chair/Chair : UserAgent/Chair/ AcademicEventOrganization Reviewer/Reviewer : UserAgent/Reviewer/ AcademicEventOrganization Author/Author : UserAgent/Author/ AcademicEventOrganization submiting_paper submit_paper distributing_revision_proposals Proposal (Paper) relate_papers_and_reviewers prepare_revision_proposals evaluating_ revision_ proposals send_revision_proposals Proposal(RevisionProposal) Agenda consult_agenda getAgenda calculate_free_time accept_or_reject_revision_proposal RejectProposal(RevisionProposal) else AcceptProposal(RevisionProposal) Laboratório de Engenharia de Software – PUC-Rio

43 Mapeamento dos Planos e Ações Em Diagramas de Seqüência
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 Laboratório de Engenharia de Software – PUC-Rio

44 Publishing Paper sending_final_result find_and_register_final_result
Author/Author : UserAgent/Author/ AcademicEventOrganization Chair/Chair : UserAgent/Chair/ AcademicEventOrganization sending_final_result find_and_register_final_result publish_final_result RejectProposal(Paper) else publishing_paper AcceptProposal(PaperAndRevisions) send_camera_ready receiving_all_camera_ready Inform (CameraReady) receive_all_camera_ready Laboratório de Engenharia de Software – PUC-Rio

45 Mapeamento dos Planos e Ações Em Diagramas de Seqüência
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 Laboratório de Engenharia de Software – PUC-Rio

46 Papers Revision sending_papers_for_revision
Chair/Chair: UserAgent/Chair/ AcademicEventOrganization Reviewer/Reviewer: UserAgent/Reviewer/ AcademicEventOrganization sending_papers_for_revision send_all_papers_for_revision reviewing_papers Inform(PapersToReview) Revision make_reviews setFile classify_paper setResult send_reviews_to_chair registering_reviews Inform(PapersAndRevisions) register_papers_reviews Laboratório de Engenharia de Software – PUC-Rio

47 Mapeamento dos Planos e Ações Em Diagramas de Seqüência
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 Laboratório de Engenharia de Software – PUC-Rio

48 Allocating Addicional Reviewers
Request(ReviewersNeed) Coordinator/ Coordinator : UserAgent/Coordinator/ AcademicEventOrganization Chair/Chair: UserAgent/Chair/ 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_reviewers Inform(AdditionalReviewers) [ If is needed ] evaluate_relation_of_new_reviewers relate_papers_and_new_reviewers Laboratório de Engenharia de Software – PUC-Rio

49 Mapeamento dos Planos e Ações Em Diagramas de Seqüência
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 Laboratório de Engenharia de Software – PUC-Rio

50 Conflicts Detection resolving_revision_conflicts
Chair/Chair: UserAgent/Chair/ AcademicEventOrganization MemberCP/MemberCP: UserAgent/MemberCP/ AcademicEventOrganization resolving_revision_conflicts evaluate_revisions_to_detect_conflicts send_conflicts_to_program_committee voting_papers Request(PapersAndRevisionsInConflict) Vote vote_conflicts setVote send_votes_to_chair Inform(PapersAndRevisionsAndVotes) evaluate_votes_about_conflicts Laboratório de Engenharia de Software – PUC-Rio

51 Diagramas de Atividade

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 Laboratório de Engenharia de Software – PUC-Rio

53 Mapeamento dos Planos e Ações Em 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 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 Laboratório de Engenharia de Software – PUC-Rio

55 Definindo Deadlines para o Evento
define_deadlines defining_deadlines <<subgoal>> define_deadlines_of_event Laboratório de Engenharia de Software – PUC-Rio

56 Mapeamento dos Planos e Ações Em Diagramas de Atividade
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) Laboratório de Engenharia de Software – PUC-Rio

57 send_reviews_to_chair
Revisão de Artigos reviewing_papers <<subgoal>> review_paper <<role>> reviewer make_reviews classify_paper send_reviews_to_chair Laboratório de Engenharia de Software – PUC-Rio

58 Mapeamento dos Planos e Ações Em Diagramas de Atividade
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) Laboratório de Engenharia de Software – PUC-Rio

59 <<message>>
Submissão de Artigo submit_paper submitting_paper <<goal>> submit_paper <<role>> author <<message>> Proposal Laboratório de Engenharia de Software – PUC-Rio

60 Distribuição de propostas de revisão
distributing_revision_proposals <<goal>> distribute_revision_proposals_to_reviewers <<role>> chair relate_paper_and_reviews prepare_revision_proposals send_revision_proposals <<message>> Proposal Laboratório de Engenharia de Software – PUC-Rio

61 Avaliação de Revisão de Propostas
evaluating_revision_proposals <<goal>> evaluate_revision_proposal <<role>> reviewer consult_agenda calculate_free_time accept_or_reject_revision_proposal <<message>> Accept Proposal [deadline not compatible with free time in belief agenda] <<message>> Reject Proposal Laboratório de Engenharia de Software – PUC-Rio

62 Mapeamento dos Planos e Ações Em Diagramas de Atividade
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) Laboratório de Engenharia de Software – PUC-Rio

63 Enviando resultado final
sending_final_result <<goal>> send_final_result_to_authors <<role>> chair find_and_register_final_result publish_final_result <<message>> Accept Proposal <<message>> Reject Proposal Laboratório de Engenharia de Software – PUC-Rio

64 <<message>>
Publicando artigo send_camera_ready publishing_paper <<goal>> publish_paper <<role>> author <<message>> Inform 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 Laboratório de Engenharia de Software – PUC-Rio

66 Mapeamento dos Planos e Ações Em Diagramas de Atividade
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) Laboratório de Engenharia de Software – PUC-Rio

67 Alocando novos revisores
allocationg_addicional_reviewers <<goal>> allocate_addicional_reviewers_when_necessary <<role>> chair verify_necessity_of_new_reviewers [if it is needed] request_new_reviewers <<message>> Request Laboratório de Engenharia de Software – PUC-Rio

68 Selecionando novos revisores
selecting_new_reviewers <<goal>> select_new_reviewers <<role>> coordinator consult_database calculate_1.5_of_number_of_requested_reviewers send_addtional_reviewers <<message>> Inform 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 evaluate_relationg_of_new_reviewers relate_papers_and_new_reviewers Laboratório de Engenharia de Software – PUC-Rio

70 Mapeamento dos Planos e Ações Em Diagramas de Atividade
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) Laboratório de Engenharia de Software – PUC-Rio

71 <<message>>
Resolvendo conflitos de revisão resolving_revision_conflicts <<goal>> resolve_revision_conflicts_when_necessary <<role>> chair evaluate_revisions_to_detect_conflicts send_conflicts_to_program_commitee <<message>> Inform Laboratório de Engenharia de Software – PUC-Rio

72 <<message>>
Votando nos artigos voting_papers <<goal>> vote_papers_in_conflict <<role>> memberCP vote_conflicts send_votes_to_chair <<message>> Inform Laboratório de Engenharia de Software – PUC-Rio

73 evaluate_votes_about_conflicts
Avaliando votos evaluate_votes_about_conflicts resolving_revision_conflicts <<goal>> resolve_revision_conflicts_when_necessary <<role>> chair 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. 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. 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. Laboratório de Engenharia de Software – PUC-Rio

77 2- Diagramas da Implementação
Diagrama de Classes; Diagrama de Seqüência; Laboratório de Engenharia de Software – PUC-Rio

78 2.1. Diagrama de Classes Laboratório de Engenharia de Software – PUC-Rio

79 2.2. Diagrama de Seqüência Submetendo artigo
Motivação JADE Implementação (Mapeamento / DC / Demo) Conclusão Laboratório de Engenharia de Software – PUC-Rio

80 2.2. Diagrama de Seqüência (..) Troca de Mensagens - Enviar
Motivação JADE Implementação (Mapeamento / DC / Demo) Conclusão Laboratório de Engenharia de Software – PUC-Rio

81 2.2. Diagrama de Seqüência (..) Troca de mensagens - Recebimento
Motivação JADE Implementação (Mapeamento / DC / Demo) Conclusão 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; 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. 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; 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 para acessar a página inicial do sistema. 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 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. 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. 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; Laboratório de Engenharia de Software – PUC-Rio

90 Pré / post conditions: modelados como contrato;
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. Laboratório de Engenharia de Software – PUC-Rio

91 6.4. Melhorias Planos Como implementamos Como poderia ser feito
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. 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, (aceito para publicação). Java Agent DEvelopment Framework , 2004 Laboratório de Engenharia de Software – PUC-Rio


Carregar ppt "ExpertCommittee Documentação"

Apresentações semelhantes


Anúncios Google