Software engineering : theory and practice - Pfleeger (Prentice Hall, 2010)