1
0
Fork 0
cp/usth/ICT2.7/P1L1 Introduction and Overv.../6 - The Software Crisis - l...

209 lines
4.9 KiB
Plaintext

1
00:00:00,072 --> 00:00:02,190
To do that we'll have to go back in time to
2
00:00:02,190 --> 00:00:05,280
the late 60s. So what was happening in the 60s? Well for
3
00:00:05,280 --> 00:00:08,410
example the first man landed on the moon. That was also
4
00:00:08,410 --> 00:00:11,720
time when Woodstock took place and also the time when the first
5
00:00:11,720 --> 00:00:16,149
60 second picture from Polaroid was created. Concurrently to these events,
6
00:00:16,149 --> 00:00:18,910
which you probably didn't witness in first person, that was also the
7
00:00:18,910 --> 00:00:22,280
time when people started to realize that they were not able
8
00:00:22,280 --> 00:00:25,610
to build the software they needed. This happened for several reasons and
9
00:00:25,610 --> 00:00:29,220
resulted in what we call the software crisis. So let's
10
00:00:29,220 --> 00:00:31,820
look at some of the most important reasons behind this
11
00:00:31,820 --> 00:00:35,760
crisis. The first cause was the rising demand for software.
12
00:00:35,760 --> 00:00:38,500
Now you're used to see software everywhere: in your phone,
13
00:00:38,500 --> 00:00:41,530
in your car, even your washing machine. Before the 60s,
14
00:00:41,530 --> 00:00:44,590
however, the size and complexity of software was very limited
15
00:00:44,590 --> 00:00:47,580
and hardware components were really dominating the scene. Then things
16
00:00:47,580 --> 00:00:51,490
started to change and software started to be increasingly prevalent.
17
00:00:51,490 --> 00:00:53,940
So we move from a situation where everything was mostly
18
00:00:53,940 --> 00:00:57,380
hardware to a situation in which software became more and more
19
00:00:57,380 --> 00:01:00,660
important. To give an example, I'm going to show you the growth
20
00:01:00,660 --> 00:01:04,080
in the software demand at NASA along those years. And in
21
00:01:04,080 --> 00:01:07,610
particular, from the 1950s to more or less 2000. And this
22
00:01:07,610 --> 00:01:10,350
is just a qualitative plot but that's more or less the
23
00:01:10,350 --> 00:01:13,880
ways things went. So the demand for software in NASA grow
24
00:01:13,880 --> 00:01:16,930
exponentially. And the same happened in a lot of other companies.
25
00:01:16,930 --> 00:01:19,020
For example, just to cite one, for Boeing. So the
26
00:01:19,020 --> 00:01:22,350
amount of software on airplanes became larger and larger. The
27
00:01:22,350 --> 00:01:26,170
second cause for the software crisis was the increasing amount
28
00:01:26,170 --> 00:01:30,210
of development effort needed due to the increase of product complexity.
29
00:01:30,210 --> 00:01:34,260
Unfortunately, software complexity does not increase linearly with size. It
30
00:01:34,260 --> 00:01:36,170
is not the same thing to write software for a
31
00:01:36,170 --> 00:01:39,410
class exercise or a small project, or a temp project,
32
00:01:39,410 --> 00:01:41,970
than it is to build a software for a word processor,
33
00:01:41,970 --> 00:01:45,950
an operating system, a distributed system, or even more complex and larger
34
00:01:45,950 --> 00:01:49,390
system. And what I'm giving here is just an indicative size for
35
00:01:49,390 --> 00:01:52,643
the software so the class exercise might be 100 lines of code,
36
00:01:52,643 --> 00:01:55,600
the small project might be 1000 lines of code, in the other thousand
37
00:01:55,600 --> 00:01:58,328
lines of code, and so on and so forth. For the former,
38
00:01:58,328 --> 00:02:01,510
the heroic effort of an individual developer can get the job done.
39
00:02:01,510 --> 00:02:03,850
So that's what we call a programming effort. If you're a good
40
00:02:03,850 --> 00:02:07,340
programmer, you can go sit down and do it, right. For the latter,
41
00:02:07,340 --> 00:02:09,330
this is not possible. This is what we called the
42
00:02:09,330 --> 00:02:13,810
software engineering effort. In fact, no matter how much programming languages,
43
00:02:13,810 --> 00:02:17,280
development environments, and software tools improve, developers could not keep
44
00:02:17,280 --> 00:02:20,220
up with increasing software size and complexity. Which leads us to
45
00:02:20,220 --> 00:02:22,280
the third problem that I want to mention and the
46
00:02:22,280 --> 00:02:25,020
third reason for the software crisis. And this cause is the
47
00:02:25,020 --> 00:02:28,790
slow developer's productivity growth. So let me show this again
48
00:02:28,790 --> 00:02:32,243
with a qualitative diagram. And this is taken from the IEEE
49
00:02:32,243 --> 00:02:35,550
Software Magazine. And what I'm showing here is the growth in
50
00:02:35,550 --> 00:02:39,930
software size and complexity over time, and how the developers' productivity
51
00:02:39,930 --> 00:02:43,800
really couldn't keep up with this additional software complexity, which resulted
52
00:02:43,800 --> 00:02:47,170
in this gap between what was needed and what was actually available.