Fundamentals of software egineering - Jazayeri, Mehdi; Mandrioli, Dino