UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Daniel Henriques Moreira Luiz Josué da Silva Filho SIMPATROL ESPECIFICAÇÃO DOS REQUISITOS DO SOFTWARE Etapa 8 – Requisitos não-funcionais Recife – PE 15 de abril de 2007 2 Projeto SimPatrol SOBRE ESTE DOCUMENTO Este documento é produto da fase de elaboração do software SimPatrol. Corresponde à especificação dos requisitos não-funcionais do mesmo, dando continuidade ao trabalho de Moreira e Silva Filho. É destinado a todos os desenvolvedores e gerentes do projeto e, futuramente, comporá o documento final de especificação de requisitos do software. UFPE - CIn 3 Projeto SimPatrol GLOSSÁRIO cenário de experimentação UFPE - CIn Conjunto de informações que definirão a execução de um determinado experimento de patrulhamento no simulador. Deve conter, entre outros, o número de agentes e a posição inicial de cada um. 4 Projeto SimPatrol SUMÁRIO Sobre este documento......................................................................................... Glossário............................................................................................................... Identificação de requisitos.................................................................................. Requisitos não-funcionais........................................................................ Soluções para os requisitos ainda não atendidos................................. Casos de uso............................................................................................. Especificação de requisitos................................................................................ Requisitos R1, R2 e R3.............................................................................. Requisito R6............................................................................................... Referências bibliográficas................................................................................... UFPE - CIn 02 03 05 05 06 07 08 08 10 11 5 Projeto SimPatrol Identificação de requisitos Requisitos não-funcionais Segue abaixo uma listagem dos requisitos não-funcionais propostos por Moreira e Silva Filho para o software SimPatrol. Requisito Descrição Já foi atendido? Impacta nos modelos? R1 Possibilidade de se codificar os agentes em qualquer linguagem ou tecnologia. Não Sim R2 Possibilidade de se codificar as ferramentas de relatório e análise dos resultados das simulações em qualquer linguagem ou tecnologia. Não Sim R3 Possibilidade de se codificar interfaces gráficas para exibição das simulações em qualquer linguagem ou tecnologia. Não Sim R4 Atuação de até mil (1000) agentes. Não Não R5 Disponibilização facilitada das medidas de desempenho básicas relacionadas à tarefa de patrulhamento. Sim Sim R6 Existência de cenários de experimentação. Não Sim R7 Desenvolvimento dentro do prazo de cinco (5) meses. Não Não R8 Continuidade aos trabalhos de Almeida, Machado, Menezes e Santana. Sim Sim R8 Inspiração no simulador de partidas de futebol da RoboCup (Chen). Sim Sim R9 Codificação em linguagem orientada a objetos, com ampla comunidade de desenvolvedores e grande quantidade de APIs disponíveis. Não Não UFPE - CIn 6 Projeto SimPatrol Soluções para os requisitos ainda não atendidos Seguem abaixo soluções para os requisitos não-funcionais ainda não atendidos na elaboração do software SimPatrol. Requisito Resumo Solução • R1 Agentes em qualquer linguagem ou tecnologia. • R2 Ferramentas de relatório e análise em qualquer linguagem ou tecnologia. • R3 Interfaces gráficas de exibição feitas em qualquer linguagem ou tecnologia. • • Conexão simulador – agentes via portas socket UDP; Protocolos de comunicação baseados em mensagens escritas em XML. Conexão simulador – ferramentas via porta socket UDP; Protocolos de comunicação baseados em mensagens escritas em XML. • Conexão simulador – interfaces via porta socket UDP; Geração de logs com programação orientada a aspectos1; Transmissão dos logs no formato XML. • R4 Até 1000 agentes. • Desenvolvimento na tecnologia Java. R6 Existência de cenários de experimentação. • Modelagem de cenários para serem persistidos em arquivos no formato XML. R7 Desenvolvimento em 5 meses. • Desenvolvimento na tecnologia Java2. R9 Linguagem programação OO. • Desenvolvimento na tecnologia Java. 1 de Como explicado na Wikipédia, uma aplicação orientada a aspectos permite a separação das tarefas de log do funcionamento central do sistema. Deste modo, os modelos e algoritmos não são influenciados pela necessidade de geração de logs, implicando, no caso do SimPatrol, no adiamento da elaboração de tal atividade. 2 Dado que os desenvolvedores Daniel Henriques Moreira e Luiz Josué da Silva Filho têm maior experiência com esta plataforma. UFPE - CIn 7 Projeto SimPatrol Casos de uso Frente aos requisitos não funcionais identificados, os seguintes casos de uso podem ser derivados: Analysis report Analysis report tool Simulation log Simulation player Researcher Experimental scenery persistence UFPE - CIn 8 Projeto SimPatrol Especificação de requisitos Na seqüência, cada um dos requisitos não-funcionais que ainda não tinham sido atendidos e que impactam nos modelos do SimPatrol será devidamente analisado. Requisitos R1, R2 e R3 Para dar suporte à implementação das soluções, para os requisitos R1, R2 e R3, que dizem respeito à conexão do simulador com os agentes, ferramentas de relatório e interfaces gráficas de exibição, o seguinte diagrama de classes é proposto. Os elementos destacados em amarelo correspondem a modificações e/ou novas classes incluídas nos modelos do SimPatrol. <<active>> PerceptionRequisitionQueue UDPSocket PerceptionDaemon <<active>> ActionRequisitionQueue AgentConnection ActionDaemon ActionIntentionParser <<active>> Connection AnalysisReportDaemon AnalysisReportRequisitionQueue AnalysisReportConnection SimulationLogDaemon SimulationLogConnection Em relação à implementação das mesmas soluções quanto à decisão de transmitir dados no formato XML, o seguinte diagrama de classes é proposto: UFPE - CIn 9 Projeto SimPatrol PerceptionRequisition XMLable <<realize>> <<realize>> <<realize>> <<realize>> <<realize>> <<realize>> Action Message <<realize>> <<realize>> Society ActionIntention <<realize>> Perception <<realize>> <<realize>> Agent Stigma Edge Vertex Graph Finalmente, em respeito à implementação das soluções quanto à mensagem transmitida entre o simulador e os agentes, ferramentas de relatório e interfaces gráficas de exibição, o seguinte diagrama de classes é proposto: XMLable Message Attributes -message_type:MessageType[1] -content:String[1] Actually, XML UFPE - CIn <<enumeration>> MessageType Literals PERCEPTION_REQUISITION ACTION_INTENTION PERCEPTION 10 Projeto SimPatrol Requisito R6 Para dar suporte à implementação da solução para o requisito R6, o seguinte diagrama de classes é proposto. comes from ExperimentalScenery stores 0..1 XMLable XMLable Graph Stigma Attributes -label:String[1] 0..1 1..* * XMLable XMLable Vertex * Attributes 0..1 collector -label:String [1] -priority:Integer[1]=0 -visibility:Boolean[1] -idleness:Integer [1] -fuel:Boolean [1]=false * Edge 0..1 Attributes -length:Double[1] -visibility:Boolean[1] 0..1 emitter leaves DynamicVertex DynamicEdge disappears is on appears appears disappears * * TimeProbabilityDistribution XMLable Attributes -seed:Double[1] appears PerpetualAgent Agent Attributes -stamina:Double[1]=1 Operations +setPerception(in perception: Perception +requireBroadcastingPercetion(in requisition: desappears SeasonalAgent <<active>> <<active>> PerceptionDaemon ActionDaemon Operations -grantPerceptionRequisition Operations -grantActionRequisition 1..* 1..* ClosedSociety OpenSociety ActionPermission PerceptionPermission Attributes -action_type: AtomicActionType [1] Attributes -perception_type: PerceptionType [1] * XMLable Society Attributes -label:String [1] UFPE - CIn DepthLimitation Attributes -depth: Integer[1] * Limitation StaminaLimitation Attributes -cost: Integer [1] 11 Projeto SimPatrol Referências bibliográficas ALMEIDA, A. Patrulhamento multiagente em grafos com pesos. 2003. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife. 2003. CHEN, M.; et al. (2002). RoboCup Soccer Server: users manual. Disponível em: http://sserver.sourceforge.net/docs/manual.pdf. Acesso em 10 de dez. 2006. MACHADO, A. Patrulhamento multiagente: uma análise empírica e sistemática. 2002. Dissertação (Mestrado em Ciência da Computação) – Programa de PósGraduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife. 2002. MENEZES, T. Negociação em sistemas multiagente para patrulhamento. 2006. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife. 2006. MOREIRA, D.; SILVA FILHO, L. SimPatrol: Proposta de Especificação do Software. Disponível em http://simpatrol.googlecode.com/files/PESw.pdf. Acesso em 10 de mar. 2006. SANTANA, H. Patrulha multiagentes com aprendizagem por reforço. 2005. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife. 2005. WIKIPÉDIA. Programação orientada a aspecto. Disponível http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspecto. Acesso em 15 de abr. de 2007. UFPE - CIn em