Software Engineering is finally about application of concepts to efficiently engineer good software solutions. This book focuses on imparting to students the knowledge and skills that are needed to successfully execute a commercial project of a few person-months effort while employing proper practices and techniques. A vast majority of the projects executed in the industry today fall in this scope. The goal of this book is to introduce to the students a limited number of concepts and practices which will achieve the following two objectives: ?Teach the student the skills needed to execute a smallish commercial project. ?Provide the students necessary conceptual background for undertaking advanced studies in software engineering, through organized courses or on their own. This book focuses on key tasks in two dimensions - engineering and project management - and discusses concepts and techniques that can be applied to effectively execute these tasks. The book is organized in a simple manner, with one chapter for each of the key tasks in a project. For engineering, these tasks are requirements analysis and specification, architecture design, module level design, coding and unit testing, and testing. For project management, the key tasks are project planning and project monitoring and control, but both are discussed together in one chapter on project planning as even monitoring has to be planned. In addition, one chapter clearly defines the problem domain of Software Engineering, and another Chapter discusses the central concept of software process which integrates the different tasks executed in a project. Each chapter opens with some introduction and clearly lists the chapter goals, or what the reader can expect to learn from the chapter. For the task covered in the chapter, the important concepts are first discussed, followed by a discussion of the output of the task, the desired quality properties of the output, and some practical methods and notations for performing the task. The explanations are supported by examples, and the key learnings are summarized in the end for the reader. The chapter ends with some self-assessment exercises. Finally, the book contains a question bank at the end which lists out questions with answers from major universities.