Análise (Nota 9.0)
Análise de requisitos muito bem detalhada e realmente útil.
- Não entendemos a relação de extensão dos casos de uso "Procurar Comunidade" e "Gerenciar Comunidade".
- Diagrama de classes poderia estar um pouco mais completo, com principais atributos e métodos dos objetos.
- Entidade 'Log' sem nenhuma relação no diagrama.
- A relação está correta? Uma "Comunidade" é composta de outras comunidades? Não vi isso na entidade.
- Ficamos em dúvida sobre o significado da associação entre "Comunidade", "Bookmark", "Comentário" e "User".
- Interessante o esboço da navegação feito na etapa de análise.
UI (Nota 9.5)
- Layout muito atrativo.
- Problemas de tradução nas mensagens em inglês!
- O site apresentou algumas falhas durante a validação do W3C.
Arquitetura (Nota 8.5)
- O GenericDAO, implementado manualmente, realmente deu trabalho e ficou muito bom. Uso interessante de annotations para fazer o relacionamento objeto-relacional.
- Seria interessante separar objetos de domínio de DAO (eles estão no mesmo pacote).
- A camada denominada 'Manager' trabalha praticamente como uma Facade, apenas repassando as chamadas para o domínio ou para o DAO. Existe algum motivo para o uso da mesma?
- Uma boa prática é nunca lançar Exception como exceção, e sim alguma especialização da mesma como ErroAcessoDadosException ou LinkJaCadastradoException.
- Scriptlets tornam o código difícil de manter. O melhor seria a utilização do padrão MVC. Uma implementação de um simples framework para isso tornaria o código mais simples.
- Injetar DAOs no Manager é uma idéia interessante, e irá ajudar na implementação do Spring (IoC/DI).
Legibilidade (Nota 8.5)
- O código possui partes em português e partes em inglês. Uma padronização é necessária.
- Como citado no exemplo acima, scriptlets dificultam o entendimento do código, pois você mistura código de camada de aplicação com código de interface.
- Nomes das variáveis estão muito boas, não há variáveis com nomes obscuros.
Corretude (Nota 10.0)
Todas as funcionalidades testadas se comportaram corretamente.
Funcionalidade (Nota 10.0)
- Funciona de acordo com os requisitos.
- Simples e fácil de usar!
Nota final sugerida (média das notas): 9.25