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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
1
00:00:00,072 --> 00:00:02,960
We will also look at how tools can improve software phases,
2
00:00:02,960 --> 00:00:06,660
the software activities, and can support software development tasks in general.
3
00:00:06,660 --> 00:00:08,890
And this is something that I will repeat over and over
4
00:00:08,890 --> 00:00:12,340
in the class, tools and automation are fundamental, in software engineering.
5
00:00:12,340 --> 00:00:15,910
And they're fundamental for improving productivity, not only efficiency but also
6
00:00:15,910 --> 00:00:19,820
effectiveness of our activities in the software development process. So let
7
00:00:19,820 --> 00:00:22,110
me go back to one of the diagrams that I showed
8
00:00:22,110 --> 00:00:25,170
you before. If you remember we had this qualititive diagram in which
9
00:00:25,170 --> 00:00:27,170
we were showing that one of the issues that led to the
10
00:00:27,170 --> 00:00:30,350
software crisis was the fact that developers' productivity was not able to
11
00:00:30,350 --> 00:00:33,580
keep up with the software size and complexity, with the growth in
12
00:00:33,580 --> 00:00:36,750
the importance and the complexity of software. What tools can help us
13
00:00:36,750 --> 00:00:40,150
to do is to change this and basically move this curve from
14
00:00:40,150 --> 00:00:43,950
this original position up here. So that it gets closer and closer
15
00:00:43,950 --> 00:00:45,970
to what we need to develop the software that we need to
16
00:00:45,970 --> 00:00:50,230
build. So let me discuss examples on how tools can improve productivity.
17
00:00:50,230 --> 00:00:52,970
For example, if we are talking about development, think about
18
00:00:52,970 --> 00:00:54,890
what kind of improvement it was to go from punch
19
00:00:54,890 --> 00:00:58,440
cards to modern IDEs. If we're talking about languages, think
20
00:00:58,440 --> 00:01:02,210
about of how much more productive developers became when going from
21
00:01:02,210 --> 00:01:05,830
writing machine code to writing code in high-level languages. And
22
00:01:05,830 --> 00:01:08,750
finally, if we talk about debugging, which is a very important
23
00:01:08,750 --> 00:01:12,140
and expensive activity, moving from the use of print lines
24
00:01:12,140 --> 00:01:16,060
to the use of symbolic debuggers dramatically improve the effectiveness and
25
00:01:16,060 --> 00:01:18,810
efficiency of development. And these are just some of the
26
00:01:18,810 --> 00:01:21,050
tools that we will discuss in the rest of the class
27
00:01:21,050 --> 00:01:23,350
and notice that we will also use the tools in practice.
28
00:01:23,350 --> 00:01:26,290
So we will use the tools before projects and also during
29
00:01:26,290 --> 00:01:30,153
the lessons and for assignments. In particular, we will use
30
00:01:30,153 --> 00:01:33,920
three main kinds of tools. The first type is IDE's. And
31
00:01:33,920 --> 00:01:37,140
I'm pretty sure you're familiar with IDE's. These are integrated development
32
00:01:37,140 --> 00:01:41,250
environments. So, advanced editors in which you can write, compile, run,
33
00:01:41,250 --> 00:01:43,950
and debug and even test your code. We'll also use a
34
00:01:43,950 --> 00:01:48,190
version control system, systems that allow you to save, and restore, and
35
00:01:48,190 --> 00:01:51,750
check the differences between different versions of the code, in particular
36
00:01:51,750 --> 00:01:53,950
we will be working with git. We will also be looking at
37
00:01:53,950 --> 00:01:57,460
other kinds of tools like coverage and verification tools. These are
38
00:01:57,460 --> 00:02:00,310
tools that can help you during testing and I'm a big fan
39
00:02:00,310 --> 00:02:02,710
of these tools, so I'm really going to stress the usefulness
40
00:02:02,710 --> 00:02:05,530
of these tools and how you should use them in your development.
|