about summary refs log tree commit diff
path: root/usth/ICT2.7/P1L2 Life Cycle Models Subtitles/15 - Agile Process - lang_en_vs3.srt
blob: 70ef20020f8c645652451d796c39338cfb5ad0b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
1
00:00:00,150 --> 00:00:02,300
The next type of software process models that I

2
00:00:02,300 --> 00:00:06,300
want to discuss are Agile Software Development Processes. And this

3
00:00:06,300 --> 00:00:08,470
is a group of software development methods that are

4
00:00:08,470 --> 00:00:12,620
based on highly iterative and incremental development. And in particular,

5
00:00:12,620 --> 00:00:16,000
I'm going to discuss Test Driven Development or TDD. The

6
00:00:16,000 --> 00:00:18,490
space on the iteration of three main phases. In

7
00:00:18,490 --> 00:00:20,970
the first one that we mark as red, we

8
00:00:20,970 --> 00:00:25,350
write test cases that encode our requirements, and for which

9
00:00:25,350 --> 00:00:29,180
we haven't written code yet. And therefore, they will fail, obviously.

10
00:00:29,180 --> 00:00:31,800
So we're in this sort of red or fail phase. From

11
00:00:31,800 --> 00:00:34,830
this phase, we move to this phase, in which after we

12
00:00:34,830 --> 00:00:37,970
write the just enough code to make the test cases pass.

13
00:00:37,970 --> 00:00:40,670
We have a set of test cases that are all passing.

14
00:00:40,670 --> 00:00:43,810
And therefore, we can consider this as the green phase. We

15
00:00:43,810 --> 00:00:46,930
had enough code to make the test cases pass because the

16
00:00:46,930 --> 00:00:50,520
test cases encode our requirements. We have just written enough code to

17
00:00:50,520 --> 00:00:53,940
satisfy our requirements. When we do this over time though,

18
00:00:53,940 --> 00:00:57,080
what happens is that the structure of the code deteriorates, because

19
00:00:57,080 --> 00:00:59,100
we keep adding pieces. So that's why we have the

20
00:00:59,100 --> 00:01:02,540
first step, which is refactoring. In this step, we modify the

21
00:01:02,540 --> 00:01:05,724
code, and we will talk about refactoring extensively. We'll devote

22
00:01:05,724 --> 00:01:08,190
one lesson to it. We modify the code to make it

23
00:01:08,190 --> 00:01:12,650
more readable, more maintainable. In general, we modify to improve the

24
00:01:12,650 --> 00:01:15,560
design of the code. And after this phase, we will go

25
00:01:15,560 --> 00:01:17,670
back to writing more test cases for

26
00:01:17,670 --> 00:01:19,730
new requirements, write code that makes these

27
00:01:19,730 --> 00:01:24,870
test cases pass, and so on. So we'll continue to iterate among these phases. And

28
00:01:24,870 --> 00:01:26,500
also, in this case, we will talk

29
00:01:26,500 --> 00:01:29,390
about Agile Software Processes. And in particular,

30
00:01:29,390 --> 00:01:32,250
about extreme programming, or XP, and Scrum

31
00:01:32,250 --> 00:01:35,349
in more details, in minor course number four.