For courses in Object-Oriented Design, C++ Intermediate Programming, and Object-Oriented Programming.Written for software engineers "in the trenches," this text focuses on the technology-the principles, patterns, and process-that help software engineers effectively manage increasingly complex operating systems and applications. There is also a strong emphasis on the people behind the technology. This text will prepare students for a career in software engineering and serve as an on-going education for software engineers.