Professional Documents
Culture Documents
FACULDADE DE INFORMÁTICA
PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
CURSO DE MESTRADO
AMIGO
Um Agente para MonItorar e Gerenciar infOrmações
À minha estimada e eterna orientadora, amiga e “quase” mãe Lucia Giraffa, pela
orientação dispensada no desenvolvimento deste trabalho e na minha formação profissional e
pessoal. Por ter proporcionado a criação de uma “equipe” de pesquisa com a disponibilização
de dois bolsistas. Por sua ética profissional e pessoal, que serviram (e continuarão servindo)
de modelo para as minhas atitudes. Pelo exemplo de dignidade e responsabilidade com os
compromissos que assume. Pelas conversas e palavras de incentivo. Pelas críticas e apoio nos
momentos de dificuldade. Pelo carinho demonstrado em diversas situações e contextos.
Ao Prof. Dr. Marcelo Blois, pelas revisões técnicas feitas e todas as sugestões
realizadas, as quais contribuíram consideravelmente para a definição e andamento deste
trabalho. Por ter aceitado o convite de fazer parte da nossa equipe de pesquisa, como prof. Co-
Orientador.
Ao Prof. Dr. Crediné Menezes e sua equipe (GAIA), em especial ao seu aluno Hylson
Netto, pela ajuda e atenção dispensadas durante o estudo do ambiente AmCorA e inspiração
do PROOGRAMA. Também ao Prof. Dr. Sérgio Crespo, pela disponibilidade e auxílio
prestado. Pelas idéias, apoio e incentivo à continuidade deste projeto.
Aos meus estimados amigos – Alberto Chemale, Eduardo Gomes, Gabriela Cristina da
Rosa e Patrícia Gomes, que mesmo tendo os convites para os momentos de lazer negados
constantemente não se cansaram de realizá-los, dia após dia. Por terem me escutado “divagar”
sobre meu trabalho, sem nem sequer (em alguns casos) fazerem parte do “mundo” da Ciência
da Computação e terem entendido o contexto da pesquisa.
(Autor desconhecido)
RESUMO
To program a computer can be simple if you have the knowledge about how to
identify, to organise, and to model the solution. It means you know how to write an algorithm.
Nothing is simple if you are a beginner. The students need to learn how they can solve and
organise a problem solution using computer as a tool. So, it is important to create learning
situations based on tasks associated with different exercises complexity level. We developed a
methodology to organise these ideas. The methodology was applied during four years in a
row. The central process in our methodology is to involve the students in laboratory classes'
activities. This approach is good for the student, but it causes teachers' overwork. The teacher
has many activities during the classes. The time is not enough to check all students'
information. The classes occur in fixed periods during the week. So, the students have to
exchange e-mails with the teacher because classes' timetable are not enough to handle with
the student's doubts. The volume generated by the evaluation process increase a lot when we
use a methodology based on incremental knowledge acquisition like we do. The number of
exercises and tasks sent for the students must be organised, classified, and evaluated in a short
period of time. It demands much time by the teacher. Due to overcome those restrictions we
developed an environment to support our classes. This work presents our environment
designed to support our classes concerning Algorithms and Programming novice's
undergraduate students. We first created the methodology, and after that we selected the tools
need to supported it. During four years we use the methodology, the resources embedded into
a framework that was not formalised. After several experiences we decided to join the
resources into a virtual environment, having the methodology principles as uphold. We have
tested those tools without an environment that helps to handle automatically with the amount
information generated by students and the teacher. The PROOGRAMA environment aims to
support teaching/learning activities based on a set of resources and functionalities that allow
students and teacher to exchange information, about results from evaluating process, and
enlarge the possibilities related to the classes done by students and teacher in the same place
at the same time, by using the Virtual Classes approach. The PROOGRAMA offers different
working areas, according to the user that is performing tasks into the environment. The
AMIGO agent also informs the teacher about the student performance related to the
evaluation process. The AMIGO agent will provide a set of reports about each student and all
the class. At this moment, the AMIGO just has conditions to check if the task was attended, if
the file sent by the students contains the type of file expected by the teacher. We can organize
the set of information generated by our methodology into the framework. But we need to
improve the way we handle with the students' preferences and particularities, and improve the
support for the teacher evaluation process. So, if we include more agents into the
PROGRAMA architecture these new agents can helps us to handle with the set of information
that will allow us to have a student model working like personal assistants for students, and
teachers. A Multiagent System has this propriety that able us to include more agents or take it
out according the designer goals, and users necessities.
Figura 3.1 – Exemplo de mapa conceitual parcial dos conceitos da disciplina Lapro ............ 68
Figura 6.1 - Fluxo de execução das atividades da fase Visão .............................................. 104
Figura 6.2 - Fluxo de execução das atividades da Etapa 1 da fase Planejamento................. 109
Figura 6.3 - Diagrama de Pacotes do ambiente PROOGRAMA ......................................... 111
Figura 6.4 - Diagrama de Casos de Uso da ferramenta Agenda de compromissos ............... 112
Figura 6.5 - Arquitetura preliminar do ambiente PROOGRAMA ....................................... 113
Figura 6.6 - Arquitetura interna preliminar do agente AMIGO ........................................... 113
Figura 6.7- Exemplo de interface prototipada em forma de imagem ................................... 115
Figura 6.8 - Arquitetura do ambiente PROOGRAMA: visão simplificada dos componentes
................................................................................................................................... 118
Figura 6.9 - Artefatos a serem produzidos pelo projeto....................................................... 119
Figura 6.10 - Diagrama de atividades do requisito Incluir compromisso ............................. 120
Figura 6.11 – Fluxo de execução das atividades da Etapa 2 da fase Planejamento .............. 121
Figura 6.12 - Diagrama de classes conceituais do ambiente ................................................ 122
Figura 6.13 - Tabelas do banco de dados do ambiente ........................................................ 123
Figura 6.14 - Fluxo de execução das atividades da fase Desenvolvimento........................... 125
Figura 6.15 - Atividade realizada durante a fase Estabilização ........................................... 127
Figura 6.16 - Fluxo de execução das atividades da fase Implantação .................................. 128
BD Banco de Dados
CC Ciência da Computação
ES Engenharia de Software
IA Inteligência Artificial
IE Informática na Educação
LN Lotus Notes
ODBC Open-DataBase-Connectivity
SA Seminário de Andamento
XP Extreme Programming
SUMÁRIO
1 INTRODUÇÃO .......................................................................................................... 16
1.1 Problema e motivação .......................................................................................... 17
1.2 Questão de pesquisa e objetivos ............................................................................ 18
1.3 Estrutura do texto ................................................................................................. 20
1 INTRODUÇÃO
Ao longo dos últimos oito semestres a professora orientadora deste trabalho vêm
utilizando recursos computacionais, tais como e-mail, FTP (File Transfer Protocol) e páginas
Web, como elementos de extensão e mediação das atividades da sala de aula presencial,
inseridos no contexto de sua metodologia de ensino-aprendizagem. O uso destes recursos
gera um volume de informações que necessitam ser gerenciadas manualmente pela
professora, levando em conta que os recursos são independentes uns dos outros e não há um
controle automático das informações recebidas dos alunos. A demanda aumenta, em especial,
em épocas próximas a entregas de trabalhos e exercícios, em função da professora utilizar o e-
mail como canal de comunicação para entrega dos resultados das atividades e esclarecimento
de dúvidas. Segundo [DRU03], esta sobrecarga de trabalho dos professores é inerente a
utilização de um ambiente de Ensino a Distância (EAD) como apoio às atividades de ensino,
tanto em situações presenciais como não-presenciais, devido a grande quantidade de
informações a serem acompanhadas no decorrer do andamento da disciplina.
Com a adoção desta solução, a professora visa reduzir sua carga de trabalho
operacional, no que tange a organização das materiais enviados pelos alunos, bem como
automatizar o processo de notificação aos alunos de compromissos vinculados à disciplina,
buscando lembrá-los de seus comprometimentos com a mesma.
Este agente foi denominado AMIGO, Agente para MonItorar e Gerenciar infOrmações. O
ambiente PROOGRAMA foi proposto e definido neste trabalho, buscando fornecer subsídios
para a criação de um ambiente de apoio ao processo de ensino-aprendizagem próprio que
permita a inclusão de outros agentes de software para auxiliar no processo de avaliação dos
alunos. A definição do PROOGRAMA se deu baseada nas características e funcionalidade de
maior relevância providas pelos trabalhos correlatos analisados. O desenvolvimento do
ambiente está relacionado a um projeto de pesquisa de mesmo nome que o ambiente. Este
projeto será elaborado em parceria com grupos de pesquisa em Inteligência Artificial
Aplicada a Educação parceiros do grupo ao qual este trabalho está vinculado, o Grupo de
Informática na Educação1 da Faculdade de Informática (GIE/FACIN), da PUCRS.
• Definir como o agente será percebido pelo usuário em seu ambiente de trabalho;
• Definir o agente de tal forma que seja possível ser configurado, de acordo com as
preferências do usuário;
1
Consulte a página do grupo (http://www.inf.pucrs.br/~giraffa/gie/index.html) para maiores informações.
20
• Salas de aula virtuais, as quais estendem o conceito dos sistemas de autoria, pois
ampliam a interatividade e cooperação, por exemplo, tem-se o AulaNet [FUK00] e
o ClasseVirtual [MEL98];
gerenciamento de informação que oferecem. A escolha destes ambientes se deu devido ao fato
de existir cultura e experiência no GIE/FACIN da PUCRS com estas ferramentas. Também,
em razão da possibilidade de se explorar aspectos que vão ao encontro da proposta
construtivista de trabalhar a produção e aquisição de conhecimento, proposta esta adotada
pela professora orientadora deste trabalho na condução de suas aulas (Detalhes sobre a
metodologia de ensino-aprendizagem adotada pela professora são apresentados no Capítulo
3). Apresenta-se a seguir as principais características e funcionalidades dos ambientes
estudados e, em seguida, uma breve análise comparativa dos mesmos.
2.1.1 AmCorA
2
Em sua nova versão, o AmCorA está disponível em três instâncias, instaladas em diferentes servidores e
funcionando de forma independente uma da outra. Apesar do código binário do sistema ser o mesmo para ambas
as instâncias, as interfaces e funcionalidades disponibilizadas diferem entre si, bem como também se difere o
público-alvo destas instâncias. Neste contexto, as informações apresentadas nesta seção dizem respeito à
instância que possui como público quase que exclusivamente usuários vinculados a disciplinas oferecidas pela
Universidade Federal do Espírito Santo (UFES). Isto se deve ao fato de se ter acesso apenas a esta instância, a
qual está disponível em http://www.gaia.ufes.br/amcora.
25
A área Sala Individual, cujo menu de opções é apresentado na Figura 2.2, é a área
particular de um usuário. Segundo [NET03], esta área oferece as seguintes funcionalidades e
ferramentas:
grupo, para a qual qualquer usuário pode submeter um arquivo para divulgação, mas somente
o Coordenador é quem pode excluí-los; (iv) Escaninho, que pode ser visto como um local
para entrega de trabalhos no contexto de uma aula ou curso [NET03]; (v) BigBrother; (vi)
Meus Grupos; (vii) Configurador; (viii) Minha Sala, permitindo que o usuário retorne a sua
área particular; e (ix) Sair. Estas funcionalidades e ferramentas diferenciam-se por atender a
um grupo específico e não apenas a um único usuário.
2.1.2 AulaNet
3
Estudou-se a versão 2.0. Maiores informações em http://www.les.inf.puc-rio.br/groupware.
4
Segundo [FUK02], groupware pode ser entendido como a tecnologia baseada em mídia digital que dá suporte
às atividades de pessoas organizadas em grupos que podem variar em tamanho, composição e local de trabalho.
30
habituais, como o editor de textos, e deixem por conta do ambiente a gerência e a navegação
dos aprendizes.
Segundo [LUC99], também são previstos outros dois papéis no processo de ensino-
aprendizagem proporcionado pelo ambiente, quais sejam:
Quanto aos serviços do AulaNet, que possuem seus acessos controlados através da
identificação do usuário por um nome e uma senha, são divididos baseados no princípio que
para aprender em grupo um indivíduo tem que compartilhar idéias (se comunicar), estar em
sintonia com os outros participantes do grupo (se coordenar) e realizar as tarefas
satisfatoriamente (cooperar). Os serviços são colocados à disposição do docente durante a
criação e atualização de um curso, permitindo a este selecionar quais vão se tornar disponíveis
aos aprendizes. A Figura 2.3 apresenta a área de trabalho do ambiente, composta de uma
janela principal e de um menu representado graficamente através da figura de um controle
remoto.
31
Segundo [KIS02], além de permitir a seleção dos serviços desejados, o ambiente ainda
oferece a opção de configuração da interface gráfica, permitindo a adaptação de padrões e
estilos conforme as preferências da Instituição que mantém o servidor do AulaNet. Por
exemplo, podem ser modificadas as cores, fontes, logotipo e imagem de fundo da aplicação,
entre outras características gráficas.
• Download: possibilita que o aprendiz veja uma lista de todos os arquivos que
compõem os conteúdos do curso e faça a transferência para um disco na sua
máquina ou rede local.
Segundo [KIS02], além dos serviços apresentados, o usuário ainda tem a sua
disposição uma ajuda on-line, denominada “Dicas”. Este serviço está presente em quase todas
as janelas do ambiente, permitindo que o usuário acione-o para visualizar uma explicação
referente ao tópico em questão, esclarecendo suas dúvidas.
Como os serviços oferecidos pelo AulaNet são considerados como componentes que
podem ser adicionados ou não para um curso específico, a critério do coordenador deste
curso, eliminando deste a necessidade de conhecer e dominar alguma tecnologia específica
para divulgação do curso na Internet, considera-se que o ambiente facilita consideravelmente
a tarefa dos docentes [FUK00].
2.1.3 LearningSpace
5
Estudou-se as versões 2.5, 3.0 e 5.01 como um todo, uma vez que as bases que compõem o ambiente possuem
versões diferenciadas. Home page do produto: http://www.lotus.com/products/learnspace.nsf/wdocs/homepage.
35
A base Schedule apresenta a estrutura do curso criada pelo gerente e/ou instrutor em
termos do que deve ser feito e quando. No Schedule são apresentados os objetivos do curso e
guias de navegação para acesso a materiais do curso, exercícios, testes de reforço e
avaliações. O Schedule é projetado em módulos que devem ser desenvolvidos pelo estudante,
dentro de uma estrutura pré-definida pelo gerente e/ou instrutor. A Figura 2.4 apresenta a
interface do módulo Schedule, onde se pode observar à direita a listagem dos módulos
projetados para um curso de “Introdução a HTML”, o qual é identificado no canto esquerdo
superior. Logo abaixo desta identificação é possível observar quatro ícones, os quais provêem
acesso às bases de dados oferecidas para o aluno pelo LearningSpace. A tarja abaixo destaca
em qual base de dados o usuário está conectado no momento.
36
2.1.4 WebCT
• Instrutor (ou Monitor): podem ser cadastrados vários instrutores para um curso.
O instrutor dentro do sistema tem os mesmos privilégios dos estudantes, porém
pode corrigir provas, uma vez que sua função é auxiliar o professor no decorrer do
curso;
A Figura 2.5 apresenta os ícones das ferramentas oferecidas pelo WebCT. Somente as
mais relevantes no contexto deste trabalho serão descritas a seguir, segundo [GOL98; KIS02;
WEB00]:
professor também pode criar referências para URLs externas ao ambiente, que
podem ser acessadas diretamente após um clique sobre as mesmas.
• Chat: realização de conversas em tempo real. Para cada curso existem quatro salas
para discussão de assuntos gerais, uma para discussão sobre o curso e uma última
com acesso liberado para todos os cursos, totalizando seis salas por curso. O
conteúdo discutido nas quatro primeiras salas fica registrado e disponível para o
professor consultar quando desejar e utilizar como apoio à avaliação da
participação e contribuição dos alunos.
• Página pessoal: cada participante do curso possui um link que lhe permite
disponibilizar sua página pessoal. Além disto, é disponibilizado um pequeno
espaço para o aluno apresentar aos seus colegas links sobre outros assuntos.
• Testes: são respondidos pelos alunos como forma de avaliação do seu rendimento
no decorrer do curso e também para observar sua compreensão dos assuntos
estudados. Também podem ser disponibilizados pelo professor testes sem caráter
avaliativo, apenas para que o próprio aluno verifique seu desempenho e
conhecimento sobre os assuntos tratados. Para elaborar os testes, o professor conta
41
Com as demais ferramentas que o ambiente oferece, aqui não elencadas, é possível
realizar as seguintes atividades: criar um índice do conteúdo, criar um glossário de palavras,
buscar por um conteúdo específico, acessar o material instrucional através de um CD-ROM,
gerenciar usuários do curso, enviar a resolução de tarefas ao professor, acompanhar o
desempenho dos alunos (em todos os acessos ao ambiente e desenvolvimento das tarefas
designadas) e gerar relatórios estatísticos e gráficos de acompanhamento dos alunos (ex.
quanto tempo um aluno permaneceu utilizando o ambiente, quais links consultou, que
materiais foram acessados, entre outros). Estas duas últimas funcionalidades, em específico,
caracterizam um aspecto bastante importante do WebCT, o de prover apoio à gerência do
andamento dos cursos e desempenho dos alunos. São estas características que permitem ao
professor expandir e complementar o processo de avaliação dos alunos durante o andamento
de uma disciplina ou curso (e, em especial, foram investigadas para serem contempladas no
ambiente proposto no Capítulo 4).
Acredita-se que estas características, em parte, se devem ao fato das diferentes origens
dos ambientes – acadêmica e comercial, também de seus diferentes propósitos e até mesmo
tempo de desenvolvimento, pois um ambiente disponível há mais tempo para a comunidade
tem maiores chances de ter recebido feedbacks dos seus usuários e melhorado os aspectos
indicados pelos mesmos. Um ambiente de origem acadêmica agrega os conhecimentos que
circulam dentro do grupo de pesquisa onde está inserido, beneficiando-se de resultados
paralelos (pesquisas que ocorrem simultaneamente ao projeto) e, pode utilizar uma equipe
interdisciplinar para ampliar as discussões e contribuições que permitem garantir qualidade
tanto sob o ponto de vista pedagógico, como tecnológico. Ambientes mais tradicionais e
abertos à comunidade permitem maior número de usuários testando e refinando as
funcionalidades. Outro aspecto importante é a questão de proposta pedagógica, geralmente
ligada ao projeto de ensino-aprendizagem do grupo ou instituição, o qual possui prós e
contras. O maior benefício é uma modelagem bem definida em função de objetivos
educacionais condizentes com a proposta da instituição, ao passo que ambientes comerciais
tendem a ser mais genéricos e flexíveis para permitir a adequação a diferentes tipos de
objetivos educacionais, fato este que, muitas vezes, acaba por deixar o ambiente muito
descaracterizado, necessitando do usuário grande experiência para poder tirar partida de suas
potencialidades.
comunicação diz respeito aos avisos sobre atividades do curso, novidades ou notícias que
devem ser informadas aos participantes. Os avisos são, de forma geral, disponibilizados no
ambiente, do mais recente ao mais antigo, e o aluno deve estar atento e verificando
constantemente o espaço destinado para identificar novidades. Não existe um mecanismo de
notificação automático sobre a existência de um novo aviso.
esclarecimento de dúvidas, somente o AmCorA oferece uma ferramenta destinada a este fim,
chamada Moonline. Esta ferramenta dá apoio ao esclarecimento de dúvidas através de
perguntas e respostas, conforme mencionado anteriormente.
7
Artefato é um termo geral para qualquer tipo de informação criada, produzida, alterada ou utilizada por
participantes do projeto de um sistema [JAC99]. Por exemplo, diagramas de caso de uso especificando os
requisitos e os códigos-fonte de um software são considerados artefatos de um projeto de software.
8
Multinacional da área de transporte e serviços automotivos.
47
As fases de projeto propostas pela Microsoft para o PDS são: Visão (Envisioning),
Planejamento (Planning), Desenvolvimento (Developing), Estabilização (Stabilizing) e
Implantação (Deploying). Cada uma destas fases possui objetivos específicos e, além das
respectivas atividades, também definem documentos a serem adotados visando registrar as
especificações e decisões tomadas [MIC02a; MIC02b]. A fase de Visão tem como principal
objetivo estabelecer entre a equipe do projeto, que é organizada neste momento, uma visão
comum do problema que está sendo proposto. Neste sentido, é delineada uma visão geral de
solução para o problema e identificado o escopo que será atendido naquele momento. Sugere-
se fazer um levantamento preliminar dos riscos relacionados ao desenvolvimento do projeto e
dos recursos (humanos e físicos) que serão necessários para desenvolvê-lo. É neste momento
que se deve estabelecer a forma de trabalho da equipe, como, por exemplo, pode-se
mencionar a freqüência das reuniões, os meios de comunicação entre cliente e equipe e a
gerência de configuração9 (ou de versões) dos artefatos gerados.
9
Do original em Inglês, Configuration Management.
49
Para que tais preocupações possam ser atendidas, [GOM03] destaca a importância da
elicitação de requisitos para projetos de software educativos. O autor defende que o conjunto
de requisitos especificados deve atender não só aspectos do processo de aprendizagem dos
alunos, mas também aspectos do processo de mediação a ser promovida pelo professor, o qual
pode beneficiar-se de funcionalidades específicas do sistema, como, por exemplo, o registro
de passos realizados pelos alunos ou a prévia organização de seqüência de problemas.
Encontra-se na literatura diversos relatos, tais como [MCC96; PRE01; SAW99], que
apontam que a tarefa de elicitação de requisitos em domínios muito específicos não é trivial,
mesmo para profissionais da área de ES. Segundo [GOM03], esta tarefa ainda tem sido
bastante desenvolvida de forma não-sistemática. Ou seja, utiliza-se a abordagem tradicional
de questionar o cliente e o usuário sobre o que desejam que seja contemplado no software
através de conversas informais ou entrevistas semi-estruturadas. Uma tentativa de formalizar
este processo é proposta por [NIE00]. O autor propõe que a prototipação e validação da
interface gráfica do software é uma forma organizada de expressar e complementar a
identificação dos requisitos. Tal procedimento busca garantir que os requisitos estarão
atendendo os aspectos cognitivos esperados para uma boa aprendizagem. [PRE01] destaca o
uso desta prática, em especial, para aplicações desenvolvidas para funcionarem na Web.
AmCorA. Com isto, observa-se que a afirmação inicial desta seção, da necessidade de seguir-
se um processo de desenvolvimento formal, deixou de ser uma preocupação única dos
desenvolvedores de aplicações comerciais e de grande porte. A comunidade de Informática na
Educação (IE) necessita integrar-se com profissionais da área de ES para buscar subsídios
para o desenvolvimento dos programas educacionais.
Um agente é uma entidade real ou virtual, imersa em um ambiente sobre o qual ela é
capaz de agir, que dispõe de uma capacidade de percepção e de representação
parcial deste ambiente, que pode se comunicar com outros agentes e que possui um
comportamento autônomo, conseqüência de suas observações, de seu conhecimento
e das suas interações com os outros agentes [FER91].
Um agente é uma entidade à qual nós podemos associar uma identidade única, e que
é capaz de executar um processamento de cálculo. Um agente pode ser considerado
como um meio que produz um certo numero de ações, a partir de seu conhecimento
e dos mecanismos internos que lhe são próprios [GAS92].
Um agente é uma entidade que percebe seu ambiente através de sensores, e age
sobre o mesmo utilizando-se dos executores [RUS95].
Esta abordagem reativa foi introduzida por [BRO86] no domínio da robótica. Ante a
fala de resultados satisfatórios dos robôs baseados em sistemas cognitivos, principalmente em
ambientes dinâmicos e desconhecidos, ele propôs robôs bem mais simples, baseados em ações
elementares ativadas diretamente em resposta a determinados estímulos (percepção), segundo
uma prioridade pré-definida [ALV97]. Neste sentido, segundo [ALV97; HÜB03], as
principais características dos agentes reativos são:
• Não há memória das ações: os agentes reativos não mantêm um histórico de suas
ações, de forma que o resultado de uma ação passada não exerce nenhuma
influência sobre as suas ações futuras.
Sobre os agentes cognitivos, estes são capazes de raciocinar a partir de suas intenções
e crenças, criar planos de ações, executá-los e revisá-los, caso seja necessário [MOU96].
Esses agentes são considerados como sistemas de planejamento, pois podem selecionar seus
objetivos, de acordo com sua motivação e raciocinar sobre eles (detecção e resolução de
conflitos entre seus planos). Segundo [ALV97; FER91], suas principais características são:
54
• Mantêm uma representação explícita (no código) de seu ambiente e dos outros
agentes que interagem consigo;
• Podem manter um histórico das interações e ações passadas, isto é, têm memória
do passado;
Da mesma forma que propôs uma arquitetura para os agentes reativos, [RUS95]
também apresentou uma definição de arquitetura para os agentes classificados como
cognitivos (Vide Figura 2.7).
a possibilidade da aplicação funcionar no sistema operacional Linux, por ser este o sistema
instalado no servidor Web que o grupo tem a sua disposição. Sendo assim, optou-se pela
linguagem Java. Outras características desta linguagem, as quais contribuíram para a escolha
da mesma, são apresentadas na Seção 2.4.1.
2.4.1 Java
10
Salienta-se que, com a continuidade do projeto e aumento da complexidade das funcionalidades e ferramentas
disponibilizadas, talvez esta decisão deva ser reavaliada, uma vez que o MySQL não suporta uma série de
recursos mais avançados (Vide último parágrafo da Seção 2.4.5).
57
popularidade da Internet estava no seu auge, os esforços foram direcionados para aplicações
disponibilizadas através da Web.
• Exceto por alguns tipos primitivos, tais como números inteiros e flutuantes, quase
tudo na linguagem é tratado como um objeto, sendo que as referências a estes
objetos não são ponteiros como em C e sim vetores. O uso destes vetores traz
benefícios em termos de segurança;
Camada cliente
Enterprise
Servlets
Beans
Camada de negócios
Banco de
dados
Camada de informações
Figura 2.8 - Camadas (ou níveis) da plataforma J2EE
59
2.4.2 Servlets
Servlet é uma das mais importantes tecnologias Java e a base para o desenvolvimento
de aplicações para a Web usando esta linguagem de programação. Surgiu em 1996,
desenvolvido pela Sun Microsystems11, a partir da necessidade de sanar a deficiência dos
CGIs (Common Gateway Interfaces) em tratar grandes quantidades de informações
dinâmicas12 associadas a páginas HTML [KUR02]. Segundo [HOR 00; HUN 02 apud LIC03;
SUN03b], algumas de suas principais características são:
Toda classe servlet deve implementar a interface Servlet, utilizando-se dos pacotes
javax.servlet e javax.servlet.http [KUR02]. Nesta interface estão definidos todos os
métodos para estabelecer a comunicação com clientes. A comunicação entre uma classe
servlet e um cliente se dá por meio de dois objetos instanciados das classes: ServletRequest e
o ServletResponse. A primeira encapsula as funções de comunicação do cliente para o
servidor, permitindo que a servlet receba dados, tais como os oriundos de formulários HTML,
conforme mencionado. A segunda, por sua vez, permite que os dados sejam transmitidos para
a máquina cliente [LIC03]. As Figuras 2.9 e 2.10 apresentam, respectivamente, os códigos-
fonte da página HTML e da classe servlet de um exemplo tradicionalmente encontrado em
livros para iniciantes em programação de computadores, denominado “Hello World”. Este
exemplo tem como objetivo apresentar na tela do usuário a frase “Hello World!” após o botão
disponível ser apertado.
61
Outra característica de um programa servlet é que este possui um ciclo de vida pré-
estabelecido, determinado por três métodos da interface Servlet, quais sejam: init, service e
destroy [DEI00; KUR02]. O init() é o primeiro método executado no momento em que o
servlet está sendo carregado. É através deste método que ocorre a leitura das configurações
estabelecidas pelo sistema e a inicialização das estruturas de dados. Caso um servlet precise se
conectar a uma base de dados durante sua execução, é através deste método que esta conexão
será estabelecida. O método service() é o responsável por receber a requisição e retornar a
resposta ao cliente. Para tal, o método recebe um objeto do tipo ServletRequest e devolve um
do tipo ServletResponse. Para remover o servlet da memória do servidor, o método deploy()
deve ser invocado. Caso necessite de memória e seja detectado que o servlet não está sendo
utilizado no momento, o método será ativado automaticamente, liberando espaço [KUR02].
<HTML>
<HEAD>
<TITLE>Exemplo de servlet usando o metodo GET</TITLE >
</HEAD>
<BODY>
<FORM
ACTION=”http://localhost:8000/HelloApp/servlet/MeuHelloWorldExample”
METHOD=”GET”>
<P>Clique o botão para acionar a servlet!</P>
<INPUT TYPE="submit" VALUE="Buscar página">
</FORM>
</BODY>
</HTML>
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
out.println(“<HTML>”);
out.println(“<HEAD>”);
out.println(“<TITLE> PAGINA TESTE </TITLE>”);
out.println(“</HEAD>”);
out.println(“<BODY>”);
out.println(“<H1> Hello World! </H1>”);
out.println(“</BODY>”);
out.println(“</HTML>”);
out.close();
}
}
De acordo com a própria Sun [SUN03c], “JSP é uma extensão da tecnologia servlet,
criada para dar suporte à geração de páginas HTML e XML, sendo possível combinar dados
estáticos com dinâmicos de forma bastante simples”. Em outras palavras, uma página JSP é
um documento texto que contém dois tipos de texto: o estático, que pode ser expresso em
HTML ou XML, entre outros; e o dinâmico, expresso através de elementos JSP, responsáveis
por construir as informações dinâmicas [COP03]. Com esta solução, passou a ser possível
alterar a interface de uma página sem a necessidade de alterar o seu conteúdo.
Segundo [KUR02; NET02], ao ser chamada por um usuário pela primeira vez, uma
página JSP é compilada gerando um servlet que, posteriormente, constrói de forma dinâmica
esta página e retorna o resultado ao cliente, para apresentação no seu navegador. Esta
compilação só ocorre no caso do servlet associado à página JSP não existir ou a versão desta
página ser mais atual que a versão do servlet existente. Isto evita que chamadas posteriores a
página JSP gerem novas compilações, aumentando assim o rendimento do sistema.
A Figura 2.11 apresenta o código-fonte de uma página JSP. Este simples exemplo
apresenta na interface para o usuário dois botões, SomaGlobal e ZeraGlobal, os quais
implementam um contador e zeram o valor deste contador, respectivamente, dependendo o
botão que for acionado. Os trechos limitados entre os caracteres “<%” e “%>” indicam
elementos JSP. Uma vez que a tecnologia JSP faz parte do pacote J2EE, esta também utiliza
a linguagem Java, o que lhe proporciona independência de plataforma e servidor. Informações
sobre a sintaxe proposta podem ser encontradas em [SUN03c].
63
2.4.4 Tomcat
13
Do original em Inglês, Container.
64
fins de estudo. O Tomcat é o contêiner oficialmente reconhecido pela Sun, apesar de ser
mantido pelo Projeto Jakarta14, da Apache Software Foundation desde 1999.
Por ser uma implementação de código aberto, o Tomcat tem sido incorporado a
diversos servidores de aplicação, permitindo a melhoria de suas versões por diferentes grupos.
Segundo [JAM 03 apud LIC03], é composto por três componentes principais:
• Catalina: tem a função de gerenciar o ciclo de vida dos servlets, decidindo quando
gerar novas instâncias ou quando descartá-las para a liberação de memória, bem
como é o responsável pelo mapeamento de URLs para os servlets, fazendo a
devolução do documento gerado, em geral uma página HTML;
2.4.5 MySQL
14
A Sun cedeu o código-fonte inacabado deste contêiner para a Apache, a qual o incluiu no Projeto Jakarta,
dedicado ao estudo de tecnologias servlet e JSP. Este projeto agrega outros dois grandes subprojetos, o
Watchdog (ferramenta para validar servlets e páginas JSP) e o Taglibs (um repositório de tags JSP) [SUN03e].
65
versão baseada no mSQL, em função do mesmo não estar mais atendendo as necessidades de
velocidade e flexibilidade esperadas pelo grupo para o desenvolvimento de suas aplicações.
Por ter sido concebido para manipular uma base de dados com maior rapidez e isto ter
se confirmado após um conjunto de testes, o MySQL é um servidor de BD ideal para a
Internet [MYS02]. Além disto, também oferece segurança no tratamento de requisições e uma
gama de opções de conexão com o servidor do BD, entre elas, sockets TCP/IP e ODBC
(Open-DataBase-Connectivity).
Figura 3.1 – Exemplo de mapa conceitual parcial dos conceitos da disciplina Lapro
• Página WWW – World Wide Web (incluso FTP): local onde são
disponibilizados os materiais das disciplinas, o que inclui conteúdos, agenda das
atividades mês-a-mês, registro das interações, descrição das atividades de aula ou
extraclasse, materiais complementares e uma biblioteca virtual e digital, dentre
outros;
alguma dúvida sobre algum termo novo descoberto durante a leitura (ou mesmo no decorrer
das aulas), a professora solicita que os alunos investiguem seu significado e enviem o
resultado da pesquisa para ser disponibilizado aos demais colegas. Desta forma, a leitura e
pesquisa são incentivadas. Quando da adoção de algum livro, a seqüência de leitura para este
recurso é indicada na página da disciplina. A agenda, também disponibilizada na página,
permite ao aluno conhecer o cronograma da disciplina.
Cada aula inicia com um resumo dos principais pontos indicados para leitura e depois
são desenvolvidas atividades práticas relacionadas com a lista de exercícios disponibilizada
previamente na página (Esta lista também é entregue durante a aula).
Evita-se a resolução dos exercícios por parte da professora e busca-se uma postura
menos diretiva por parte desta. O problema será resolvido utilizando as contribuições dos
alunos. Neste caso, a professora funciona como elemento mediador que coloca as informações
no quadro e as disponibiliza para todos os alunos. Ou seja, pode ser vista como facilitador e
não um guia que apresenta uma solução passo-a-passo. A professora incentiva os alunos a
colocarem suas soluções (corretas ou não) para serem compartilhadas com os colegas. Desta
forma, a turma pode constatar que não existe um modelo único de solução. Cada pessoa é um
ser único no sentido de processar as informações. Cada um pode perceber os problemas de
forma diferente. Logo, cada um elabora soluções diferentes e todas estas soluções podem estar
70
atendendo ao problema. O que vai ocorrer é que algumas soluções são mais otimizadas
(melhor elaboradas) do que outras. Não se pode exigir que um aluno, em uma fase inicial de
construção de conhecimento, além de conseguir elaborar o algoritmo, desenvolva-o de forma
otimizada. A etapa de otimizar (melhorar o algoritmo já elaborado) é subseqüente ao processo
de elaboração da primeira versão. Esta etapa é muito mais complexa e difícil para o aluno
iniciante.
Esta experiência com uso destes espaços virtuais como elementos de extensão e
mediação das atividades da sala de aula presencial resultou em vários pontos positivos na
condução da disciplina e no aproveitamento dos alunos. Esta abordagem vem sendo utilizada
pela professora orientadora deste trabalho há oito semestres. A cada semestre foi-se refinando
aspectos operacionais relativos ao uso dos recursos de apoio, distribuição das informações
sobre a disciplina e outros. Os pontos onde foram feitas as maiores alterações são:
71
estes são enviados via e-mail. Este volume de trabalho se dá em função de não existir um
ambiente integrador dos recursos adotados, exigindo que as informações sejam gerenciadas de
forma manual pela professora. Ou seja, a mesma precisa identificar a qual exercício ou
trabalho da turma o e-mail está relacionado, salvar o arquivo anexado, localizá-lo em seu
computador e verificar se corresponde ao tipo de arquivo solicitado, para somente após este
processo tomar conhecimento do conteúdo do arquivo.
4 O AMBIENTE PROOGRAMA
Cada disciplina pode ser oferecida para diversos cursos e possuir mais de uma turma.
Da mesma forma, o número de uma turma pode ser disponibilizado para mais de uma
disciplina, de diferentes cursos16. Desta forma, o professor deve fornecer os dados do curso,
da unidade acadêmica a que este curso pertence, do nome da disciplina que irá ministrar e do
número da turma quando solicitar ao administrador a formação de uma turma em específico.
Além destes dados, também deve informar o nome, o número da matrícula e o e-mail de cada
um dos alunos que irá cursar esta disciplina na turma indicada. A informação destes dados
pode ocorrer pessoalmente (o professor entrega os dados ao administrador em um encontro
face-a-face) ou através de e-mail.
16
Apesar desta definição ter se baseado nas regras estabelecidas pela Universidade a qual este projeto de
pesquisa está vinculado (PUCRS), tomou-se o cuidado de especificar a relação entre os conceitos da forma mais
genérica possível, para permitir a utilização por outras instituições de ensino. A utilização do ambiente também é
possível nas demais Unidades Acadêmicas da Universidade, caso desejado.
75
Depois de formada uma turma de uma disciplina, os usuários podem dar início a
utilização do PROOGRAMA. Para acessar suas respectivas áreas de trabalho, os usuários
devem utilizar o número da sua matrícula (fornecido pela Universidade); uma senha de
77
Caso o usuário esqueça sua senha de acesso ao ambiente, este pode solicitar que a
mesma seja enviada para sua conta de e-mail. Basta acessar a opção “Esqueci minha senha”
na tela de acesso ao ambiente e informar sua matrícula, e-mail e palavra-secreta. Esta palavra,
a qual o próprio usuário especifica em Informações Pessoais (ferramenta descrita a seguir
neste capítulo), é um mecanismo de segurança caso o usuário necessite solicitar o envio de
sua senha para uma conta de e-mail. Somente o próprio usuário deve saber qual é esta palavra.
Os usuários ainda podem visualizar as informações sobre a equipe responsável e a versão
atual do ambiente, ou enviar um e-mail com sugestões ou comentários gerais sobre o
ambiente, também a partir da tela de acesso do mesmo. O Quadro 4.II apresenta a relação de
funcionalidades disponibilizadas na tela de acesso ao ambiente, bem como relaciona estas
funcionalidades aos perfis de usuário que possuem acesso a cada uma das mesmas.
conforme pode ser observado na Figura 4.3 para a área de trabalho do aluno17 (A tela da área
de trabalho do perfil de usuário Professor pode ser vista no Apêndice A).
17
Exceto pelas ferramentas Agenda, Atividades, E-mail e pelo agente AMIGO, as demais possuem apenas caráter
ilustrativo. Isto se deve ao fato deste trabalho de Mestrado ter um escopo de desenvolvimento restrito em relação
a todas as ferramentas definidas para comporem o ambiente.
79
ILA
Bibliografia Atividades
Teste de Algoritmos
Material do Curso
Plano de aulas
AMIGO E-mail
Agenda de comprom.
Para auxiliar no suporte ao esclarecimento das dúvidas dos alunos, tem-se a ferramenta
Moonline. Conforme já apresentado no Capítulo 2, seu principal objetivo é permitir que os
indivíduos pertencentes a um mesmo ambiente de interação virtual possam interagir entre si, a
fim de esclarecer dúvidas [GAV98; GAV00]. Apesar de dar suporte ao esclarecimento de
dúvidas genéricas, a ferramenta será usada para esclarecer apenas dúvidas relacionadas ao
material de apoio disponibilizado pelo professor (somente no formato HTML, conforme
definição original da ferramenta), uma vez que relaciona a dúvida à uma seção ou tópico do
material disponibilizado. A vantagem desta ferramenta é que a pergunta para a dúvida pode
ser formulada no momento que o aluno estiver estudando o material, considerando a leitura
on-line do mesmo, através do link “Moonline”, disponível junto a cada página do material de
apoio. O autor da dúvida não é identificado, buscando deixar os alunos à vontade para
questionar. Intencionalmente as dúvidas são enviadas direto ao monitor da disciplina, caso
este não saiba respondê-la, o mesmo pode redirecionar a dúvida para o professor. No caso de
não haver um monitor para a disciplina, as dúvidas são diretamente enviadas ao professor.
Este módulo oferece ferramentas para comunicação direta entre os integrantes de uma
turma, quais sejam: E-mail, Chat e Fórum. A ferramenta E-mail favorece a comunicação
privada entre os participantes da turma ou mesmo com pessoas externas a mesma.
Considerando que o PROOGRAMA tem como objetivo dar suporte às atividades de ensino-
aprendizagem das disciplinas de Algoritmos e Lapro, oferecidas pela FACIN da PUCRS18, e
visto que todos os alunos dos cursos desta Faculdade possuem uma conta de e-mail vinculada
ao seu servidor de e-mails, definiu-se este servidor como o padrão para leitura
(pop3.inf.pucrs.br) e envio (smtp.inf.pucrs.br) de e-mails. O usuário pode configurar qualquer
outro servidor, desde que o mesmo tenha endereços para os protocolos POP e SMTP, de
recebimento e envio de e-mails, respectivamente. É importante observar que as mensagens
lidas através do ambiente não serão mantidas no servidor originário, mas porém serão
armazenadas no ambiente, podendo ser acessadas sempre que desejado.
Os usuários podem realizar conversas em tempo real (ou seja, síncronamente). Para
tal, basta estarem conectados ao ambiente. Estas conversas são suportadas pela ferramenta
Chat. Os textos gerados durante a conversa (chat) podem ser salvos a qualquer momento
desta conversa. As salas para ocorrência das conversas seguem os padrões dos demais
recursos desta natureza. Isto é, possuem um nome e uma lista das pessoas que estão utilizando
18
Isto não impede que o ambiente seja usado por outros departamentos da Universidade ou instituições de países
que tenham o Português como língua oficial.
86
aquele espaço virtual. Existe uma sala padrão, habilitada constantemente no ambiente. Caso o
professor ou o monitor deseje discutir sobre um determinado assunto, pode ser criada uma
sala específica. Aconselha-se que o nome atribuído a esta sala faça relação ao assunto a ser
conversado, como, por exemplo, sala de discussão ou sala de revisão. O professor ou o
monitor ainda pode restringir o acesso a estas salas, caso desejem conversar com um grupo
restrito de alunos, selecionando o nome dos alunos que terão acesso ao definir a sala.
dos links indicados depende da conferência manual do professor ou do monitor, uma vez que
o ambiente não confere automaticamente se os links estão disponíveis. De forma semelhante
como ocorre na ferramenta Glossário de termos, as bibliografias também podem ser impressas
e salvas.
Figura 4.6 – Entrega da resposta de uma atividade por um aluno integrante de um grupo
As atividades definidas e o envio das respostas por parte dos alunos podem ser
monitorados, visando manter o professor informado sobre a submissão das resoluções, bem
como notificar os alunos da proximidade de encerramento do prazo de desenvolvimento de
uma atividade. Este monitoramento é realizado pelo agente AMIGO e pode ser configurado
pelo professor. (Vide Capítulo 5 para detalhes sobre o agente). Os resultados deste
monitoramento podem ser consultado através dos relatórios que podem ser gerados, quais
sejam: (i) total de alunos que responderam uma determinada atividade e (ii) total de atividades
respondidas por um determinado aluno. Para estes dois tipos de relatórios, tem-se duas
alternativas: por porcentagem, indicando a porcentagem que atende a pergunta solicitada em
relação ao total de alunos registrados em uma turma; ou detalhada, listando os nomes dos
alunos que atenderam a pergunta. O Quadro 4.VI apresenta todas as funcionalidades da
ferramenta Atividades, bem como as demais ferramentas do módulo Material do Curso, com
suas respectivas permissões de acesso.
90
5 O AGENTE AMIGO
Ao utilizar alguns recursos computacionais (e-mail, FTP, entre outros) como apoio à
prática da sua metodologia de ensino, a professora orientadora deste trabalho deparou-se com
uma dificuldade, o grande tempo investido para gerenciar o volume de informações geradas a
partir da sua interação com os alunos através destes recursos. Isto se dá em função dos
recursos funcionarem independentes uns dos outros. Ou seja, não estarem centralizados em
um único ambiente e as informações geradas serem gerenciadas manualmente pela professora.
O volume destas informações aumenta, em especial, em épocas próximas a entregas de
trabalhos e exercícios, em função da professora utilizar o e-mail como canal de comunicação
para entrega dos resultados das atividades e esclarecimento de dúvidas.
Neste contexto, apresenta-se o agente AMIGO, o qual tem como objetivo monitorar e
gerenciar informações relacionadas a uma disciplina que utiliza o ambiente PROOGRAMA
como suporte às atividades do processo de ensino-aprendizagem. Os resultados apresentados
do monitoramento visam auxiliar e ampliar o processo de avaliação dos alunos pelo professor.
Esta avaliação é possível em razão do professor poder acompanhar o andamento das entregas
das respostas das atividades pelos alunos e, assim, inferir o comprometimento destes alunos
com os compromissos da disciplina.
Este capítulo apresenta as funcionalidades que o agente oferece para realizar tal
monitoramento e gerência e suas opções de configuração, a arquitetura interna do agente, e
detalhes de como o mesmo foi modelado e implementado em um protótipo para validar a
idéia proposta.
atividade solicitada pelo professor, bem como as respostas destas atividades enviadas pelos
alunos. As informações a serem monitoradas e a forma de notificação dos resultados deste
monitoramento podem ser configuradas, para cada uma das ferramentas, conforme desejado.
A Figura 5.1 apresenta as opções de configuração para a ferramenta Agenda de
compromissos. Por definição padrão, estas opções já estão configuradas ao professor acessar o
ambiente, devendo ser desmarcadas caso não se deseje ter o agente em funcionamento.
que o professor pode eleger aquela(s) que melhor lhe convém. Por exemplo, se por alguma
razão um usuário não pode acessar freqüentemente o ambiente para saber os compromissos
agendados pelo professor, este usuário pode tomar conhecimento das novidades através da sua
conta de e-mail. Ainda em relação às opções de configuração apresentadas, para a opção de
notificação por e-mail, o professor pode redigir um texto padrão para a identificação e o
conteúdo do e-mail que será enviado, preenchendo os campos Cabeçalho e Rodapé
disponíveis, respectivamente.
Além destas opções, no caso de detectar que alguma resposta de atividade foi
recebida ou teve seu conteúdo alterado, o agente verifica se o arquivo entregue pelo aluno (ou
grupo de alunos) não se encontra corrompido ou vazio. Ou seja, o agente é o responsável por
gerenciar o estado do material recebido dos alunos. Se identificar alguma das duas situações
citadas, o remetente do material é comunicado por e-mail ou pelo ambiente, conforme estiver
configurada a opção Recebimento de atividade ou Alteração de atividade recebida, que houve
problema e que deve reenviar o documento contendo a resposta da atividade.
96
de uma atividade ou usar estas informações como elemento complementar para a avaliação de
um aluno.
Configuração de
monitoramento de ferramentas
Verificação de compromissos
e atividades
Verificação de arquivos
enviados
A Figura 5.5 apresenta o diagrama de Casos de uso do agente, isto é, neste diagrama
são representados os requisitos do AMIGO. Estes requisitos são representados pelas elipses,
enquanto os bonecos representam os usuários que possuem a permissão de acesso a estas
funcionalidades. Na UML, estes usuários são denominados atores. Por fim, o agente é
representado pelo elemento gráfico que indica uma classe ou um objeto na linguagem de
modelagem adotada. Cabe salientar que se adotou este elemento gráfico para representar o
agente uma vez que a UML não dá suporte à modelagem de SMAs em específico, sendo
assim, não existe um elemento próprio para representação do conceito de agente. Apesar desta
representação dar margens para uma interpretação semântica errônea, uma vez que se pode
interpretar que o AMIGO é uma classe e não um agente, [PAR99; SIL01] argumentam que é
possível representar agentes de software através de classes do paradigma orientado a objetos.
Esta utilização, segundo os autores, é aceitável em função da proximidade de algumas
99
características destes dois paradigmas, como, por exemplo, o fato de um agente de software,
em geral, ser implementado através de uma thread. Caso este trabalho estivesse apresentando
um SMA, esta notação teria sido inviabilizada, pois não seria possível representar as
estruturas organizacionais (diagrama de sociedade) do SMA.
Gerar relatorio
Monitorar compromissos
<<agent>>
Amigo Gerar relatorio detalhado
Comunicar resultado do
Usuario
monitoramento de compromissos
(from Use Case View)
Comunicar resultado do
Aluno
monitoramento do material
(from Use Case View)
Professor AgenteAMIGO
( Periodo aviso )
[ dCompr-dAtual<=PeriodoAviso ]
[ dCompr-dAtual>PeriodoAviso ]
<<use case>>
Comunicar resultado do
monitoramento de compromissos
AgenteAMIGO Usuario
( Dados compromisso )
[Por e-mail]
Ainda foi especificada uma outra forma do AMIGO ser ativado, caso os sensores não
tenham detectado mudanças no ambiente. A cada vinte e quatro horas o agente é ativado e
realiza uma verificação completa de todas as opções de configurações definidas para cada um
dos usuários. Esta verificação foi programada para ocorrer todos os dias à meia-noite,
viabilizando identificar as atividades e os compromissos relativos ao dia corrente assim que o
dia se inicia. De maneira bastante simples esta definição pode ser alterada, mudando-se no
código-fonte o horário ou mesmo a freqüência de verificação por dia.
102
19
Para obtenção destes templates ou maiores informações, consulte http: //www.microsoft.com/msf.
103
porte e tipo de projeto, e do tamanho da equipe20. Pode-se citar como exemplo a atividade de
análise de custo e preço do software a ser desenvolvido prevista pelo MSF. Esta prática não
foi abordada em razão deste grupo de pesquisa ter como premissa a divulgação gratuita dos
resultados de seus projetos para a comunidade acadêmica.
20
A própria Microsoft sugere a adaptação dos documentos propostos pelo MSF, conforme descrito na Seção
2.1.1, desde que respeite e preserve as características do framework [MIC02a]. A adaptação feita pelo grupo foi
apresentada e aprovada por um dos consultores da Microsoft, durante a participação de parte dos integrantes da
equipe de projeto no curso MSF Essentials, oferecido pelo CTXML Microsoft/PUCRS.
104
E studo detalhado do
am biente AmCorA
Definição da visão
S eleção dos bolsistas integrantes
da solução
da equipe de pesquisa
E scolha da linguagem de
pro gramação
E laboração da estratégia de
estudo das tecnologias
A fase Visão teve seu início durante a realização do TI-II desta autora, em setembro de
2002, e encerrou-se no mês de abril de 2003. Durante o desenvolvimento do TI-II, estudou-se
quatro ambientes virtuais de ensino-aprendizagem com o objetivo de identificar se algum
destes atendia a necessidade da professora orientadora deste trabalho de ter um ambiente que
desse suporte a sua metodologia de ensino e gerenciasse as informações recebidas dos alunos.
Estar praticando sua metodologia por oito semestres permitiu à professora adquirir uma certa
experiência com o uso de espaços virtuais como elementos de extensão e mediação das
atividades da sala de aula presencial. Sendo assim, naquele momento, tinha-se um problema
claramente caracterizado: “A professora desejava não ter mais que dedicar parte de seu tempo
realizando manualmente atividades operacionais de organização dos arquivos e informações
recebidas dos seus alunos através dos recursos computacionais utilizados no contexto de sua
metodologia. Tinha a necessidade de ter um mecanismo que gerenciasse automaticamente
estas informações e arquivos, em um ambiente único e centralizador dos recursos adotados”.
A existência deste problema foi o fator motivador do estudo dos ambientes.
105
21
Grupo de Aplicação da Informática na Aprendizagem/Grupo de Aplicação da Inteligência Artificial. O GAIA
está vinculado ao Departamento de Informática da universidade mencionada. Maiores detalhes podem ser
obtidos em http://www.gaia.ufes.br.
106
22
O PEP é apresentado a uma banca avaliadora que julga se a proposta apresentada caracteriza uma pesquisa de
mestrado. O aluno passa a ser considerado mestrando caso tenha um parecer favorável. No caso contrário, é
designado um novo prazo para apresentação da proposta reformulada. Em geral, a defesa ocorre no final do
primeiro ano do curso.
107
estrutura completa do ambiente, uma vez que algumas funcionalidades estavam sendo
alteradas naquele momento.
23
O documento retrata a versão final do escopo definido. Este escopo foi alterado após a apresentação do
Seminário de Andamento. A alteração e sua justificativa são apresentadas na Seção 6.2.
108
orientadora deste trabalho, atuando como cliente e usuária, e a mestranda, como responsável
pela definição, modelagem e especificação do projeto, bem como pela condução do mesmo
(Maiores detalhes sobre a definição dos papéis e responsabilidades de cada integrante da
equipe podem ser consultados no Apêndice C).
Outro risco identificado estava relacionado com as tecnologias que seriam adotadas,
uma vez que se levou em consideração que o ambiente pode ser utilizado fora da PUCRS e é
importante que funcione em diferentes sistemas operacionais. Apesar desta necessidade,
definiu-se como restrição para o desenvolvimento do protótipo o funcionamento no sistema
operacional Windows, utilizando o navegador Internet Explorer 5.0 ou superior. Para atender,
futuramente, este aspecto de portabilidade, optou-se por utilizar a linguagem de
desenvolvimento Java. Esta linguagem também foi escolhida por não oferecer custo para o
desenvolvimento ou uso da aplicação. Apesar de Java ser considerada portável, não se tinha
certeza se esta iria dar suporte a todas as necessidades identificadas, bem como não se sabia
como seria estruturada a comunicação entre a interface gráfica e o servidor. Para sanar estas
questões, elaborou-se uma estratégia de estudo de possíveis recursos para buscar garantir a
opção tecnológica feita. Esta estratégia de viabilização das tecnologias e técnicas foi colocada
em prática na fase Planejamento, conforme previsto pelo MSF. O Apêndice C apresenta a
109
lista completa dos riscos identificados, bem como as conseqüências, planos de mitigação e
contingência elaborados para os mesmos.
E s pecific aç ão M odelagem UM L:
dos requis itos Cas os de us o
P rototipação da
interface gráfic a Des envolvim ento de
aplicações -teste
V alidaç ão c om
a professora
Detalham ento
da arqu itetura
P l anejamen to
do proj eto
24
O Seminário de Andamento (descrito em um artigo) permite que seja apresentado a uma banca examinadora o
estado corrente da pesquisa, permitindo também a divulgação do trabalho aos demais pesquisadores vinculados
ao Programa de Pós-Graduação em Ciência da Computação (PPGCC) da FACIN/PUCRS.
110
25
Ferramenta desenvolvida pela Rational Software Corporation.
112
diagrama de Casos de Uso do agente AMIGO ainda não havia sido definido. Ou seja, as
funcionalidades do agente ainda não haviam sido especificadas. Esta definição ocorreu
somente após a redução do escopo do desenvolvimento, em seguida da apresentação do SA
(Descrito na Etapa 2 desta fase, mais adiante nesta seção).
<<include>>
<<include>>
Professor
(from Use Case View) <<include>>
Gerenciar compromisso
Usuario Excluir compromisso
(from Use Case Vi ew)
<<include>>
Monitor
(from Use Case Vi ew)
Visualizar compromisso
Aluno
(from Use Case Vi ew)
Ferramenta x Ferramenta y
Requisição
Navegador
(browser)
AMIGO
Resposta
Máquina cliente
BD
Máquina servidora
Módulo Configuração de
Gerência de Tarefas
Verificação de Tarefas
Organização dos
Arquivos dos Alunos
Módulo Atualização de
Informações dos Alunos
Envio de e-mail a usuários externos ao curso Sim Não Sim Não Sim
Recebimento de e-mail de usuários externos Sim Não Não Não Sim
Lista/Fórum de discussão Sim Sim Sim Sim Sim
Publicação de avisos Sim Sim Não Sim Sim
Agenda/Cronograma de atividades Não Sim Sim Sim Sim
Dados sobre os participantes Sim Não Sim Sim Sim
Elaboração de plano de aula N/A Sim Sim Sim Sim
Ferramentas de
Ferramenta
Servlet
Requisição
Navegador API BD
(browser)
Resposta JSP
Máquina cliente
AMIGO
Máquina servidora
Usuario Sistema
Escolher data
( Titulo, descricao )
Descrever Registrar
compromisso compromisso
Ao encerrar o refinamento dos requisitos, tendo-se uma visão mais detalhada e precisa
das funcionalidades e dados relacionados a cada uma das ferramentas, definiu-se as
funcionalidades do AMIGO, já descritas no Capítulo 5, através do diagrama de Casos de Uso
do mesmo. Sendo assim, estavam definidas quais informações o agente estaria monitorando e
gerenciando, restava ainda definir como estas informações seriam detectadas e como o agente
iria reagir e tomar decisões. Ou seja, faltava definir o seu algoritmo de funcionamento.
Baseada nos resultados alcançados até aquele momento, a equipe dividiu-se em duas
frentes de trabalho, uma responsável pela elaboração da interface gráfica; e outra, pela
modelagem das classes e tabelas do BD, conforme pode ser visto na Figura 6.11, que
apresenta o fluxo de execução das atividades da Etapa 2. Quanto à primeira frente, esta usou
como referência para a elaboração das páginas HTML os diagramas de Casos Uso e
Atividades definidos para as ferramentas e o documento descrevendo os padrões estabelecidos
para a interface gráfica. A elaboração das páginas se deu organizadas por ferramentas. Cada
conjunto de páginas desenvolvido era validado com a professora e os resultados das
considerações que impactavam os requisitos definidos eram atualizados nos diagramas. Foram
feitas três interações até obter-se as versões finais das interfaces.
121
Refinam ento
dos re quis itos
Definição dos
requisi tos do AMIG O
Elaboraç ão da M odelagem do
interface gráfic a diagram a de cl ass es
Va lidaç ão com
a profes sora
Replanejam ent
o do projeto
BD pelo fato de ter-se apenas um conhecimento abrangente sobre o assunto. Sendo assim,
pediu-se auxílio a um especialista em BD, o qual é ex-aluno do mesmo programa de pós
graduação que este projeto está vinculado. Este especialista nos ajudou, em especial, a
modelar as relações entre as tabelas que implementam os conceitos relacionados à infra-
estrutura para criação de uma disciplina no ambiente (unidade acadêmica, curso, disciplina,
turma e usuários).
respos t aA tividade
turma ins cri to us uario
ativida de
c om promis s o
A totalidade das tabelas definidas é apresentada na Figura 6.13, sendo que a flecha que
relaciona duas tabelas representa a existência de dependência entre as mesmas. O sentido da
flecha indica qual tabela está recebendo uma chave estrangeira da outra tabela. Para cada uma
das tabelas apresentadas é indicado apenas o nome e o tipo dos atributos que as constituem.
123
Di ag ra ma si mu l a n do as ta b e l as d o ba n co
de d ado s do a m bi e nte P RO O GRA M A
u su a rio
i d Usua ri o : In teg e r
no m e Co m p l e to : S tri n g
m a tri cu l a : S tri n g
se nh a : S tri n g
turm a pa l avra Se cre ta : Stri n g
i n s crito
i d T u rm a : In te g e r em ai l : S tri n g re s p o s taAti vid ad e
i d Inscri to : In te g e r da taNa sci m en to : Stri n g
n u m e ro T u rm a : Inte ge r i d Respo sta Ati vi d a d e : In te g e r
en d e re co : S tri n g
sta tus : Stri ng
te l e fo n e Re si d en ci al : S tri n g
co nce i to : S tri n g
te l e fo n e Ce l ul a r : S tri n g
co m e nta ri o : S tri n g
ou tra In fo rm a cao : S tri n g
p erfil
i d Pe rfi l : In teg e r
no m e P e rfi l : S tri n g
de scri ca o Pe rfi l : S tri n g
Uma vez tendo modelado todo o ambiente e o agente, e tomado todas as decisões para
o desenvolvimento de ambos, a fase Desenvolvimento teve como principal atividade a
codificação das especificações feitas na fase anterior. Para iniciar a implementação, portanto,
foi necessário preparar o ambiente de implementação. Solicitou-se a liberação do coordenador
da rede de computadores da FACIN para instalar a versão gratuita da ferramenta Sun ONE
Studio 4.026 e a liberação das portas de comunicação do servidor, quais sejam: de acesso à
Web; de envio e recebimento de e-mails; e de transferência de arquivos. O segundo pedido
não foi atendido até o término da redação deste trabalho, o que nos impediu de instalar a
aplicação no servidor. Desta forma, os testes foram todos realizados nas máquinas locais do
laboratório de trabalho da equipe.
26
Esta versão tem uma licença de trinta dias para uso sem custo.
125
Criaç ão da estrutura
fís ic a do BD
Im plem entação e
t este E -m ai l
Para garantir a restrição de acesso àquelas páginas que são específicas de um perfil de
usuário, adotou-se um mecanismo de filtragem do perfil. Em cada página disponibilizada para
o usuário (arquivo .jsp) é feita a chamada a um arquivo que verifica se o perfil que está
tentando acessar a página é o mesmo liberado na sessão de utilização do ambiente. Caso o
perfil não tenha direito de acesso a esta página, o filtro27 redireciona o comando da aplicação
para a página de login do ambiente. Ao usar este mecanismo provido pelas classes originárias
dos servlets, evita-se que um usuário, ao identificar o endereço de uma página na barra de
endereços do navegador ou burlar os diretórios do servidor, consiga acesso a esta página sem
ter a permissão para tal.
27
Segundo [KUR02], o filtro (do original, servlet filter) permite que se tenha acesso aos objetos enviados e
recebidos quando das requisições ou respostas dos servlets (HttpServletRequest e HttpServletResponse)
antes mesmo que este tome conhecimento destas. Ou seja, é possível interceptar o servlet.
126
Esta fase foi composta de uma única atividade, apresentada na Figura 6.15, conduzida
pela mestranda e realizada pela professora orientadora deste trabalho. Para revisar os
protótipos desenvolvidos (do ambiente e do agente) e verificar se os mesmos estavam
atendendo as solicitações feitas, a professora utilizou o ambiente em caráter experimental,
realizando uma simulação de uso. Durante esta breve utilização foram observados tanto os
aspectos de usabilidade e interface (ex. fácil compreensão, padronização das cores, nomes e
elementos definidos, entre outros) e os aspectos pedagógicos, tais como o suporte ao
desenvolvimento de uma atividade em grupo, através da permissão do envio do arquivo
correspondente à resposta da atividade identificando o grupo que a desenvolveu. A professora
também consultou o Manual do usuário do Professor. As considerações apontadas foram
apenas registradas, da mesma forma que nos testes feitos anteriormente pela equipe (Vide
Apêndice F). Todas as considerações apontadas no Apêndice F serão atendidas quando do
desenvolvimento da versão a ser disponibilizada aos alunos, para uso experimental em
ambiente real de sala de aula. Este desenvolvimento está previsto para um período
consecutivo à entrega e apresentação deste trabalho.
Uma vez que os protótipos não foram disponibilizados aos alunos, a única análise
realizada foi feita pela equipe de pesquisa. Os integrantes discutiram em uma reunião de
finalização desta etapa do projeto, denominada pelo MSF de Lessons Learned Meeting,
quais aspectos poderiam ser melhorados e destacaram os conhecimentos adquiridos, bem
como manifestaram suas impressões gerais quanto suas participações no projeto. O Quadro
129
7 CONSIDERAÇÕES FINAIS
Inicialmente, esta pesquisa tinha como objetivo propor um agente para gerenciar as
informações oriundas da utilização de um ambiente de suporte ao processo de ensino-
aprendizagem, tanto em situações presenciais como não-presenciais, sendo o AmCorA o
ambiente escolhido, conforme já apresentado. A escolha deste ambiente se deu baseada no
estudo feito sobre alguns ambientes de suporte ao ensino e na metodologia utilizada pela
professora orientadora como apoio ao processo de ensino-aprendizagem. Pelas dificuldades
encontradas para atingir o objetivo mencionado, optou-se por especificar e desenvolver um
ambiente próprio, onde o agente poderia passar a atuar. Desta forma, definiu-se o ambiente
PROOGRAMA, que reúne as melhores características dos ambientes estudados identificadas
pela equipe de pesquisa. A alteração do ambiente base para atuação do agente não trouxe
prejuízos à pesquisa, uma vez que, em sua essência, ambos os ambientes possuem uma
proximidade nos princípios pedagógicos que guiaram suas concepções.
131
7.1 Contribuições
Quanto às ferramentas, definiu-se como um dos requisitos do projeto que estas devem
ser implementadas de forma independente umas das outras. Ou seja, as ferramentas devem
poder funcionar isoladamente. Este requisito não foi totalmente atendido. Levando-se em
consideração que apenas parte da equipe tinha conhecimento superficial sobre os conceitos
relacionados à organização e utilização de um BD relacional, bem como nenhum dos
integrantes conhecia previamente o SGBD MySQL e que a complexidade de projetar o BD
para que as ferramentas ficassem isoladas seria aumentada, sendo necessário criar uma
linguagem de comunicação entre as diferentes tabelas, a equipe optou por criar um único BD.
Desta forma, existe dependência entre as ferramentas no que diz respeito ao armazenamento
dos dados nas tabelas do BD. Caso a equipe tivesse um maior tempo para o estudo de uma
134
solução alternativa, esta decisão teria sido evitada. Fato este que não compromete o resultado
obtido, servindo apenas como uma restrição a ser destacada. Para minimizar o futuro trabalho
necessário para realizar este isolamento entre as tabelas, definiu-se uma API de comunicação
entre os servlets e JSPs com o BD, conforme apresentado na Seção 6.2. Todas as funções que
realizam alguma consulta ao BD estão inseridas nas APIs, permitindo uma fácil remoção ou
manutenção no código relativo às tabelas. Por este motivo, considera-se que o requisito foi
atendido parcialmente.
Uma outra limitação foi imposta pela falta de liberação de recursos. O ambiente não
pode ser instalado no servidor da equipe por não terem sido liberadas as portas de
comunicação necessárias. Sabe-se que esta questão é passível de ser resolvida, sem causar
danos ao funcionamento do ambiente. Ao ter estas portas liberadas, o ambiente poderá ser
acessado de qualquer máquina localizada nas diversas redes internas da PUCRS. Ou seja,
computadores cadastrados e reconhecidos pelas Intranets da Universidade. Para acesso
externo, será necessária a liberação da porta de proteção e acesso externo (o firewall), questão
esta a ser discutida e justificada pela professora orientadora deste trabalho. A equipe não
possui autonomia para requisitar tal pedido. Ao ter esta porta liberada, o PROOGRAMA
estará disponível para qualquer usuário que possua uma máquina com acesso à Internet.
Novamente, esta é uma restrição operacional que se salienta e não interfere nos resultados.
No que diz respeito ao AMIGO, no contexto deste protótipo, este tem seus relatórios
retratando informações bastante simples. Isto se deve ao escopo restrito selecionado para esta
pesquisa de Mestrado. As definições feitas para o agente atendem as necessidades da
professora e solucionam a questão do tempo que esta investe na gerência das informações
recebidas dos alunos no que se refere às atividades propostas (trabalhos, exercícios, entre
outras).
exemplo, ao digitar sua senha errada, o usuário não recebe notificação de que digitou um
valor inconsistente. Os dados informados são simplesmente apagados, exigindo que o usuário
perceba por si mesmo o erro cometido. Tanto estas inconsistências como as funcionalidades
que não foram implementadas neste momento serão atendidas ainda antes dos protótipos
serem disponibilizados em caráter experimental para alunos da turma de Algoritmos da
professora no próximo semestre letivo. A disponibilização para esta turma de Algoritmos virá
a atender outra restrição deste trabalho, a de não ter utilizado experimentalmente o protótipo
em ambiente real de sala de aula. Esta utilização foi apenas simulada com a professora,
durante sua validação dos protótipos.
Adapter_PROOGRAMA
Camada de composição em Web-
Services
Glossário de termos Material de apoio
Bibliografia Atividades
Material do Curso
Adapter_Fórum
AMIGO E-mail
Fórum
Adapter_Moonline
Chat
Monitor. e Gerência de Informações
Moonline Comunicação Direta
Para manter uma única tecnologia no que diz respeito à interface com o usuário,
também se propõe como trabalho futuro a migração da interface gráfica para XML, uma vez
que esta tecnologia é suportada pelos servlets. Sendo assim, será necessário apenas mudar a
interface atual de HTML e JSP para XML. Esta alteração irá permitir uma flexibilização na
interface do usuário, sendo possível alterar mais facilmente características tais como cores de
fundo, tipo e tamanho de fontes, entre outras.
Ainda pode-se apontar como trabalhos futuros o estudo e tratamento nas próximas
versões do ambiente aspectos relacionados à performance e portabilidade do ambiente, no que
diz respeito aos elementos que constituem a interface gráfica (ao adotar-se Java, os aspectos
de portabilidade da implementação como um todo já está garantido).
138
REFERÊNCIAS BIBLIOGRÁFICAS
[ASP03] ASP 101: The place where developers go! Disponível em: <http://www.
asp101.com>. Acesso em: 29 out. 2003
[BRO86] BROOKS, Richard. A robust layered control system for a mobile robot.
IEEE Journal of Robotics and Automation, [S.l.], v. 2, n. 1, mar.
1986.
[DEI00] DEITEL, Harvey. Java: How to Program. New Jersey: Prentice Hall, 2000.
[FOW00] FOWLER, Martin; SCOTT, Kendall. UML Essencial: Um breve guia para
a linguagem-padrão de modelagem de objetos. Porto Alegre:
Bookman, 2000.
[KUR02] KURNIAWAN, Budi. Java for the Web with Servlets, JSP, and EJB.
Indianapolis: New Kiders, 2002.
[MIC02b] MICROSOFT. MSF Process Model v. 3.1. White paper, 2002. Disponível
em: <http: //www.microsoft.com/msf>. Acesso em: 20 jun. de 2003.
[NET02] NETO, Roberto. Curso de JSP. Relatório Técnico (Grupo PET – Programa
Especial de Treinamento) – Ciência da Computação, UFSC,
Florianópolis, 2002. Disponível em: <http://monica.inf.ufsc.br/
Apostilas/jsp.pdf>. Acesso em: 15 ago. 2003.
[PAU99] PAULK, Mark. et al, The Capability Maturity Model: Guidelines for
Improving the Software Process. Berkley: Addison-Wesley, 1999.
[PES00] PESSOA, José M.; MENEZES, Crediné. QSabe II: A Cooperative Service
for Knowledge Appropriation and Diffusion Using the Internet. In:
INTERNATIONAL CONFERENCE ON ENGINEERING AND
COMPUTER EDUCATION, 2000, São Paulo. Proceedings… São
Paulo: [S.n.], 2000.
[POL01] POLLICE, Gary. Using the Rational Unified Process for Small Projects:
Expanding Upon eXterme Programming. White Paper, 2001.
Disponível em: <http://www.rational.com/media/products/rup/
tp183.pdf>. Acessado em: 25 jun. 2003.
[PRE01] PRESSMAN, Roger, Software Engineering: A Practioner's Approach.
New York: McGraw-Hill, 2001.
147
[WEB00] WEBCT. WebCT 3.0: Getting Started Tutorial. 2000. Disponível em:
<http://www.webct.com>. Acesso em: 17 set. 2002.
http://www.inf.pucrs.br/~giraffa/proograma
Esta pesquisa foi parcialmente financiada pelo Convênio Dell/PUCRS, através da Lei de
Informática Brasileira (Lei nº. 8.248/91). Também financiada pelo Centro de Tecnologia XML
Microsoft/PUCRS e pelos órgãos de fomento MEC/SESu e FAPERGS.
Este trabalho foi digitado conforme o Guia para Apresentação de Trabalhos Acadêmicos, Teses e
Dissertações da Biblioteca Central Irmão José Otão da PUCRS, segundo a NBR 14724 proposta
pela ABNT, atualizado em 06 de agosto de 2003.
AMIGO - Um Agente para MonIItorar e Gerenciar infO
Ormações
no ambiente PROOGRAMA
Espaço reservado para anotações dos membros da Comissão Examinadora
AMIGO - Um Agente para MonIItorar e Gerenciar infO
Ormações
no ambiente PROOGRAMA
Espaço reservado para anotações dos membros da Comissão Examinadora