Presenting the most comprehensive and practical introduction to the principles of software engineering and how to apply them, this updated edition follows an object-oriented perspective Includes new and expanded material on agile and emerging methods, metrics, quality assurance security, real-world case studies, refactoring, test-driving development, and testing Case studies help readers learn the importance of quality factors, appropriate design, and project management techniques