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