Fundamentals of software engineering - Ghezzi, Carlo; Jazayeri, Mehdi; Mandrioli, Dino