31 Agosto 1998

Sumário das atividades desenvolvidas em aula


Interfaces

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)
 
 

 1. Visualização do documento:

    Pensamos em utilizar o browser HotJava para mostrar o conteúdos dos documentos HTML.
 

2. Interfaces para efetuar busca por palavras-chave

     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).
 
 

3. Interfaces para suportar a atividade de Autoria - Preenchimento da estrutura de tópicos

 
    Esta interface já receberá pronta uma estrutura pré-definida de tópicos. A estrutura poderá ser definida por uma interface apropriada. Fizemos uma breve discussão desta possibilidade no item 7.
    As telas correspondentes a estas atividades serão disparadas pela interface inicial do autor.
    Componentes de interface necessários:

                    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;
 
 

4. Interfaces para Dúvida/Resposta/Sugestão/Revisão

    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.

5. Interface para visualizar conteúdos de mídias diversas

 A partir do JMF(Java Media Framework) será possibilitado visualizar vídeo e imagens em uma tela em seraparado.

6. Interface Principal para o Aluno

    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;
 

7. Interface Principal do Autor

     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.

Servidores

    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.



ricarte@dca.fee.unicamp.br

Last modified: Thu Sep 3 17:13:40 EST 1998