Software engineering - Sommerville, Ian (International Computer Science Series, 2001)