A concise introduction to software engineering - Jalote, Pankaj (Springer, 2008)