Discipline of Software Engineering

And even if we don’t go to these extreme examples, I’m sure that you have all experienced software problems, typically manifested in what we call a crash And that crash might happen while you’re finishing your homework or that three-page long email that you were preparing for the last two hours.

But why’s it so difficult to build software, or better, why’s it so difficult to build good software? And how can we do it? This is exactly the topic of this class. And the reason why software engineering is a fundamental discipline in computer science. To motivate that, in this class, we will study a set of methodologies, techniques, and tools, that will help us build high quality software that does what it’s supposed to do. And therefore, makes our customers happy and that does it within the given time and money constraints.

So within the budget that is allocated for the software. Before jumping into today’s software engineering techniques though, let me take a step back and look at how we got here, as I believe it is very important to have some historical perspective on how this discipline was born and how it was developed over the years.