Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-659SV: Software Engineering Methods




There has been a rapid evolution of software engineering development methods over the past decades. From Waterfall to Iterative and Incremental, to Agile and Lean, we have witnessed waves of new methods, each adding significant value to the field. However, the plethora of available methods poses a challenge for software practitioners: Which method should be adopted on a specific software project?

Software Engineering Methods addresses this challenge by introducing students to emerging approaches for developing software-intensive systems. Given the vast spectrum of software development endeavors, these approaches aim at defining custom hybrid methods by focusing on software development principles and practices together with their applicability to specific project contexts. Students learn to analyze the context of a software project and recommend a custom hybrid development method that satisfies the project’s specific needs.

Students apply this knowledge in the context of a semester-long project where the entire class works together as a team of teams. They define the optimal software development method for their project aimed at evolving an existing software system. They build new system increments by adopting their own method. They monitor their progress and reflect on the effectiveness of their approach and the need for continuous improvement.

This course is intended for ECE master students with a concentration in Software Engineering and will satisfy the "Systems" course area requirement.

Prerequisites: 18-652 or instructor permission.

Last Modified: 2019-11-04 12:50PM

Semesters offered:

  • Spring 2020
  • Spring 2019
  • Spring 2018
  • Spring 2017