You are on page 1of 15

Revista Brasileira de Informtica na Educao, Volume 20, Nmero 2, 2012

Facilitando o aprendizado de programao sob a tica de metodologias geis


Title: Facilitating the programming from the perspective of agile methodologies Vilson C. Grtner Mestrado em Computao Aplicada UNISINOS vilson@gartner.net.br Sergio Crespo C S Pinto Mestrado em Computao Aplicada UNISINOS crespo.sergio@gmail.com Arthur Torgo Gmez Mestrado em Computao Aplicada UNISINOS atgomezbr@gmail.com

Resumo

Dentro das metodologias geis a ideia de programao em pares obedece de forma implcita esta teoria. A ideia deste trabalho proporcionar que um conjunto maior de pessoas possam compartilhar o desenvolvimento de um cdigo fonte de forma colaborativa e que fique registrado no ambiente o histrico das alteraes e todo o processo intelectual que leva a mudanas em determinadas partes de um cdigo fonte. Isto permite que uma relao N-N possa ser estabelecida em um ambiente de desenvolvimento de software distribudo, potencializando a teoria do par mais capaz. O artigo apresenta uma ferramenta desenvolvida como um plug-in do NetBeans que incorpora vrias funcionalidades de ambientes colaborativos para suporte a programao distribuda em tempo real. Palavras-Chave: Programao em pares, Programao, Programao Distribuda

Abstract The agile idea of pair programming implicitly obeys this theory. The idea of this paper is to
provide that a larger set of people can share the development of a source code in a collaborative manner and that the history and the whole intellectual process that leads to changes in certain parts of a source code will be record in the environment. This allows a N-N relationship can be established in a development environment for distributed software, leveraging the theory of the more capable peer. The article presents a tool developed as a NetBeans plug-in, functionality that incorporates several of collaborative environments to support distributed programming in real time. Keywords: Pair Programming, Programming, Distributed Programming

Recebido: 10 de Junho de 2012 / Aceito: 15 Julho de 2012 / Publicado: 20 de Agosto de 2012 DOI: 10.5753/RBIE.2012.20.02.54

54

Grtner et al.

Facilitando o aprendizado de programao sob a tica de metodologias geis

1 Introduo
O aumento dos ambientes colaborativos em empresas produtoras de software desencadeia um novo perfil do aluno que entra nos cursos de computao: o perfil de trabalhar em grupo. Para isto, necessrio aliar o uso de ferramentas colaborativas e teorias pedaggicas que reforcem a colaborao entre pares e acentuem a colaborao em atividade de desenvolvimento de software. Por outro lado, desenvolver software uma atividade altamente intelectual e que exige troca de conhecimento constante entre as pessoas envolvidas. Tal necessidade por interao evidenciada por algumas prticas de desenvolvimento, como a programao em pares. necessrio, ainda, que os pares sejam permutados a cada nova atividade, de forma a disseminar o conhecimento adquirido entre os aprendizes. Para [24], o olho humano tem uma grande capacidade de no enxergar aquilo que no quer ver. Da mesma forma, um aluno iniciante pode ignorar completamente um erro gritante que seria rapidamente percebido por um observador mais experiente. Pesquisas realizadas pelos autores revelam que dois programadores juntos chegam a uma soluo mais rpida e com maior qualidade do que dois programadores trabalhando separadamente na resoluo de problemas. [13] identifica que as iniciativas para viabilizar programao por pares distribudos utilizam aplicaes no orientadas para este fim. So utilizados: compartilhamento de desktop, e-mail, troca instantnea de mensagens, voz sobre IP, repositrios de arquivos compartilhados e videoconferncia. Tais aplicaes possuem objetivos especficos e no so orientadas programao. Neste contexto, torna-se importante a existncia de um ambiente integrado que viabilize diferentes formas de comunicao orientadas ao ensino de programao, por pares, de forma distribuda e colaborativa[13]. Neste sentido, este trabalho apresenta a ferramenta IdDE. Esta consiste em um ambiente colaborativo para auxlio programao distribuda em pares. A sua principal contribuio est na possibilidade de utilizao de ferramentas interativas que tornam mais eficiente o processo de colaborao. Alm disso, do ponto de vista pedaggico, trabalhar em pares, valendo-se de um instrumento mediador, segundo o princpio sociocultural da teoria Vygotskyana, influi nas interaes, pois, em geral, o indivduo costuma explicitar suas estratgias durante a resoluo de tarefas compartilhadas

2. Groupware e sua fundamentao pedaggica


Segundo [10], CSCW ou Groupware definido como o estudo dos sistemas que integram o processamento de informaes com atividades de comunicao, de forma a identificar como os grupos trabalham e como a tecnologia pode ajud-los a resolver tarefas em comum, reforando a importncia da comunicao, colaborao e coordenao [10]. Conforme [12], a comunicao oportuniza a negociao e o estabelecimento de compromissos entre os participantes do grupo. Para utilizar o computador como ferramenta de comunicao, necessrio que o sistema oferea suporte interao entre as pessoas. Deve haver controle entre os estados, eventos e dilogos de cada participante. De acordo com o modelo, o emissor define a sua inteno (no nvel mais abstrato de ideias) e a frmula atravs de smbolos. Utiliza o computador para express-la numa mensagem e transmiti-la via canal de dados. Chegando ao destino, a mensagem percebida e interpretada, de forma a modificar seus argumentos. As ferramentas de comunicao podem ser classificadas em dois tipos, podendo ser analisadas quanto ao tipo de resposta e quanto ao nvel de aplicao [12]. Quanto ao tempo de resposta: podem ser sncronas e assncronas. Quanto ao nvel de aplicao: o Sistemas de mensagens suportam a troca de mensagens de texto entre usurios; o Editores multiusurios onde cdigos podem ser alterados por vrios usurios; o Deciso em grupo oferecem mecanismos para tomada de deciso em grupo; o Conferncias So em geral mdulos com apoio de udio e vdeo; o Agentes Inteligentes Sistemas de software autnomos; o Sistemas de coordenao permitem o controle e gerncia das atividades do grupo. Os autores estabelecem, ainda, um conjunto de funcionalidades importantes a sistemas de colaborao em tempo real (sncronas), conforme apresenta a Tabela I:
Funcionalidade Aes Definio O conjunto de objetos e aes, realizadas e percebidas por to-

55

Grtner et al.

RBIE V.20 N.1 2012

Funcionalidade dos. Janelas

Definio reas que esto compartilhadas e sincronizadas por todos os participantes on-line. Movimento do cursor percebido e disponibilizado a todos. Uma representao visual ou multimdia de parte do contedo compartilhado. Aes percebidas de forma sncrona e assncrona. Perodo de interao sncrona. Conjunto de privilgios, atribuies ou responsabilidades de participante do grupo.

Cursos Viso

Interao Seo Papis

indivduo. De acordo com Piaget o conhecimento no est no sujeito nem no objeto, mas ele se constri na interao do sujeito com o objeto. na medida em que o sujeito interage (e, portanto age sobre e sofre ao do objeto) que ele vai produzindo sua capacidade de conhecer e vai produzindo tambm o prprio conhecimento [11]. J Vygotsky aborda este processo do ponto de vista de interatividade entre o indivduo e o meio social. O princpio sociocultural da teoria Vygotskyana nos traz um forte embasamento pedaggico para o trabalho em equipe, onde a importncia da comunicao, colaborao e coordenao a fim de viabilizar o trabalho em grupo e obter melhores resultados, quando comparados ao trabalho realizado individualmente, o elemento de sucesso. Para Vygotsky, os processos mentais s podem ser entendidos se forem entendidos os instrumentos e os signos que mediam esses processos. Alm disso, o desenvolvimento cognitivo do ser humano no pode ser entendido fora do contexto social e cultural em que este se produz. E para entender o desenvolvimento cognitivo do ser humano, bem como os instrumentos e signos que mediam esses processos, Vygotsky se apoia no mtodo gentico experimental. Compreende-se ento que, para Vygotsky, o modelo histrico-social esboado nas estruturas de mediao instrumental e social, que por sua vez internalizam, no ser humano, estruturas que possibilitam a interpretao do movimento, quer pela passagem de aes realizadas no plano social, portanto interpsicolgicas, quer pela passagem de aes internalizadas (intra-psicolgicas). No caso de ferramentas de Groupware essas aes interpsicolgicas e intra-psicolgicas possuem uma dimenso no linear o que possibilita ao indivduo uma postura exploratria maior. Desse modo as interaes entre o grupo potencializam construes de conhecimento mais autnomos e criativos [18]. Trabalhar em pares, valendo-se de um instrumento mediador, influi nas interaes, pois, em geral, o indivduo costuma explicitar suas estratgias durante a resoluo de tarefas compartilhadas.

Tabela 1: Funcionalidades de Sistemas de Colaborao Sncronas

2.1 Desenvolvimento de Software Distribudo


A tendncia pelo desenvolvimento de software atravs de grupos geograficamente distribudos justificada, segundo [15], pela reduo de custos e busca por mo de obra qualificada. Os autores citam fatores como necessidades competitivas e a globalizao das operaes corporativas como atenuantes dessas tendncias. Evidncias indicam que o desenvolvimento distribudo costuma consumir tempo maior, quando comparado ao realizado por equipes geograficamente centralizadas, identificando a comunicao e coordenao como principais causas para esse aumento de tempo [15].

2.2 Programao em Pares Distribuda


Vrios estudos tm sido realizados com o objetivo de avaliar as diferenas apresentadas, quanto produtividade e qualidade, entre a programao em pares distribuda e a realizada lado a lado. Em [22] so citados como vantagens: Reduo da necessidade de viagens; Os pares so forados a manter registros eletrnicos de seus trabalhos e ideias; Os membros tendem a diminuir as conversas offtopic. Schummer percebeu que os programadores devem estar aptos a se comunicar, ambos devem acompanhar o mesmo trecho de cdigo, mas apenas um deve alter-lo. A comunicao pode ocorrer por voz. Para os autores e coautores, o contato visual no necessrio [20][25].

3. Trabalhos Relacionados
Nesta seo sero apresentados alguns trabalhos pertinentes ao estudo.

3.1 VIMEE
um ambiente para auxiliar a comunicao e a tomada de deciso em equipe. Possibilita uma comunicao sncrona, explcita e formal em ambientes DSDE (Distributed Software Development Environment) [23]. A comunicao entre os participantes ocorre de maneira clara e explcita, e baseada em procedimentos formais que guiam o andamento das atividades, indicando quem est habilitado a executar algo. Algumas de suas caractersticas so:

2.3 Teorias pedaggicas que fundamentam o modelo Groupware


A interatividade est presente como elemento fundamental no processo de construo do conhecimento do

56

Grtner et al.

Facilitando o aprendizado de programao sob a tica de metodologias geis

Agendamento de reunies, com aviso aos participantes; Permite a troca sncrona de mensagens de texto; No possui limites quanto ao nmero de participantes; Permite a visualizao de artefatos do projeto; Permite o compartilhamento de documentos e imagens; Possibilita o armazenamento de documentos gerados numa reunio; Possibilita a realizao de votaes, para tomada de deciso. Para organizar o fluxo dos procedimentos, o VIMEE permite a coordenao das reunies atravs do papel de um mediador. A interface do mediador difere da interface dos demais usurios, e tem por objetivo possibilitar: o incio e trmino de uma reunio, bloquear ou liberar algum participante, controlar as votaes e enviar mensagens. Nessa interface, tambm controlado qual usurio, previamente inscrito, pode se manifestar. Aliado a isso, possibilita a liberao do acesso aos artefatos do projeto, alm de poder tornar visvel a existncia de documentos e imagens para os demais participantes.

nos computador; Voz: possibilita que os programadores se comuniquem por udio, utilizando o microfone acoplado ao computador; Ferramenta externa: permite que um programa externo seja executado, a exemplo de um compilador. As mensagens de sada, oriundas da execuo do programa externo, sero exibidas para ambos os programadores.

3.3 CollabEd
Trata-se de um editor desenvolvido sobre uma plataforma de colaborao, segundo [17]. O design da plataforma compreende trs categorias essenciais: conexo, manuteno e replay das interaes. A arquitetura do aplicativo baseada no modelo cliente/servidor. Tanto o servidor quanto o cliente so desenvolvidos na linguagem Java e, assim, so multiplataformas. Alm de ser executado como uma aplicao independente, o CollabEd pode ser acoplado a editores de texto j existentes, atravs plugins. J existem plugins disponibilizados para os editores Netbeans, Eclipse e JEdit. Neste aplicativo, o servidor o encarregado de manter o histrico das alteraes efetuadas nos clientes. Graas a este histrico, mesmo que os clientes mantenham as alteraes em um buffer, as mesmas sero aplicadas corretamente pelo servidor, que se encarregar de atualizar a posio onde as alteraes devem acontecer no documento remoto.

3.2 RemotePP
O RemotePP um ambiente cooperativo de desenvolvimento com o objetivo de dar suporte programao em pares distribudos [2]. Como o seu objetivo voltado para a programao em pares, a sesso somente pode ser estabelecida entre dois programadores, um local e outro remoto, desde que esteja dentro da mesma rede. O ambiente possui uma srie de ferramentas, a seguir descritas: Edio de cdigo-fonte: este mdulo permite a edio de programas de forma colaborativa, porm, no simultneo, ou seja, somente um programador pode alterar o cdigo por vez. Caso a sesso no tenha sido estabelecida com o outro usurio, a edio acontece somente de forma local; Quadro branco: funcionalmente similar ao mdulo de edio de cdigo-fonte, este mdulo permite que ambos os programadores, colaborativamente, editem desenhos e diagramas. Neste caso, a edio pode ser feita simultaneamente por ambos programadores; Chat: permite a troca de mensagens instantneas entre os dois usurios; Vdeo: este mdulo permite que os programadores realizem videoconferncia. Para isso, necessrio que exista uma webcam instalada e configurada 57

3.4 Sangam
O Sangam foi desenvolvido por [16] na forma de um plug-in para o ambiente de desenvolvimento Eclipse. A ferramenta oferece sincronizao de cdigo-fonte entre mais de dois programadores. O Sangam no bloqueia o texto durante uma sesso. A arquitetura do aplicativo utiliza trs componentes principais: Interceptador de eventos Monitora o ambiente a fim de capturar todas as aes que o usurio (driver) realiza no editor de cdigo Java da aplicao; Servidor de mensagens responsvel pelo envio das mensagens ao navigator; Reprodutor de eventos Realiza as aes recebidas pelo servidor de mensagem de modo a reproduzi-las no computador do navigator.

3.5 Flecse
O Flecse atua como um conjunto de ferramentas colaborativas e aplicveis a todo o ciclo de vida de desenvolvimento de software [8]. A interface de todas as aplicaes baseada em linha de comando e console texto, com as seguintes caractersticas:

Grtner et al.

RBIE V.20 N.1 2012

O controle de verso: permite controlar a verso do programa; MShell: um interpretador de comandos colaborativo; Teleconf: permite gravao, transmisso e execuo de uma conversao por udio; MDebug: possibilita a depurao de programas de forma compartilhada; CSI: um mecanismo de inspeo de cdigo assncrono e sncrono;

descritas as tecnologias. Linguagem de Programao Java: A escolha da linguagem de programao Java tem como objetivo possibilitar que o ambiente seja executado nas mais variadas plataformas operacionais, alm de ser multiplataforma, uma linguagem largamente utilizada e difundida; Ambiente Netbeans: Este ambiente oferece todas as funcionalidades necessrias para a edio de cdigo fonte, alm de disponibilizar inmeras outras ferramentas, a exemplo de: formatao de cdigo, dicas e sugestes de cdigos automticos, compilao, depurao, criador visual de formulrios, suporte internacionalizao e suporte a diversas linguagens de programao; Protocolo XMPP: Este protocolo foi escolhido por ser um protocolo aberto e largamente utilizado para a comunicao. A tecnologia XMPP utiliza uma arquitetura cliente/servidor descentralizada, similar s arquiteturas utilizadas nas redes WWW e de e-mail [19]. Exemplos bastante conhecidos de seu uso so o Google Talk e Facebook; Protocolo SIP: O protocolo SIP utilizado em comunicaes do tipo VoIP. Segundo [9], SIP um protocolo que controla a negociao, modificao e encerramento de uma sesso multimdia interativa. As sesses multimdia podem ser de udio, vdeo, chat ou mesmo sesses de jogos [21].

4. Um Ambiente de Suporte ao Desenvolvimento Colaborativo de Software


Esta seo apresenta o IdDE, um ambiente que oferece apoio ao processo colaborativo de programao de N:N usurios, mostrando de forma detalhada, o ambiente, suas ferramentas, sua arquitetura e tecnologias utilizadas. O IdDE esta em http://idde.vgdata.net/ para ftp.

4.1 Introduo
A colaborao possui um papel fundamental no desenvolvimento de software e uma organizao ter mais benefcios das tecnologias colaborativas se utilizar um conjunto delas: mensagem instantnea, videoconferncia, servios de udio de qualidade, repositrios integrados e ambientes de compartilhados [6]. Sob a perspectiva de um programador, um Ambiente Integrado de Desenvolvimento (IDE) possibilita a escrita de cdigo e fornece uma srie de funcionalidades importantes para o processo de aprendizagem de programao com enfoque colaborativo. O IdDE permite que a comunicao via udio ocorra entre usurios do ambiente e dispositivos de telefonia convencional, telefonia mvel, telefones IP, ATAs e smartphones. J a edio compartilhada poder ocorrer entre aplicativos que implementam o protocolo de comunicao e negociao do IdDE. O chat, por sua vez, poder ser utilizado em dispositivos que possuam softwares que utilizem o mesmo protocolo de comunicao adotado pelo ambiente.

4.2 Arquitetura do Ambiente IdDE


O Ambiente foi projetado para garantir uma arquitetura modular e foi desenvolvido utilizando a estrutura do Netbeans. Desta forma, o IdDE comporta-se como um mdulo (ou plugin) do NetBeans. A Figura 1 mostra de forma detalhada a arquitetura do ambiente. A interface e funes de interao com o usurio foram criadas independentes do IDE NetBeans, entretanto, so integradas ao mesmo atravs de sua arquitetura de plugins. Isso possibilita que o IdDE tambm possa ser integrado a outros IDEs, bastando para isso criar a camada de plugin (na figura, representado por "Interface). Essa camada a nica parte que possui alguma dependncia do Netbeans. Dessa forma, a interao do usurio com o ambiente acontece atravs das opes disponibilizadas pelo IdDE, e a interao deste com os editores ser atravs da arquitetura de plugins dos mesmos. Analisando a arquitetura do IdDE, possvel observar que as nicas funcionalidades do IdDE que esto diretamente vinculadas camada de plugins do Netbeans so a edio compartilhada e a camada de interface, que esto relacionadas s janelas Principal e Controle de Sesses de 58

4.1 Tecnologias utilizadas


As seguintes tecnologias foram utilizadas no desenvolvimento do IdDE: Java como linguagem de programao, NetBeans como IDE de desenvolvimento, protocolo XMPP1 (eXtensible Messaging and Presence Protocol) e protocolo SIP2 (Session Initiation Protocol). A seguir so
1 2

http://xmpp.org ://www.ietf.org/rfc/rfc3261.txt

Grtner et al.

Facilitando o aprendizado de programao sob a tica de metodologias geis

edio. Essas janelas so criadas quando o mdulo carregado no Netbeans, o que ocorre durante a inicializainicializ o deste aplicativo.

Figura 1: Arquitetura do ambiente

Pode-se se verificar tambm que as funes acionadas pelo usurio fazem uso do Protocolo IdDE. Isso se deve ao fato de que o ambiente envia mensagens de negocianegoci o para o ambiente remoto, solicitando ou informando a ao executada pelo usurio local e que deve ser replic replicada para o usurio remoto. emoto. Desta forma, para que um apl aplicativo possa se comunicar com o IdDE, deve implemenimpleme tar, obrigatoriamente, esse mesmo protocolo. Por fim, a figura mostra que as funcionalidades de presena e chat interagem diretamente atravs de XMPP, no havendo a troca a de mensagens ou utilizao do protocolo IdDE. Isso permite que o IdDE se comunique com qualquer aplicatiaplicat vo que suporte o protocolo XMPP. A Figura 2 representa a viso lgica da organizao do sistema e suas ferramentas. No diagrama pode-se pode observar que os s pacotes de classes foram organizados de forma a refletir a arquitetura modular apresentada na Figura 1. O nome de cada pacote faz referncia funciofunci nalidade que implementa, e o detalhamento dessas funfu cionalidades apresentado na Tabela II. Para implementar a comunicao no IdDE, foram utilizadas as bibliot bibliotecas: Smack1 para a comunicao XMPP, Peers2 para comunicao SIP, alm de partes de cdigo do projeto Shortalk3. A estruturao do cdigo, conforme discutido anteriormente, foi feita de acordo com os o mdulos do aplicativo.

Figura 2: Estrutura de pacotes de classes do IdDE Pacote editor Funcionalidade Possui as classes responsveis pela implementao da edio compartilhada e simultnea. Neste pacote esto as classes responsveis pelo geren gerenciamento de tarefas. Agrega as classes relacionadas agenda de compromissos. Classes responsveis pela transferncia de arquivos entre os usurios. Possui as classes que implementam a comunicao via udio. Este pacote agrega ag funcionalidades comuns, necessrias aos demais pacotes. Este pacote possui os subpacotes view, transport e model. Neste pacote esto localizadas as classes responsveis pela implementao da tela principal e de configurao do IdDE (MainPanel), e da tela com informaes das sesses de edio colaborativa ativas (SessionFrame). Agrega as classes de definio de mensagens do protocolo IdDE, alm de criao e interpretao das mensagens desse protocolo. Poss Possui as classes que implementam as funcionalidades relacionadas

task

agenda

fileManager

sip

common

common::view

common::transport

1 2

common::model

http://www.igniterealtime.org/projects/smack http://peers.sourceforge.net 3 http://code.google.com/p/shortalk

59

Grtner et al.

RBIE V.20 N.1 2012

Pacote

moduleIdDE

Funcionalidade ao XMPP, como conexo, envio de mensagens e presena. Neste pacote ficam localizadas as classes responsveis pela integrao do IdDE ao Netbeans e pela interao com o documento de edio de cdigo fonte. As principais classes so: Installer, responsvel pela instalao e ativao do mdulo no Netbeans; IddeTopComponent, responsvel pela apresentao da tela principal do IdDE no Netbeans; e SessionTopComponent, responsvel por apresentar apre a tela com informaes das sesses de edio compartilhada existentes.

do [5], deve-se se possibilitar a anlise e reviso sncrona online do cdigo. Aliado iado a isso, a ferramenta tambm contribuir na aprendizagem de desenvolvedores inicianinicia tes, possibilitando que estes acompanhem a programao de usurios mais experientes. A arquitetura da ferramenta de colaborao cola pode ser vista na Figura 3. O pacote moduleIdDE modu o responsvel pelo integrao o do ambiente ao Netbeans e possui as classes encarregadas gadas pelo monitoramento dos eventos no documento. A classe DocumentChangesListener monitora as alteraes (incluso e excluso de caracteres) que ocorrem no documento o e a classe DocumentCaretListener a responsvel vel por fazer o monitoramento das alteraes na posio do cursor. Tambm neste pacote esto as clascla ses: EditAnnotation, , responsvel pela criao das caractecaract rsticas cas visuais no ambiente (marcaes de alteraes alterae feitas e seus respectivos autores), e a classe CaretPosAnnotation responsvel pelas marcaes visuais relativas posio do cursor dos usurios remotos.

Tabela2: Pacotes e suas funcionalidades

Figura 3: Arquitetura da ferramenta de edio colaborativa

A ferramenta de edio colaborativa do ambiente IdI DE permite que vrios usurios acessem e modifiquem o mesmo cdigo fonte, simultaneamente. nte. A edio em tempo real tem papel fundamental no desenvolvimento distribudo, auxiliando para que se tenha um cdigo pap dronizado, otimizado e de melhor qualidade final. Segu Segun-

A classe SessionControl do pacote editor::controller responsvel por controlar as sesses de edio edi de documentos, estabelecidas entre dois (ou mais) usurios. Entre os mtodos importantes dessa classe esto: getEditSession, , responsvel por iniciar uma nova sesso de edio colaborativa; addSharedEditing, addSharedEditing responsvel por incluir 60

Grtner et al.

Facilitando o aprendizado de programao sob a tica de metodologias geis

getSharedFiles mtodo um novo usurio a uma sesso; getSharedFiles, utilizado para retornar os arquivos que esto numa sesso de edio; getSharedUsers, utilizado para retornar os usurios que participam de uma sesso; pingAlive, utilizado para verificar se os usurios continuam na sesso; exitSharedEditing, executado quando um usurio sai de uma sesso compartilhada; e addMessageToBuffer, mtodo utilizado para enviar uma mensagem do protocolo para os demais usurios da sesso. As informaes das sesses existentes so mantidas no atributo editSessions.

este documento est em uma sesso de edio colaboraticolaborat va. Caso no esteja, o processo concludo e nenhuma ao tomada. Entretanto, se ele estiver sendo compart compartilhado, o, necessrio avaliar o tipo de alterao ocorrida e compor a instruo apropriada para os demais usurios participantes. As modificaes no estado podem ser alterao de texto, como a incluso ou excluso de caracteres, ou a mudana na posio do cursor. r. Quando ocorrer uma mudana na posio do cursor, o ambiente verifica o novo posicionaposicion mento e envia uma mensagem aos ambientes remotos, para que estes atualizem essa informao. Quando ocoroco rer a alterao de texto, o IdDE verifica se houve incluso ou excluso cluso de texto. Em caso de excluso de um trecho de cdigo, o nico procedimento a ser executado a criao e o envio da respectiva mensagem para os ambiamb entes remotos informando onde ocorreu a remoo. No caso de incluso, so informados, alm da posio, posi os caracteres que devem ser adicionados. Quando recebe instrues de outros usurios, alm de efetuar a alterao no cdigo, o IdDE adiciona marcaes visuais ao ambiente, como pode ser observado na Figura 5, que permitem localizar e identificar tanto as a alteraes quanto seus autores. Essas informaes so importantes, pois auxiliam o usurio na anlise e reviso sncrona online do cdigo alterado, o que essencial, segundo [5]. Estes recursos visuais utilizam-se utilizam das APIs nativas do Netbeans. Dessa forma, em uma adaptao do plugin para outro IDE, tais funcionalidades devero ser reescritas utilizando as funcionalidades disponibilizadas por aqueaqu les ambientes. A Figura 5 mostra detalhadamente esses elementos.

4.3 O Ambiente IdDE


As interfaces desenvolvidas no IdDE foram encapsuencaps ladas no sistema de janelas do Netbeans, atravs da util utilizao de suas APIs. Na Figura 4 essas interfaces so identificadas pelas classes MainPanel e SessionFrame do pacote common::view. . Essas janelas so criadas automaautom ticamente quando o plugin do IdDE carregado, o que ocorre durante a inicializao do Netbeans. Na Figura 4 esto destacadas ambas as janelas do IdI DE: a janela principal (A) na qual feita a configurao do aplicativo cativo e mostrados os usurios conectados; e a janela de sesses (B) que exibe as sesses de edio sis multnea estabelecidas. Como est integrado ao NetbeNetb ans, o IdDE dispe de todos os mecanismos deste amb ambiente, como por exemplo, a possibilidade de minimizar minimiz ou ocultar as janelas, o que amplia o espao de edio.

Figura 4: Integrao do IdDE no Netbeans

4.3.1 Edio Colaborativa no Ambiente gr grfico


A ferramenta de edio colaborativa a que mais utiliza a troca de mensagens entre os ambientes. Aps esta estabelecer a comunicao entre os ambientes e adicionar os listeners necessrios aos documentos, todas as modificaes feitas por um usurio sero enviadas aos demais usurios partipart cipantes da sesso e sero replicadas naqueles ambientes. Quando o ambiente detecta tecta que um usurio fez uma m modificao num documento, o primeiro passo verificar se

Figura 5: Alterao de cdigo

As marcaes visuais adicionadas pelo IdDE ao Netbeans so o a marcao do texto alterado e a indicao da posio do cursor do usurio remoto. oto.

61

Grtner et al.

RBIE V.20 N.1 2012

nessas marcaes, fazendo com que o editor traga para pa a rea visvel o trecho de cdigo com a respectiva ocorr ocorrncia. Considerando que, teoricamente, possvel estabelecer um nmero ilimitado de sesses, importante proporcioproporci nar ao usurio a informao de quais arquivos esto se sendo compartilhados e quais usurios esto participando dessas sesses. Caso o usurio participe de muitas sesse ses de edio colaborativa, essas informaes passam a ser ainda mais importantes. Para auxiliar o usurio nesse aspecto, foi criada uma janela especfica para manter as informaes in das sesses de edio colaborativa existentes, exibida Figura 42. Essa janela composta por uma tabela, contendo o nome do arquivo compartilhado e os usurios participantes da sesso. Toda vez que uma nova sesso de edio colab colaborativa estabelecida, ecida, uma nova linha adicionada tabetab la. Da mesma forma, quando um novo usurio passa a fazer parte da sesso, seu nome adicionado quela i informao. A figura 7 apresenta a interface para gerencigerenc amento de informaes,

Figura 6: Marcao de cdigo e posicionamento de cursor

As marcaes visuais adicionadas pelo IdDE ao Netbeans so a marcao o do texto alterado e a indicao da posio do cursor do usurio remoto. A Figura 6 mostra detalhadamente essas marcaes. Quando o ambiente recebe uma mensagem de alterao de cdigo de um usurio remoto, essas modificaes so imediatamente aplicadas no cdigo local e marcadas atravs da utilizao de uma sublinha ondulada em verde. Alm disso, as linhas que sofreram alteraes so marc marcadas com um cone com a forma de um crculo verde (Fi(F gura 6-A). A). Quando o usurio desloca o ponteiro do mouse sobre este e cone, so exibidas informaes detalhadas como dados inseridos, coluna e autor, como mostra a imagem. Outra marcao importante adicionada ao documento a indicao da linha na qual est posicionado o cursor do usurio remoto. Essa marcao represen representada por um cone azul com uma seta (Figura 6-B). B). Como possvel que vrios usurios editem o documento ao mesmo te tempo, para saber qual a posio de um determinado usurio, basta que se desloque o ponteiro do mouse sobre o cone e o ambiente apresentar o nome do usurio, conforme pode ser observado na imagem. Quando o usurio remoto deslocar o cursor em seu ambiente, essa informao igualmente atualizada no ambiente local. Nos estudos de caso realizados, pode-se se perceber que essa caracterstica contribui i para o aumento da interatividade e experincia do usurio. Em casos nos quais o cdigo fonte muito extenso, so criadas barras de rolagem no documento, da mesma fo forma como ocorre em outros editores. Nestas situaes, pode acontecer de o usurio remoto fazer alteraes na parte do texto que no est visvel para o usurio local. Assim, para que este tenha cincia das alteraes que esto sendo feitas no cdigo, so criadas tambm as ma marcaes indicadas pela Figura 6 (C). Nestas marcaes, as cores identificam ificam o tipo de ocorrncia e, deslocando o mouse sobre as mesmas, so exibidas informaes det detalhadas, a exemplo do que ocorre quando se desloca o mouse sobre os cones. Adicionalmente, possvel clicar

Figura 7: Janela de controle de e seo e menu de contexto

Alm de exibir as informaes sobre os arquivos e usuusu rios das sesses, essa janela tambm d acesso a outras funcionalidades relacionadas sesso. Clicando com o boto direito sobre uma linha da tabela, apresentado um menu de contexto, com as funes a seguir descritas: Send chat message to all users: atravs desta opo o pode-se se enviar uma mensagem de texto para todos os usurios urios participantes da sesso; Leave this editing session: esta opo deve ser utilizada quando se deseja sair de uma sesso de edio colaborativa. Outras formas de sair de sesse ses so: finalizar a conexo com o servidor XMPP, fechar o documento ou ainda fechar o Netbeans. Em todos estes casos o ambiente envia uma mensagem alertando os ambientes remotos remoto que o usurio est deixando a sesso. Show all changes made on this file: acessando esta opo apresentada ao usurio uma janela com todas as alteraes feitas na sesso de edio

62

Grtner et al.

Facilitando o aprendizado de programao sob a tica de metodologias geis

selecionada. Os dados constantes nessa tabela so: cdigo do protocolo indicando o tipo de alterao ocorrida (incluso ou excluso), posio onde a modificao aconteceu, a informao includa, o autor e momento da alterao. Quando se trata da excluso de informaes, o campo de informao includa fica em branco. As informaes rmaes da tabela podem ser ordenadas pressiopressi nando-se se o ttulo da coluna. Dessa forma, as informaes podem ser agrupadas permitindo, por exemplo, uma an anlise para verificar as alteraes feitas por um mesmo autor, tipo de alterao ou seguindo a ordem que as alteraes ocorreram. Alm de fornecer o histrico das alteraes efetuadas, essa funcionalidade permite que se efetuem outras anl anlises posteriores como, por exemplo, avaliar a lgica de programao utilizada por um usurio na resoluo de um problema ou implementao de uma nova funcionalidade a um programa. Alm disso, com base nessas inform informaes possvel implementar uma ferramenta que permita a execuo passo-a-passo passo de todas as alteraes que ocoroco reram num arquivo, podendo-se se simular todo o proce processo desde o princpio. Send my version to remote (All): esta opo utilizada para enviar o cdigo do ambiente local para os demais participantes da sesso. Esta opo era especialmente til quando o ambiente ainda no implementava o controle da ordem das mensagens; Verify if users are still connected: atravs desta opo possvel verificar se todos os usurios pa participantes da sesso continuam conectados. Caso um usurio remoto tenha sido desconectado de forma abrupta, ele permanecer na lista de usurios da sesso e o ambiente continuar a enviar as mensagens de alteraes. Assim, esta opo auxiaux lia a eliminar usurios que no estiverem mais coc nectados.

4.3.3 Gerenciamento de Tarefas


Atravs da ferramenta de controle de tarefas do IdDE, ser possvel atribuir tarefas aos programadores, acompaacomp nhar sua execuo e progresso, permitindo que os propr gramadores adicionem observaes s mesmas. No modelo proposto pelo ambiente, as tarefas no ficam armazenadas num banco de dados centralizado, mas sim, distribudas de forma descentralizada no banco de dados de cada usurio. Dessa forma, quando um usurio quiser saber o detalhamento das tarefas de outro, basta acessar a opo apropriada no ambiente. Em trabalhos futuros, pretende pretende-se estudar a viabilidade da integrao desse mdulo a ferramentas online como, por exemplo, o Google Calendar. Essa integrao possibilitapossibilit ria que outros stakeholders que no possuam acesso ao ambiente de desenvolvimento possam acessar as inforinfo maes relativas s tarefas. As funcionalidades de gerenciamento tambm so acesace sadas atravs do menu de contexto na lista de contatos, conforme mostra a Figura 8. No menu, existem trs tr opes disponveis, descritas a seguir: Add task for this user: esta opo deve ser utilizautiliz da para adicionar uma nova tarefa para o usurio. usu View users tasks: Esta opo deve ser utilizada para ver as tarefas existentes para o usurio remorem to. Nessas solicitaes, olicitaes, o ambiente remoto responrespo de com uma mensagem de chat, listando as tarefas ta do usurio; Open task manager: Essa opo apresenta uma tet la com as tarefas do usurio local. Atravs dessa tela possvel alterar informaes.

4.3.2 Controle de verses durante a edio colaborativa no ambiente IdDE


No contexto do IdDE, as sesses de edio colabor colaborativa permitem o acompanhamento das alteraes em tempo real, enquanto que o uso da ferramenta de controle de verses mantm uma viso macro das alteraes efeef tuadas ao longo do tempo. O controle de verses est integrada diretamente amente no Netbeans e, dessa forma, todas as alteraes feitas num arquivo automaticamente ficam registradas num repositrio local, controlado pelo NetbeNetb ans. Alm disso, esse IDE tambm possui suporte e inteint grao com outros repositrios como: Subversion, MerM curial e CVS.

Figura 8: Menu de contexto texto e opes relacionadas a tarefas

5. Estudo de Casos
No total foram realizados quatro estudos de casos em grupos heterogneos, abrangendo profissionais que trabatrab lham no desenvolvimento de software, e professores e acadmicos de cursos de graduao da rea de tecnologia

63

Grtner et al.

RBIE V.20 N.1 2012

da informao. Neste trabalho so apresentados unicamente os trs experimentos executados no ambiente acadmico.

feitas comparaes com a verso existente na mquina do professor, para verificar a ocorrncia de alguma discrepncia entre as duas verses.

5.1 Cenrio 1: Estudantes Universitrios


O primeiro estudo de caso foi realizado com alunos de uma turma de graduao do Centro Universitrio UNIVATES, na cidade de Lajeado/RS. A turma era composta por alunos dos cursos de Sistemas de Informao, Engenharia da Computao e Anlise de Sistemas, todos cursando a disciplina de Programao Orientada a Objetos. Os testes foram realizados num total de duas aulas, no ms de Dezembro de 2010. Alguns alunos participantes j atuavam na rea de desenvolvimento de sistemas, enquanto que outros somente estudavam ou eram profissionais de outras reas. As ferramentas testadas foram edio colaborativa e comunicao via chat.

5.1.2 Anlise dos resultados


Na avaliao dos participantes, a ferramenta de chat se mostrou til para todos eles. Alguns consideraram importante a possibilidade de poder efetuar a traduo das mensagens. Igualmente, para todos os respondentes a ferramenta auxiliou no processo de edio compartilhada e colaborativa. Em relao comunicao via udio, apesar de no ter ocorrido nenhum teste neste cenrio, 93% dos respondentes consideram importante essa forma de comunicao quando os programadores esto separados geograficamente. Em relao ao processo de ensino/aprendizagem presencial 79% dos respondentes concordam que a ferramenta contribui nesse sentido. Entre os que concordam, as justificativas mencionam o fato de que o professor no precisa se deslocar at o computador do aluno, outras alegam que as ferramentas do ambiente fornecem maior interatividade entre os usurios e o consideram como um facilitador.

5.1.1 O processo utilizado


Os testes deste cenrio foram realizados num dos laboratrios da instituio, com um total de 23 participantes. Antes do incio dos testes, foi feita uma apresentao da ferramenta, descrevendo suas caractersticas e seus objetivos. Em seguida, os prprios alunos executaram a instalao do plugin no Netbeans, que j utilizado normalmente nas disciplinas de programao. O sistema operacional utilizado para estes testes foi o Windows XP. Para a realizao dos testes, foi utilizado um servidor XMPP interno (OpenFire1), visto que as polticas de segurana da instituio no permitiam a utilizao de servidores externos. As ferramentas testadas neste cenrio foram edio simultnea e comunicao atravs de mensagens instantneas. A comunicao via udio no foi possvel em virtude do bloqueio das portas na rede da instituio. Para a realizao dos testes e anlise do comportamento da ferramenta, os alunos foram instrudos a compartilharem arquivos com o professor, o qual acompanhava, a partir de sua mesa, as modificaes feitas nos documentos. Alm disso, o professor tambm colaborava com os alunos atravs da escrita de cdigo diretamente no arquivo compartilhado. A comunicao entre os alunos e professor, sempre que possvel, ocorreu atravs da ferramenta de chat do ambiente. Todavia, foi possvel perceber que, apesar da praticidade, os alunos com menos conhecimento de programao se sentiam mais confortveis com a presena do professor ao seu lado. Durante os testes realizados neste cenrio, a ferramenta no apresentou nenhum tipo de problema. medida que os alunos alteravam os cdigos dos programas, eram
1

5.2 Cenrio 2: Profissionais de Instituies de Ensino


Neste estudo de caso, foram realizados experimentos com profissionais de desenvolvimento de software de trs instituies de ensino superior do pas: UFJF (Universidade Federal de Juiz de Fora/MG), UCS (Universidade de Caxias do Sul/RS) e FAI (Centro de Ensino Superior em Gesto, Tecnologia e Educao, de Santa Rita do Sapuca/MG). Alm da edio colaborativa e a comunicao utilizando mensagens de texto, neste estudo de caso foram feitos testes utilizando a comunicao atravs de udio.

5.2.1 O processo utilizado


Neste cenrio, cujo nvel de disperso do tipo Distncia Nacional, conforme a classificao de [1], no houve nenhum contato pessoal para apresentao ou explicaes detalhada das ferramentas do IdDE. Todos os contatos e instrues sobre a instalao e funcionamento do plugin foram mantidos atravs de e-mail e chat. Os testes ocorreram no ms de Fevereiro de 2011 e nenhum dos participantes utilizava o Netbeans em seu dia-a-dia. Com a UCS, os testes foram realizados com a Coordenadora do Setor de Sistemas e as ferramentas testadas foram: edio colaborativa e chat. J no caso da FAI, os testes ocorreram com a Coordenadora de TI e as ferramentas utilizadas foram: edio colaborativa, chat e comunicao via udio. Na UFJF, os testes aconteceram com um Analista de Sistemas e as funcionalidades testa-

http://w ww.igniterealtime.org/projects/openfire/

64

Grtner et al.

Facilitando o aprendizado de programao sob a tica de metodologias geis

das foram edio colaborativa, chat, udio, ferramenta de traduo, gerenciamento de tarefas e agenda. Alm disso, ocorreram testes internos entre dois analistas da UFJF. Para a realizao desses testes, o servidor XMPP utilizado foi o GMail e, para a comunicao atravs de udio foi utilizado um servidor Asterisk1. Alm da execuo dos testes individuais com os representantes de cada instituio, ocorreu um teste conjunto com o analista de sistemas da UFJF e a Coordenadora de TI da FAI, momento no qual foram testadas as ferramentas de edio colaborativa, chat e udio. Para a realizao destes testes, foi efetuada a instalao do servidor XMPP OpenFire ao invs do uso do servidor do GMail. Os testes realizados nestes cenrios seguiram a mesma metodologia: primeiro eram feitas modificaes nos cdigos fontes e, posteriormente, eram confrontadas as verses finais dos documentos em cada ambiente para a verificao da consistncia e integridade dos cdigos.

til por auxiliar em diversas situaes como, por exemplo, permitir que um professore corrija os programas dos alunos num laboratrio, sem a necessidade de ficar se deslocando de computador em computador. Em relao ao desenvolvimento distribudo de software, todos os participantes consideraram que a ferramenta quebra a barreira das distncias, possibilitando que os usurios consigam trabalhar da mesma forma como se estivessem utilizando a ferramenta estando num mesmo ambiente. Na opinio de todos os participantes, o fato do ambiente ter sido desenvolvido como mdulo do Netbeans contribuiu para enriquecer sua a qualidade e praticidade funcional.

5.3 Cenrio 3: Professores Universitrios


Este estudo de caso foi realizado com quatro professores de cursos de graduao da rea de tecnologia da informao, do Centro Universitrio UNIVATES, na cidade de Lajeado/RS. Entre os professores, estavam os coordenadores dos cursos de Sistemas de Informao e Engenharia de Computao, alm do Diretor do Centro de Cincias Exatas e Tecnolgicas. As ferramentas testadas neste cenrio foram: edio colaborativa e comunicao via chat.

5.2.2 Anlise dos resultados


A avaliao dos testes neste cenrio foi realizada por um total de quatro pessoas: uma da UCS, duas da UFJF e uma da FAI. Todos os participantes consideraram que a ferramenta auxiliou no processo de comunicao atravs de chat. Da mesma forma todos os participantes avaliaram que o ambiente auxilia no processo de edio colaborativa de software. Entre as justificativas apresentadas est a simplicidade e a funcionalidade do ambiente e o fato de se poder acompanhar o local onde o usurio remoto est efetuando as modificaes. Alm disso, tambm foi citada a rapidez da atualizao do arquivo remoto, muito superior se comparada ao uso os tradicionais aplicativos de acesso remoto como o compartilhamento de desktop. Por fim, foi mencionado que a edio compartilhada permite a prtica de programao em pares do Extreme Programming de uma forma muito mais efetiva. A ferramenta de udio se mostrou til e funcional para ambos os participantes que realizaram este teste. Igualmente, todos os participantes dos testes deste cenrio consideram a comunicao via udio importante num cenrio onde os programadores esto separados geograficamente. Entre os motivos alegados, est o fato de que, se um programador precisar explicar as modificaes feitas num cdigo, muito mais rpido e fcil que o chat textual Em relao contribuio da ferramenta para o processo de ensino/aprendizagem presencial, apenas um participante considerou que no tinha condies de avaliar a ferramenta sob este ponto de vista, por no ter utilizado ela para esse fim. Os demais consideraram que ela seja
1

5.3.1 O processo utilizado


A realizao de testes junto a um grupo de professores teve por objetivo validar o potencial da ferramenta em ambientes de ensino presencial e distncia, sob o ponto de vista desses profissionais. Os professores envolvidos nos testes realizam atividades de EAD nas disciplinas que ministram. Os testes deste estudo de caso ocorreram no ms de Dezembro de 2010, no mesmo laboratrio de informtica utilizado anteriormente para os testes com os estudantes de graduao, descrito no Cenrio 1. Aps breve apresentao do ambiente e suas funcionalidades, os professores instalaram o plugin no Netbeans e foram instrudos a se comunicarem utilizando o chat do IdDE e efetuassem a edio colaborativa de cdigos fonte de programas. Inicialmente a edio ocorreu aos pares, mas posteriormente todos os participantes passaram a editar o mesmo arquivo. Percebeu-se que no houve nenhuma perda de desempenho nesta circunstncia e as modificaes feitas por um professor eram enviadas aos demais quase que instantaneamente. Acredita-se que o fato de o servidor XMPP utilizado estar na rede prpria instituio tenha contribudo para esse resultado.

5.3.2 Anlise de Resultados


Neste grupo, todos os participantes concordam que o ambiente auxilia no processo de comunicao atravs de

http://www.asterisk.org

65

Grtner et al.

RBIE V.20 N.1 2012

mensagens instantneas. Da mesma forma, todos os participantes concordaram que a ferramenta til na edio colaborativa, afirmando que o sistema funcionou de forma satisfatria para alteraes em um mesmo trecho de cdigo, arbitrando na interveno de diversos colaboradores. Igualmente, consideraram que a ferramenta extremamente til em qualquer situao que demande desenvolvimento compartilhado: entre desenvolvedores de software, entre professor e aluno, na sala de aula ou auxlio distncia. Em relao ao processo de ensino aprendizagem presencial, apenas um dos participantes considera que o ambiente at possa auxiliar, mas bem menos que no processo de aprendizagem distncia. Em contrapartida, os demais participantes consideram que o software seja interessante tambm nesse modelo, pois o professor pode acompanhar de forma mais efetiva o que os alunos esto fazendo. Avaliam que a ferramenta permitiria que o docente auxiliasse mais de um aluno simultaneamente, sem a necessidade de se deslocar na sala de aula, multiplicando o nmero de alunos atendidos no perodo de aula. Os participantes foram unnimes ao afirmar que a ferramenta possui uma grande contribuio para a aprendizagem distncia. Entre as justificativas, est a contribuio para o auto aprendizado, capacidade inerente aos profissionais da informtica. Aliado a isso, consideram que um recurso como esse seja extremamente til para apoiar o ensino de programao distncia, afirmando que outros meios tradicionais como e-mail e chat so bem menos adequados, alm de serem mais trabalhosos tanto para o professor quanto para o aluno. Com o uso do ambiente, o professor poderia explicar o funcionamento de determinado cdigo para o aluno de forma online. Segundo os participantes, a principal vantagem apontada foi a edio colaborativa de cdigo. Afirmam que a ferramenta apresenta o resultado imediato das modificaes, permitindo o acompanhamento e interveno remota em tempo real e dentro do prprio ambiente de desenvolvimento. Alm disso, consideram que o IdDE agiliza a atividade de desenvolvimento e o ensino e treinamento em programao, principalmente quando os participantes esto separados geograficamente, permitindo o auxlio e suporte a alunos e programadores menos experientes.

vai produzindo tambm o prprio conhecimento. Nesse sentido, este trabalho prope um ambiente computacional que vai de encontro teoria de Vygotsky, disponibilizando mecanismos onde o par mais capaz est presente, usando mecanismos de interao, coordenao e comunicao para a programao em pares distribudos, potencializando o aprendizado. Os resultados das avaliaes dos estudos de caso comprovam que os objetivos traados no planejamento deste trabalho foram plenamente atingidos. Na opinio de todos os participantes, as ferramentas de chat e edio colaborativa contribuem decisivamente para o desenvolvimento de software. Da mesma forma, os participantes dos estudos de caso consideraram que as ferramentas do ambiente tornam possvel sua utilizao no processo de ensino/aprendizagem, tanto presencial quando distncia, bem como validam seu uso no desenvolvimento de software tanto por equipes locais, quando distribudas. Em relao produtividade, 100% dos usurios consideraram que as ferramentas do ambiente contribuem para o seu aumento. No que se refere utilizao do Netbeans como base para a criao do aplicativo, todos os participantes avaliaram que tenha sido uma escolha apropriada, salientando que aplicativo desenvolvido agrega funcionalidades importantes para este IDE, tornando-o ainda mais completo. Os resultados demonstram ainda que as escolhas dos protocolos XMPP e SIP se mostraram acertadas. Alm de possibilitarem a interoperabilidade do ambiente com outros aplicativos e dispositivos, diversas avaliaes fizeram referncia velocidade e rapidez das ferramentas do ambiente, principalmente se comparadas a ferramentas normalmente utilizadas no desenvolvimento de software, como compartilhamento de rea de trabalho e acesso remoto aos computadores. Durante o desenvolvimento do aplicativo percebeu-se que outros recursos interessantes poderiam ser incorporados ao ambiente. Da mesma forma, com a realizao dos estudos de caso foram sugeridas vrias funcionalidades a serem desenvolvidas em trabalhos futuros. Entre as funcionalidades, pode-se destacar: Implementar um algoritmo de controle e ordenao das mensagens, que garanta a unicidade de cdigo para todos os participantes de uma sesso de edio colaborativa; Melhorar a apresentao das mensagens exibidas ao passar com o mouse sobre o cone verde, que informam as alteraes efetuadas num documento, agrupando as modificaes por autor e possibilitando um acesso direto janela do histrico das alteraes;

6. Concluses e Trabalhos Futuros


O desenvolvimento de software geograficamente distribudo tem aumentado significativamente nos ltimos anos e tornou-se uma necessidade de negcio para muitas corporaes. Por outro lado, segundo Piaget, na medida em que o sujeito interage com, e sofre ao do objeto, ele vai produzindo sua capacidade de conhecer e

66

Grtner et al.

Facilitando o aprendizado de programao sob a tica de metodologias geis

vdeo;

Adicionar suporte a comunicao atravs de


[9]

supported concurrent software engineering. Computer, vol.26, no.1pp.17-27, 1993. J. Davidson, J. Peters, M. Bhatia, S. Kalidindi and S. Mukherjee, Voice Over IP Fundamentals. 2. ed. Indianapolis, IN: Cisco Press, 2006. C. A. Ellis, S. J. Gibbs, and G. Rein, Groupware: some issues and experiences. ACM Communications Vol.34, No. 1 , 39-58, 1991. S. R. K. Franco, O construtivismo e a educao. Porto Alegre: Mediao, 1996. H. Fuks, A. Raposo, M. Gerosa, Do Modelo de Colaborao 3C Engenharia de Groupware. Simpsio Brasileiro de Sistemas Multimdia e Web WEBMIDIA, 2003. B. Hanks, Student performance in CS1 with distributed pair programming. In Proceedings of the 10th Annual SIGCSE Conference on innovation and Technology in Computer Science Education. ITiCSE '05. ACM Press, New York, NY, 316-320, 2005. J. D. Herbsleb and R. E. Grinter, Splitting the Organization and Integrating the Code: Con-ways Law Revisited. In: ICSE99, Los Angeles, CA. Proceeding,1999. J. D. Herbsleb and D. Moitra, Global software development, IEEE Software, vol.18, no.2pp.1620, Mar/Apr 2001, 2001. C. Ho, S. Raha, E. Gehringer and L. Williams, Sangam: a distributed pair programming plug-in for Eclipse. In Proceedings of the 2004 OOPSLA Workshop on Eclipse Technology Exchange. eclipse '04. ACM Press, New York, NY, 73-77, 2004. E. Lawrence, CollabEd: A Platform for Collaboratizing Existing Editors. International Confer-ence on Mobile, Hybrid, and On-line Learning, 2009. A. F. T. Primo and M. B. F. Cassol, Explorando o conceito de Intera-tividade: definies e taxionomias. In: Informtica na Educao: teoria e prtica. Porto Alegre: Revista PGIE/UFRGS, v.2, n.2, out, 1999. P. Saint-Andre, K. Smith and R. Tronon, XMPP: The Definitive Guide Building Real-Time Applications with Jabber Technologies. 1. ed. Sebastopol, CA: OReilly Media, 2009. T. Schummer and J. Schummer, Support for Distributed Teams in Extreme Programming. Extreme Programming Examined, Succi, G., Mar-

Desenvolver uma ferramenta de quadro branco, que permita que os usurios compartilhem imagens e desenhos, exemplo do que ocorre com a edio colaborativa; Possibilitar a criptografia das mensagens que so enviadas de um ambiente para outro; Agrupar e integrar as janelas de chat ao ambiente do Netbeans; Portar o plugin para outros IDEs; Possibilitar a seleo do Codec de udio a ser utilizado nas comunicaes; Implementar uma ferramenta que possibilite a execuo passo a passo todo o histrico de alteraes de uma sesso de edio colaborativa, simulando todo o processo ocorrido anteriormente.

[10]

[11] [12]

[13]

7. Referencias Bibliogrficas
[1]

J. Audy and R. Prikladnicki, Desenvolvimento Distribudo de Software. 1. ed. Rio de Janeiro: Elsevier, 2008. R. M. Borges, S. C. C. S. Pinto, J. L. V. Barbosa and D. N. F. Barbosa, Usando o modelo 3C de colaborao e Vygotsky no ensino de programao distribuda em pares. XVIII Simpsio Brasileiro de Informtica na Educao (SBIE), 2007. E. Carmel, Global Software Teams Collaborating Across Borders and Time Zones. Upper Saddle River, NJ: Prentice Hall, 1999. ISBN 0-13924218-X. E. Carmel, Thirteen assertions for globally dispersed software development research, Proceedings of the Thirtieth Hawaii International Conference on System Sciences, vol.3, no.pp.445452 vol.3, 7-10, 1997. E. Carmel and R. Agarwal, Tactical Approaches for Alleviating Distance in Global Software Development, IEEE Software, pp. 22-29, March/April, 2001. E. Carmel and P. Tjia, Offshoring Information Technology Sourcing and Outsourcing to a Global Workforce. Cambridge, UK: Cambridge University Press, 2005. D. Damian and D. Moitra, Global Software Development: How Far Have We Come? IEEE Software, Vol. 23, No. 5, 2006. P. Dewan and J. Riedl, Toward computer-

[14]

[2]

[15]

[3]

[16]

[4]

[17]

[5]

[18]

[6]

[19]

[7]

[20]

[8]

67

Grtner et al.

RBIE V.20 N.1 2012

chesi, M. eds., p. 355377, Boston, MA: Addison Wesley, 2001.


[21]

H. Sinnreich and A. B. Johnston, Internet Communications Using SIP: Delivering VoIP and Multimedia Services with Session Initiation Protocol. 2. ed. Indianapolis, IN: Wiley Publish-ing, 2006. D. Stotts, L. Williams, N. Nagappan, P. Beheti, D. Jen and A. Jackson, Virtual Teaming: Experiments and Experiences with Distributed Pair Programming, Proceedings of the Third XP Agile Universe Conference, 2003. D. F. G. Trindade, T. F. C. Tait and E. H. M. Huzita, A tool for supporting the communication in distributed software development environ-ment. Journal of Computer Science & Technology, 8 (2), pp: 118-124, 2008. L. A.Williams and R. R. Kessler, All I really need to know about pair programming I learned in kindergarten. ACM Communications. Vol. 43, No. 5, 108-114, 2000.

[22]

[23]

[24]

[25] Juan Manuel Adn-Coello, Wiris Serafim de Menezes, Eustquio So Jos de Faria, Carlos Miguel Tobar, Conflito Scio-Cognitivo e Estilos de Aprendizagem na Formao de Grupos para o Aprendizado Colaborativo de Programao de Computadores, Revista Brasileira de Informtica na Educao, RBIE, V.16. N. 03, 2008.

68

You might also like