-The next type of software process models that I - -2
-want to discuss are Agile Software Development Processes. And this - -3
-is a group of software development methods that are - -4
-based on highly iterative and incremental development. And in particular, - -5
-I'm going to discuss Test Driven Development or TDD. The - -6
-space on the iteration of three main phases. In - -7
-the first one that we mark as red, we - -8
-write test cases that encode our requirements, and for which - -9
-we haven't written code yet. And therefore, they will fail, obviously. - -10
-So we're in this sort of red or fail phase. From - -11
-this phase, we move to this phase, in which after we - -12
-write the just enough code to make the test cases pass. - -13
-We have a set of test cases that are all passing. - -14
-And therefore, we can consider this as the green phase. We - -15
-had enough code to make the test cases pass because the - -16
-test cases encode our requirements. We have just written enough code to - -17
-satisfy our requirements. When we do this over time though, - -18
-what happens is that the structure of the code deteriorates, because - -19
-we keep adding pieces. So that's why we have the - -20
-first step, which is refactoring. In this step, we modify the - -21
-code, and we will talk about refactoring extensively. We'll devote - -22
-one lesson to it. We modify the code to make it - -23
-more readable, more maintainable. In general, we modify to improve the - -24
-design of the code. And after this phase, we will go - -25
-back to writing more test cases for - -26
-new requirements, write code that makes these - -27
-test cases pass, and so on. So we'll continue to iterate among these phases. And - -28
-also, in this case, we will talk - -29
-about Agile Software Processes. And in particular, - -30
-about extreme programming, or XP, and Scrum - -31
-in more details, in minor course number four. -- cgit 1.4.1