Software Engineering: Theory and Practice - Pfleeger, Shari Lawrence; Atlee, Joanne M.