UFSM > Informática > ELC117 - Paradigmas de Programação

Objetivo

O objetivo deste trabalho é desenvolver um programa orientado a objetos, em Java, para gerenciar as Atividades Complementares de Graduação de um aluno. Esse programa deve ter interface gráfica e deve acessar um banco de dados via JDBC.

Banco de dados

Requisitos

  1. O programa deve criar as tabelas do banco na primeira vez que o programa for executado. Além disso, deve preencher as tabelas de classificação e subclassificação de ACGs, que têm conteúdo fixo.

  2. Os atributos dos objetos do programa devem ser definidos de acordo com a estrutura das tabelas no banco de dados.

  3. O programa deve prever e tratar exceções, sempre que possível mostrando mensagens amigáveis ao usuário :-)

  4. A interface gráfica do programa deverá ter várias telas (frames). Recomenda-se usar menus para acesso às funcionalidades.

  5. As funcionalidades acessíveis ao usuário se dividem em 3 grupos: configurações, gerenciamento de ACGs e ferramentas. Cada grupo é descrito a seguir.

Configurações

  1. Setar nome/matrícula do aluno
  2. Resetar o banco, apagando as tabelas e criando-as novamente

ACGs

  1. Operações CRUD (create, read, update, delete) com ACGs (isso pode ser feito em telas separadas ou numa mesma tela com todas as opções). Obs.: o identificador de cada ACG deve ser gerado automaticamente, em sequência. Isso pode ser feito com auxílio do banco de dados ou com controle interno (contador) na aplicação. Para auxílio do banco, pode-se usar um comando SQL que retorna o maior valor de um campo no banco:
    select max(acg_id) from acg
    

  2. Operações CRUD com comprovantes de uma dada ACG (isso pode ser feito na mesma tela das operações CRUD de ACGs). Atenção: se uma ACG for removida, devem ser removidos todos seus comprovantes. Para selecionar comprovantes de uma ACG de id=3 (por exemplo), usar o comando SQL:
    select descricao,arquivo from comprovante where acg_id=3
    

  3. Visualização resumida da lista de ACGs do aluno (somente nome, ch e classificação geral). Para obtenção desses dados, pode-se usar o seguinte comando SQL:
    select acg.descricao, acg.ch, classificacao.descricao 
    from   acg, subclassificacao, classificacao
    where  acg.subclassif_id = subclassificacao.subclassif_id
    and    subclassificacao.classif_id = classificacao.classif_id
    

Ferramentas

  1. Visualização de resumo de carga horária de ACGs para cada item de classificação (classif_id, descricao, ch_max e somatório de ch das ACGs do aluno). Para obtenção desses dados, pode-se usar o seguinte comando SQL:
    select   c.classif_id, c.descricao, c.ch_max, isnull(sum(ch),0)
    from     (select subclassificacao.subclassif_id, subclassificacao.classif_id as sc, acg.subclassif_id, acg.ch 
              from subclassificacao left outer join acg
              on   acg.subclassif_id = subclassificacao.subclassif_id),
             classificacao as c
    where    c.classif_id = sc
    group by c.classif_id
    

  2. Visualização de ACGs sem comprovantes. Para obtenção desses dados, pode-se usar o seguinte comando SQL:
    select acg_id, descricao
    from   acg left outer join comprovante
    on     acg.acg_id = comprovante.acg_id
    where  comprov_id is null
    

  3. Verificação de pendências de carga horária. Essa verificação deve ser feita pelo programa a partir do resumo de carga horária por item de classificação (item 1 das ferramentas), considerando as normas para ACGs, que determinam:
    • mínimo de 290 horas em ACGs, respeitando-se os valores máximos em cada classe de ACG
    • mínimo de 90 horas somando-se as classes 2, 5 e 8 (ver normas)

Extras

Para recuperar alguma nota da disciplina, ou apenas por diversão :-), há alguns extras que podem ser implementados:

  1. Nas ferramentas, incluir a geração automática dos formulários de solicitação de ACG para entrega na coordenação. Para isso, pode-se converter o formulário em formato .doc para o formato .odt (OpenOffice), gerando um template que pode ser preenchido automaticamente a partir do banco de dados. Esse preenchimento automático pode ser feito usando a ferramenta JODReports. Veja aqui um exemplo de uso desta ferramenta como uma biblioteca ou via linha de comando.

  2. Estender o aplicativo para gerenciar ACGs de vários alunos, ao invés de um aluno apenas.

Entrega e avaliação

Material de apoio

Página criada em: Thu Jun 30 15:41:22 BRT 2011. Última atualização em: Mon Jul 4 14:19:22 2011. Autoria: Andrea Schwertner Charão.