Software engineers are in high demand, yet software engineering is often misunderstood. What is software engineering and why is it important? What are the building blocks of software engineering? And what are the processes and methods that differentiate it as a discipline? This course aims to answer all of the above questions, and give the audience the absolute essential knowledge about software engineering.
The IEEE defines Software Engineering as "the application of a systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software." Software engineering is a discipline applied throughout the entire software lifecycle, spanning the early phases of system specifications all the way to maintenance after system deployment. So why use an engineering approach to software? Quite simply, because the alternative would be to use an ad-hoc or disordered approach. An engineering approach means predictability and quantifiable results through the application of theories, methodologies, frameworks, and tools. When applied efficiently, the result is high-quality software created in a cost-effective manner.