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.
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!