Each chapter is presented in a way that enables instructors to use it for reading material, class activities, questions for class discussion, and homework assignments which make it easier for practitioners to gain insights. All chapters have a similar structure. Each is composed of three parts : an introduction, the body, and a summary.
Each chapter starts with an Introduction that presents in brief what is going to be discussed in the chapter. Then, the chapter s Objectives are outlined. The list of objectives reflects what learners may gain in the process of and after learning the presented topic. Just after the Objectives, several Study Questions are presented. The aim of these questions is twofold: first, to raise students and practitioners interest in the topic; and second, to invite learners to start thinking about the topic before it is presented to them. The Study Questions are not restricted to technical questions and sometimes invite reflection processes and case study analyses. The introductory part of most chapters ends by discussing the Relevance of the discussed topic to software engineering. This section explains why the discussed topic is included in the book and highlights the topic s relevance for the daily life of software developers.
The body of each chapter presents the material in a way that puts the developers at the center of the discussion. The discussion examines what happens to the developers, how they may behave, how they may react , what feelings they may have, what problems they may face, how they may solve the problems, and so forth. During the presentation of the material, questions and reflections are intertwined. The idea is to ask readers to stop reading from time to time to think about what they have already read, reflect on it, and put what is learned in a wider context. These tasks aim at equipping readers with problem-solving tools to be used when they face new problems in software engineering. Accordingly, based on the theoretical material presented, many questions invite the reader to analyze situations in software development, to create scenarios that may raise problems, and to suggest solutions to these problems.
The summary part of each chapter integrates all that was learned in the chapter. In most chapters, the Summary Questions ask the reader to examine the discussed topic from a global perspective, viewing it as a comprehensive subject. The For Further Review questions aim at raising topics in which different aspects of what is discussed in the chapter can be used. These questions increase students and practitioners involvement, thinking, and understanding of the topic. These assignments invite the readers to apply what is presented in the chapter and usually require deeper thinking and analysis. The summary part of each chapter ends with a list of References and, when appropriate, Additional Resources for those readers who want to deepen their knowledge.