O próximo tipo de modelos de processo para software que eu
gostaria de discutir são os Processos Ágil de Desenvolvimento de Software. E este
é um grupo de métodos de desenvolvimento de software que são
baseados em desenvolvimento incremental e altamente iterativo. E em particular,
eu irei discutir é o Desenvolvimento Orientado a Testes, ou TDD. O
espaço na interação de três fases principais. Na
primeira delas que iremos marcar em vermelho, nós
escrevemos casos de teste que codificam nossos requisitos, e para os quais
nós ainda não escrevemos o código. E obviamente, em seguida eles irão falhar.
E então nós iremos cair neste tipo de fase vermelha, ou de falha. Desta
fase, nós passamos para esta outra fase, a qual ocorre depois de nós
escrevermos código suficiente para que os casos de teste aprovem.
Nós temos um conjunto de casos de testes em que todos aprovaram.
E em segunda, nós podemos considerar isso como a fase verde. Nós
temos código suficiente para fazer os casos de teste aprovarem porquê os
casos de teste codificam nossos requisitos. Nós escrevemos código suficiente para
satisfazer nossos requisitos. Quando nós seguimos com isso ao longo do tempo,
o que ocorre é que a estrutura do código deteriora, porquê
nós continuamos adicionando partes! E esta é a razão de nós termos o
primeiro passo, que é a Refatoração. Neste passo, nós modificamos o
código, e nós iremos falar extensamente sobre refatoração. Nós iremos dedicar
uma aula para isso. Nós modificamos o código para o tornar mais
legível, mais fácil de dar manutenção. Em geral, nós modificamos para aprimorar a
concepção do código. E depois desta fase, nós iremos tornar a
escrever mais casos de teste para
novos requisitos... escrever código que faz com que
esses casos de teste aprovem e assim em diante. E então nós iremos continuar a iterar ao entre essas fases. E
também, neste caso, nós iremos falar
sobre Processos Ágil de Desenvolvimento de Software. E em particular, em
Programação Extrema, ou XP e SCRUM
mais detalhadamente, no subcurso número quatro.