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?