Software engineering a practitioner's approach - Pressman (McGraw-Hill series in computer science, 2005)