IA368G - Projeto de Objetos Educacionais 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.