Software Engineering: Principles and Practice-To understand and appreciate the technical, managerial, psychological and ethical dimensions of software engineering