Roteiro do Projeto
Introdução
Nas próximas 4 aulas, será desenvolvido o projeto final do curso, que comporá 55% da nota final da disciplina. Esse projeto nada mais é do que a integração das diversas partes do servidor Web, sua instalação e teste na placa i.MX53 QSB da Freescale, acompanhado da documentação de projeto. A apresentação do projeto constará de duas partes fundamentais:
- envio do relatório com toda a documentação do software
- entrevista individual de avaliação, que constará da demonstração do funcionamento do software instalado no kit i.MX53, por meio de uma sequência de testes padronizada e uma arguição sobre os detalhes do funcionamento e questões pertinentes ao curso
Veja os detalhes de como o processo de avaliação funcionará a seguir.
Funcionalidades esperadas na versão final do servidor Web
Espera-se que o servidor tenha todos os recursos que foram especificados durante as atividades do semestre. Alguns destes recursos são:
- obtenção das requisições do navegador (browser) via rede (sockets);
- passagem direta dos dados do socket para os analisadores léxico e sintático (isto é, sem o uso de arquivos intermediários);
- análise léxica e sintática das requisições por meio de código gerado pelas ferramentas lex (ou flex) e yacc (ou bison);
- processamento de pelo menos 5 comandos do protocolo HTTP : GET, HEAD, OPTIONS, POST e TRACE;
- apresentação para o navegador de páginas com mensagens de erro adequadas para os diversos tipos de erro que podem surgir após o recebimento de uma requisição;
- confinamento do espaço de atuação do servidor à área definida como webspace;
- uso eficiente de concorrência para permitir o atendimento de várias requisições simultaneamente: criação, sob demanda, de um número arbitrário de threads para atender várias requisições de uma vez;
- uso de mecanismos de autenticação.
- indicação visual (por meio de leds) no hardware da placa i.MX53 informando que o servidor está operacional.
Estes recursos estão aqui relacionados apenas como ponto de partida. Há outros, mais detalhados, que foram especificados no decorrer das atividades e outros opcionais que não foram exigidos, mas que o aluno pode inserir no seu servidor como um serviço extra.
- Funcionalidades extras poderão ser contempladas com pontuações extras que dependerão do nível de complexidade e da qualidade da implementação.
Sobre o relatório final
O relatório final terá duas partes.
PARTE I: documentação com os seguintes itens obrigatórios:
- (A) descrição do sistema (objetivos, especificações, o que foi efetivamente implementado e o que faltou, formas de uso);
- (B) estrutura do sistema (blocos que compõem o sistema e diagrama do fluxo de dados pelos mesmos);
- OBS: o diagrama não precisa ser detalhado a ponto de descrever cada instrução do programa, mas deve ter detalhes suficientes que permitam a visualização dos principais blocos e funções que compõem o servidor e o relacionamento entre eles;
- (C) estrutura do webspace usado para testes, mostrando árvore de diretórios, permissões e conteúdo dos arquivos;
- (D) casos de teste (como o sistema foi testado, casos submetidos para teste e seus resultados); estes testes devem ser completos e mostrar cada funcionalidade do servidor e cada tipo de erro que ele pode tratar, não deixando nenhuma funcionalidade sem ser demonstrada;
- (E) limitações da implementação feita;
- (F) possíveis trabalhos futuros de melhoria do sistema;
- (G) comentários, críticas e sugestões do aluno sobre o sistema desenvolvido e sobre a disciplina de um modo geral.
PARTE II: código fonte:
OBS: Entregas da documentação após o horário definido terão uma penalização de dois (2) pontos para cada 24 horas de atraso.
Sobre a Entrevista
- A entrevista ocorrerá no laboratório LE-27.
- A entrevista consistirá de demonstração do servidor desenvolvido durante o semestre e de questões sobre os detalhes da implementação, em especial sobre aqueles relacionados a sistemas operacionais e construção de parsers/compiladores.
- Cada aluno terá 30 minutos para fazer sua entrevista. O horário deverá ser rigidamente respeitado, sob pena da entrevista não ser realizada.
- Os horários poderão ser trocados entre alunos, desde que os envolvidos comuniquem ao professor com antecedência.
- Recomenda-se aos alunos prepararem a demonstração com antecedência, pois não haverá segunda chance em caso de falha do programa ou de falta do aluno.
- No início da demonstração será compilado e executado o código-fonte enviado previamente pelo aluno.
Agendamento de Entrevistas
Atenção:
- As entrevistas devem ser agendadas respeitando-se os horários disponíveis na agenda do professor. Um horário estará agendado somente depois que o professor confirmar a aceitação do horário proposto pelo aluno. Ao agendar um horário, tome cuidado para fazer com que o agendamento apareça adequadamente na agenda do professor como horário ocupado, para evitar que outro aluno marque o mesmo horário, sem perceber. Após o agendamento, verifique se o horário aparece como ocupado na agenda do professor imediatamente. Caso não apareça, entre imediatamente em contato, para verificar qual o erro no processo de agendamento.
- Os alunos poderão fazer trocas de horários entre si desde que comuniquem o professor com antecedência.
- Independentemente do dia/horário da entrevista, o relatório final deverá ser entregue (em papel) 48 horas antes do horário marcado.
- O aluno deverá submeter o código final (contendo o servidor HTTP) compactado no formato zip através deste LINK.
- A data limite para a entrevista é 29/11.