The more the software industry matures, the more it is accepted by the software engineering community that the people involved in software development processes deserve more attention than the processes or technologies themselves. To this end, Human Aspects of Software Engineering details software engineering from the perspective of those involved in the process: individuals, teams, customers, and the organization.
The book is written for software engineering students and professional software developers. It illustrates the richness and complexity of the human aspects of software engineering and covers the problems, questions, and conflicts that arise during development. The importance of these issues is widely acknowledged in the industry and academia, because many of the failures of software systems can be traced to human factors. This, however, is the first textbook for a full course on the topic. Focusing on the different social and cognitive aspects of software development, the book addresses topics such as teamwork, customer - software-engineer relationships, and learning processes in software development. These topics are central to developers in understanding the multifaceted nature of the process. While the code and technology of software engineering are discussed, they are examined from the human perspective. In addition to the detailed topic coverage, activities, questions for discussion, and practical assignments are included.
Part I Software Development Environments
Chapter 1 The Nature of Software Engineering
Chapter 2 Software Engineering Methods
Chapter 3 Working in Teams
Chapter 4 Software as a Product
Part II The World of Software Engineering
Chapter 5 Code of Ethics of Software Engineering
Chapter 6 International Perspective on Software Engineering
Chapter 7 Different Perspectives on Software Engineering
Chapter 8 The History of Software Engineering
Part III Software-Human Interaction
Chapter 9 Program Comprehension, Code Inspections, and
Refactoring
Chapter 10 Learning Processes in Software Engineering
Chapter 11 Abstraction and Other Heuristics of Software
Development
Chapter 12 The Characteristics of Software and the Human
Aspects of Software Engineering
Part IV Business Analysis of Software Engineering
Chapter 13 Software Project Estimation and Tracking
Chapter 14 Software as a Business
Chapter 15 The Internet and the Humans Aspects of
Software Engineering
Part V Software Engineering Education
Chapter 16 Case Studies in Software Engineering
Chapter 17 Students' Summary Projects and Presentations
Chapter 18 Remarks about Software Engineering Education
Chapter 19 Additional Information on Resources Used in This Book
Appendix
Index