• Nenhum resultado encontrado

Metamodelo para Integração de Ferramentas de Mineração de Interesses Transversais e de Visualização de Software

N/A
N/A
Protected

Academic year: 2021

Share "Metamodelo para Integração de Ferramentas de Mineração de Interesses Transversais e de Visualização de Software"

Copied!
8
0
0

Texto

(1)

Metamodelo para Integrac¸˜ao de Ferramentas de Minerac¸˜ao

de Interesses Transversais e de Visualizac¸˜ao de Software

Oscar Jos´e Fernandes Tanner1, Rosˆangela Aparecida Dellosso Penteado1,

Matheus Carvalho Viana1, Glauco de Figueiredo Carneiro2

1Departamento de Computac¸˜ao – Universidade Federal de S˜ao Carlos (UFSCar)

Caixa Postal 676 – 13.565-905 – S˜ao Carlos – SP – Brasil

2Programa de P´os Graduac¸˜ao em Sistemas e Computac¸˜ao

Universidade Salvador (UNIFACS) – Salvador – BA – Brasil

{oscar.tanner,rosangela,matheus viana}@dc.ufscar.br, glccarneiro@gmail.com

Abstract. Refactoring of Object Oriented systems based on Aspect Orienta-tion is not trivial and need supporting tools, like crosscutting concerns mining tools and software visualization. However, these tools may have incompatible issues, compromising their integration. In this paper we show a metamodel which enables the integration of these tools, allowing their joint use during the refactoring process. An example of use of the metamodel is shown in order to illustrate that it provides easier integration development, because it reduces the possibility of errors in coding.

Resumo. A refatorac¸˜ao de sistemas Orientados a Objetos com base na Orientac¸˜ao a Aspectos n˜ao ´e trivial e necessita de ferramentas de apoio, como as de minerac¸˜ao de interesses transversais e as de visualizac¸˜ao de software. Contudo, essas ferramentas podem apresentar problemas de incompatibilidade, comprometendo a sua integrac¸˜ao. Neste artigo ´e mostrado um metamodelo que permite a integrac¸˜ao entre essas ferramentas, possibilitando sua utilizac¸˜ao conjunta durante o processo de refatorac¸˜ao. Um exemplo de utilizac¸˜ao do metamodelo ´e apresentado, a fim de ilustrar que o mesmo proporciona maior facilidade no desenvolvimento da integrac¸˜ao, pois diminui a possibilidade da ocorrˆencia de erros de codificac¸˜ao.

1. Introduc¸˜ao

A Programac¸˜ao Orientada a Objetos proporciona modularizac¸˜ao para os sistemas com-putacionais, facilitando o desenvolvimento e o reuso das unidades l´ogicas. Contudo, n˜ao consegue modularizar em uma ´unica unidade l´ogica requisitos de sistema chamados de Interesse Transversal (IT). Os ITs s˜ao os requisitos que est˜ao entrelac¸ados com os requisi-tos funcionais e espalhados em todo o software, como por exemplo, os requisirequisi-tos de per-sistˆencia e logging. Com o intuito de solucionar esse problema, surge a Programac¸˜ao Ori-entada a Aspectos, que procura encapsular os ITs em uma ´unica unidade l´ogica chamada Aspecto [Kiczales et al. 1997].

Nesse contexto, pesquisas foram desenvolvidas a fim de que os sistemas Ori-entados a Objetos (OO) se beneficiassem da Orientac¸˜ao a Aspectos. Algumas dessas pesquisas se baseiam na refatorac¸˜ao dos sistemas OO, nas quais os ITs s˜ao detec-tados para que possam ser encapsulados em aspectos [Robillard and Murphy 2007,

(2)

Marin et al. 2004]. Esse processo n˜ao ´e trivial, principalmente em sistemas com alta concentrac¸˜ao de ITs e em sistemas legados, com pouca, ou quase nenhuma, documentac¸˜ao. Ferramentas computacionais podem auxiliar nesse processo de forma a viabilizar a identificac¸˜ao dos ITs no c´odigo fonte dos sistemas e at´e indicar soluc¸˜oes de modularizac¸˜ao.

Uma das ferramentas desenvolvidas para auxiliar no processo de minerac¸˜ao de ITs ´e a Computacional Support for Concern Identification (ComSCId) [Parreira J´unior et al. 2011]. A t´ecnica de minerac¸˜ao por tipos e texto baseia-se nos tipos dos objetos e em cadeias de caracteres para identificar os ind´ıcios de IT. ComSCId foi desenvolvida com base nessa t´ecnica de minerac¸˜ao, identificando tre-chos de c´odigo que representam ind´ıcios de um determinado IT que foi previamente cadastrado. Em seguida, o engenheiro de software analisa os trechos de c´odigo com ind´ıcios, validando aqueles que realmente implementem o IT identificado.

A ComSCId e as outras ferramentas de minerac¸˜ao de ITs estudadas, como, FINT [Marin et al. 2004], XScan [Nguyen et al. 2011], ConcernMapper [Robillard and Weigand-Warr 2005] e FEAT [Robillard and Murphy 2003], apre-sentam as seguintes vantagens: i) facilidade de identificac¸˜ao dos ind´ıcios de ITs; ii) armazenamento dos ind´ıcios em uma listagem com link para o c´odigo fonte, facilitando a navegac¸˜ao e; iii) diminuic¸˜ao da necessidade de conhecimento pr´evio da aplicac¸˜ao. J´a uma das principais desvantagens dessas ferramentas ´e o fato de n˜ao disponibilizarem formas de visualizac¸˜ao de todos os ind´ıcios encontrados no c´odigo fonte, juntamente com o relacionamento entre as estruturas do sistema.

Ferramentas de visualizac¸˜ao, como a SourceMiner [Carneiro 2011], tˆem sido utilizadas em conjunto com ferramentas de minerac¸˜ao para fornecer aos engenheiros de software uma representac¸˜ao gr´afica dos m´odulos dos sistemas, inclusive os ITs [Carneiro et al. 2010]. Contudo, nem sempre o formato das informac¸˜oes geradas pelas ferramentas de minerac¸˜ao ´e compat´ıvel com o formato aceito pelas ferramentas de visualizac¸˜ao, o que impossibilita a comunicac¸˜ao entre essas ferramentas.

Este artigo prop˜oe um metamodelo para representac¸˜ao de ind´ıcios de ITs no c´odigo fonte de sistemas, para auxiliar a comunicac¸˜ao entre ferramentas de minerac¸˜ao e de visualizac¸˜ao. Esse metamodelo possui classes respons´aveis por representar o c´odigo fonte identificando, assim, os ind´ıcios encontrados pela ferramenta de minerac¸˜ao. Esse conjunto de classes ´e ent˜ao transcrito em formato XML e esse arquivo ´e utilizado como meio de comunicac¸˜ao com as ferramentas de visualizac¸˜ao. Tamb´em ´e apresentado um exemplo de integrac¸˜ao entre duas ferramentas desenvolvidas por grupos de pesquisa de diferentes universidades: a ComSCId, para a identificac¸˜ao dos ITs e a SourceMiner, para exibir graficamente os ITs existentes em um sistema implementado em linguagem Java. Essas ferramentas foram escolhidas considerando a experiˆencia anterior dos autores com as mesmas e a cooperac¸˜ao existente entre os grupos de pesquisa.

Na Sec¸˜ao 2 s˜ao apresentadas as caracter´ısticas das ferramentas ComSCId e SourceMiner. Na Sec¸˜ao 3 s˜ao comentados alguns trabalhos relacionados que eviden-ciam a importˆancia da utilizac¸˜ao de ferramentas de visualizac¸˜ao para exibir os ind´ıcios de ITs encontrados com o uso de ferramentas de minerac¸˜ao. Na Sec¸˜ao 4 ´e apresentado o metamodelo proposto e comentada a forma geral de sua utilizac¸˜ao. Na Sec¸˜ao 5 ´e exibido

(3)

um exemplo de uso do metamodelo com o uso de ComSCId e SourceMiner, e, na Sec¸˜ao 6 s˜ao apresentadas as conclus˜oes e os trabalhos futuros a serem realizados.

2. ComSCId e SourceMiner

A ComSCId [Parreira J´unior et al. 2011] foi implementada como um plug-in do Eclipse e auxilia ao engenheiro de software na identificac¸˜ao de ind´ıcios de ITs em um sistema, por meio da t´ecnica de busca por tipos e texto. Essa t´ecnica utiliza-se de tipos de vari´aveis e cadeias de caracteres para identificar os poss´ıveis ind´ıcios. Um conjunto de regras, capaz de identificar os tipos de vari´aveis e cadeias de caracteres que representam os ind´ıcios procurados, deve ser criado para ser utilizado na busca.

A ComSCId disponibiliza uma interface para que o engenheiro de software possa incluir, alterar e remover regras, sendo que cada sistema analisado pode conter seu pr´oprio conjunto de regras. Para facilitar uma an´alise inicial do sistema, a ComSCId cont´em um conjunto pr´e-cadastrado de regras para os ITs de persistˆencia, de logging e de buffering.

Os ind´ıcios encontrados s˜ao exibidos em uma representac¸˜ao de ´arvore (Figura 1), listados abaixo da classe onde foram encontrados, e representados pelo ´ıcone de uma ”pegada”. Essa vis˜ao, embora indique todos os ind´ıcios encontrados, dificulta uma visualizac¸˜ao geral dos ITs existentes no sistema, principalmente se ele for complexo. Essa forma de visualizac¸˜ao demanda um grande esforc¸o por parte dos engenheiros de software, pois ´e necess´ario clicar em cada um dos pacotes e classes do sistema para visualizar os ind´ıcios encontrados. Outra limitac¸˜ao ´e que ela somente exibe um tipo de ind´ıcio por vez, dificultando a identificac¸˜ao das classes afetadas por v´arios ind´ıcios de ITs.

Figure 1. Exemplo de vis ˜ao de ´arvore de ind´ıcios para o interesse de persist ˆencia

Um Ambiente Interativo baseado em M´ultiplas Vis˜oes (AIMV) [Wang Baldonado et al. 2000] visa a apoiar o processo de visualizac¸˜ao de software, fornecendo as ferramentas necess´arias para que um engenheiro de software possa reconhecer as informac¸˜oes relevantes de um sistema [Spence 2007, Shneiderman and Plaisant 2009]. Esse ambiente possibilita a an´alise do sistema, pois utiliza-se de v´arias met´aforas de visualizac¸˜ao para criar suas vis˜oes, onde as informac¸˜oes do sistema s˜ao sintetizadas.

A SourceMiner [Carneiro 2011] ´e um tipo de AIMV, tamb´em implementado como um plug-in do Eclipse, possibilitando a visualizac¸˜ao de informac¸˜oes de um software.

(4)

Essas informac¸˜oes podem ser tanto estruturais (quantidade de linhas de c´odigo e n´umero de m´etodos), quanto relacionais (dependˆencia e hierarquia entre as classes).

SILVA e CARNEIRO (2012) prop˜oem uma nova arquitetura para aplicac¸˜oes do tipo AIMV, visando `a diminuic¸˜ao do acoplamento entre as estruturas internas e a criac¸˜ao de pontos de extens˜ao que facilitem o processo de integrac¸˜ao. Essa nova arquitetura ´e baseada em v´arios plug-ins, sendo que cada um ´e respons´avel por uma parte do processo de an´alise e visualizac¸˜ao de um software. Essa arquitetura possui trˆes camadas: i) a de Modelagem; ii) a de Controle e; iii) a de Visualizac¸˜ao.

A camada de Modelagem ´e respons´avel por realizar as an´alises necess´arias e modelar essas informac¸˜oes de modo que as demais camadas possam entendˆe-las. A ca-mada de Controle processa os dados, fornecidos pela primeira caca-mada, de acordo com as interac¸˜oes do usu´ario por meio das visualizac¸˜oes e filtros. A camada de Visualizac¸˜ao, exibe os dados processados pela segunda camada, de acordo com suas met´aforas visuais.

3. Trabalhos Relacionados

A importˆancia de exibir as informac¸˜oes sobre os ITs em ferramentas de visualizac¸˜ao pode ser vista em alguns trabalhos como, por exemplo, de BENTRAD E MESLATI (2011) e CARNEIRO (2011), por´em, a integrac¸˜ao de novas ferramentas de minerac¸˜ao com essas ferramentas n˜ao ´e trivial.

BENTRAD E MESLATI (2011) n˜ao apresentam uma forma de integrac¸˜ao com ferramentas de minerac¸˜ao, de modo que o conjunto de regras que identifica a existˆencia dos ITs nos sistemas est´a acoplado a essa ferramenta de visualizac¸˜ao.

CARNEIRO (2011) integra a ferramenta SourceMiner com a ferramenta de minerac¸˜ao ConcernMapper [Robillard and Weigand-Warr 2005] por meio da interpretac¸˜ao de um arquivo, de formato CM, gerado por essa ferramenta de minerac¸˜ao. Essa forma de integrac¸˜ao possibilita que novas ferramentas de minerac¸˜ao sejam integradas `a SourceMiner, desde que respeitem as regras de criac¸˜ao do arquivo CM, que s˜ao extrema-mente espec´ıficas e pouco documentadas [Robillard 2013].

4. Metamodelo

Com o objetivo de facilitar o processo de integrac¸˜ao entre as ferramentas de minerac¸˜ao de ITs e visualizac¸˜ao de software, este trabalho prop˜oe um metamodelo (Figura 2) para representar, de maneira simples e objetiva, os ind´ıcios de ITs encontrados no c´odigo fonte. A classe MiningTool representa uma ferramenta de minerac¸˜ao respons´avel por identificar os ind´ıcios de ITs, afim de fornecer `a ferramenta de visualizac¸˜ao algumas informac¸˜oes sobre a ferramenta de minerac¸˜ao e m´etodo utilizado na identificac¸˜ao dos ITs. As demais classes tˆem como objetivo caracterizar as estruturas do c´odigo fonte. Um projeto (Project) cont´em diversos pacotes, sendo que cada pacote (Package) cont´em diversas classes. Cada classe (Class) pode conter diversos m´etodos (Method) e atributos (Attributes). Cada m´etodo pode ter zero ou mais parˆametros, possibili-tando assim distinguir m´etodos sobrecarregados. Todo atributo de uma classe e parˆametro (Parameter) de um m´etodo est´a associado a um tipo (Type), que representa a classe desse atributo ou parˆametro no c´odigo fonte. A associac¸˜ao entre um m´etodo e um tipo indica o tipo do retorno desse m´etodo. Toda classe, m´etodo e atributo pode ser afetada por um ou mais ITs (Concern).

(5)

Figure 2. Metamodelo

Esse metamodelo e as func¸˜oes capazes de realizar a escrita e leitura de arquivos que representam informac¸˜oes de acordo com essas regras foram implementados como um plug-in do Eclipse. Para utilizar o metamodelo proposto ´e necess´ario criar uma ex-tens˜ao para as ferramentas de minerac¸˜ao e visualizac¸˜ao que forem utilizadas, a fim de que elas possam, respectivamente, escrever e ler informac¸˜oes contidas no formato pro-posto pelo metamodelo. Isso pode ser feito diretamente nos plug-ins das ferramentas uti-lizadas, estendendo as classes contidas no plug-in do metamodelo e utilizando as func¸˜oes de escrita e leitura. Nos casos em que n˜ao ´e poss´ıvel alterar o c´odigo fonte das fer-ramentas de minerac¸˜ao ou de visualizac¸˜ao, pode-se criar um conversor intermedi´ario, capaz de transformar o arquivo gerado pela ferramenta de minerac¸˜ao utilizada em um ar-quivo que respeite as regras do metamodelo, ou que seja capaz de transformar o arar-quivo gerado, de acordo com o metamodelo, em um que possa ser entendido pela ferramenta de visualizac¸˜ao.

No caso da escrita do arquivo, a ferramenta de minerac¸˜ao deve estender as classes do metamodelo criando novos construtores para elas. Esses construtores devem rece-ber como parˆametro as informac¸˜oes a serem armazenadas nos atributos dessas classes. Esses valores podem ser tanto objetos da linguagem, quanto objetos de classes espec´ıficas da ferramenta de minerac¸˜ao, cabendo ao c´odigo desse construtor realizar as convers˜oes necess´arias. No caso da leitura do arquivo, n˜ao h´a a necessidade de extens˜ao, onde a ferra-menta de visualizac¸˜ao deve analisar as classes do metamodelo procurando pelos ind´ıcios de ITs.

5. Utilizac¸˜ao do Metamodelo com as ferramentas ComSCId e SourceMiner

Esta sec¸˜ao apresenta um exemplo de utilizac¸˜ao do metamodelo proposto, sendo o ComSCId atualizado para exportar todos os ind´ıcios encontrados no c´odigo fonte em um arquivo XML, de acordo com o formato definido. A ferramenta SourceMiner, que respeita a nova arquitetura proposta por SILVA e CARNEIRO (2012), foi atualizada, por

(6)

meio do desenvolvimento de um interpretador, que confere a sua Camada de Modelagem a habilidade de importar esses dados e exibir os ind´ıcios em suas visualizac¸˜oes.

Para que o ComSCId exporte os ind´ıcios encontrados fez-se necess´aria a codificac¸˜ao de uma transformac¸˜ao de modelos, onde as classes do ComSCId que repre-sentam os ind´ıcios de ITs encontrados foram convertidas para as classes do metamodelo. Como existe uma classe equivalente no ComSCId para cada classe do metamodelo, essa convers˜ao foi realizada por meio dos construtores de classes que estendem as classes do metamodelo. Esse construtor recebe como parˆametro a classe equivalente do ComSCId e ´e respons´avel por realizar as alterac¸˜oes necess´arias. Um construtor desse tipo ´e apresen-tado na Figura 3.

Figure 3. Construtor da classe Project implementada no ComSCId

Na Figura 3 pode-se visualizar uma classe implementada no ComSCId, respons´avel por realizar a convers˜ao entre um projeto representado pelas regras do ComSCId com a utilizac¸˜ao do Metamodelo. Essa classe estende a classe Project pre-sente no plug-in do metamodelo e recebe como parˆametro de seu construtor um objeto de uma classe equivalente do ComSCId. Se o valor a ser convertido ´e um objeto da lin-guagem e n˜ao um elemento do metamodelo, a convers˜ao ocorre de modo que esse valor seja atribu´ıdo diretamente ao atributo da classe do metamodelo, por meio do construtor da classe pai. Caso seja necess´ario converter um objeto do ComSCId para um equivalente do metamodelo, deve-se realizar a criac¸˜ao de um novo objeto, para que um outro construtor seja chamado e o mesmo realize a convers˜ao.

Os erros que podem acontecer nesse tipo de integrac¸˜ao s˜ao, em sua maioria, erros de compilac¸˜ao ou erros de falta de atenc¸˜ao. Para erros de compilac¸˜ao, o pr´oprio ambiente Eclipse detect´a-os e avisa ao programador sobre eles. Esse tipo de migrac¸˜ao n˜ao apresenta erros no formato do arquivo gerado, pois o conte´udo do mesmo ´e formado pelas classes do metamodelo transcritas em formato XML.

Na Figura 4 ´e apresentado um trecho de c´odigo para a implementac¸˜ao de um arquivo CM, atual forma de integrac¸˜ao com a SourceMiner. Para realizar essa integrac¸˜ao, deve-se percorrer todos os objetos do ComSCId identificando os ind´ıcios de ITs e gerando uma String, que cont´em de forma textual os ind´ıcios encontrados. Essa forma textual deve seguir as regras de criac¸˜ao do arquivo CM, que deve conter o cabec¸alho de um arquivo XML, a tag raiz que ´e representada por <model></model>, os ind´ıcios de ITs encontrados que s˜ao representados por <element /> e devem estar agrupados de acordo com seu IT, representado por <concern></concern>. Essas duas ´ultimas

(7)

tagsainda apresentam diversas regras para a criac¸˜ao dos valores de seus atributos, que n˜ao fazem parte do escopo deste trabalho.

Figure 4. Trecho do c ´odigo de implementac¸ ˜ao de um arquivo CM

6. Conclus˜oes e Trabalhos Futuros

Neste trabalho foi apresentado um metamodelo para facilitar a integrac¸˜ao entre ferra-mentas de minerac¸˜ao e visualizac¸˜ao de software. Esse metamodelo ´e disponibilizado por meio de um plug-in do Eclipse, juntamente com func¸˜ao para leitura e escrita de arquivos de acordo com esse modelo. Foi apresentado tamb´em um exemplo de sua utilizac¸˜ao, ou seja, uma parte da codificac¸˜ao necess´aria para a integrac¸˜ao entre a ferramenta ComSCId e a SourceMiner. Por fim, a forma de integrac¸˜ao utilizando o metamodelo proposto foi comparada com a forma atual de integrac¸˜ao da ferramenta SourceMiner, mostrando sua maior usabilidade e menor suscetibilidade a erros.

O metamodelo proposto como forma de integrac¸˜ao entre ferramentas de minerac¸˜ao e visualizac¸˜ao de software apresenta como pontos positivos: i) a maioria dos erros que podem acontecer ser˜ao de falta de atenc¸˜ao ou compilac¸˜ao, facilitando o desen-volvimento; ii) a n˜ao ocorrˆencia de erros no conte´udo do arquivo final gerado e; iii) a utilizac¸˜ao de alguma ferramenta familiar ao engenheiro de software, ou de identificac¸˜ao de ITs ou de visualizac¸˜ao, que devem ser adaptadas ao metamodelo.

A limitac¸˜ao da integrac¸˜ao ´e que, at´e o momento, foi implementada somente para o ComSCId e a Sourceminer. Dessa forma, como trabalho futuro, pretende-se encontrar ferramentas de minerac¸˜ao que possam ser integradas `a SourceMiner respeitando-se as definic¸˜oes do metamodelo, possibilitando um ambiente onde os ind´ıcios de ITs de v´arias ferramentas de minerac¸˜ao possam ser exibidos conjuntamente, facilitando o processo de identificac¸˜ao dos ITs de um sistema. Pretende-se tamb´em encontrar outras ferramen-tas de visualizac¸˜ao que possam ser integradas as ferramenferramen-tas de minerac¸˜ao utilizadas na integrac¸˜ao anterior com a SourceMiner, possibilitando que os ind´ıcios sejam visualizados em diferentes ferramentas e m´etodos de visualizac¸˜ao.

References

Bentrad, S. and Meslati, D. (2011). 2d and 3d visualization of aspectj programs. In Programming and Systems (ISPS), 2011 10th International Symposium on, pages 183– 190.

(8)

Carneiro, G. d. F. (2011). SourceMiner: um Ambiente Integrado para Visualizac¸˜ao Multi-Perspectiva de Software. PhD thesis, Universidade Federal da Bahia e Universidade Estadual de Feira de Santana.

Carneiro, G. d. F., Silva, M., Mara, L., Figueiredo, E., Sant’Anna, C., Garcia, A., and Mendonca, M. (2010). Identifying code smells with multiple concern views. In Pro-ceedings of the 2010 Brazilian Symposium on Software Engineering, SBES ’10, pages 128–137, Washington, DC, USA. IEEE Computer Society.

Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., marc Loingtier, J., and Irwin, J. (1997). Aspect-oriented programming. In ECOOP. SpringerVerlag.

Marin, M., van Deursen, A., and Moonen, L. (2004). Identifying aspects using fan-in analysis. In Reverse Engineering, 2004. Proceedings. 11th Working Conference on, pages 132–141.

Nguyen, T. T., Nguyen, H. V., Nguyen, H. A., and Nguyen, T. N. (2011). Aspect recom-mendation for evolving software. In Proceedings of the 33rd International Conference on Software Engineering, ICSE ’11, pages 361–370, New York, NY, USA. ACM. Parreira J´unior, P. A., Penteado, R. A. D., Camargo, V. V., and Costa, H. A. X. (2011).

Comscid: Identificac¸˜ao autom´atica de interesses em sistemas orientados a objetos. Wokshop de Manutenc¸˜ao de Software Moderna - WMSWM.

Robillard, M. and Murphy, G. (2003). Feat a tool for locating, describing, and analyzing concerns in source code. In Software Engineering, 2003. Proceedings. 25th Interna-tional Conference on, pages 822–823.

Robillard, M. P. (maio de 2013). The concernmapper eclipse plug-in. http://www.cs.mcgill.ca/ martin/cm/.

Robillard, M. P. and Murphy, G. C. (2007). Representing concerns in source code. ACM Trans. Softw. Eng. Methodol., 16(1).

Robillard, M. P. and Weigand-Warr, F. (2005). Concernmapper: simple view-based sepa-ration of scattered concerns. In Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange, eclipse ’05, pages 65–69, New York, NY, USA. ACM.

Shneiderman, B. and Plaisant, C. (2009). Designing the User Interface: Strategies for Effective Human-Computer Interaction (5th Edition). Addison Wesley.

Silva, A. N.; Carneiro, G. F. (2012). Propondo uma arquitetura para ambientes interativos baseados em multiplas vis˜oes. II Workshop Brasileiro de Visualizac¸˜ao de Software (WBVS), 2012, Natal - RN. Congresso Brasileiro de Software (CBSOFT).

Spence, R. (2007). Information Visualization: Design for Interaction (2nd Edition). Pren-tice Hall.

Wang Baldonado, M. Q., Woodruff, A., and Kuchinsky, A. (2000). Guidelines for using multiple views in information visualization. In Proceedings of the working conference on Advanced visual interfaces, AVI ’00, pages 110–119, New York, NY, USA. ACM.

Referências

Documentos relacionados

grandiflora por estaquia, foram avaliados dois ambientes (viveiro e ambiente / condições de ocorrência natural), assim como o efeito do hormônio de enraizamento, o ácido

Capítulo 7 – Novas contribuições para o conhecimento da composição química e atividade biológica de infusões, extratos e quassinóides obtidos de Picrolemma sprucei

Silva e Márquez Romero, no prelo), seleccionei apenas os contextos com datas provenientes de amostras recolhidas no interior de fossos (dado que frequentemente não há garantia

Esta realidade exige uma abordagem baseada mais numa engenharia de segu- rança do que na regulamentação prescritiva existente para estes CUA [7], pelo que as medidas de segurança

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

• Os municípios provavelmente não utilizam a análise dos dados para orientar o planejamento de suas ações;. • Há grande potencialidade na análise dos micro dados do Sisvan

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se