An in-depth examination of software engineering including: business context and drivers, impact of process on corporate structure, requirements, architecture, implementation, project and product management, team dynamics, supporting tools and frameworks, and regulatory and compliance issues.