|
The MS in Software Engineering program at Carnegie Mellon West, located in the heart of Silicon Valley, is designed for technical professionals interested in working as software engineers, developers, team leads, and architects. This 12-month, full-time MS SE program delivers a team-based, project-oriented curriculum focused on agile applications reflective of the dynamic Silicon Valley software industry. Through authentic project work, students master modern software engineering methods and technologies across the lifecycle, learn to align software engineering decisions with the company’s business goals, and develop the communication, teamwork, and negotiation skills critical to successful technical leadership.
Curriculum New Student OrientationThe MS in Software Engineering program starts with a required four-day orientation the week prior to the start of the program. This exciting event gives you the opportunity to get to know your classmates and faculty members, prepares you for the rigors of your first courses, and creates an environment in which you begin the process of building strong team dynamics.
Core Courses Team-Based Software Development Students work in teams to complete a significant software development project in a relatively short timeframe. During the project, students deepen their understanding of object-oriented design and development, while broadening their base of programming and project experience. Students who complete this course will solidify the skills and acquire the background necessary to succeed in more advanced courses in the Carnegie Mellon West master’s program in Software Engineering.
Foundations of Software Engineering You learn the skills needed to lead a team, apply an appropriate software lifecycle, and manage the resources needed to finish projects. You will learn project management skills that will help you meet the business objectives for the project.
Requirements Engineering Your team interacts with stakeholders to elicit and formalize requirements for a new software product. You employ systematic modeling and analysis methods as well as flexible, user-oriented prototyping techniques to clarify both the functional and non-functional requirements.
Architecture You investigate several distinct architectural styles used in software products and evaluate the suitability of these styles for your own product. You make high-level design decisions about your product’s components and their interactions and evaluate how well your decisions meet agreed functional and non-functional requirements.
Metrics for Software Engineers As a member of a team, you analyze and propose metrics initiatives for fictional software organizations with specific software engineering issues, aligning the initiatives with business and stakeholder goals. Your team uses this analysis to understand how the software engineering approach an organization uses might influence the choice of software metrics and the adoption plan.
Avoiding Software Project Failures You examine several case studies of failed software projects to understand costly mistakes and their root causes. Based on this information, you plan your next project to achieve success.
Construction Your team studies the software lifecycle in greater detail by gathering requirements, creating a detailed design, constructing the implementation, and executing the test plan. You iteratively develop and test product components, assemble and test the final software product, and demonstrate the software product to the faculty.
Featured Electives*
Human-Computer Interaction Your team develops and evaluates an interaction design for a software product, learning to use a range of tools and techniques. You model users using personas and scenarios, create an interaction design framework, develop low- and high- fidelity prototypes, and then apply usability inspection and usability testing methods to validate design decisions.
Open Source Software You acquire fundamental skills and awareness of recent technical and business issues regarding open source software. Emphasis is on understanding the impact of open source software on the software industry including licensing and commercialization issues, corporate software evaluation techniques, and business models.
Managing Outsourced Development You analyze the business rationale, risks, and benefits for outsourcing parts of a new software project. You propose to management which tasks should be outsourced, how to select suppliers, and how to manage the outsourced work. Following your Request for Proposal, you analyze proposals, recommend a supplier, and develop service level agreements. You manage the outsourced tasks, addressing issues specific to outsourced projects.
Practicum Your team applies what it has learned to a real-world business problem. Diverse organizations and business clients sponsor the software projects and work actively with the team to ensure successful completion. With your client, your team negotiates the plans, schedules, and deliverables with high standards for software engineering approaches, accountability, and teamwork.
Other MS Programs
* Electives offerings are based upon student demand and faculty availability.
|