From 8a7dfa0972c83fd811a4296e7373574bea4a28d0 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 19 Jul 2020 20:34:40 +0700 Subject: [usth/ICT2.7] Remove Udacity transcribes --- .../1 - Introduction - lang_en.srt | 40 -- .../10 - Software Development - lang_en.srt | 108 ---- .../11 - Software Process - lang_en.srt | 96 ---- .../12 - Preliminary Questions - lang_en.srt | 32 -- ... - Preliminary Questions Solution - lang_en.srt | 16 - .../14 - Preliminary Questions - lang_en.srt | 24 - ... - Preliminary Questions Solution - lang_en.srt | 32 -- .../16 - Software Phases - lang_en.srt | 100 ---- .../17 - Tools of the Trade - lang_en.srt | 160 ------ ...mportance of Software Engineering - lang_en.srt | 572 --------------------- .../3 - Software Failure Quiz - lang_en.srt | 32 -- ... - Software Failure Quiz Solution - lang_en.srt | 48 -- ...iscipline of Software Engineering - lang_en.srt | 80 --- .../6 - The Software Crisis - lang_en.srt | 208 -------- .../7 - The Software Crisis Quiz - lang_en.srt | 44 -- ...The Software Crisis Quiz Solution - lang_en.srt | 52 -- ...- Evidence of the Software Crisis - lang_en.srt | 116 ----- 17 files changed, 1760 deletions(-) delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/1 - Introduction - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/10 - Software Development - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/11 - Software Process - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/12 - Preliminary Questions - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/13 - Preliminary Questions Solution - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/14 - Preliminary Questions - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/15 - Preliminary Questions Solution - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/16 - Software Phases - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/17 - Tools of the Trade - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/2 - Importance of Software Engineering - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/3 - Software Failure Quiz - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/4 - Software Failure Quiz Solution - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/5 - Discipline of Software Engineering - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/6 - The Software Crisis - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/7 - The Software Crisis Quiz - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/8 - The Software Crisis Quiz Solution - lang_en.srt delete mode 100644 usth/ICT2.7/P1L1 Introduction and Overview Subtitles/9 - Evidence of the Software Crisis - lang_en.srt (limited to 'usth/ICT2.7/P1L1 Introduction and Overview Subtitles') diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/1 - Introduction - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/1 - Introduction - lang_en.srt deleted file mode 100644 index aea69ae..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/1 - Introduction - lang_en.srt +++ /dev/null @@ -1,40 +0,0 @@ -1 -00:00:00,350 --> 00:00:03,570 -Hi, everybody, and welcome to the first lesson - -2 -00:00:03,570 --> 00:00:07,970 -of the Software Engineering Course. In this introductory lesson - -3 -00:00:07,970 --> 00:00:09,820 -I will first provide an overview of the - -4 -00:00:09,820 --> 00:00:13,100 -whole course and then try to answer two important - -5 -00:00:13,100 --> 00:00:16,630 -questions about software engineering, which are, what is - -6 -00:00:16,630 --> 00:00:20,310 -software engineering and why do we need it? And - -7 -00:00:20,310 --> 00:00:22,370 -to spice up the content a bit I - -8 -00:00:22,370 --> 00:00:25,480 -will also interview several experts in the software engineering - -9 -00:00:25,480 --> 00:00:30,080 -field from both academia and industry and ask them these - -10 -00:00:30,080 --> 00:00:34,410 -very questions. So without any further ado, let's begin the lesson. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/10 - Software Development - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/10 - Software Development - lang_en.srt deleted file mode 100644 index b1f822e..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/10 - Software Development - lang_en.srt +++ /dev/null @@ -1,108 +0,0 @@ -1 -00:00:00,060 --> 00:00:01,970 -Now that we saw how software engineering was born and we - -2 -00:00:01,970 --> 00:00:04,580 -saw some of the problems that led to the birth of software - -3 -00:00:04,580 --> 00:00:07,020 -engineering. Let's see how we can do better. How can we - -4 -00:00:07,020 --> 00:00:10,580 -preform software development in a smarter, in a better way, a more - -5 -00:00:10,580 --> 00:00:13,150 -successful way? So what I'm going to show here is the - -6 -00:00:13,150 --> 00:00:14,730 -way I see software development. To - -7 -00:00:14,730 --> 00:00:17,080 -me software development is fundementally going - -8 -00:00:17,080 --> 00:00:21,150 -from an abstract idea in somebody's head, for example, the customer's head, - -9 -00:00:21,150 --> 00:00:25,300 -to a concrete system that actually implements that idea and hopefully it - -10 -00:00:25,300 --> 00:00:27,640 -does it in the right way. And this is a very - -11 -00:00:27,640 --> 00:00:31,290 -complex process. It can be overwhelming. So, unless we are talking about - -12 -00:00:31,290 --> 00:00:34,800 -the trivial system, it's very complex for us to keep in mind - -13 -00:00:34,800 --> 00:00:37,020 -all the different aspects of the systems, and to do all the - -14 -00:00:37,020 --> 00:00:40,270 -different steps required to build this system, automatically. So that's when - -15 -00:00:40,270 --> 00:00:43,630 -software processes come to the rescue. So what is a software process? - -16 -00:00:43,630 --> 00:00:46,380 -A software process is nothing else but a way of breaking down - -17 -00:00:46,380 --> 00:00:50,320 -this otherwise unmanageable task into smaller steps. In smaller steps that we - -18 -00:00:50,320 --> 00:00:53,270 -can handle. And that can be tackled individually. So having a - -19 -00:00:53,270 --> 00:00:56,580 -software process is of fundamental importance for several reasons. First of - -20 -00:00:56,580 --> 00:00:59,530 -all, for non-trivial systems, you can't just do it by getting - -21 -00:00:59,530 --> 00:01:01,680 -it, by just sitting down and developing. What you have to - -22 -00:01:01,680 --> 00:01:04,629 -do instead is to break down the complexity in a systematic - -23 -00:01:04,629 --> 00:01:08,250 -way. So software processes are normally systematic. And you need to - -24 -00:01:08,250 --> 00:01:11,370 -break down this complexity, in a more or less formal way. - -25 -00:01:11,370 --> 00:01:15,800 -So software processes are also a formal, or semiformal, way of - -26 -00:01:15,800 --> 00:01:19,120 -discussing, or describing, how software should be developed. - -27 -00:01:19,120 --> 00:01:21,370 -So what are the steps involved in developing software? - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/11 - Software Process - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/11 - Software Process - lang_en.srt deleted file mode 100644 index 98592eb..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/11 - Software Process - lang_en.srt +++ /dev/null @@ -1,96 +0,0 @@ -1 -00:00:00,200 --> 00:00:02,580 -One thing you need to know right away about software processes - -2 -00:00:02,580 --> 00:00:05,750 -is that there's not just one single process, but there are multiple, - -3 -00:00:05,750 --> 00:00:08,840 -possible processes, depending on your context, depending on the kind of - -4 -00:00:08,840 --> 00:00:11,535 -applications that you are developing. In this course, we are going to try - -5 -00:00:11,535 --> 00:00:14,760 -to cover the spectrum of the possible processes, as much as - -6 -00:00:14,760 --> 00:00:18,900 -possible, by focusing on four main software processes. The first one is - -7 -00:00:18,900 --> 00:00:22,480 -what we call normally the waterfall process. And, we call it waterfall - -8 -00:00:22,480 --> 00:00:25,490 -because in the process we go from one phase to the other - -9 -00:00:25,490 --> 00:00:28,300 -in the same way in which water follows the flow - -10 -00:00:28,300 --> 00:00:30,910 -in a waterfall. The second process that we consider is what - -11 -00:00:30,910 --> 00:00:34,580 -we call evolutionary prototyping, and in this case, instead of - -12 -00:00:34,580 --> 00:00:37,790 -following this set of rigid steps, all we're trying to do - -13 -00:00:37,790 --> 00:00:40,930 -is to start with an initial prototype and evolve it - -14 -00:00:40,930 --> 00:00:43,670 -based on the feedback from the customer. We will then move - -15 -00:00:43,670 --> 00:00:47,150 -towards a slightly more formal process, which is the rational unified - -16 -00:00:47,150 --> 00:00:50,590 -process or the unified software process. And this is a kind - -17 -00:00:50,590 --> 00:00:53,040 -of project heavily based on the use of UML, so we - -18 -00:00:53,040 --> 00:00:56,263 -will also cover UML when discussing this kind of project. Finally, - -19 -00:00:56,263 --> 00:00:58,680 -the fourth kind of process we will consider is the family - -20 -00:00:58,680 --> 00:01:01,670 -of agile software processes. And these are processes in which we - -21 -00:01:01,670 --> 00:01:04,280 -sacrifice the discipline a little bi,t in order to be more - -22 -00:01:04,280 --> 00:01:07,380 -flexible and be more able to account for changes and in - -23 -00:01:07,380 --> 00:01:10,760 -particular for changes in requirements. We are going to cover each - -24 -00:01:10,760 --> 00:01:14,620 -one of these four processes extensively in the rest of the class. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/12 - Preliminary Questions - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/12 - Preliminary Questions - lang_en.srt deleted file mode 100644 index 20ef47f..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/12 - Preliminary Questions - lang_en.srt +++ /dev/null @@ -1,32 +0,0 @@ -1 -00:00:00,110 --> 00:00:01,450 -So, now before we actually jump to the - -2 -00:00:01,450 --> 00:00:03,410 -discussion of software processes I want to ask you - -3 -00:00:03,410 --> 00:00:05,770 -a couple of preliminary questions. The first one is, - -4 -00:00:05,770 --> 00:00:08,140 -what is the largest software system on which you - -5 -00:00:08,140 --> 00:00:10,860 -had worked? And you should enter here the size. - -6 -00:00:10,860 --> 00:00:12,850 -And the second question I'm going to ask is how - -7 -00:00:12,850 --> 00:00:15,070 -many LOC or how many lines of code per - -8 -00:00:15,070 --> 00:00:17,380 -day you were producing when working on this system? - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/13 - Preliminary Questions Solution - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/13 - Preliminary Questions Solution - lang_en.srt deleted file mode 100644 index fe239c6..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/13 - Preliminary Questions Solution - lang_en.srt +++ /dev/null @@ -1,16 +0,0 @@ -1 -00:00:00,110 --> 00:00:01,620 -We're going to go back to these two questions - -2 -00:00:01,620 --> 00:00:03,260 -and to your answers later. But I wanted to - -3 -00:00:03,260 --> 00:00:05,810 -gather this information beforehand, so that your answers are - -4 -00:00:05,810 --> 00:00:08,590 -not biased, they're not influenced by this subsequent discussion. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/14 - Preliminary Questions - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/14 - Preliminary Questions - lang_en.srt deleted file mode 100644 index 936b50d..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/14 - Preliminary Questions - lang_en.srt +++ /dev/null @@ -1,24 +0,0 @@ -1 -00:00:00,090 --> 00:00:03,200 -So now I want to ask you one additional question, which is how many lines - -2 -00:00:03,200 --> 00:00:05,030 -of code a day do you think professional - -3 -00:00:05,030 --> 00:00:07,370 -software engineers produce? Do you think they produce - -4 -00:00:07,370 --> 00:00:12,160 -25 lines of code? Between 25 and 50? Between 50 and 100? Between 100 and 1000? - -5 -00:00:12,160 --> 00:00:13,720 -Or more than 1000 a day? And remember - -6 -00:00:13,720 --> 00:00:16,379 -that here we're talking about professional software engineers. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/15 - Preliminary Questions Solution - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/15 - Preliminary Questions Solution - lang_en.srt deleted file mode 100644 index 1a040e2..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/15 - Preliminary Questions Solution - lang_en.srt +++ /dev/null @@ -1,32 +0,0 @@ -1 -00:00:00,180 --> 00:00:03,450 -Studies has shown that, on average, developers produce between - -2 -00:00:03,450 --> 00:00:07,030 -50 and 100 lines of code a day. And that - -3 -00:00:07,030 --> 00:00:09,530 -might not seem much. Why, why only 50 to - -4 -00:00:09,530 --> 00:00:11,580 -100 lines of code in a whole day? And the - -5 -00:00:11,580 --> 00:00:14,350 -answer is because coding is not everything. When you - -6 -00:00:14,350 --> 00:00:17,020 -develop a system writing code is not the only thing - -7 -00:00:17,020 --> 00:00:18,890 -you have to do. It's not the only activity that - -8 -00:00:18,890 --> 00:00:20,800 -you have to perform. And that's a very important point. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/16 - Software Phases - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/16 - Software Phases - lang_en.srt deleted file mode 100644 index 7fc30ef..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/16 - Software Phases - lang_en.srt +++ /dev/null @@ -1,100 +0,0 @@ -1 -00:00:00,110 --> 00:00:03,730 -In fact, software processes are normally characterized by several phases, what - -2 -00:00:03,730 --> 00:00:07,240 -we call the software phases, and only one of these phases is - -3 -00:00:07,240 --> 00:00:09,970 -mainly focused on coding. The other phases are meant to support - -4 -00:00:09,970 --> 00:00:13,440 -other parts of software development. The first of these phases is called - -5 -00:00:13,440 --> 00:00:16,110 -requirements engineering and that's the phase in which we talk to - -6 -00:00:16,110 --> 00:00:19,640 -the customer, to the stakeholders, whoever we are building the software for. - -7 -00:00:19,640 --> 00:00:22,120 -And we try to understand what kind of system we need - -8 -00:00:22,120 --> 00:00:25,650 -to build. Then we use this information to define our design and - -9 -00:00:25,650 --> 00:00:28,840 -the design is the high-level structure, that then can become more - -10 -00:00:28,840 --> 00:00:31,800 -and more detailed, of our software system. Once we've defined our - -11 -00:00:31,800 --> 00:00:34,180 -design we can actually move to the next phase, which is - -12 -00:00:34,180 --> 00:00:37,480 -the implementation, in which we write code that implements the design which - -13 -00:00:37,480 --> 00:00:40,630 -we just defined. After implementing the code, we need to verify - -14 -00:00:40,630 --> 00:00:43,510 -and validate the code. We need to make sure that the code - -15 -00:00:43,510 --> 00:00:46,930 -behaves as intended. And finally, we need to maintain the code. - -16 -00:00:46,930 --> 00:00:48,992 -And maintenance involves several activities like, - -17 -00:00:48,992 --> 00:00:50,980 -for example, adding new functionality or - -18 -00:00:50,980 --> 00:00:54,568 -eliminating bugs from the code or responding to problems that - -19 -00:00:54,568 --> 00:00:57,420 -were reported from the field after we released the software. - -20 -00:00:57,420 --> 00:00:59,020 -We will look at all of these activities and of - -21 -00:00:59,020 --> 00:01:01,670 -the software development process in detail, in the rest of the - -22 -00:01:01,670 --> 00:01:03,610 -class. And for each activity, we will look at the - -23 -00:01:03,610 --> 00:01:06,460 -fundamental principles and how it is done currently. And in - -24 -00:01:06,460 --> 00:01:08,780 -some cases, we will also look at some advance ways - -25 -00:01:08,780 --> 00:01:11,680 -to do it. For example, more research approaches for that activity. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/17 - Tools of the Trade - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/17 - Tools of the Trade - lang_en.srt deleted file mode 100644 index 077c0f8..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/17 - Tools of the Trade - lang_en.srt +++ /dev/null @@ -1,160 +0,0 @@ -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. - 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]. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/3 - Software Failure Quiz - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/3 - Software Failure Quiz - lang_en.srt deleted file mode 100644 index f98f98f..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/3 - Software Failure Quiz - lang_en.srt +++ /dev/null @@ -1,32 +0,0 @@ -1 -00:00:00,110 --> 00:00:01,940 -Now that you watched this small video, I like - -2 -00:00:01,940 --> 00:00:03,660 -to ask you, what is this? Do you think - -3 -00:00:03,660 --> 00:00:06,330 -it's fireworks for the 4th of July celebration, or - -4 -00:00:06,330 --> 00:00:08,280 -maybe it was a flare gun in action, or - -5 -00:00:08,280 --> 00:00:10,240 -maybe again it was the explosion of the Ariane - -6 -00:00:10,240 --> 00:00:12,280 -five rocket due to a software error. What do - -7 -00:00:12,280 --> 00:00:14,190 -you think? And in case it helps, I'm also - -8 -00:00:14,190 --> 00:00:16,450 -going to show you an actual picture of this event. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/4 - Software Failure Quiz Solution - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/4 - Software Failure Quiz Solution - lang_en.srt deleted file mode 100644 index db633e2..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/4 - Software Failure Quiz Solution - lang_en.srt +++ /dev/null @@ -1,48 +0,0 @@ -1 -00:00:00,100 --> 00:00:02,600 -As you probably guessed, these are not fireworks for the 4th of - -2 -00:00:02,600 --> 00:00:06,670 -July but, rather, the explosion of the Ariane 5, which happened 30 seconds - -3 -00:00:06,670 --> 00:00:09,250 -or so after takeoff due to a software error. And this is - -4 -00:00:09,250 --> 00:00:12,020 -just an example of what can go wrong when we don't build software - -5 -00:00:12,020 --> 00:00:15,600 -and we don't test and verify and perform quality assurance of software - -6 -00:00:15,600 --> 00:00:18,540 -in the right way, and quite an expensive one. In fact, to develop - -7 -00:00:18,540 --> 00:00:21,250 -and to build the Ariane 5 it took 10 years. The cost - -8 -00:00:21,250 --> 00:00:25,240 -was around $7 billion and there were $500 million of cargo on board. - -9 -00:00:25,240 --> 00:00:27,280 -Luckily, at least there were no humans on the - -10 -00:00:27,280 --> 00:00:29,400 -rocket. And you can find more details in case - -11 -00:00:29,400 --> 00:00:31,610 -you're interested about the Ariane 5 accident in the - -12 -00:00:31,610 --> 00:00:33,230 -lesson notes. I put a couple of links there. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/5 - Discipline of Software Engineering - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/5 - Discipline of Software Engineering - lang_en.srt deleted file mode 100644 index 6933222..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/5 - Discipline of Software Engineering - lang_en.srt +++ /dev/null @@ -1,80 +0,0 @@ -1 -00:00:00,140 --> 00:00:02,469 -And even if we don't go to these extreme examples, I'm - -2 -00:00:02,469 --> 00:00:04,380 -sure that you have all experienced - -3 -00:00:04,380 --> 00:00:06,540 -software problems, typically manifested in what - -4 -00:00:06,540 --> 00:00:09,630 -we call a crash. And that crash might happen while you're - -5 -00:00:09,630 --> 00:00:13,230 -finishing your homework or that three-page long email that you were preparing - -6 -00:00:13,230 --> 00:00:15,900 -for the last two hours. But why's it so difficult to - -7 -00:00:15,900 --> 00:00:20,220 -build software, or better, why's it so difficult to build good software? - -8 -00:00:20,220 --> 00:00:22,200 -And how can we do it? This is exactly the topic - -9 -00:00:22,200 --> 00:00:25,190 -of this class. And the reason why software engineering is a fundamental - -10 -00:00:25,190 --> 00:00:28,330 -discipline in computer science. To motivate that, in this class, we - -11 -00:00:28,330 --> 00:00:32,259 -will study a set of methodologies, techniques, and tools, that will help - -12 -00:00:32,259 --> 00:00:35,150 -us build high quality software that does what it's supposed to - -13 -00:00:35,150 --> 00:00:38,540 -do. And therefore, makes our customers happy. And that does it within - -14 -00:00:38,540 --> 00:00:42,375 -the given time and money constraints. So within the budget that - -15 -00:00:42,375 --> 00:00:44,300 -is allocated for the software. Before - -16 -00:00:44,300 --> 00:00:46,222 -jumping into today's software engineering techniques - -17 -00:00:46,222 --> 00:00:48,010 -though, let me take a step back and look at how - -18 -00:00:48,010 --> 00:00:50,240 -we got here, as I believe it is very important to have - -19 -00:00:50,240 --> 00:00:52,690 -some historical perspective on how this discipline was - -20 -00:00:52,690 --> 00:00:54,840 -born and how it was developed over the years. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/6 - The Software Crisis - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/6 - The Software Crisis - lang_en.srt deleted file mode 100644 index 41061a5..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/6 - The Software Crisis - lang_en.srt +++ /dev/null @@ -1,208 +0,0 @@ -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. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/7 - The Software Crisis Quiz - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/7 - The Software Crisis Quiz - lang_en.srt deleted file mode 100644 index 004a36c..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/7 - The Software Crisis Quiz - lang_en.srt +++ /dev/null @@ -1,44 +0,0 @@ -1 -00:00:00,078 --> 00:00:02,480 -So now let's take a quick break and have a recap - -2 -00:00:02,480 --> 00:00:05,300 -of what we just discussed. I want you to think about what - -3 -00:00:05,300 --> 00:00:07,850 -are the major causes of the software crisis. I'm going to provide you - -4 -00:00:07,850 --> 00:00:10,250 -a set of possibilities and I would like for you to mark - -5 -00:00:10,250 --> 00:00:14,160 -all that apply. Was that increasing costs of computers? Was it increasing - -6 -00:00:14,160 --> 00:00:17,990 -product complexity, or maybe the lack of programmers? Or was it, instead, - -7 -00:00:17,990 --> 00:00:20,000 -this slow programmers productivity growth? The - -8 -00:00:20,000 --> 00:00:21,540 -lack of funding for software engineering - -9 -00:00:21,540 --> 00:00:25,210 -research? The rise in demand for software? And finally, was it maybe - -10 -00:00:25,210 --> 00:00:26,500 -the lack of caffeine in software - -11 -00:00:26,500 --> 00:00:29,570 -development organizations? Again, mark all that apply. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/8 - The Software Crisis Quiz Solution - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/8 - The Software Crisis Quiz Solution - lang_en.srt deleted file mode 100644 index 33f5c6c..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/8 - The Software Crisis Quiz Solution - lang_en.srt +++ /dev/null @@ -1,52 +0,0 @@ -1 -00:00:00,090 --> 00:00:02,440 -So, if you think about what we just discussed. Definitely one - -2 -00:00:02,440 --> 00:00:06,210 -of the causes was the increasing product complexity. Products were becoming more - -3 -00:00:06,210 --> 00:00:09,510 -and more complex and software was replacing more and more, what - -4 -00:00:09,510 --> 00:00:11,860 -was before, provided by hardware components. - -5 -00:00:11,860 --> 00:00:14,160 -Slow productivity growth was another problem, - -6 -00:00:14,160 --> 00:00:17,350 -because programmers could not keep up with the additional complexity of - -7 -00:00:17,350 --> 00:00:19,720 -the software that they had to develop. I would like to say - -8 -00:00:19,720 --> 00:00:22,480 -there was lack of funding for software engineering research because I'm - -9 -00:00:22,480 --> 00:00:25,230 -a software engineering researcher, but that was not one of the reasons - -10 -00:00:25,230 --> 00:00:27,200 -for the software crisis. Instead, it was - -11 -00:00:27,200 --> 00:00:30,140 -the rising demand for software. Again, more - -12 -00:00:30,140 --> 00:00:32,060 -and more software was being required and - -13 -00:00:32,060 --> 00:00:33,850 -more and more software was replacing hardware. - diff --git a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/9 - Evidence of the Software Crisis - lang_en.srt b/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/9 - Evidence of the Software Crisis - lang_en.srt deleted file mode 100644 index 0592078..0000000 --- a/usth/ICT2.7/P1L1 Introduction and Overview Subtitles/9 - Evidence of the Software Crisis - lang_en.srt +++ /dev/null @@ -1,116 +0,0 @@ -1 -00:00:00,120 --> 00:00:03,220 -After recapping the three major issues that characterize a software crisis - -2 -00:00:03,220 --> 00:00:05,626 -let's see what was the evidence that there was indeed a - -3 -00:00:05,626 --> 00:00:07,900 -crisis. So what I want to discuss now is the result - -4 -00:00:07,900 --> 00:00:11,060 -of a study performed by Davis in 1990s. So in even - -5 -00:00:11,060 --> 00:00:13,670 -more recent times than the 60s and the 70s. And the - -6 -00:00:13,670 --> 00:00:17,280 -study was performed on nine software projects that were totaling a - -7 -00:00:17,280 --> 00:00:20,990 -cost around $7 million and I'm going to show you how this - -8 -00:00:20,990 --> 00:00:25,190 -projects went using this representation, this pi representation, in which I'm - -9 -00:00:25,190 --> 00:00:27,520 -going to discuss what each of the segment of the - -10 -00:00:27,520 --> 00:00:30,010 -pi represent. So let's start looking at the first one. - -11 -00:00:30,010 --> 00:00:32,920 -This is a software that was usable as delivered. Other - -12 -00:00:32,920 --> 00:00:36,590 -software was delivered, and usable, either after some changes or - -13 -00:00:36,590 --> 00:00:41,080 -after some major modifications, so within additional costs involved. - -14 -00:00:41,080 --> 00:00:43,530 -But the striking piece of information here is that the - -15 -00:00:43,530 --> 00:00:46,890 -vast majority of the software, so these two slices, were - -16 -00:00:46,890 --> 00:00:50,250 -software that was either delivered but never successfully used or - -17 -00:00:50,250 --> 00:00:53,730 -software that was not even delivered. And this corresponded - -18 -00:00:53,730 --> 00:00:57,500 -to five over the seven total million dollars for - -19 -00:00:57,500 --> 00:01:00,050 -all the projects. So clearly, this shows a pretty - -20 -00:01:00,050 --> 00:01:03,910 -grim picture for software development and its success. In short, - -21 -00:01:03,910 --> 00:01:06,410 -there was clear evidence the software was becoming to - -22 -00:01:06,410 --> 00:01:08,990 -difficult too build and that the software industry was facing - -23 -00:01:08,990 --> 00:01:11,190 -a crisis. And this is what led to the - -24 -00:01:11,190 --> 00:01:15,130 -NATO Software Engineering Conference that was held in January 1969, - -25 -00:01:15,130 --> 00:01:19,100 -which is what we can consider the birth of software engineering. And what - -26 -00:01:19,100 --> 00:01:23,080 -I'm showing here is a drawing of the proceedings for that conference. And if - -27 -00:01:23,080 --> 00:01:26,020 -you look at the class notes you can see a link to the actual - -28 -00:01:26,020 --> 00:01:27,640 -proceedings, in case you are interested in - -29 -00:01:27,640 --> 00:01:29,180 -looking at the issues that were discussed. - -- cgit 1.4.1