A straightforward approach, by a major name in the field, to blending theory and practice into a cohesive software design strategy. This book paints a pragmatic picture of software engineering that few of the "specialized" books how the theory behind good software engineering blends with the demands of the on-the-job practitioner.