NÚCLEO DE APLICAÇÃO EM TECNOLOGIA DA INFORMAÇÃO
UMA METODOLOGIA PARA IMPLEMENTAÇÃO DE OBJETOS DE APRENDIZAGEM UTILIZANDO A TECNOLOGIA ADOBE/MACROMEDIA FLASH
Luiz Alberto Barbosa Mesquita Vanessa Paula de Moura Figueiredo Julio Guido Oliveira Militão
Fortaleza, CE – Brasil Março de 2007
1
AGRADECIMENTOS
Agradecemos a Luis Furtado, ponto focal e Parahuari Branco, Gerente de Projeto da Positivo Informática, pela oportunidade do desenvolvimento desse trabalho e também pela confiança depositada na efetiva conclusão do mesmo. Agradecemos a toda equipe do NATI – Núcleo de Aplicação em Tecnologia da Informação da Universidade de Fortaleza, pelo apoio administrativo, fundamental para alcançarmos nossos objetivos. Em especial agradecemos a Luiz Ricardo Lima, Denise Maria Rodrigues Carneiro, Ector Galvão Lima, Kelly, e Adriana Tajra. Agradecimento especial a todos programadores envolvidos no projeto: Isabelle Feitosa Barros, Ana Paula Marques, Pedro Henrique de Oliveira Sousa, Sidney Simplício Silva, Luiz Warner Moreira Castro e Tiago Garcia Lemos. Ao suporte fornecido por Rafael Tabosa de Arruda e Amaury Teófilo Brasil Filho nas atividades de configuração e Mentory do Projeto. Aos estagiários que, além das tarefas de implementação, tiveram a honra de contribuir para a elaboração deste documento: Luiz Alberto Barbosa Mesquita e Vanessa Paula de Moura Figueiredo. Agradecemos também ao gerente de Projeto, na pessoa do Professor Júlio Guido Militão pelo compromisso em orientar esse trabalho. Agradecemos a Deus, pela oportunidade de estarmos aqui.
2
RESUMO
Este trabalho é resultado da implementação de Objetos de Aprendizagem realizada nas dependências do NATI – Núcleo de Aplicação em Tecnologia da Informação da UNIFOR em conjunto com a Positivo Informática, financiado com recursos da Lei de Informática. Trataremos nesse trabalho sobre a metodologia adotada na implementação de Objetos de Aprendizagem. A construção de um Objeto de aprendizagem inicia-se na concepção didático pedagógica e finaliza-se na implementação propriamente dita. É nesse contexto que o trabalho evidencia para os leitores e pesquisadores interessados no assunto as técnicas utilizadas no desenvolvimento e implementação, fornecendo as soluções adotadas de dois objetos de aprendizagem: a Calculadora Esperta e o Blocos Decimais. A linguagem de programação utilizada foi o “ActionScript” nativa do Adobe Flash, em conjunto com ferramentas de produtividade para controle de versões (Tortoise) e para controle e acompanhamento de erros (Mantis). A metodologia de acompanhamento gerencial do projeto foi a SCRUM, uma metodologia ágil para aumentar a eficiência de projetos de curto prazo. PALAVRAS CHAVE: Objetos de aprendizagem, Adobe Flash, ActionScript, controle de versões, bug tracker, interatividade, jogos digitais, aprendizagem, lúdico, orientação a objetos.
3
Sumário AGRADECIMENTOS.........................................................................................................................2 RESUMO.............................................................................................................................................3 INTRODUÇÃO....................................................................................................................................5 1.CONCEITOS BÁSICOS..................................................................................................................8 1.1.Objetos de Aprendizagem.........................................................................................................8 1.2.O Computador como Meio Lúdico-cognitivo..........................................................................9 1.3.Interatividade com o Usuário..................................................................................................11 1.4.Conteúdos Didático Pedagógicos...........................................................................................12 1.5.Programação Orientada a Objetos..........................................................................................13 2.FERRAMENTAS UTILIZADAS..................................................................................................17 2.1.Adobe Flash............................................................................................................................17 2.1.1.A Linguagem ActionScript – AS.........................................................................................17 2.1.2.Integração do Flash com XML............................................................................................19 2.2.Tortoise - CVS........................................................................................................................19 2.3.Mantis.....................................................................................................................................20 2.4.FlashDevelop Toolkit.............................................................................................................22 2.5.Servidor de Páginas Jetty........................................................................................................23 3.METODOLOGIA DE DESENVOLVIMENTO............................................................................24 3.1.SCRUM..................................................................................................................................24 3.2.Preparação e Seleção da Equipe.............................................................................................24 3.3.Conhecendo os Objetos de Aprendizado (OA) a serem implementados................................25 3.4.Acompanhando as Tarefas......................................................................................................25 3.5.Preparando o Ambiente Computacional.................................................................................26 3.6.Implementação e Testes Unitários..........................................................................................26 3.7.Testes de Versão.....................................................................................................................27 3.8.Correção de Erros ..................................................................................................................27 3.9.Documentação........................................................................................................................28 3.10.Implementação da Camada de Persistência..........................................................................28 4.ESTUDOS DE CASOS..................................................................................................................30 4.1.Calculadora Esperta................................................................................................................30 4.2.Blocos Decimais.....................................................................................................................35 5.CONCLUSÕES..............................................................................................................................39 6.BIBLIOGRAFIA............................................................................................................................40
1. INTRODUÇÃO Este trabalho é resultado da implementação de Objetos de Aprendizagem realizada nas dependências do Núcleo de Aplicação em Tecnologia da Informação - NATI da Universidade de Fortaleza - UNIFOR em conjunto com a Positivo Informática. O projeto foi realizado de Janeiro a Abril de 2007 e financiado com recursos da Lei de Informática. Os Objetos de Aprendizagem são recursos que podem ser utilizados para o suporte de ensino com um objetivo educacional claro e que tenham algum potencial de reutilização. A Lei de Informática, lei número 8248/91 e as alterações da lei 11.077/04 faz o incentivo aos empresários a investir em desenvolvimento de novas tecnologias de inovação. O Ministério de Ciência e Tecnologia faz o acompanhamento desses processos e obriga a aplicação de parte dos recursos em Universidades do Nordeste do Brasil. O Núcleo de Aplicação em Tecnologia da Informação - NATI da Universidade de Fortaleza – UNIFOR atua na viabilização de projetos de pesquisa, desenvolvimento e inovação e serviços de consultoria e capacitação na área de TI&T. O NATI é um elo entre a comunidade acadêmica e o mercado, contribuindo para o fortalecimento da relação Universidade-Empresa. A Positivo Informática é considerada hoje a maior empresa fabricante de computadores do Brasil e a número 1 em tecnologia educacional, também exportada para vários países do mundo. Ambas as conquistas são resultado de quase duas décadas de muito trabalho em equipe, conhecimento, visão empreendedora e investimento do Grupo Positivo na área tecnológica. Ao longo de sua trajetória, a Positivo Informática ganhou credibilidade como fornecedora de soluções tecnológicas para hardware e para área educacional. Foi através da área de Informática, representada pela Positivo Informática, que o Grupo Positivo se transformou no maior produtor de tecnologia educacional do País. Contando com uma equipe multidisciplinar, representada por profissionais de informática, educadores e designers, e também possui o seu relacionamento com empresas
5
estrangeiras, situadas em Israel, Estados Unidos e Inglaterra, a Positivo Informática coloca à disposição do mercado soluções integradas em tecnologia educacional. Todas únicas e líderes em suas categorias. São elas: Softwares Educacionais; Portais na Internet; Mesas Educacionais entre outros. Esse projeto teve a finalidade de implementar, utilizando de recursos humanos locais dois objetos de aprendizagem: a Calculadora Espera e o Blocos Decimais.
Figura 1: Estrutura Analítica do Projeto O Projeto desenvolvido foi divido em três partes, conforme Figura 1. Esse trabalho visa apresentar as ferramentas e técnicas adotadas para implementação de objetos de aprendizagem além de propor uma análise dos resultados e identificar as falhas do processo. Com esse enfoque, trataremos no capítulo 2 os temas e conceitos básicos necessários. O capítulo 3 abordará as ferramentas utilizadas, com informações sobre funcionalidades e características. No capítulo 4 apresentaremos a Metodologia de Desenvolvimento utilizada e, no capítulo 5 realizaremos a apresentação dos Objetos Implementados com uma breve análise das suas interfaces. O trabalho é finalizado com um conjunto de proposições para melhorar a construção dos Objetos de Aprendizagem.
6
7
2. CONCEITOS BÁSICOS 2.1. Objetos de Aprendizagem A utilização de novas tecnologias aliadas à necessidade de aprender cada vez mais rápido vem se tornando, nas práticas educativas, uma ferramenta muito útil nos dias atuais. A procura por mecanismos computacionais que permitam evolução desta tecnologia não pára de crescer. Atualmente entre essas tecnologias destacam-se os Objetos de Aprendizagem. Os Objetos de aprendizagem são recursos digitais que podem ser utilizados para o suporte de ensino com um objetivo educacional claro e que tenham algum potencial de reutilização. Segundo Singh (SINGH 2001), um objeto de aprendizagem deve ser bem estruturado e dividido em três partes bem definidas:
Figura 2: Visão de um Objeto de Aprendizagem, segundo Singh (2001) Divisão de um Objeto de Aprendizagem: Objetivos: esta parte do objeto tem a intenção de demonstrar ao aprendiz o que ele poderá aprender a partir do uso desse objeto, também poderá conter uma lista dos conhecimentos prévios necessários para um bom aproveitamento de todo o conteúdo abordado. Pode ser comparado de uma forma grosseira a ementa de uma disciplina; Conteúdo instrucional: nesta parte, deverá ser apresentado todo o material didático necessário para que no término o aluno possa atingir os objetivos citados no item anterior; 8
Prática e Feedback: uma das características importantes do paradigma objetos de aprendizagem é que a cada final de utilização julga-se necessário que o aprendiz verifique se o seu desempenho atingiu as expectativas, caso não, o aprendiz deve ter a liberdade para voltar a utilizar-se do objeto quantas vezes julgar necessário. A implementação desses objetos de aprendizagem precisam de certas características. A principal delas é a portabilidade e a possibilidade do uso dentro de um navegador web para que possa ser acessado de locais remotos. A escolha do Flash(Adobe) adapta-se a essas necessidades pois permite a criação de animações vetoriais e uma diversidade de interações com java e bancos de dados. Além da interface visual, o Flash possui uma linguagem de programação – ActionScript – que permite uma implementação orientada a objetos. Assim, relacionados aos objetos de aprendizagem, tem-se (DESSIMONE, 2006): a granularidade, com a fragmentação dos conteúdos educacionais,
o
compartilhamento, numa pluralidade de objetos inter-relacionados e a reusabilidade numa diversidade de aplicações. A utilização de tecnologias especificas incorporadas ao processo educacional de forma bem estruturada é foco na construção de objetos de aprendizagem que alcancem seus objetivos.
2.2. Jogos Educativos e Objetos de Aprendizagem? Os jogos educativos têm sempre duas funções: uma função lúdica, na qual a criança encontra prazer ao jogar, e uma função educativa, através da qual o jogo ajuda a desenvolver o conhecimento das crianças e sua apreensão do mundo. Os objetos de aprendizagem vão além desse conceito. Ao integrar a tecnologia ao processo de ensino-aprendizagem do jovem, de maneira equilibrada e coerente, observando os aspectos benéficos e úteis do computador potencializa-se o interesse e o efetivo aprendizado. Por exemplo, a utilização desses softwares com as crianças tende a diminuir os bloqueios apresentados pelos alunos que temem determinados conteúdos (matemática, física, química) e sentem-se incapacitados para aprender. 9
Borin (1996 ) diz que: Outro motivo para a introdução de jogos nas aulas de matemática é a possibilidade de diminuir bloqueios apresentados por muitos de nossos alunos que temem a Matemática e sentem-se incapacitados para aprendêla. Dentro da situação de jogo, onde é impossível uma atitude passiva e a motivação é grande, notamos que, ao mesmo tempo em que estes alunos falam Matemática, apresentam também um melhor desempenho e atitudes mais positivas frente a seus processos de aprendizagem.''
Existem alguns requisitos de qualidade didático-pedagógica que precisam ser observados tais como: gramática e ortografias corretas, objetivos bem definidos, clareza e concisão nos textos apresentados, possibilidade de acesso direto a diferentes níveis do programa e a possibilidade do professor interagir com o sistema,incluindo, excluindo ou alterando o conteúdo. Além de todas essas características citadas acima não podemos esquecer da motivação, pois é ela que fornece a energia para a ação e torna o individuo receptivo a certos estímulos ambientais.
2.3. O Computador como Meio Lúdico-cognitivo O computador é bastante útil no processo cognitivo, de forma que, através da interação com a máquina, o aluno se faz ativo no seu processo de aprendizagem, deixando de ser apenas um elemento que recebe informações de um facilitador para ser o elemento principal no processo de construção da própria aprendizagem. As tecnologias computacionais utilizadas como recurso de aprendizagem e diversão de forma conjunta vem se tornando uma forte tendência, uma vez que, em quase todas as escolas e residências tem-se difundido a presença desse equipamento juntamente com o advento da Internet. O software educativo, da modalidade jogos, desperta a curiosidade e o interesse crescente dos alunos e chama atenção pelos seus recursos gráficos. Quando bem elaborados, contendo telas visualmente atrativas, eventualmente com músicas, sons e animações, permitem um maior sucesso nos seus objetivos. Devendo ser de fácil interação com o usuário e bem intuitivo, possibilitando variações de ambiente e de níveis de dificuldades e atividades. Ser executado em tempo real e fornecer respostas imediatas, gerando assim, uma maior motivação no aluno. O aluno deve sentir prazer em 10
explorar todas as funcionalidades do software, tornado assim, mais fácil o aprendizado. Faz-se de grande importância e interesse dos educadores e instituições de ensino utilizarem os softwares como uma evolução na forma de aprendizado do aluno. Facilitando tanto o trabalho dos educadores, como também a assimilação do conteúdo pelo usuário. Deve-se dar atenção também ao nível de conhecimento dos educadores em relação ao software a ser utilizado e em recursos computacionais básicos, para que os mesmos possam dar suporte necessário aos alunos, uma vez que não se sabe o grau de experiência que os alunos têm na utilização de um PC. Atualmente a capacidade de processamento computacional permite o desenvolvimento de animações interativas sofisticadas que usam diferentes tipos de mídias. Os jogos para computadores são um dos exemplos de softwares multimídias. A tecnologia envolvida para a criação desses jogos pode ser utilizada também para implementar os softwares educacionais. Mas não é só com a tecnologia que podemos garantir a qualidade necessária ao bom aprendizado, é necessário usar também diversos conceitos para elaborá-los. É nesse contexto que o jogo ganha um espaço como ferramenta ideal da aprendizagem, na medida em que propõe estímulo ao interesse do aluno de forma bem elaborada. O jogo ajuda-o a construir suas novas descobertas, a desenvolver e a enriquecer sua personalidade, simbolizando um instrumento pedagógico que leva o professor à condição de condutor, estimulador e avaliador da aprendizagem. (Moratori, 2003) A integração de tecnologias gráficas e sonoras e o uso de ferramentas de autoria em multimídias com conceitos cognitivos, psicopedagógicos e lúdicos permitem o desenvolvimento de softwares educacionais sofisticados. A interface deve funcionar como ponte de acesso entre a criança e o sistema, por isso é necessário que seja bem elaborada para permitir uma boa usabilidade1 e acesso fornecido pela tecnologia. Se ela não possuir uma apresentação bem projetada o aluno pode sentir-se desmotivado, confuso, perplexo e sobrecarregados de informações, dificultando assim a aprendizagem. Na próxima seção será melhor discutida a questão da 1
Usabilidade: Usabilidade é um termo usado para definir a facilidade com que as pessoas podem empregar uma ferramenta ou objeto a fim de realizar uma tarefa específica e importante. A usabilidade pode também se referir aos métodos de mensuração da usabilidade e ao estudo dos princípios por trás da eficiência percebida de um objeto [5].
11
Interatividade.
2.4. Interatividade com o Usuário A interatividade é condição fundamental para que o usuário utilize-se de programas de computador de maneira efetiva e natural. Atualmente não concebe-se o uso de programas que executam “Em Lote”. Pelo alto poder de processamento dos equipamentos atuais é possível que o processamento seja realizado tão logo o usuário solicite e, imediatamente, seja informado do que aconteceu. A interatividade, portanto, é provida de maneira visual, auditiva e até tátil. Quando os objetos são manipulados pelos usuários, os mesmos passam a ter um “comportamento” que na maioria das vezes remete ao mundo real. O uso das metáforas de interface permitem que a manipulação das mesmas seja natural. A principal metáfora utilizada nos nossos objetos remete-se a desenhos de objetos do mundo real como blocos, moedas e botões de uma calculadora. (Vide Figura 3).
Figura 3: Metáfora de moedas
O adjetivo "interativo" entretanto, deve qualificar qualquer coisa cujo funcionamento permite ao seu usuário algum nível de participação ou troca de ações. No caso da metáfora da Figura 3, pode-se mover cada uma delas num tabuleiro imaginário como se fossem moedas reais sobre uma mesa.
12
Figura 4: Metáfora de uma calculadora
A execução rápida e sem erro, o tempo suficiente de exibição de telas, a possibilidade de acesso à ajuda, a possibilidade de correção das respostas e a possibilidade de sair a qualquer momento do programa tornam a interatividade um elemento primordial para a utilização continuada de uma peça de software.
2.5. Programação Orientada a Objetos Quando se fala em programação não se pensa em outra coisa a não ser em POO (Programação Orientada a Objeto). Orientação a Objeto é uma técnica baseada na composição e na interação entre diversas unidades de softwares chamadas de classes de objetos. Os principais pontos que caracterizam a POO são: Classes, Objetos, Métodos, Atributos, Modificadores de Acesso, Herança e Interfaces. Nessa seção procuramos dar as principais características desses pontos. Para um entendimento mais aprofundado consultar a bibliografia ao final do trabalho. Em orientação a objetos, dizemos que um ou mais objetos pertencem a uma classe quando eles são muitos semelhantes. Uma classe é uma abstração que descreve propriedades importantes para uma aplicação. Cada classe descreve um conjunto de objetos individuais. Na Figura 5, Main, Orientacoes, Simulador, Objeto, Atividade, Resposta e Questao, são exemplos de classes. 13
Figura 5: Diagrama de classes de um objeto de aprendizagem Um objeto é uma entidade do mundo real que tem uma identidade. Eles podem representar entidades concretas ou entidades conceituais. Cada objeto tem sua identidade, isto significa que dois objetos são distintos mesmo que eles apresentem exatamente as mesmas características. A estrutura de um objeto é representada em termos por atributos. O comportamento de um objeto é representado pelo conjunto de operações que podem ser executadas sobre o mesmo. Um método é a implementação de uma operação para uma classe. A assinatura de um método é dada pelo número e tipos de argumentos que o pode receber, e por seu valor de retorno. O Polimorfismo significa que a mesma operação pode se
14
comportar de forma diferente em classes diferentes. Um método é uma implementação específica de uma operação para uma certa classe e está exemplificado na divisão inferior do quadro de classes na Figura 5 (Ex.: mostraMsg (index : Int) : Void), os argumentos encontram-se dentro dos parênteses. O atributo de uma classe é um valor de dados assumido pelos objetos de uma classe. Diferentes instâncias de objetos podem ter o mesmo valor para um dado atributo. Cada nome de atributo é único para uma dada classe, mas não necessariamente único entre todas as classes. O nome do atributo pode ser seguido por detalhes opcionais, tais como o tipo de dado assumido e valor padrão. Atributos são variáveis e estão exemplificadas na Figura 5 na divisão superior da classe Main (Ex.: explicacao : boolean) assim como em todas as outras classes. Herança é o mecanismo do paradigma de Orientação a Objetos que permite compartilhar atributos e operações entre classes baseadas num relacionamento hierárquico. Uma classe pode ser definida de forma genérica e depois refinada sucessivamente em termos de subclasses ou classes derivadas. Cada subclasse incorpora, ou herda, todas as propriedades de suas subclasses e adiciona suas propriedades únicas e particulares. Esta capacidade de fatorar as propriedades comuns de diversas classes em uma superclasse pode reduzir a repetição de código em um programa, sendo uma das principais vantagens da abordagem de orientação a objetos. As Interfaces são classes que podem conter assinaturas de métodos. A primeira idéia que interface transmite é de que trata de um comportamento importante da engenharia de softwares que pode resolver e evitar diversos problemas de relacionamento de classes. A Orientação a Objetos traz diversos benefícios no desenvolvimento e manutenção de software. As vantagens diretas são: maior facilidade para reutilização de código e por consequência do projeto, possibilidade do desenvolvedor trabalhar em um nível mais elevado de abstração, utilização de um único padrão conceitual durante todo o processo de criação de software, maior adequação à arquitetura cliente/servidor e maior facilidade de comunicação com os usuários e com outros profissionais de informática. Já nas vantagens reais destacam-se as seguintes características: ciclo de vida mais longo para os sistemas, desenvolvimento acelerado de sistemas, possibilidade de se construir
15
sistemas muito mais complexos pela incorporação de funções prontas e um menor custo para desenvolvimento e manutenção de sistemas. (ver Cay S. Horstmann - Core java 2 )
16
3. FERRAMENTAS UTILIZADAS 3.1. Adobe Flash O Flash foi escolhido porque ele tem uma grande facilidade de manipulação gráfica, um baixo grau de complexidade comparado a outras tecnologias, e possui uma geração de arquivos finais de baixo tamanho em disco com uma boa resolução. Além disso, o Flash disponibiliza um ambiente de desenvolvimento da linguagem Action Script em um mesmo ambiente onde são trabalhados os gráficos. O Flash é um software que disponibiliza ao usuário a aplicação de recursos para criação de animações multimídia interativas, baseadas em imagens vetoriais agregadas à linguagem de autoria ActionScript que permite criar aplicações hipermídia educacionais de forma dinâmica. Uma das maiores vantagens dessa ferramenta está exatamente em reunir diversas funcionalidades em um único software: ferramenta de animação, elaboração de apresentações comerciais e publicitárias, edição e criação de websites, programa de desenvolvimento de aplicações e plataforma de desenvolvimento de jogos. Existem duas maneiras de se trabalhar com Flash, sendo uma graficamente e outra dinamicamente, através da sua própria linguagem, o Action Script. A forma gráfica de se trabalhar com o Flash o torna uma espécie de editor de vídeo, com quadros de imagens e taxa de quadros por segundo, onde o designer tem que definir sua animação quadro-a-quadro ou através de interpolações de movimentos. Enquanto isso, na forma dinâmica, o Flash se torna uma plataforma de desenvolvimento de códigos, onde o programador cria suas animações e suas interações de forma mais abstrata. Atualmente o Flash está em propriedade da Adobe Systems Incorporated na sua versão 9.0 (Flash CS3 – em conjunto com o pacote CS3 da Adobe), mas a versão gerada em nosso projeto, por ocasião dos requisitos, foi a 7.0 (Flash MX 2004) da extinta Macromedia. Entretanto, utilizamos na implementação do projeto a versão do Flash 8.0, salvando e exportando os arquivos finais na versão anterior (7.0). Esse fato ocorreu, pois, a versão 8.0 tem muitas vantagens em relação a 7.0, como o help (F1) que é bem mais completo, fora os recursos gráficos que são bem mais avançados. 17
3.1.1. A Linguagem ActionScript – AS O ActionScript é uma LPOO (Linguagem de Programação Orientada a Objetos) que pode ser usado para controlar objetos em filmes do flash a fim de criar elementos para a navegação e interatividade. A linguagem ActionScript usa variáveis para armazenar informações que podem ser recuperadas e usadas sempre que necessário. Ela utiliza três tipos de variáveis: locais, globais e variáveis da linha de tempo do Flash. O ActionScript também possui operadores. Utilizamos operadores quando queremos executar algum processo sobre as variáveis. Existem vários operadores no ActionScript, porém os principais são: Operadores Aritméticos: adição (+), subtração (-), multiplicação (*) e divisão (/). Operadores de Comparação: menor que (<), maior que (>), 18
menor igual a (<=), maior igual a (>=), atribuição (=), diferente (!=) e igual (==). É importante notar a diferença entre os operadores igual (=) e o igual igual (==), pois o primeiro é usado apenas para atribuirmos um valor, uma comparação deve ser feita com igual igual (==). O uso de operadores de comparação, é comum dentro de estruturas condicionais, que às vezes é a única forma de alcançarmos certos resultados. Outra facilidade de se desenvolver aplicativos com ActionScript é que podemos trabalhar com arquivos de classes externas, facilitando o trabalho da equipe de desenvolvedores.
Figura 7: Exemplo de código em Action Script
3.1.2. Integração do Flash com XML XML (eXtensible Markup Language) é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais. É um subtipo de SGML (acrônimo de Standard Generalized Markup Language, 19
ou Linguagem Padronizada de Marcação Genérica) capaz de descrever diversos tipos de dados. Seu propósito principal é a facilidade de compartilhamento de informações através da Internet. Combinando as características do XML com as facilidades oferecidas pelo Flash, tem-se um mecanismo que possibilita o desenvolvimento de aplicações voltadas para a web, com uma excelente interação gráfica. Há algumas alternativas ao XML que podem ser usadas para enviar informações para o Flash como:
Carregar arquivos .txt que estão no servidor.
Passar
uma
consulta
de
Flash
(nome=valor&nome1=valor1)
contendo uma nova informação.
Usar uma linguagem de script server-side para devolver dados
diretamente de uma base de dados.
Usar HTML e JavaScript para passar informação para o Flash.
O XML pode ser modificado (escrito) ao ser usado no Flash através do Flash MX parser. (Franklin 2002) Há também outras formas de usar o XML na aplicação Flash como: carga da base de dados, carga do servidor, número de Hits por dia, a necessidade de informação atualizada e a eficiência. O Flash foi largamente melhorado na sua ligação com o XML, principalmente na velocidade de análise. Na nossa implementação é possível realizar a carga de várias atividades distintas baseadas em um arquivo XML para o mesmo Flash. Com essa facilidade, o aluno poderá ter um grande número de alternativas de atividades.
3.2. Tortoise - CVS Quando o desenvolvimento de um sistema é realizado de forma cooperativa é fundamental e necessário o compartilhamento de arquivos. O sistema para controle de versões é responsável pelo controle de todo código produzido, gerando informações sobre quem da equipe realizou modificações, armazenando todas elas para posterior 20
recuperação. O Tortoise - CVS baseia-se num servidor ligado a várias estações de trabalho. No servidor são guardados todos os arquivos que estão sendo utilizados pelo projeto, permitindo que se unifique as alterações efetuadas num só local. Existem vários softwares que realizam essa tarefa. O sistema utilizado no nosso projeto foi o Tortoise - CVS. Essa ferramenta de controle de versões em código aberto2 é escrita em C++ e faz todo o intermédio entre os arquivos que estão no servidor e os arquivos locais.
Figura 8: Tortoise (cliente de CVS)
As principais atividades a serem realizadas são : Update (atualização do arquivo local com a versão do servidor) e o Commit (atualização do servidor com a versão da máquina local)
3.3. Mantis Quando um sistema é concebido, a definição e acompanhamento dos requisitos do mesmo é de fundamental importância. Quando da implementação, é possível que nas alguns desses requisitos não sejam atendidos. Quando isso acontece temos um Bug. 2
O software chamado de código aberto, ou open source em inglês, é um tipo de software cujo código fonte é visível publicamente.
21
Quando, ao ser implementada uma atividade ou ainda um módulo são detectadas melhorias, um novo requisito é incorporado aos inicialmente descritos. Esse tipo de evolução do sistema também deverá ser registrado. Um sistema de acompanhamento de bugs é de total importância na elaboração de um sistema, pois é responsável pelo cadastro e controle de falhas, registrando o problema para que seja possível fazer sua correção. Utilizamos o Mantis (ver Figura 9) para realizar o controle das falhas encontradas e reportadas em uma etapa de um projeto, associando a cada bug cadastrado um código de controle único, a categoria, a descrição do problema, o grau de prioridade, quem o reportou e o status. O status pode ser classificado em: new (novo), feedback (reincidente), acknowledged (reconhecido) , confirmed (confirmado), assigned (atribuído), resolved (resovido) e closed (fechado). O nível de gravidade mostra qual o impacto do mesmo na continuidade da utilização e testes do mesmo. O mais grave é o Block ou Major que indica quando os erros correspondentes inviabilizam a continuação dos testes e o mais simples podem ser descritos como Texto ou Minor.
Figura 9: Tela parcial do Mantis com listagem de alguns bugs
3.4. FlashDevelop Toolkit. O editor de ActionScript do Flash deixa muito a desejar, com isso, surgiram
22
muitos aplicativos alternativos à IDE3 do Flash, como por exemplo o SEPY (http://sourceforge.net/project/showfiles.php?group_id=90749)
e
o
SCITE
(http://superdownloads.uol.com.br/download/169/scite-linux/). A ferramenta escolhida por nós foi o FlashDevelop por ser simples em sua utilização e bastante completa. É uma ferramenta utilizada no desenvolvimento dos códigos e das classes de um projeto. Ele é um software Open Soure para criação e edição da linguagem ActionScript e funciona de forma semelhante ao Eclipse (Ferramenta de edição de códigos em JAVA). O FlashDevelop ajuda na edição dos códigos principalmente pelos seus recursos e interface bem projetada, onde através de suas divisões internas podemos ter fácil acesso aos pacotes e as classes envolvidas no projeto. É rápido, grátis e auxilia bastante o programador a desenvolver os sistemas.
Figura 10: Tela inicial - FlashDevelop Para fazer o download deste software acesse a comunidade para usuários e desenvolvedores do FlashDevelop: http://www.flashdevelop.org/community/
3
IDE (Integrated Development Environment): Um ambiente integrado para desenvolvimento de software
23
3.5. Servidor de Páginas Jetty O Jetty é um servidor HTTP e Servlet Container 100% escrito em Java e possui código aberto. É o grande concorrente do Tomcat e ficou famoso por ser utilizado como o servlet container do JBoss. É liberado sob a licença do Apache 2.0 e está conseqüentemente livre para o uso e a distribuição comerciais. Criado primeiramente em 1995, o Jetty beneficiou-se da entrada de uma comunidade de usuários vasta e do desenvolvimento consistente e focalizado por um núcleo estável de colaboradores. O Jetty pode ser usado como:
um web server tradicional autônomo para estáticas e conteúdos dinâmicos.
um servidor de conteúdo dinâmico atrás de um servidor dedicado HTTP tal como Apache que usa o mod_proxy
um componente embutido dentro de uma aplicação Java
Ricardo Rodrigues Lecheta, em seu artigo para o site DevMedia diz que: A grande vantagem do Jetty com relação ao Tomcat é a sua fácil configuração, e junto com o Eclipse, é possível desenvolver aplicações de forma mais produtiva, alterando o código fonte das classes Java, sem ser necessário reiniciar a aplicação.
Em nosso prjeto, utilizamos o Jetty para testar a nossa aplicação na construção da persistência, pois a camada de persistência se comunica com códigos java que fazem acesso ao banco de dados (criação de tabela, seleção, inserção e deleção de dados). O Jetty pode ser encontrado para download em: http://www.mortbay.org/
24
4. METODOLOGIA DE DESENVOLVIMENTO 4.1. Preparação e Seleção da Equipe O processo do seleção da Equipe foi iniciado pelo treinamento de um conjunto de alunos na ferramenta FLASH. O curso teve duração de 40 horas/aula e teve como ênfase a linguagem de programação ActionScript. Inscreveram-se 20 alunos da comunidade acadêmica e foram selecionados dois para serem incorporados a equipe de desenvolvimento. Paralelo a esta atividade foram selecionados, via curriculum vitae, os programadores.
Nessa
etapa
foram
entrevistados
cinco
profissionais
e
foram
selecionados dois. É importante observar que profissionais com o perfil desejado já estavam alocados em outros projetos, tornando premente a necessidade da qualificação de programadores em ActionScript. Durante o projeto foi necessária a substituição de programadores que não tinham o conhecimento para a execução das tarefas. Também adotou-se a técnica de Mentory pela incorporação de profissional experiente no acompanhamento das tarefas técnicas. O gerenciamento do projeto foi realizado por um professor da Universidade com experiência no desenvolvimento de sistemas. Esse gerenciamento foi apoiado pela equipe de Gerência de Desenvolvimento de Sistemas do NATI.
4.2. Conhecendo os Objetos de Aprendizado (OA) a serem implementados A definição dos requisitos dos Objetos de Aprendizagem foram postadas na web através do portal “http://cmwiki.educacional.net”. Os requisitos foram apresentados de maneira detalhada ao Gerente de Projeto por ocasião de viagem do mesmo a CuritibaPR. Nessa visita foi explicado as principais funcionalidades e foi apresentado o processo de acompanhamento das atividades.
25
Figura 11: Definição dos requisitos através de Product Backlog Os requisitos foram estudados de maneira detalhada para identificar as necessidades da implementação de novas classes. Após realizar o download dos arquivos contendo a arte dos objetos a serem implementados e os arquivos de definição dos requisitos, foi realizada uma classificação dos mesmos. Esse processo teve duração de dois dias e envolveu toda a equipe de desenvolvimento.
4.3. Acompanhando as Tarefas Para permitir uma maior eficiência, os componentes foram divididos em duas equipes formadas por dois programadores e um estagiário cada. Cada equipe ficou prioritariamente responsável pela implementação de um dos OA. As tarefas foram divididas utilizando a metodologia de acompanhamento de projeto SCRUM. Cada componente escolhe a atividade a ser realizada e presta contas com o Líder Técnico do Projeto. O Líder Técnico reporta ao Gerente de Projeto para atualização dos cronogramas e acompanhamento junto ao NATI e a POSITIVO. O detalhamento dos processos envolvidos nessa fase serão objetos de estudos futuros.
26
4.4. SCRUM Para o acompanhamento das atividades foi utilizada a SCRUM. Scrum é uma metodologia ágil para gerenciamento de projetos, geralmente de software, mas pode ser utilizada para outros tipos, como desenvolvimento de produtos físicos, ou projetos diversos. Foi criada por Jeff Sutherland e Ken Schwaber na década de 1990. A partir de uma lista de funcionalidades desejadas para o produto (Product Backlog), priorizada pelo Dono do Produto (Product Owner), o líder do projeto (Scrum Master) escolhe um certo número dessas funcionalidades (Sprint Backlog), que julga-se possível desenvolver num ciclo de 30 dias, chamado Corrida (Sprint). O dia-a-dia desse ciclo contempla algumas atividades características, como a Reunião Em Pé (Standup Meeting) pela manhã, onde cada membro da equipe do projeto deve responder a três perguntas: ●
O que fez para o projeto desde a última reunião?
●
O que fará para o projeto até a próxima reunião?
●
Há algum obstáculo para conseguir seu objetivo? Precisa de ajuda?
Para acompanhar o progresso e a velocidade da equipe de desenvolvimento, o Scrum utiliza um painel de progresso chamado de Gráfico de Consumo (Burndown Chart), que ilustra a quantidade de funcionalidades que foram desenvolvidas até o momento no Sprint. A inclinação da curva dá a noção de Velocidade (Velocity) da equipe.
4.5. Preparando o Ambiente Computacional Por solicitação de um dos requisitos seria necessário o uso do Flash versão MX. No entanto, por ser uma versão desatualizada não foi possível adquirir licenças. O trabalho, então, foi desenvolvido utilizando Flash versão 8.0 e o produto final convertido para a versão MX. Esse fato ocasionou alguns problemas na abertura de arquivos de uma versão, em outra. Foi solucionado pela uniformização das versões e conseqüente redução dos arquivos em versões distintas. 27
Foi configurado um repositório com os arquivos em produção a serem editados pela equipe. O cliente CVS utilizado foi o Tortoise, para maiores informações vide item 3.2. Um treinamento de 4 horas foi ministrado à equipe na manipulação dos arquivos. O processo mais delicado foi o de Merge (combinação) de arquivos editados por programadores distintos. Cada terminal, portanto, passou a ter uma cópia dos arquivos a serem utilizados e os mesmos deveriam ser atualizados no servidor uma vez fossem alterados.
4.6. Implementação e Testes Unitários Cada grupo passou a implementar as funcionalidades solicitadas definidas pelos documentos de Requisitos. As dificuldades técnicas foram discutidas diariamente na reunião de acompanhamento de atividades do SCRUM. Caso as dificuldades fossem de natureza relacionada com o entendimento dos requisitos, as mesmas eram postadas no WIKI para que a POSITIVO pudesse solucioná-las. As dificuldades técnicas foram compartilhadas pela equipe e resolvidas através de consultas aos livros disponíveis ou em fóruns de discussão. A definição das estratégias de implementação também foram realizadas nas reuniões diárias de acompanhamento. Para cada Interação de desenvolvimento, também identificado como SPRINT, os programadores definiam o prazo para execução de cada tarefa e, com isso, o Gerente de Projeto montava um cronograma de entrega. Cada programador realizava, após a implementação das tarefas, um conjunto de testes unitários e atualizava o servidor de arquivos. Quando todas as alterações eram efetuadas e todas as tarefas testadas, uma versão unificada é gerada e passada por um conjunto de testes com base nos requisitos das mesmas.
4.7. Testes de Versão Quando uma versão era gerada, o processo de validação da mesma era efetuada por um dos membros da outra equipe. Os testes de versão, no entanto, não obtiveram o sucesso esperado, uma vez que a quantidade de erros identificados 28
posteriormente foi significativa. Identificou-se a necessidade de um membro da equipe que ficasse dedicado a essa tarefa de testes, para que, através de Casos de Testes, fosse possível a remoção de todos os erros. Os erros reportados pelo cliente eram dispostos no Mantis (ver item 3.3) e atualizados e acompanhados pela equipe local. Optamos por utilizar o mesmo sistema de acompanhamento de erros para evitar duplicidade das informações. Ao final do projeto, no entanto, passamos a utilizar uma planilha com o resumo dos erros identificados para que toda a equipe tivesse acesso. Essa estratégia foi fortalecida pela implementação por um dos estagiários de um pequeno sistema em Flash para visualização dos erros reportados. (Vide Figura 12)
4.8. Correção de Erros Prioritariamente após a validação da versão pelo cliente, os erros eram corrigidos antes da implementação de qualquer outra funcionalidade. As estratégias adotadas para evitar que novos erros fossem incorporados foram o uso de testes unitários por mais tempo e a validação de todos os requisitos da etapa. Observamos que nesse processo alguns erros já corrigidos foram repassados 29
para novas versões. Esse problema grave aconteceu quando da compilação das versões para a versão final. A reincidência dos erros deu-se pela não utilização do Merge de arquivos pela equipe de programadores. Os programadores adotaram a estratégia de ajustes através de TAGS dentro dos código fonte. O processo foi revertido pela aplicação de um novo treinamento na ferramenta e pela proibição expressa da utilização de pastas compartilhadas entre as estação.
4.9. Documentação A documentação do código fonte foi realizada no padrão JavaDoc. Todos os arquivos gerados foram identificados e os métodos descritos com seus parâmetros. Os identificadores criados também foram escolhidos de maneira a permitir uma maior legibilidade do código. Sempre que possível foram utilizadas camadas para permitir o encapsulamento de funções mais complexas ou irrelevantes na manutenção do código.
4.10. Implementação da Camada de Persistência A camada de armazenamento dos dados dos alunos nas atividades é conhecida como camada de Persistência. O processo envolvido na implementação era completamente novo para a equipe, o que tornou o prazo de implementação maior que o esperado. Após a implementação foi necessária a sua atualização para uma nova versão, sendo obedecida uma nova arquitetura de acesso e consulta dentro da aplicação. A persistência permite que todas as respostas dos alunos sejam identificadas e guardadas em formato XML. Para posterior recuperação, os dados de armazenamento ficam no servidor Jetty. (ver item 3.5)
30
5. ESTUDOS DE CASOS Este capítulo trata dos dois objetos de aprendizado desenvolvidos durante a elaboração desse trabalho. A Calculadora Esperta e o Blocos Decimais são objetos de aprendizagem do conteúdo Matemático para alunos do ensino fundamental.
5.1. Calculadora Esperta A Calculadora Esperta tem como objetivo ensinar aos alunos a trabalhar com números inteiros e as operações: adição, subtração, multiplicação e divisão. Além da representação trivial de uma calculadora, o aluno tem acesso a um histórico das operações realizadas.
Essa representação é como se fosse uma folha impressa
contendo os cálculos demostrados de uma forma semelhante a forma manual de resolução dessas operações (Figura 13). O Objeto de Aprendizagem está divido em dois modos, de acordo com sua funcionalidade. No modo Ferramenta, o aluno pode fazer operações livremente com a calculadora. O segundo modo é Atividades, onde o aluno possui exercícios a serem resolvidos com base em enunciados. As atividades são passadas para o Objeto de Aprendizagedo através de arquivos XML. Cada conjunto de atividades é inserido em arquivos XML que são importados pelo programa e exibidos ao aluno. O aluno pode obter ajuda para a questão corrente ou fazer uso da calculadora. Ao final das atividades, o aluno pode conferir sua performance, tendo também acesso às respostas corretas. As questões respondidas ficam registradas num banco de dados para posterior conferência pelo aluno e possível impressão, caso haja necessidade. Também terão acesso aos resultados, os professores. O Quadro de Respostas do aluno é armazenado no servidor de páginas em arquivos XML (vide Persistência no item 4.10). O desenvolvimento da Calculadora Esperta foi estruturado no conjunto de classes definidas para o seu uso. Na classe principal estão os atributos para parametrizar o comportamento do Objeto: modo Ferramenta ou modo Atividade. A classe comunica-se com a classe Orientacoes que permite aos alunos obterem ajuda de várias formas.
31
Figura 13: Exemplo de atividade – Calculadora Esperta
Implementada para dar o comportamento fundamental da calculadora, o pacote Calculadora é composto das classes responsáveis pelos valores inseridos pelos alunos, as operações realizadas, além de uma classe para armazenar o histórico de operações. A maior dificuldade encontrada na implementação desse pacote foi a identificação de uma estrutura de dados que permitisse armazenar os objetos visuais do histórico. Como podemos observar na Figura 13, os Movie Clips4 utilizados para representar cada operação devem ser posicionados e reposicionados a medida que o aluno resolve ver as operações efetuadas. Quando o OA é ativado no modo Atividade, o mesmo deverá exibir um conjunto de questões de diversos tipos. Cada tipo de questão deverá ser tratado de forma independente. Por questões de direitos autorais não exibiremos os tipos de questões 4
Elemento do Flash que armazena objetos visuais. Podem ter linhas, textos e outros símbolos. É possível que alguns Movie Clipes sejam animados, ou seja, representem uma sequência de quadros.
32
implementadas. Na aplicação são armazenadas a Pontuação obtida e o Estado de cada atividade. É possível ao aluno Pontuar uma questão como Certa, Errada, ou Meia-Certa no caso de obter êxito após algumas tentativas sem sucesso. O Estado da questão revela se a questão foi respondida, se apenas foi visualizada, se foi solicitada explicação ou ainda se ainda não foi visualizada. Caso o aluno acione o botão explicação, uma nova atividade é exibida com o mesmo nível de dificuldade. O número sequencial da mesma continua, e essa identificação é feita com uma letra B.
Figura 14: Teclado Virtual na Calculadora Esperta
Caso a aplicação seja utilizada numa tela especial, sensível ao toque, é possível realizar a entrada de dados através de um teclado virtual, como mostrado na Figura 14. A interface apresentada tem como principais vantagens a utilização de objetos do mundo real (a calculadora) associados com as noções de numeração posicional. É possível observar novos botões de 10, 100 e 1000 que facilitam ao aluno a entrada de números maiores. Após a implementação observamos a eficácia do Objeto de Aprendizagem 33
principalmente pelos mecanismos de navegação entre as questões e pelo acesso ao Quadro de Respostas (Figura 15).
Figura 15: Quadro de Resposta - Calculadora Esperta
Analisaremos o resultado obtido com base nas Metas de Usabilidade segundo (Preece 2006):
34
Meta
Comentário
Eficaz
A Calculadora Esperta tem sua eficácia comprovada uma vez que permite ao aluno responder as questões e realizar a verificação correta das mesmas. A sua implementação está de acordo com os requisitos, tendo sido implementados melhorias (features) para atender ao cliente.
Eficiente
As interações propostas foram implementadas de maneira rápida, permitindo um feedback rápido. A única maneira da aplicação não ser eficiente é quando o servidor de dados da persistência não estiver carregado. Ocorrendo isso o objeto de aprendizagem pára.
Seguro
Utilizando uma série de restrições como não permitir subtrações que dêem números negativos, números que exedam o Display permite uma maior segurança ao aluno. A existência de mensagens de aviso para as atividades de Reiniciar e Conferir, também demonstram a preocupação com a realização das tarefas de maneira correta. Finalmente a disposição e tamanho dos botões na interface minimiza o risco de teclar em botões que não se queira usar.
Boa Utilidade
A análise dessa meta é realizada com base na facilidade do aluno ter ao lado uma ferramenta importante para achar seus resultados. Alie-se a isso a existência de um histórico que pode ser acessado a qualquer tempo, permitindo a conferência de operações efetuadas.
Fácil de Aprender De acordo com testes de usabilidade com um aluno de 10 anos, a utilização da interface foi intuitiva uma vez que se utiliza de Metáforas bem representadas. A curva de aprendizagem obtida nesse caso foi satisfatória, indicando que a implementação atendeu ao projeto do Objeto de Aprendizagem. Fácil de Lembrar como usar
Pela facilidade de aprendizagem inicial, supomos que a facilidade de lembrar como usar também foi alcançada. Nesse caso é importante observar mais uma vez que os objetos utilizados representam objetos conhecidos do mundo real. Essa iniciativa incentiva a lembrança da funcionalidade de cada um deles.
Tabela 1: Análise da Usabilidade da Calculadora Esperta
35
5.2. Blocos Decimais O Objeto de Aprendizagem Blocos Decimais destina-se a ensinar aos estudantes a trabalhar com números inteiros e fracionários, despertando o raciocínio lógico e perceptivo de forma quantitativa, fazendo comparações com o cotidiano do aluno, utilizando-se de metáforas de objetos reais como moedas e blocos. Esse Objeto de Aprendizagem também possui um modo de exercícios para que o docente possa interagir realizando ações e respondendo a atividades, exercitando o que foi aprendido em sala de aula. Da mesma forma que a Calculadora Esperta, os exercícios também são gravados em um banco de dados e os resultados podem ser impressos ao finalizar todas as questões.
Figura 16: Exemplo de atividade – Blocos Decimais Na Figura 16, podemos observar que existe um local onde o aluno pode arrastar os objetos para realizar seus cálculos. Existem duas visões a serem 36
representadas. A Figura 17 mostra a visão com blocos. Para tanto foi implementada uma estrutura de dados em matriz para representar os espaços vazios e preenchidos de cada um dos “palcos”. Quando o aluno arrasta e solta um objeto para um dado “palco”, o mesmo é preenchido nos espaços correspondentes, evitando que haja sobreposição de objetos. Nas imagens dadas a mesma questão permite a visualização com moedas e blocos. No entanto, isso poderá ser restringido a medida que não seja interessante acontecer. Para cada questão, será armazenado os objetos inseridos na visão “Moedas” e na visão “Blocos”. Quando o aluno escolhe a mudança, automaticamente ocorre o chaveamento entre as estruturas de dados, que refletem na estrutura visual. A medida que os alunos inserem objetos no “palco” o programa aloca espaços nas estruturas de dados. Em dado momento é possível que não hajam espaços disponíveis ou ainda que os objetos estejam desorganizados e impossibilitem a inserção de novos. Para tanto foi implementado um algoritmo de reorganização dos objetos no palco, obedecendo o tamanho e o posicionamento dos mesmos.
37
Figura 17: Blocos Decimais Ao mudar de visão, o algoritmo é ativado e os objetos do palco são reorganizados conforme a sequência das Figuras 16 e 17. A implementação é realizada com base em dois pacotes principais. O pacote Simulador permite que o aluno realize experiências livres com Blocos ou Moedas, possa dividir as mesmas, ou ainda agrupá-las. O uso da lixeira permite a exclusão de objetos. Nas classes desse pacote todos as entidades terão representação visual com base nos objetos criados pelo autor. O pacote de Atividades mantém as questões e respostas dadas pelos alunos. Essa estrutura permite vários tipos de questões. A implementação de cada questões está associada a dois “palcos”: um de moedas e outro de blocos.
38
Figura 18: Quadro de respostas - Blocos Decimais Aqui, também observamos as mesmas características da Calculadora Esperta com relação a eficácia do Objeto de Aprendizagem, compartilhando com os mesmos princípios de navegabilidade entre as questões e o acesso ao quadro de respostas (Figura 18).
39
6. CONCLUSÕES Identificamos nesse trabalho que o processo de elaboração do Objeto de Aprendizagem é tão importante quanto à fase de implementação do mesmo. A concepção de uma boa documentação de requisitos dos conteúdos, além das análise estruturada de classes e pacotes, é de fundamental importância para o sucesso do Projeto. As principais dificuldades técnicas encontradas na implementação dos objetos de aprendizagem usando ActionScript foram a ausência de uma ferramenta robusta para “debug” e a característica da linguagem ser fracamente tipada. Houve problemas no trabalho colaborativo pela inexperiência do uso do sistema de controle de versões. As dificuldades teórico-conceituais ficaram por conta do entendimento e implementação dos requisitos. Na maioria dos casos, as soluções adotadas foram suficientes para trazer os resultados esperados. A escolha da estrutura de dados matricial para armazenamento dos blocos e moedas poderia ser substituída por uma Árvore N'ária. A sua implementação traria uma maior eficiência para as buscas, inserções e exclusões de objetos. Como resultados positivos estão o prazo de implementação dos objetos no tempo de três meses e o total atendimento aos requisitos iniciais do projeto. Atualmente a Positivo Informática continua desenvolvendo novos objetos de aprendizagem para publicar no portal http://www.educacional.com.br. Finalmente observa-se uma evolução qualitativa de toda a equipe envolvida no desenvolvimento do projeto.
40
7. BIBLIOGRAFIA BORIN, J. Jogos e resolução de problemas: uma estratégia para as aulas de matemática. São Paulo:IME-USP;1996. DESSIMONE, Teresa C. Gurgel. Design de objetos de aprendizagem com bases na engenharia de softwares. Universidade Estadual do Ceará; 2006 FRANKLIN, Derek. Macromedia flash MX actionscripting avancado : guia autorizado de treinamento macromedia. Editora: Alta Books, Rio de Janeiro, 2002. GONÇALVES, Maria Emilia F. Projetos Pedagógicos para uso em sala de aula: Ambientes Abertos. Lavras – MG. 2005. Disponível em http://www.comp.ufla.br/monografias/ano2004/Projetos_pedagogicos_ para_uso_em_sala_de_aula_ambientes_abertos.pdf acessado em 02 de fevereiro de 2007. Horstmann, Cay S. Core Java2. Editora: Makron Books, São Paulo, 2004 LECHETA, Ricardo Rodrigues http://www.devmedia.com.br/articles/viewcomp.asp?comp=1982 Disponível em 3 de maio de 2007 MORATORI, Patrick B. Por que utilizar jogos educativos no processo de ensino aprendizagem?. Universidade Federal do Rio de Janeiro; 2003. PRESSMAN, R. S.(1995). “Engenharia de Software”. Trad. Santos, J. C. B dos. 3ª Ed. São Paulo, SP: Pearson Education do Brasil. SANTANA, J Rogério e Borges Neto, Hermínio. http://www.multimeios.ufc.br/arquivos/pc/congressos/congressosintroducao-de-novas-tecnologias-no-ensino-de-matematica.pdf. Disponível em 10 de abril de 2007. SINGH. H. Introduction to Learning Objects. Fonte: www.elearningforum. com/july2001/singh.ppt; 2001. VIANA , Claudemir Edson. O lúdico e a aprendizagem na cibercultura: jogos digitais e internet no cotidiano infantil. 2005. 275 f. Tese (Doutorado em Ciências da Comunicação) - Escola de Comunicações e Artes.
41