about summary refs log tree commit diff
path: root/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/2 - Importance of Software Engineering - lang_en.srt
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P1L1 Introduction and Overview Subtitles/2 - Importance of Software Engineering - lang_en.srt')
-rw-r--r--usth/ICT2.7/P1L1 Introduction and Overview Subtitles/2 - Importance of Software Engineering - lang_en.srt572
1 files changed, 0 insertions, 572 deletions
diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/2 - Importance of Software Engineering - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/2 - Importance of Software Engineering - lang_en.srt
deleted file mode 100644
index 858a75a..0000000
--- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/2 - Importance of Software Engineering - lang_en.srt
+++ /dev/null
@@ -1,572 +0,0 @@
-1
-00:00:00,150 --> 00:00:02,106
-First, let me start by asking a couple of very
-
-2
-00:00:02,106 --> 00:00:04,820
-natural questions that you might have when considering whether to take
-
-3
-00:00:04,820 --> 00:00:07,800
-this course. The first one is what is software engineering.
-
-4
-00:00:07,800 --> 00:00:10,050
-And the second, very related one, is why do we need
-
-5
-00:00:10,050 --> 00:00:12,430
-it? So what I did was actually to go out
-
-6
-00:00:12,430 --> 00:00:15,430
-and ask some of the main experts in the field, both
-
-7
-00:00:15,430 --> 00:00:18,290
-in academia and industry, these very questions and let's see what
-
-8
-00:00:18,290 --> 00:00:22,160
-they said. What is software engineering and why is it important?
-
-9
-00:00:23,170 --> 00:00:25,150
->> Okay, can I start with another question?
-
-10
-00:00:25,150 --> 00:00:26,020
->> Of course.
-
-11
-00:00:26,020 --> 00:00:31,290
->> Okay, first what is a computer? It's a programmable device. So the essence
-
-12
-00:00:31,290 --> 00:00:34,730
-of computing is programming. So program development
-
-13
-00:00:34,730 --> 00:00:37,240
-is basically the most essential use of the
-
-14
-00:00:37,240 --> 00:00:41,010
-computer. So software engineering is the discipline
-
-15
-00:00:41,010 --> 00:00:44,850
-that investigates program development. So, how can it
-
-16
-00:00:44,850 --> 00:00:47,390
-been done more efficiently? What's the best
-
-17
-00:00:47,390 --> 00:00:50,170
-way of doing program development? And how can
-
-18
-00:00:50,170 --> 00:00:53,140
-you develop reliable programs? So that's how I would define
-
-19
-00:00:53,140 --> 00:00:55,060
-it. But I consider any
-
-20
-00:00:55,060 --> 00:00:57,345
-software development activity software engineering activity
-
-21
-00:00:58,825 --> 00:01:04,239
->> Software engineering is the systematic application of methods to build
-
-22
-00:01:04,239 --> 00:01:07,884
-software in a rigorous way. And I think one of the
-
-23
-00:01:07,884 --> 00:01:11,196
-aspects that I like to bring into the notion of software
-
-24
-00:01:11,196 --> 00:01:15,228
-engineering is that it's something that involves not only kind of
-
-25
-00:01:15,228 --> 00:01:18,612
-technically building the system but understanding the
-
-26
-00:01:18,612 --> 00:01:22,317
-requirements, working with stake holders. Trying to
-
-27
-00:01:22,317 --> 00:01:28,232
-find a solution that balances all of the stakeholder needs in order to deliver
-
-28
-00:01:28,232 --> 00:01:34,338
-the software thats tested and its rigorous to meet the needs of a stakeholder.
-
-29
-00:01:34,338 --> 00:01:37,656
-Well, software engineering is the whole process
-
-30
-00:01:37,656 --> 00:01:41,460
-of creation of software using engineering principles.
-
-31
-00:01:41,460 --> 00:01:42,886
->> My view is kind of a holistic
-
-32
-00:01:42,886 --> 00:01:45,490
-view and I think about it from the perspective
-
-33
-00:01:45,490 --> 00:01:49,440
-of how is software engineering different from programming.
-
-34
-00:01:49,440 --> 00:01:52,940
-So, I think that research about programming is all
-
-35
-00:01:52,940 --> 00:01:57,550
-about the create part of software. And that
-
-36
-00:01:57,550 --> 00:02:00,270
-software engineering is about the entire life cycle. So,
-
-37
-00:02:00,270 --> 00:02:03,070
-that's one aspect. And the other aspect of the
-
-38
-00:02:03,070 --> 00:02:07,350
-definition is it's about quality, the quality of software.
-
-39
-00:02:07,350 --> 00:02:12,330
-Software engineering even considers things long after you ship which we all know
-
-40
-00:02:12,330 --> 00:02:18,310
-is one of the, it is the largest economic piece of software development.
-
-41
-00:02:18,310 --> 00:02:22,990
->> So, improve, software engineering process
-
-42
-00:02:22,990 --> 00:02:26,440
-for better software productivity and quality.
-
-43
-00:02:26,440 --> 00:02:32,472
->> The set of activities that one engages in when building software
-
-44
-00:02:32,472 --> 00:02:39,634
-systems or software products. It's fundamentally a venue-creating
-
-45
-00:02:39,634 --> 00:02:45,492
-activity. It involves social processes.
-
-46
-00:02:45,492 --> 00:02:47,247
->> Software engineering is the act
-
-47
-00:02:47,247 --> 00:02:49,652
-of many people working together and putting
-
-48
-00:02:49,652 --> 00:02:52,057
-together many versions of large and complex
-
-49
-00:02:52,057 --> 00:02:57,110
-systems. And our world depends on software,
-
-50
-00:02:57,110 --> 00:02:58,910
-software is immensely complex and we need
-
-51
-00:02:58,910 --> 00:03:01,700
-many, many smart people to build these things.
-
-52
-00:03:01,700 --> 00:03:05,610
->> Well, engineering I think is the activity of envisioning and
-
-53
-00:03:05,610 --> 00:03:10,180
-realizing valuable new functions with sufficient
-
-54
-00:03:10,180 --> 00:03:13,500
-and justifiable confidence that the resulting
-
-55
-00:03:13,500 --> 00:03:18,190
-system will have all of the critical quality attributes that are necessary
-
-56
-00:03:18,190 --> 00:03:22,140
-for the system to be a success. And software engineering is the
-
-57
-00:03:22,140 --> 00:03:24,790
-activity of doing this not only for
-
-58
-00:03:24,790 --> 00:03:27,550
-the software components of engineering systems but
-
-59
-00:03:28,830 --> 00:03:31,740
-for the system overall, given that it's
-
-60
-00:03:31,740 --> 00:03:35,500
-so heavily reliant on it's underlying software technologies.
-
-61
-00:03:35,500 --> 00:03:40,440
->> So, I would say software engineering is the
-
-62
-00:03:40,440 --> 00:03:44,070
-kind of art and practice of building software systems.
-
-63
-00:03:44,070 --> 00:03:47,610
->> Software engineering, in a nutshell, is a set of
-
-64
-00:03:47,610 --> 00:03:52,140
-methods and principles and techniques that we have developed to enable us to
-
-65
-00:03:53,220 --> 00:03:57,830
-engineer, or build, large software systems that
-
-66
-00:03:59,090 --> 00:04:03,960
-outstrip or outpace one engineer's or even a small
-
-67
-00:04:03,960 --> 00:04:08,900
-team of engineer's ability or abilities to understand
-
-68
-00:04:08,900 --> 00:04:13,330
-and construct and maintain
-
-69
-00:04:13,330 --> 00:04:17,339
-over time. So it requires a lot of people, it requires a long,
-
-70
-00:04:17,339 --> 00:04:21,820
-term investment by an organization or a number of organizations, and often times
-
-71
-00:04:21,820 --> 00:04:28,040
-it requires support for systems that that are intended for one purpose but end
-
-72
-00:04:28,040 --> 00:04:33,930
-up getting used for many additional purposes in addition to the original one.
-
-73
-00:04:33,930 --> 00:04:38,656
->> Software engineering is about building and constructing very large-scale
-
-74
-00:04:38,656 --> 00:04:42,800
-high-quality systems, so the high quality is the big issue.
-
-75
-00:04:42,800 --> 00:04:46,268
->> Software engineering is engineering discipline of developing
-
-76
-00:04:46,268 --> 00:04:52,800
-software-based systems, usually embedded into larger systems composed of
-
-77
-00:04:52,800 --> 00:04:58,544
-hardware and and humans [LAUGH] and business
-
-78
-00:04:58,544 --> 00:05:04,943
-processes and processes in general. And why is that important?
-
-79
-00:05:04,943 --> 00:05:06,971
-Well, because software is pervasive in all industry sectors
-
-80
-00:05:06,971 --> 00:05:09,001
-and therefore systems must be reliable, safe and secure.
-
-81
-00:05:09,001 --> 00:05:13,232
->> Why can't we just get that by sitting down and writing software?
-
-82
-00:05:13,232 --> 00:05:16,697
->> Well, you could if software was small and
-
-83
-00:05:16,697 --> 00:05:20,162
-simple enough to be developed by one or two
-
-84
-00:05:20,162 --> 00:05:25,360
-people together in a room. But software development now
-
-85
-00:05:25,360 --> 00:05:31,550
-is distributed, involves teams of people with different backgrounds
-
-86
-00:05:31,550 --> 00:05:37,450
-who have to communicate with each other. It also involves customers,
-
-87
-00:05:37,450 --> 00:05:42,512
-clients, users. Software engineers have to work with
-
-88
-00:05:42,512 --> 00:05:47,462
-hardware engineers, with domain experts and therefore,
-
-89
-00:05:47,462 --> 00:05:52,233
-well, no, we can't simply sit down and start coding.
-
-90
-00:05:52,233 --> 00:05:57,380
->> Software engineering is mostly being able
-
-91
-00:05:57,380 --> 00:06:02,775
-to program. And you need to be able to put big
-
-92
-00:06:02,775 --> 00:06:06,920
-systems together so that they actually work. That's my simple definition.
-
-93
-00:06:06,920 --> 00:06:09,210
->> And if you don't use software engineering practices,
-
-94
-00:06:09,210 --> 00:06:10,670
-you're not going to be able to put them together?
-
-95
-00:06:10,670 --> 00:06:13,290
->> Well, you're not going to be able to reliably
-
-96
-00:06:13,290 --> 00:06:16,160
-put them together. So basically, you could maybe hack something up,
-
-97
-00:06:16,160 --> 00:06:18,750
-but it's not going to necessarily stand the test of time.
-
-98
-00:06:18,750 --> 00:06:21,221
-If somebody wants to change it it's probably going to break.
-
-99
-00:06:21,221 --> 00:06:24,140
->> It's important
-
-100
-00:06:24,140 --> 00:06:29,700
-because if you don't think about how you're building this system and
-
-101
-00:06:29,700 --> 00:06:31,600
-how you're trading off different aspects,
-
-102
-00:06:31,600 --> 00:06:35,580
-like performance and scalability and reliability, then
-
-103
-00:06:35,580 --> 00:06:39,900
-it's going to end up breaking or not lasting very long or not,
-
-104
-00:06:39,900 --> 00:06:42,900
-not doing everything that you want it to do, or being really expensive.
-
-105
-00:06:43,960 --> 00:06:45,800
->> If it's not done in a principled way it will
-
-106
-00:06:45,800 --> 00:06:49,220
-be bad and every user will suffer. That's why we need
-
-107
-00:06:49,220 --> 00:06:49,970
-software engineering.
-
-108
-00:06:49,970 --> 00:06:56,252
->> Why is it important? Because, I mean these two goal, productivity, faster,
-
-109
-00:06:56,252 --> 00:06:59,480
-in developing software. And higher quality
-
-110
-00:06:59,480 --> 00:07:03,551
-would be apparently important. Software is everywhere.
-
-111
-00:07:03,551 --> 00:07:08,260
->> It's important because we use software in everyday life. Everything's
-
-112
-00:07:08,260 --> 00:07:14,120
-built on software systems. And these are ubiquitous across our society.
-
-113
-00:07:14,120 --> 00:07:14,300
->> It's
-
-114
-00:07:14,300 --> 00:07:20,820
-important because software is everywhere around us and the way we build it,
-
-115
-00:07:20,820 --> 00:07:26,910
-and the way we maintain it, is something that determines almost a basic
-
-116
-00:07:26,910 --> 00:07:33,940
-quality of life nowadays. And getting that software right can make a difference,
-
-117
-00:07:33,940 --> 00:07:39,590
-oftentimes, between a really fun product and one that you won't like to use
-
-118
-00:07:40,640 --> 00:07:45,750
-a reasonably successful company, or one that fails. And in
-
-119
-00:07:45,750 --> 00:07:49,690
-more extreme cases even the difference between life and death,
-
-120
-00:07:49,690 --> 00:07:51,510
-if you think about the software that runs in the
-
-121
-00:07:51,510 --> 00:07:56,380
-airplane on which many of you fly on a regular basis.
-
-122
-00:07:56,380 --> 00:08:00,790
->> There are programs out there that if they screw up we are all screwed.
-
-123
-00:08:00,790 --> 00:08:02,440
->> Software engineering is crucially
-
-124
-00:08:02,440 --> 00:08:06,460
-important because it's the engineering discipline
-
-125
-00:08:06,460 --> 00:08:10,250
-that is uniquely capable of carrying out
-
-126
-00:08:10,250 --> 00:08:13,848
-the engineering mission for software reliant systems.
-
-127
-00:08:13,848 --> 00:08:17,620
->> In the U.S we've all seen an unfortunate example with
-
-128
-00:08:17,620 --> 00:08:23,032
-a system that went badly wrong in healthcare.gov and that system wasn't
-
-129
-00:08:23,032 --> 00:08:26,740
-engineered correctly. And I think if we look at the reasons for
-
-130
-00:08:26,740 --> 00:08:32,350
-that, they stem back to somewhere at the intersection between requirements and
-
-131
-00:08:32,350 --> 00:08:37,470
-architecture and politics and project management, and all of these things are
-
-132
-00:08:37,470 --> 00:08:43,270
-important concepts that have to go into the software engineering mix.
-
-133
-00:08:43,270 --> 00:08:45,570
->> It would end up in lots and lots of chaos because people
-
-134
-00:08:45,570 --> 00:08:47,220
-wouldn't know how to organize themselves and
-
-135
-00:08:47,220 --> 00:08:49,400
-wouldn't know how to organize software. Many
-
-136
-00:08:49,400 --> 00:08:53,830
-of software engineering has very simple rules that you need to apply properly in
-
-137
-00:08:53,830 --> 00:08:57,280
-order to get things done. And people who look at these rules and think,
-
-138
-00:08:57,280 --> 00:09:01,050
-these rules are so super simple. This is totally obvious. But once
-
-139
-00:09:01,050 --> 00:09:05,495
-you try to apply them, you'll find out they're not obvious at all.
-
-140
-00:09:05,495 --> 00:09:07,670
->> Now that we've heard these experts, let me show you an
-
-141
-00:09:07,670 --> 00:09:10,080
-example that illustrates what can happen
-
-142
-00:09:10,080 --> 00:09:12,410
-when software engineering practices are not suitably
-
-143
-00:09:15,310 --> 00:09:24,010
-applied. [NOISE].
-