Fundamentals of software engineering - Ghezzi, Carlo. (Prentice Hall, 2003)