Atividade para Avaliação - Semana 3
- Vencimento 30 mai 2018 por 5:00
- Pontos 10
- Enviando um upload de arquivo
- Tipos de arquivo pdf
- Disponível 15 mai 2018 em 23:59 - 30 mai 2018 em 5:00 14 dias
Atividade para avaliação
Consulte os gabaritos dessa disciplina no menu lateral.
Olá, alunos e alunas!
Esta atividade deve ser preparada em seu computador, em programa apropriado. Salve-o como um arquivo PDF. Para enviá-la para correção, siga os seguintes passos:
- Clique no botão "Enviar atividade" e, depois, em “Escolher um arquivo”;
- Na janela que se abrirá, selecione o arquivo em seu dispositivo;
- Ainda nesta janela, clique em “Abrir”;
- Ao fim da página, clique em “Enviar atividade”.
Pronto! Sua atividade está postada no AVA.
Atenção: A produção da atividade deverá seguir as normas ABNT.
A revisão pode ser usada para a Garantia da Qualidade, a Verificação e a Validação. Para exemplificar o funcionamento de uma revisão, você participará de uma revisão de um código.
Uma vez que pode ser difícil para você se encontrar fisicamente com os seus colegas, a revisão será feita virtualmente – por texto ou, se viável, por vídeo. Você pode usar o Whatsapp, Skype ou alguma outra ferramenta de comunicação que permita conversa em grupo.
Roteiro da inspeção
Papéis
Forme uma equipe com 3 pessoas. Excepcionalmente serão permitidos grupos com 4 pessoas (dado o número de alunos).
O professor e os tutores são o autor. Em caso de dúvidas sobre o código, entre em contato!
Divida os membros da equipe em:
- Líder: será responsável por coordenar a reunião de inspeção.
- Leitor: será responsável por “ler” o código.
Registrador: será responsável por anotar os problemas no relatório de problemas.
- Inspetor (todos): apontarão problemas.
Processo
Preparação
- Dividir os papéis entre os membros da equipe.
- Cada um deve ler individualmente o código.
- Em caso de dúvidas sobre o código, entre em contato com o professor ou os tutores (o correto seria fazer isso na reunião de inspeção, mas como ela será virtual, teremos que adaptar).
- Cada um deve ler individualmente a checklist e analisar o código seguindo a checklist.
- Anotar desvios do código baseados na checklist e em outros problemas.
- O líder deve agendar a reunião e garantir que todos conseguiram fazer as atividades antes de realizar a reunião.
Reunião de inspeção
No horário agendado:
- O leitor deve resumir um trecho do código, evidenciando as partes principais.
- Ou seja, o leitor não deve ler o código. Ele deve explicar o código em alto nível.
- Após o leitor resumir o trecho, os membros da equipe devem apontar não conformidades.
- Para cada não conformidade apontada, o líder deve coordenar a discussão da classificação e a criticidade.
- O registrador deve documentar as não conformidades, apontando:
- O item da checklist não atendido
- Uma descrição da não conformidade
- A classificação (vide abaixo)
- A criticidade (vide abaixo)
- A linha de código da não conformidade.
- O passo 1 deve ser executado até que todo o código seja lido.
- O líder deve apresentar para a equipe cada um dos problemas identificados e a classificação/criticidade. A equipe deve resolver qualquer problema ou dúvida que apareça.
- Por fim, todos em conjunto devem decidir sobre a aprovação (com ou sem nova revisão) ou a rejeição do código.
Cuidados
- Não discutir os motivos do problema;
- Não propor soluções/recomendações.
Classificação / Criticidade
Classificação:
- Faltou (ausente)
- Extra (supérfluo)
- Confuso
- Inconsistente
- Fora do padrão
- Incorreto
- Cosmético
Criticidade:
- Grave (G)
- Secundário (S)
- Insignificante (I)
Checklist
Baseada em Wiegers, K. Generic Checklist for Code Reviews. 2001.
Estrutura
- O código está corretamente indentado?
- Existe algum método ou código inalcançável?
- Existe código de teste no código?
- Existe código repetido que pode ser reorganizado?
- Os comentários são necessários?
- O código está adequadamente comentado com comentários fáceis de manter?
- Os comentários são consistentes com o código?
- O nome das variáveis é significativo, consistente e claro?
- O tipo da variável é adequado?
- Existem variáveis redundantes ou não usadas?
- As variáveis são declaradas no bloco adequado?
- Existem constantes adequadas ao invés de “números mágicos”?
- Todos os laços e condições são completos, corretos e adequadamente aninhados?
- O laço adequado foi usado?
- Os casos mais comuns/importantes são testados primeiro na sequência de condições?
- Todos os casos são tratados pelas condições?
- As condições de término de laço são claras e sempre atingíveis?
- O tamanho das estruturas usadas é adequado?
- As estruturas de dados usadas são adequadas?
- Os valores dos parâmetros de entrada são adequadamente verificados?
- Os dados obtidos externamente são verificados?
Comentários
Variáveis
Laço
Armazenamento
Programação defensiva
Código
Classe Analisador (a classe Carta é entregue para que o código compile).
Entrega
Relatório de problemas, contendo para cada não conformidade:
- O item da checklist não atendido
- Uma descrição da não conformidade
- A classificação (vide abaixo)
- A criticidade (vide abaixo)
- A linha de código da não conformidade.
Anotar também se o código foi aprovado ou não. Caso não for, justificar.