Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering