31 Agosto 1998
Cláudia
Christian
Flávia
Gonzaga
Rossano
O grupo ficou encarregado das interfaces do sistema. Iniciamos as discussões
no período reservado à disciplina e tomaremos continuidade
durante esta semana. Faltou discutir a interface própria do Revisor,
sendo que sobre as interfaces a seguir já discutimos, mesmo que
brevemente.
As interfaces estão dividas da seguinte forma:
1. Visualização dos documentos;
2. Interfaces para efetuar buscas por
palavras-chave;
3. Interfaces para suportar a atividade
de autoria - preenchimento da estrutura de tópicos;
4. Interfaces para manipular as dúvidas/sugestões/respostas/revisão;
5. Interfaces para visualizar conteúdos
de mídias diversas;
6. Interface principal para o Aluno;
7. Interface principal para o Autor;
8. Interface principal do Revisor (não discutida)
Pensamos em utilizar o browser HotJava para mostrar
o conteúdos dos documentos HTML.
Esta interface será composta de telas reutilizáveis. O reuso destas telas será efetuado a partir de construtores diferentes para a mesma classe. O diferencial básico é o título da tela, que poderá ser para buscas sobre:
A primeira tela é uma interface de seleção
do tipo Choose com um TextField informando o campo selecionado e dois botões
de OK e Cancela; Para determinar o conteúdo deste componente Choose,
temos uma área superior que permite realizar uma busca por palavra-chave.
O resultado desta busca é colocado no componente Choose.
Quando instanciarmos esta interface deveremos fornecer sobre qual conjunto
estaremos realizando a busca (Tópico, Assunto, Material, etc). Logo,
a interface terá uma aparência diferente de acordo o conjunto
selecionado. O conteúdo inicial do componente de seleção
poderá ser todos os elementos do conjunto em ordem alfabética
(ex. todos os tópicos em ordem alfabética de assunto).
a. Tela para visualizar a estrutura de documentos HTML (Applet
"mapa do site" já existente);
b. Na mesma tela uma área com três TextFields informando
os arquivos que contêm o conteúdo e os testes relacionados
ao tópico selecionado na árvore (estrutura de tópicos);
c. Abaixo destes TextFields temos três botões: "Novo Conteúdo",
"Novos Testes", "Aplicar";
d. Uma segunda tela será responsável por receber o arquivo
do novo conteúdo ou
novos testes. Nesta mesma tela temos um botão "Procurar" que
chamará a tela de busca desenvolvida em 2;
Teremos uma tela que mostrará o conteúdo
da D/R/S, podendo ser a edição habilitada ou não.
A diferenciação entre as três será feita através
do ícone que disparará cada tela. Na própria tela
teremos o título diferenciado e alguns elementos a mais, como no
caso da dúvida, um link para resposta. A sugestão terá
um link para o local do texto a que se refere. Penso em criar uma barra
de ferramentas para melhor manipular estes itens, como por exemplo para
permitir que os alunos colaborem a partir destes itens.
A partir do JMF(Java Media Framework) será possibilitado visualizar vídeo e imagens em uma tela em seraparado.
Ofereceremos basicamente uma barra de ferramentas
que permitirá ao aluno validar o seu acesso, iniciar unidade de
estudo, selecionar qual o material em que deseja se cadastrar, realizar
uma dúvida, consultar repostas, etc. Poderemos fornecer essa barra
de ferramentas integrada ao HotJava ou separada em uma aplicação
Java. Decidiremos por uma opção ou outra em futuro próximo;
Este terá uma barra de ferramentas própria ao mesmo estilo do aluno. Não definimos ainda os itens que estariam contidos nessa barra de ferramentas, talvez alguns recursos de colar/recortar, botões para disparar buscas sobre assunto e tópico, botão para anotar sobre o material (gerar sugestões), botão para visualizar conteúdo (fornecer transparência quanto a aplicação que será encarregada de tal função), botão para editar teste, exercício ou conteúdo, botão para definir estrutura de tópicos (novo tópico, novo próximo tópico, etc, nesta tarefa podem ser usados Servlets para gerar dinamicamente novas páginas HTML). Explicando melhor este último item de uma interface para gerar a estrutura de tópicos, esta estrutura pode ser representada por um grafo de páginas HTML. Estas páginas teriam seus campos "meta" e os links para as próximas páginas gerados dinamicamente a partir de dados fornecidos pela interface de geração da estrutura de documentos. Essa informações se resumiriam a: próximas páginas, título e autor.
Angélica Armando Graça J.R. Raquel 1. Contexto O grupo ficou encarregado de discutir as diversas classes definidas nas aulas anteriores, refinando suas estruturas, métodos e relacionamentos. As discussões tiveram lugar nos dias 31/08/98 e 3/09/98. Alguns pontos ficaram ainda pendentes, de forma que o que será descrito abaixo deverá sofrer ainda uma revisão até 08/09/98. As classes analisadas foram: MATERIAL TOPICOS, EXERCICIOS, TESTES e CATALOGO CONTEUDO ALUNO e PERFIL TUTOR UNIDADE_ESTUDO INSTRUTOR SOLUCAO MONITOR ASSUNTOS DUVIDA_COMENTARIO e RESPOSTA 2. MATERIAL Esta classe terá o seguinte conjunto (atributos [Dominios](cardinalidade)): assunto [Catalogo] autor [Autor] topicos [Estrut_Topicos](1..n) exercicios [Estrut_Exercicios](0..n) testes [Estrut_Testes](1..n) A classe Estrut_Topicos consiste na verdade de um relacionamento de precedência entre Tópicos que façam parte de um Material. Temos assim a seguinte definição de estrutura para esta classe: topico [Topico] pre_requisito [Topico] conceito_pre_requisito [conceito] Se em um objeto desta classe, o valor de "pre_requisito" for vazio ou nulo, isto indica que o valor indicado em "topico" é o ponto de início do Material. Se em um objeto desta classe, o valor de "topico" for vazio ou nulo, isto indica que o valor indicado em "pre_requisito" é o ponto final do Material. O valor de "conceito_pre_requisito" indica o conceito mínimo que um Aluno deve obter no pre-requisito de um topico, para poder cursar este último. Objetos da classe Estrut_Exercicios indicam que exercícios devem ser apresentados, quando um Aluno cobrir um determinado conjunto de Tópicos do Material. A estrutura para esta classe é: exercicio [Exercicio] topico [Topico](0..n) Objetos da classe Estrut_Testes indicam que testes devem ser apresentados, quando um Aluno cobrir um determinado conjunto de Tópicos do Material. A estrutura para esta classe é: teste [Teste] topico [Topico](1..n) Alguns métodos em Material são: obter_autor obter_catalogo obter_topicos_com_pre_requisito (pre_requisito) retorna (topico, conceito_pre_requisito) obter_exercicios_associados_a_topico (topico) retorna (lista de exercicios) obter_topicos_associado_a_exercicio (exercicio) retorna (lista de topicos) obter_testes_associados_a_topico (topico) retorna (lista de testes) obter_topicos_associado_a_teste (teste) retorna (lista de topicos) definir_topico_de_material (topico) definir_pre_requisito_de_topico (topico, pre_requisito, conceito_pre_requisito) definir_exercicio_associado_a_topico (exercicio,topico) definir_teste_associado_a_topico (teste,topico) remover_topico_de_material (topico) remover_exercicio_de_material (exercicio) remover_teste_de_material (exercicio) 3. TOPICO, EXERCICIO, TESTE, CATALOGO Mantiveram suas definições originais. 4. CONTEUDO A princípio, terá como único atributo: local_conteúdo [URL] Caberá à interface analisar o valor deste atributo e ativar o aplicativo mais adequado para exibir os dados associados. 5. ALUNO e PERFIL Estas classes mantiveram suas definições originais. Do ponto de vista de implementação, seguem-se as seguintes diretrizes propostas: - O Perfil fica na maquina cliente; - O Perfil sera' automaticamente criado depois que o aluno fizer a sua matricula. - A identificacao do aluno sera automaticamente obtida e armazenada. - O assunto e' registrado depois da aprovacao pelo Instrutor. Oassunto é o mesmo dos testes analisados pelo Instrutor - O conceito e' referente às notas obtidas nos testes, que foram compiladas pelo Instrutor, que atualiza o conceito em Perfil. 6. TUTOR A classe TUTOR não possui qualquer atributo, apenas métodos que serão ativados quando um aluno deseja iniciar uma Unidade de Estudo referente a um Material. De um modo geral, a Interface de Aluno pede ao Tutor uma Unidade de Estudo de um Material, para um determinado Aluno. O Tutor, na sequência, obtém o Perfil do Aluno e verifica quais os assuntos do Perfil estão presentes na Estrutura de Topicos do Material como pré-requisitos de algum outro tópico. Estar presente como pré-requisito inclui o fato de que o conceito obtido pelo aluno é maior ou igual ao conceito exigido na Estrutura de Topicos. O Tutor então seleciona o tópico cujo pré-requisito foi encontrado no Perfil. Em seguida, Tutor procura em Estrut_Exercicios por exercícios que estejam associados ao tópico selecionado. Para cada exercício encontrado, verifica se este exercício está associado a outros tópicos, cujos assuntos estejam presentes no Perfil. Se o exercício estiver associado a algum tópico cujo assunto não está no Perfil (exceto o topico correntemente selecionado), o exercício não será selecionado. Em seguida, Tutor procura em Estrut_Testes por testes que estejam associados ao tópico selecionado, do mesmo mod feito para exercícios. Selecionados tópico, lista de exercícios e de testes, Tutor cria uma Unidade de Estudo e indica a este que construa uma UE a partir destes dados. Métodos de Tutor: pede_unidade_estudo (material,host,aluno) 7. UNIDADE_ESTUDO A estrutura desta classe é: aluno [Aluno] host [URL] conteúdo_topico [Conteudo] conteudo_exercicio [Conteudo](0..n) conteudo_teste [Conteudo](1..n) Uma vez ativado, o construtor desta classe deve obter os conteúdos da UE e notificar a Interface do Aluno de que será enviada a UE propriamente dita. Isto pode ser feito através de um aglet, que "viaja" do servidor onde foi construída a UE para o computador de onde se originou o pedido de UE do Aluno. O aglet levaria consigo os dados do aluno e conteúdos. A interface do aluno se encarregaria de aguardar a chegada de agentes e disponibilizar os conteúdos aos usuários de maneira correta. Pode-se ainda ponderar a alternativa de se fazer com que as soluções de testes sejam entregues ao agente da UE, que então retorna ao servidor e entrega a solução ao monitor. Métodos de Unidade_Estudo: construtor (topico, lista_exercicio, lista_teste, host, aluno) 8. ASSUNTOS Esta classe tem como estrutura o atributo: palavra_chave [string] Os objetos desta classe serão criados off-line, pelo Administrador do Sistema. Quaisquer assuntos que devam ser registrados nos objetos das classes analisadas aqui devem existir nesta base de dados. 9. DUVIDA_COMENTARIO e RESPOSTA A estrutura para a classe Duvida_Comentario é: autor [Pessoa] assunto [Assunto] comentario [Comentario](1..n) A classe COMENTARIO é uma forma de modelar o fato de que um comentário ou dúvida tem várias respostas associadas. Sua estrutura seria: conteúdo [Conteúdo] respostas [Resposta](0..n) Do ponto de vista de implementação, seguem-se as seguintes diretrizes propostas: - Banco de dados no servidor - A identificacao do aluno será automaticamente obtida e armazenada no banco de dados, quando ele registrar a sua dúvida. - O assunto será selecionado dentre os objetos da classe ASSUNTOS. - O conteúdo será a dúvida registrada. - Um comentário pode ter várias respostas. Ao se criar um comentário, o valor do atributo respostas é, no início, vazio. A medida em que vão sendo dadas respostas ao comentário, objetos da classe Resposta são criados e colocados como valor do atributo respostas de um comentário. Uma Possível interface para manipular Duvidas pode ser: (a) Para incluir a duvida: - O usuário seleciona uma lista de assuntos e registra a sua duvida (b) Para consultar: - O usuário podem consultar a lista de duvidas e selecionar uma duvida, para verificar as respostas. (c) Para incluir a resposta: - O usuário seleciona uma lista de assuntos, posteriormente ele seleciona a duvida em uma outra lista, e registra a sua resposta correspondente. 10. INSTRUTOR Manteve estrutura já definida. Métodos não foram discutidos. 11. SOLUCAO Estrutura redefinida para: aluno [Aluno] teste [Teste] resolução [Alternativa] correção [Alternativa] Não foram discutidos os métodos associados a esta classe. 12. MONITOR Manteve estrutura já definida. Métodos não foram discutidos.