Dicas de última hora para a prova

Dicas de última hora para a prova

por Gustavo Ansaldi Oliva -
Número de respostas: 0

Oi pessoal,

   Conforme o Gerosa postou antes, os tópicos para a prova são esses abaixo. Para cada tópico, vou deixar uns poucos comentários. Não há muito segredo para essa prova. Para quem estudar, a prova não estará difícil.

Testes de software
- Verificacao e validacao
- qualidade de software
- o que é manutenção
- teste de unidade, integração e aceitação
- teste caixa branca, preta e cinza
- outros tipos de testes
- testes automatizados vs manuais
- JUnit
- MockObjects
- TDD

Vocês precisam saber o que é teste, assim como sua importância para a manutenção e evolução de software. Conforme listado acima, há diferentes tipos de teste, cada qual feito de um jeito específico e para um fim específico. Você precisa saber, portanto, a diferença entre os vários tipos de teste. Por fim, note que o Gerosa listou alguns elementos ligados a tecnologia (JUnit, MockObjects), então é importante também saber ler e escrever código de teste.

Diagramas UML
- Diagrama de classes (para analise e para design)
- Diagrama de objetos
- Diagrama de sequencia
- Diagrama de colaboração
- Diagrama de estados
- Diagrama de atividades
- Diagrama de componentes
- Diagrama de implantação

Aqui não tem segredo, você precisa saber ler e escrever diagramas UML. Uma dica é o livro do Martin Fowler "UML Distilled" (UML Essencial em Português), que apresenta a UML de forma simples e com um linguajar bem acessível.  A contracapa desse livro tem um bom resumo da parte sintática, que anexo abaixo. Se você não entende nada de UML e/ou não estudou direito, então estude pelo menos os diagramas principais.

Resumo UML - Fowler

Processos e OpenUP
- Ciclos de vida: quais são e quando usar cada um
- Pressupostos e problemas do ciclo em cascata e do ciclo iterativo e incremental
- Fluxos de trabalho
- Planejamento
- RUP e OpenUP: fases, fluxos de trabalhos, papeis e documentos

Aqui você precisa saber um pouco sobre processos em geral (4 primeiros itens) e sobre o RUP e o OpenUP (último item). Sobre esses dois processos, você precisa saber o básico sobre eles. Você precisa saber que eles são processos iterativos evolutivos (ou iterativo incrementais) e que funcionam de um modo particular, isto é, possuem fases, fluxos de trabalho (workflows), papeis  (roles) e documentos/artefatos. Você não precisa saber os detalhes, mas precisa saber quais as fases, o que é um fluxos de trabalho, os principais papeis e os principais documentos/artefatos.

Metodos ageis
- Diferença filosóficas
- Princípios e valores
- Planning poker
- Princípios de práticas do Extreme Programming
- Scrum: papeis, eventos e artefatos

Quais as diferenças dos métodos ageis em relação a aqueles do item anterior ("diferença filosófica")? Pra que foram "criados"? Lembrem-se do manifesto ágil. No mais não tem muito segredo, precisa saber os itens listados acima.

Métricas
- Para que servem métricas
- Complexidade ciclomática
- Número de McCabe
- Acoplamento eferente e aferente
- LCOM
- Pontos de função

Métricas estão no núcleo da Engenharia de Software, principalmente em tarefas de acompanhamento e manutenção. São muito muito importantes. Você precisa, no mínimo, saber descrever o intuito de cada métrica (o que ela quer medir) e mostrar como calculá-la.

Por fim, como comentário final, é importante que vocês não esqueçam tudo o que já estudaram. Alguns itens como polimorfismo, padrões de projeto e princípios de design são sempre super importantes e acabam sempre aparecendo nas provas de um jeito ou de outro. Esperamos que ao longo do curso você também tenha aprendido um pouquinho de tecnologia, então saber ler e escrever código (simples) em Java (tanto código de produção quanto de teste) é também super importante. 

E é isso! Boa sorte!