Software Engineering Processes: Principles and Applications