Building software a practitioner's guide - Krishnamurthy, Nikhilesh. (Applied software engineering series., 2008)