4.2 Modelo DiSEN-CSE (DiSEN-Context Sensitive En- En-vironment)
4.2.2 Modelagem e Especifica¸ c˜ ao dos Casos de Uso
O DiSEN-CSE possui quatro elementos principais, al´em do reposit´orio para armazena-mento das informa¸c˜oes contextuais. Dessa forma, a vis˜ao de neg´ocio dos casos de uso pode ser definido como apresentado na Figura 4.5
Figura 4.5: Diagrama de Casos de Uso – Vis˜ao de Neg´ocio.
Neste diagrama, ´e poss´ıvel observar que os agentes (humanos ou de software) atuam sobre a captura e dissemina¸c˜ao, enquanto o gerenciador de notifica¸c˜oes atua sobre os quatro elementos do modelo. Isso porque os agentes humanos podem oferecer informa¸c˜oes sobre o contexto de suas a¸c˜oes e est˜ao interessados nas informa¸c˜oes contextuais de outros usu´arios para a realiza¸c˜ao do seu trabalho. Os agentes de software, por sua vez, possuem, explicitamente, a responsabilidade de captura autom´atica das informa¸c˜oes contextuais.
Al´em disso, podem ser respons´aveis por receber as informa¸c˜oes prontas para dissemina¸c˜ao e entreg´a-las aos usu´arios interessados, de acordo com o m´etodo de apresenta¸c˜ao mais adequado (os m´etodos de apresenta¸c˜ao propostos para o ambiente DiSEN podem ser encontrados em (Pozza, 2005)).
4.2 Modelo DiSEN-CSE (DiSEN-Context Sensitive Environment) 43 Por outro lado, o gerenciador de notifica¸c˜oes n˜ao se preocupa com a forma com que as informa¸c˜oes s˜ao capturadas ou disseminadas. Ele recebe o resultado da captura, delega `a representa¸c˜ao e ao processamento e entrega o resultado dessas opera¸c˜oes `a dissemina¸c˜ao.
Dessa forma, quer seja recebendo ou enviando informa¸c˜oes, o gerenciador de notifica¸c˜oes age sobre todos os elementos do modelo.
O diagrama de vis˜ao de neg´ocio possui quatro casos de uso:
Capturar informa¸c˜oes de contexto: corresponde ao elemento Suporte `a captura.
Seu objetivo ´e definir como ocorre a captura das informa¸c˜oes de contexto, quer sejam informa¸c˜oes percebidas por agentes de software, quer sejam providas por agentes humanos, volunt´aria ou involuntariamente;
Representar contexto: corresponde ao elementoRepresenta¸c~ao de contextoe ´e res-pons´avel por definir a representa¸c˜ao formal das informa¸c˜oes contextuais, respeitando as depedˆencias e relacionamentos com informa¸c˜oes j´a existentes. Al´em disso, as in-forma¸c˜oes persistentes precisam ser armazenadas, enquanto as transientes precisam ser enviadas para processamento e dissemina¸c˜ao;
Processar informa¸c˜oes de contexto: permite a extra¸c˜ao de novas informa¸c˜oes a par-tir daquelas recebidas da representa¸c˜ao, correspondendo ao elemento Suporte ao processamento. O racioc´ınio sobre essas informa¸c˜oes ´e poss´ıvel devido `a uti-liza¸c˜ao do modelo de representa¸c˜ao baseado em ontologias, que oferece um modelo semˆantico que possibilita a realiza¸c˜ao de inferˆencia sobre as informa¸c˜oes represen-tadas;
Disseminar informa¸c˜oes de contexto: define a escolha do melhor m´etodo de apre-senta¸c˜ao para cada indiv´ıduo interessado naquele contexto e disseminar as informa¸c˜oes, atendendo a relevˆancia da informa¸c˜ao, o perfil e as preferˆencias dos usu´arios (ele-mento Mecanismos de apresenta¸c~ao).
Cada um desses quatro casos foram detalhados em casos de uso mais espec´ıficos, que ser˜ao descritos a seguir. A documenta¸c˜ao completa dos casos de uso pode ser encontrada no Apˆendice B.
Capturar informa¸c˜oes de contexto
O caso de uso Capturar informa¸c~oes de contexto pode ser detalhado como na Figura 4.6.
Figura 4.6: Diagrama de Casos de Uso – Capturar informa¸c˜oes de contexto.
No caso de uso Capturar informa¸c~oes locais, as informa¸c˜oes contextuais podem ser obtidas de arquivos de configura¸c˜ao, interfaces gr´aficas ou por interpreta¸c˜ao feita a partir de outros sensores (por exemplo, um sensor f´ısico). Nesse caso, a captura das informa¸c˜oes ´e transparente ao usu´ario, mesmo que ele as forne¸ca por uma interface gr´afica (a¸c˜ao involunt´aria).
As informa¸c˜oes de contexto podem ser persistentes ou transientes. Quando s˜ao persis-tentes, s˜ao armazenadas em um reposit´orio e podem ser recuperadas quando necess´ario.
Para isso, os agentes de software pr´o-ativos (quando necessita de informa¸c˜oes hist´oricas) ou reativos (quando o usu´ario solicita uma consulta a um determinado mecanismo de recupera¸c˜ao) podem realizar o caso de uso Recuperar informa¸c~oes do reposit´orio, que obt´em uma solicita¸c˜ao de consulta e busca a informa¸c˜ao no reposit´orio de dados.
O caso de uso Registrar contexto manualmente consiste em um agente humano informar seu contexto a partir de uma interface gr´afica, por exemplo, preenchendo um formul´ario. Diferentemente do caso de uso Capturar informa¸c~oes locais, o usu´ario est´a ciente de que sua a¸c˜ao fornecer´a informa¸c˜oes contextuais (a¸c˜ao volunt´aria).
O caso de uso Comunicar o gerenciador de notifica¸c~oes ´e inclu´ıdo por todos os casos de uso de captura, para comunicar que uma informa¸c˜ao foi capturada. Nesse
4.2 Modelo DiSEN-CSE (DiSEN-Context Sensitive Environment) 45 caso de uso, o gerenciador de notifica¸c˜oes recebe as informa¸c˜oes de contexto capturadas pelos agentes e decide o tratamento que ser´a dado `a informa¸c˜ao, de acordo com suas caracter´ısticas (persistente, transiente ou resultado de consulta).
Representar contexto
O caso de uso Representar contextopode ser especificado em trˆes casos de uso corres-pondentes, apresentados na Figura 4.7.
Figura 4.7: Diagrama de Casos de Uso – Representar contexto.
No caso de uso Mapear informa¸c~oes para modelo de representa¸c~ao, o gerencia-dor de notifica¸c˜oes, ao receber informa¸c˜oes dos agentes de captura, dever´a represent´a-las formalmente, com base na ontologia predefinida. Assim, esse caso de uso ´e respons´avel por mapear essas informa¸c˜oes para as classes ontol´ogicas, respeitando as rela¸c˜oes prees-tabelecidas.
Algumas classes de informa¸c˜oes podem depender de outras informa¸c˜oes relacionadas.
Por essa raz˜ao, o caso de uso Atribuir depend^encias `as informa¸c~oes ´e respons´avel por mapear as dependˆencias da informa¸c˜ao atual, relacionando-as com as informa¸c˜oes j´a existentes no reposit´orio de informa¸c˜oes contextuais, para facilitar o processamento, posteriormente.
E, por fim, no caso de usoArmazenar informa¸c~oes persistentes, o gerenciador de notifica¸c˜oes fica respons´avel por, ap´os a representa¸c˜ao, envi´a-las para o armazenamento, a fim de garantir que esta informa¸c˜ao possa ser recuperada em um momento futuro.
Processar informa¸c˜oes de contexto
O gerenciador de notifica¸c˜oes possui acesso ao elemento deSuporte ao processamento, que consiste em um motor de inferˆencia capaz de deduzir informa¸c˜oes a partir daquelas j´a existentes. O caso de uso Deduzir novas informa¸c~oes a partir das existentes (Figura 4.8) consiste em submeter as informa¸c˜oes que ser˜ao disseminadas a esse motor de inferˆencia, obtendo novas informa¸c˜oes por racioc´ınio ou dedu¸c˜ao.
Figura 4.8: Diagrama de Casos de Uso – Processar informa¸c˜oes de contexto.
Disseminar informa¸c˜oes de contexto
O caso de usoDisseminar informa¸c~oes de contexto pode ser descrito nos casos de uso apresentados na Figura 4.9.
O gerenciador de notifica¸c˜oes mant´em uma lista de receptores da informa¸c˜ao contex-tual. Um receptor pode ser um local (todos os workspaces conectados a um determinado servidor), uma ferramenta (todos os usu´arios que utilizam determinada ferramenta) ou um usu´ario (um indiv´ıduo ou um grupo). No caso de uso Identificar receptores da informa¸c~ao, quando o gerenciador recebe uma informa¸c˜ao representada e processada, ele deve se encarregar de verificar quem est´a interessado naquele evento e formar uma lista de receptores para uma informa¸c˜ao determinada, para ent˜ao enviar essa informa¸c˜ao `as entidades que a utilizam.
As informa¸c˜oes, quando s˜ao disseminadas, s˜ao exibidas por mecanismos de apre-senta¸c˜ao ou ferramentas de comunica¸c˜ao que sejam capazes de oferecer a informa¸c˜ao ao usu´ario. O caso de uso Identificar mecanismos de apresenta¸c~ao seleciona os mecanismos que ser˜ao utilizados para cada entidade da lista de receptores, de acordo