MODELAGEM E REPRESENTAÇÃO DE SISTEMAS DE SOFTWARE SENSÍVEL AO CONTEXTO Wesley Greski Hazelski (PIBIC/CNPq-UNICENTRO) Marcos Antonio Quináia (Orientador) e-mail: [email protected] Universidade Estadual do Centro-Oeste Departamento Ciência da Computação - Guarapuava-PR 10303022 ENGENHARIA DE SOFTWARE Palavras-chave: sistemas cientes de contexto, modelagem, UML, protótipo. Resumo: Conforme a computação evolui novas formas de comunicação surgem entre o homem e a máquina. Uma destas formas é obter o contexto em que se encontra a aplicação e usá-lo para fornecer serviços customizados para o usuário. Como modelar um sistema ciente de contexto deixando que suas características principais fiquem claras e evidentes? O objetivo deste trabalho é contribuir para a modelagem de sistemas cientes de contexto, diferenciando da modelagem de sistemas sem características de ciência a contexto. Para este projeto utilizou-se a UML como linguagem de modelagem e produziu-se um protótipo evidenciando as suas características de ciência de contexto. Introdução Etimologicamente, contexto é qualquer informação que possa ser utilizada para caracterizar a situação de uma entidade, onde entidade pode ser pessoa, lugar ou objeto que é considerada relevante para uma interação entre um usuário e uma aplicação, incluindo o próprio usuário e a aplicação [DEY, 1999]. Humanos têm a capacidade de distinguir situações muito semelhantes graças ao contexto. Uma palavra pode ter significados diferentes quando usada em várias frases e é o contexto que permite distinguir, por exemplo, a manga da camisa e a manga de comer; Usa-se o contexto todo tempo de forma natural. Os sistemas de software também podem se beneficiar do contexto para aumentar a efetividade da sua comunicação com o usuário. A obtenção do contexto depende dos desenvolvedores elicitarem de maneira não intrusiva, ou seja, sem que seja necessário perguntar diretamente ao usuário as informações que precisa obter para caracterizar o contexto. Este trabalho tem como objetivo descobrir uma maneira de modelar e representar os aspectos de sensibilidade ao contexto presentes em um software de uma maneira que tais aspectos fiquem claros e evidentes. Como estudo de caso, um sistema web de comércio de produtos foi modelado e prototipado. Para a modelagem usou-se três dos diagramas mais importantes da UML [BOOCH, 2005]: casos de uso, classes e Anais do XIX EAIC – 28 a 30 de outubro de 2010, UNICENTRO, Guarapuava –PR. sequência. Em cada diagrama foram destacadas as partes que possuem características de sensibilidade ao contexto. Materiais e métodos A metodologia seguida inclui prospecto sobre computação sensível ao contexto, diagramas da UML e o projeto e implementação de um sistema que possui as características desejadas. Foram criados: o diagrama de casos de uso, que contém as funcionalidades que o sistema deve executar; o diagrama de classes, que contém a parte estática do software; o diagrama de sequência, para cada caso de uso. O método utilizado para diferenciar as funcionalidades de sensibilidade de contexto em cada diagrama foi a coloração juntamente com a estereotipagem. Utilizar UML junto com cores não é uma idéia recente, este método surgiu em 1997 com Peter Coad e seus colegas [MACEDO, 2010]. Neste trabalho esta idéia apenas foi adaptada de forma simplificada para destacar a sensibilidade de contexto de um software. Já a estereotipagem faz parte da linguagem de modelagem UML. O diagrama de casos de usos da figura 1 mostra como a coloração ajuda a destacar as partes do sistema responsáveis por guardar o contexto do usuário, isto é, cada ação importante do usuário no sistema adiciona alguma informação nova no perfil. O perfil por sua vez ajuda a caracterizar um contexto. Figura 1 – Diagrama de casos de uso O sistema foi implementado em Java e JSP (Java Server Pages), que por serem linguagens orientadas a objeto se tornam adequadas para utilização junto com a UML [SIERRA, 2005]. Anais do XIX EAIC – 28 a 30 de outubro de 2010, UNICENTRO, Guarapuava –PR. Servlets são simplesmente classes em linguagem Java, que produzem resultados de modo semelhante a que outras classes Java fariam: através da impressão de caracteres em formato String pelo canal de saída. Páginas JSP, para funcionarem, devem ser transformadas em uma classe Java (Servlet). Um contêiner controla a tarefa de traduzir as páginas JSP para uma classe Servlet, compilar e executar [VILLAFUERTE, 2007]. Resultados e Discussão Para a compreensão do sistema modelado, foram usados três dos principais diagramas da UML. Em cada um deles as partes que ajudam a definir o contexto foram destacadas utilizando-se um sistema de coloração, notas e estereotipagem das classes envolvidas. Cada classe ou caso de uso, que ajuda a definir contexto, foi colorido de amarelo para se destacar dos demais como pode ser visto na figura 2. Figura 2 – Exemplo de Coloração em classe Nas classes onde apenas alguns atributos participavam da obtenção de contexto esses atributos foram marcados com o estereótipo <<contexto>>, como pode ser visto na figura 3, e as classes foram mantidas com a coloração original. Figura 3 – Exemplo de estereotipagem. Os resultados obtidos com a visualização permitiram um melhor entendimento de que se trata de um sistema sensível de contexto. Para este entendimento utilizou-se também a documentação e as notas de texto que em conjunto tornaram possível a compreensão do sistema como um todo. Anais do XIX EAIC – 28 a 30 de outubro de 2010, UNICENTRO, Guarapuava –PR. Exemplo de notas de textos possibilitados pela UML podem ser vistas na figura 4. Figura 4 – Exemplo de utilização de notas. Conclusões O sistema utilizado como estudo de caso, apresenta fatores limitadores para uma melhor elicitação do seu contexto (e. g.: falta de webcam, para identificar expressões faciais e microfones). Existem outros sistemas, no entanto, que podem oferecer acesso a mais fontes de dados (e. g.: uma webcam; algorítimos para identificar expressões faciais). Quanto maior a fonte de dados, maior a gama de fontes de contexto, possibilitando melhor identificação, definição e aproveitamento das características de sensibilidade a contexto. A UML não mostrou nenhuma restrição que impeça a modelagem de sistemas cientes de contexto, isto é, pode-se modelar qualquer sistema que possua características de context awareness com o uso da UML e seus diagramas sem nenhum problema. Entretanto não é possível evidenciar as partes do sistema que sejam cientes a contexto. Este trabalho oferece uma contribuição na forma de evidenciar estas importantes características tornando sua visualização mais rápida e fácil. Agradecimentos Agradecemos ao CNPq pelo aporte financeiro e à UNICENTRO pela possibilidade de realização desta pesquisa. Referências BOOCH, G.; RUMBAUGH, J. e JACOBSON, I. The Unified Modeling Language User Guide. 2nd edition. Ed.: Addison-Wesley. New York, 2005. DEY, A. K. et al. Towards a Better Understanding of Context and ContextAwareness. In HUC ’99: Proceedings of the 1st international symposium on Handheld and Ubiquitous Computing. Vol. 1707, 304307. 1999. MACEDO, J. A. Modelando objetos com cores – UML em cores. [online] Disponível na Internet via http://jamacedo.wordpress.com/2010/06/11/modelando-objetos-comcores-uml-em-cores. (Acessado em 15 de junho de 2010). SIERRA, K.; BATES, B. Use a Cabeça! Java. 2nd edição. Ed.: Alta Books. Rio de Janeiro, 2005. VILLAFUERTE, D. Programação WEB. Projeto Jedi, Modulo 6, lição 1, 2007. Anais do XIX EAIC – 28 a 30 de outubro de 2010, UNICENTRO, Guarapuava –PR.