Um Ambiente de Realidade Virtual para Apoiar a Compreensão de Aspectos Dinâmicos do Software Filipe A. Fernandes, Claudia S. C. Rodrigues e Cláudia M. L. Werner COPPE/UFRJ - Universidade Federal do Rio de Janeiro (UFRJ) Caixa Postal 68.511 – CEP 21.945-970 – Rio de Janeiro – RJ – Brasil {ffernandes,susie,werner}@cos.ufrj.br Abstract. This paper presents a Virtual Reality environment based on Cognitive Load Theory to support the modeling of software behavior dynamic teaching and learning. By combining the characteristics of immersion, navigation and interaction with animation techniques in 3D virtual environments, we believe that there will be an engagement and motivation of students, resulting in a rapid internalization of the involved concepts in systems modeling. Resumo. Este artigo apresenta um ambiente de Realidade Virtual baseado na Teoria da Carga Cognitiva para o apoio ao ensino-aprendizagem de modelagem do comportamento dinâmico de sistemas complexos. Aliando as características de imersão, navegação e interação com técnicas de animação em ambientes virtuais 3D, acredita-se que existirá um engajamento e uma motivação dos alunos, resultando em uma rápida internalização dos conceitos envolvidos na modelagem de sistemas. 1. Introdução Sistemas complexos possuem um grande número de relacionamentos distintos entre seus componentes e o ambiente [Sommerville et al. 2012]. Por conta disso, parte da documentação destes sistemas possui muitas informações relevantes, tornando difícil o seu entendimento. Notações, tais como UML, são utilizadas para descreverem aspectos estáticos e dinâmicos do software, com o intuito de facilitar a comunicação e entendimento entre os envolvidos no desenvolvimento. De modo geral, na academia são utilizados diagramas UML para ensinar conceitos de modelagem de sistemas complexos. Contudo, alunos podem sofrer uma sobrecarga cognitiva durante o processo de aprendizagem, pois a representação de aspectos dinâmicos do software são apresentados de forma estática. Este artigo tem como objetivo apresentar um objeto de aprendizagem (OA) para apoiar o ensino-aprendizagem de aspectos comportamentais do software, denominado Visão de Comportamento (VC). Baseada na Teoria da Carga Cognitiva (TCC), são aplicadas técnicas de animação nos modelos comportamentais para reduzir a carga cognitiva e, consequentemente, melhorar a aprendizagem. O artigo está organizado como segue: a definição e as características da TCC, bem como a importância de animações, são apresentadas na Seção 2. A VC é contextualizada e apresentada na Seção 3. Na Seção 4, estão as conclusões e direções futuras. 2. Teoria da Carga Cognitiva Esta teoria, segundo Sweller et al. (2011), tem por definição ser um conjunto universal de princípios para proporcionar um ambiente de aprendizagem eficiente e promover um aumento na capacidade do processo de cognição humana. Desenvolver ferramentas de ensino multimídia, baseados nesta teoria, potencializa a aprendizagem e desenvolve habilidades pela criação e uso de recursos em ambientes de aprendizagem. Na elaboração de conteúdos multimídia para materiais de ensino, deve-se levar em consideração a carga cognitiva global, que é subdivida em três cargas: a carga cognitiva intrínseca, que é imposta pela complexidade do conteúdo do material de ensino; a carga cognitiva irrelevante, que desperdiça recursos mentais que poderiam ser usados para auxiliar na aprendizagem e, por último, a carga cognitiva relevante, caracterizada pelo trabalho imposto pelas atividades de ensino que beneficiam o objetivo da aprendizagem. Portanto, é necessário balancear estas cargas para que se atinja um bom nível de eficiência no processo de aprendizagem. Dois princípios da TCC são estabelecidos para reduzir a carga cognitiva irrelevante e a intrínseca do processo de ensino e aprendizagem. Seguindo o princípio da correspondência e da percepção, há evidências de que animações, sob certas condições, apoiam no processo de ensino-aprendizagem, pois não sobrecarregam a cognição humana. 2.1 Animações Animação ou representação visual dinâmica, por sua natureza, consiste em uma série de informações visuais apresentadas sequencialmente. Mayer e Chandler (2001) investigaram o uso deste recurso como forma de melhorar a compreensão e sugerem três estratégias que devem ser consideradas para otimizar a aprendizagem: Controle: para evitar que a animação se torne um tipo de informação estranha e não prejudique a aprendizagem, uma simples solução é inserir controles para manipular a animação, como por exemplo, iniciar, parar e diminuir a velocidade. Segmentação: nos casos em que conteúdos são longos por natureza, segmentar uma animação em pequenas seções definidas é um método que reduz a carga cognitiva. Conhecimento prévio: além de apoiar a aprendizagem de um novo conhecimento, animações ajudam na fixação do conteúdo para alunos que já possuem algum conhecimento prévio sobre o assunto. Desta maneira, as três estratégias funcionam como um framework que se aplica em situações específicas para potencializar a compreensão, necessitando a análise de qual combinação destas estratégias são mais apropriadas para um tipo de público e conteúdo. Por exemplo, uma animação sem a opção de controle, não afeta negativamente a aprendizagem do aluno que já tenha algum conhecimento. Uma animação pode ser usada somente com o intuito de fixar o conteúdo já transmitido por outro método. Àqueles que não possuem conhecimento, as opções de controlar e interagir por meio de seções apoia o entendimento do assunto apresentado não sobrecarregando sua cognição. Na próxima seção, a VC com diagramas animados em Realidade Virtual (RV) será apresentada, bem como sua contextualização no ambiente de ensino-aprendizagem de modelagem de sistemas complexos. 3. A Visão de Comportamento VisAr3D (Visualização da Arquitetura de Software em 3D) é um ambiente de ensinoaprendizagem que possibilita a navegação e interação de modelos UML, fornecendo recursos intuitivos, a fim de proporcionar melhor exploração dos modelos e entendimento de sistemas complexos [Rodrigues 2012]. Utiliza-se da RV devido às características de imersão, interação e navegação, pois aumentam a sensação de realismo e, por isso, pode trazer motivação ou um ganho didático aos estudantes. O ambiente apresenta um conjunto de visões que permitem diferentes formas de visualização, como por exemplo, visão de métricas, da documentação, autores de modelos, dentre outros. A Visão de Comportamento é uma das visões da VisAr3D. A VC tem como objetivo utilizar animações em diagramas comportamentais, possibilitando ao aluno buscar novas informações, enfatizar o raciocínio e a reflexão, fornecendo visualizações com mais semântica, como nos casos dos diagramas de sequência e de atividades da UML, por exemplo. Para a renderização dos modelos no ambiente 3D, são reutilizados os diagramas bidimensionais geralmente utilizados pelos professores. A VC lê estes diagramas por meio de um arquivo no formato XMI (padrão para descrever diagramas UML em XML), que são automaticamente renderizados e inseridos no ambiente virtual. Isto facilita a manipulação dos modelos utilizados em aula e evita a necessidade de remodelagem dos diagramas no ambiente 3D. Ensinar conceitos de modelagem de sistemas complexos pode ser apoiada com o uso da VC. Por exemplo, software multithreaded são caracterizados por diversas threads, as quais são executadas ao mesmo tempo. Neste paradigma, alguns problemas são conhecidos, como os deadlocks. Utilizando a VC, os alunos podem visualizar, por animação, uma simulação do que acontece quando o software é executado e aprender os conceitos envolvidos e entender como evitar deadlocks, bem como outras questões pertinentes. No caso de diagramas de sequência, conforme são realizadas as chamadas dos métodos, as lifelines são instanciadas e os métodos, representados pelas setas, são criados com o efeito visual de que estão se movendo de sua lifeline de origem para seu destino. Outro exemplo, são sistemas cuja restrição de tempo deve ser respeitada a todo custo, como nos casos de sistemas embarcados de tempo-real críticos. O professor pode construir cenários onde o fluxo de animação pode ser controlada por um temporizador nas entidades representadas nos modelos. Desta forma, a simulação do tempo em que um método demora para enviar uma mensagem para outra entidade será visualizada pelo aluno. 3.1. O protótipo Um protótipo da VC foi desenvolvido utilizando a IDE Eclipse com a linguagem Java 3D1. Os diagramas de sequência, por meio de um arquivo XMI, são inseridos no ambiente virtual, como mostra a Figura 1(a), e a animação do fluxo de mensagens é percebida por meio de um retângulo vermelho que envolve as setas dos métodos - Figura 1(b). Com o intuito de utilizar dispositivos para interagir com o ambiente virtual e transmitir a sensação de imersão, tais como Oculus Rift2 e Kinect3, decidiu-se desenvolver a VC com o game engine Unity 3D. 1 http://www.oracle.com/technetwork/articles/javase/index-jsp-138252.html https://www.oculus.com/en-us/ 3 https://www.microsoft.com/en-us/kinectforwindows/ 2 Esta engine, além de ser amplamente conhecida e ter suporte da comunidade de jogos e de RV, possui recursos de integração com os dispositivos mencionados anteriormente. Figura 1. Protótipo desenvolvido em Java 3D 4. Conclusões e Direções Futuras Este artigo apresentou uma pesquisa em desenvolvimento que propõe facilitar o processo de ensino-aprendizagem na modelagem de sistemas, do ponto de vista comportamental, alinhada com o processo de cognição humana. Fundamentada na Teoria da Carga Cognitiva, técnicas de animação são aplicadas aos modelos a fim de proporcionar melhor entendimento de eventos dinâmicos. Os próximos passos são finalizar o desenvolvimento do protótipo e avaliar a abordagem proposta, a fim de obter evidências da viabilidade de utilização de animações em um ambiente virtual 3D e utilizar dispositivos imersivos, tais como CAVE, Display Wall, Oculus Rift e Kinect, os quais são poucos explorados no apoio ao ensino e aprendizagem em Ciência da Computação de modo geral e em especial em Engenharia de Software. Referências Mayer, R.E e Chandler, P. (2001) "When learning is just a click away: Does simple user interaction foster deeper understanding of multimedia messages?" Journal of educational psychology, 93(2), 390. Rodrigues, C.S.C. (2012) "VISAR3D-Uma Abordagem Baseada em Tecnologias Emergentes 3D para o Apoio à Compreensão de Modelos UML". Tese de Doutorado, COPPE/UFRJ. Sommerville, I., Cliff, D., Calinescu, R., Keen, J., Kelly, T., Kwiatkowska, M., & Paige, R. (2012) "Large-scale complex IT systems". Communications of the ACM, 55(7), 7177. Sweller, J., Ayres, P.L., Kalyuga, S. (2011) "Cognitive load theory". Springer, New York.