Carnegie Mellon University Masters in Software Engineering
Introduction The Master of Software Engineering (MSE) at Carnegie Mellon University is a master's program founded in 1989 with the intent of developing technical leaders in software engineering practice, as a joint effort between Carnegie Mellon's School of Computer Science and the Software Engineering Institute. A core component of the degree is the studio project, a capstone project that accounts for 40 percent of the course units.
History Centered around software engineering workshops conducted at the Software Engineering Institute, the degree program's original core concepts and curriculum were developed. The original faculty included many educators who remain currently active, while others have retired or died. The latter notable individuals include Norm Gibbs and Jim 'Coach' Tomayko.A hallmark of the MSE program is that it targets software practitioners who are already working in the field.Following its inception, the program has evolved to address a demand for lighter, faster software development processes, enabled by the rapid and widening adoption of the Internet. This included extreme programming, which later became part of agile methods, all of which sought to more rapidly respond to customer requirements in contrast to more deliberative, plan-driven development.===Program directors===* 2019–Present, Travis Breaux, Director, Masters Programs in Software Engineering* 2016-2019, Anthony Lattanze, Director, Masters Programs in Software Engineering* 2002–2016, Dr. David Garlan, Director, Masters Programs in Software Engineering* 1999-2001, Dr. James E. Tomayko, Director Masters Program in Software Engineering* 2001-2008, Mel Rosso-Llopart, Director of Software Engineering Distance Program* 1996-2001, Dr. James E. Tomayko, Director of Software Engineering Distance Program* 1992-1999, Mary Shaw, Director, Masters Program in Software Engineering* 1989-1991, Software Engineering Institute
Curriculum The MSE program began as a joint effort of the School of Computer Science and the Software Engineering Institute. The degree program is an intensive 16-month curriculum designed for professional software engineers. Class sizes are generally around 20 students. Applicants to the program must have a strong background in computer science, no less than two years of relevant industry experience with an average of five years of experience.The MSE curriculum has three basic components:# '''Core Courses''' develop foundational skills in the fundamentals of software engineering, with an emphasis on design, analysis, and the management of large-scale software systems.# The '''Studio Project''', a capstone project that spans the duration of the program, allows for students to plan and implement a significant software project for an external client. Inspired by the design projects in architecture programs, students work as members of a team under the guidance of faculty advisors (mentors), analyzing a problem, planning the software development effort, executing a solution, and evaluating their work.# '''Electives''' allow students to develop deeper expertise in an area of speciality within the software engineering domain, or to pursue study in areas relevant to their personal and professional interests.===Core Courses===# Models of Software Systems - This course considers many of the standard models for representing sequential and concurrent systems, such as state machines, algebras, and traces.# Methods:  Deciding What to Design - This course considers the variety of ways of understanding the problem to be solved by the system one is developing and of framing an appropriate solution to that problem.# Management of Software Development - This course considers how to lead a project team, understand the relationship of software development to overall product engineering, estimate time and costs, and understand the software process.# Analysis of Software Artifacts - This course considers the analysis of software artifacts—primarily code, but also including analysis of designs, architectures, and test suites.# Architectures for Software Systems - The course considers commonly-used software system structures, techniques for designing and implementing these structures, models and formal notations for characterizing and reasoning about architectures, tools for generating specific instances of an architecture, and case studies of actual system architectures.
Notable faculty * James 'Coach' Tomayko* David Garlan* Mary Shaw* Anthony Lattanze* Mark Paulk* James D. Herbsleb* Nancy Mead
References
External links * Official MSE Website* SSN School of Advanced Software Engineering, Tamil Nadu, India - partner program with Carnegie Mellon MSE