There is often a complaint by industry people that the fresh graduates from universities lack employable skills. This is also true for software engineers. When they are hired after they graduate from universities, they are unable to perform many software engineering tasks on the job like creating software designs, writing source code, testing software products, performing feasibility studies etc.
The reason for this disconnect is that students are taught only theory of software engineering subjects. Thus software engineering students never get exposed to practical aspects of software engineering. This results in software engineers having only theoretical knowledge. When these software engineering graduates get employed, their theoretical knowledge is useless.
A good strategy for teaching software engineering is to expose students to practical aspects of software engineering.
The best way to expose practical aspects of software engineering is to engage students in building software products in a professional way.
“Foundations of software engineering” has been written with this goal of exposing students to real world problems faced in designing, building and testing software products. This book covers all aspects of software engineering. Each area of software engineering is covered in a separate chapter. Theory of a field of software engineering is discussed at the beginning of each chapter. The theory part is interspersed with many relevant examples. At the end of each chapter, covering core area of software engineering; a running case study is provided. This case study is about how to build a mid-sized software product.
We will learn how there is disconnect between theory and practical aspect in each area of software engineering in many continuing parts of this series.