Software Engineering Master of science degree

42eb7d42-bf12-4b5b-b57a-a3f86c5553ab | 128819

Overview

Gain hands-on experience through team-based and individual projects to further your understanding of the development and implementation of modern software systems.


As you pursue a software engineering masters your educational experience will parallel the realities of the industry as you learn how to define, design, develop, and deliver modern software. Utilize computer science theories to create software that allows computers to meet the demands of an ever-changing, technologically-dependent society. Conduct research in many areas including big data analysis and mining software repositories. And gain hands-on experience through team-based projects that help you master modern software engineering techniques.

Our program accepts students from many educational backgrounds, including new graduates and professionals interested in a software engineering career. We have a bridge course that we offer to help students get up to speed on programming and basic computing concepts. We have successfully graduated students with degrees in engineering, science, business, and education. Our graduates master modern software engineering techniques in a team setting using state-of-the-art tools and platforms.

RIT is renowned for its cooperative education program, one of the oldest and largest programs in the world. Co-op is full-time, paid work experience in industry. The MS program in software engineering has had a number of graduates accept positions for full-time employment at companies such as Citrix, SpaceX, Intuit, Amazon, Microsoft, and many others. 

Plan of study

RIT’s software engineering masters degree focuses on team-based activities. Since these systems are rarely the result of a single individual's effort, our team-based approach recognizes the significant role teams play in the design, development, and implementation of software systems of varying size and complexity. Our students are actively engaged in software architecture, software security, and mining of software repositories research. They also are involved in the software engineering department's emerging areas of research in big data analysis for software engineering and software engineering for big data. As a result, our software engineering masters degree prepares you to contribute to and lead software development projects from day one. 

In RIT's software engineering department, you will learn and receive personalized attention from faculty who are working in accessibility and software processing for computational science and engineering. Outfitted with the latest hardware and software technology, our facilities include studio labs, project labs, team rooms, a collaboration lab, and a real-time and embedded systems lab – all designed to help you collaborate on projects, polish your skills, and collaborate with faculty. The department has partnered with a number of software companies to provide you with access to a wide range of software products for learning and research.

 

Industries


  • Internet and Software

  • Defense

  • Electronic and Computer Hardware

  • Other Industries

Typical Job Titles

Software Engineer Software Developer
Software Quality Assurance Engineer Web Applications Developer
Data Analyst Software Tester
Database Developer Software Design Engineer
Software Requirements Engineer Web Developer
Programmer

96%

outcome rate of graduates

$72.5k

median first-year salary of graduates

Latest News

  • September 26, 2018

    A group of women pose for a photo at the Grace Hopper Celebration.

    RIT joins in celebration of women in computing

    More than 30 members of the RIT community are attending the Grace Hopper Celebration, the world’s largest gathering of women in computing to celebrate accomplishments in technology and recognize the diversity behind them.
  • May 1, 2018

    The winning RIT Dota 2 team poses for a photo with their trophy.

    RIT Dota 2 team wins Grand Championship

    RIT is securing its legacy as one of the best colleges in esports after winning its first Collegiate Starleague Dota 2 Grand Finals Championship April 28. The student team bested a bracket of North America’s 32 top universities to take home the $10,000 grand prize.

Curriculum

Software Engineering (thesis option), MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
SWEN-610
Foundations of Software Engineering
An overview course in software engineering emphasizing software design and software development projects. The course will focus on object-oriented (OO) analysis, design principles and techniques. Students will be introduced to OO modeling, design patterns and design/code refactoring techniques. While there is a significant emphasis on product development, students will be required to use a rigorous process in a team-based product development project. Major topics include analysis and specification of software, subsystem modeling using patterns, and software testing. A term-long, team-based project is used to reinforce concepts presented in class. Programming is required.
3
SWEN-640
Research Methods
Overview of the academic research methodologies used in graduate level work. Topics include: Writing style, Audience analysis, Research Planning, Experiment design and result analysis, Document structure, Research validation, and the process for submission and review to conferences and journals. In this course the student will identify and develop a detailed thesis or capstone proposal that may be continued in a subsequent course. An in-depth study of a software engineering topic will be research focused. The student selects a research problem, conducts background research, and selects appropriate technology and methodologies needed to fully conduct the project. The topic is selected by the student and is in agreement with the student’s advisor and committee. The proposal is presented in a scholarly format for approval by the advisor and committee.
3
SWEN-746
Model-Driven Development
Software models help the software engineer to understand, specify, and analyze software requirements, designs, and implementations (code components, databases, support files, etc.). Model-driven development is a software engineering practice that uses tool-enabled transformation of requirements models to design models and then to code and associated implementation artifacts. Students will use the Unified Modeling Language (UML) and other modeling techniques to capture software requirements, designs, and implementations. Students will also use formal modeling methods to semi-automatically transform among the various models and to study the quality attributes of the modeled software, such as performance, reliability, security, and other qualities.
3
SWEN-777
Software Quality Assurance
This course explores the concepts of process and product quality assurance and introduces approaches and support tools used to extract the information needed to assess and evaluate the quality of existing software systems. Major maintenance activities are detailed including unit and regression testing, test case generation, software refactoring, API migrations, bug localization and triage, and predicting technical debt. Students will participate in an active learning approach by exercising and practicing code reviews, software testing tools, and quality frameworks.
3
 
Electives
6
Second Year
SWEN-732
Collaborative Software Development
This course covers processes, tools, and techniques for software development, in general, and collaborative, distributed software development, in particular. Students will learn how to design a process specific to their organization and development project needs. This includes how to select a software development life-cycle model, how to select and sequence the development and management activities of a collaborative, distributed software development team structure and dynamics, and how to define the work products, tools, and methods used to perform those activities. The Software Process Engineering Metamodel (SPEM, an Object Management Group standard) will serve to graphically describe, analyze, discuss, and improve software development processes. Special attention will be given to collaboration needs and approaches for small and large teams that may be globally distributed.
3
SWEN-755
Software Architecture
A system’s software architecture is the first technical artifact that illustrates a proposed solution to a stated problem. For all but the simplest system, the achievement of qualities such as flexibility, modifiability, security, and reliability is critically dependent on the components and interactions defined by the architecture. The course focuses on the definition of architectural structures, the analysis of architectures in terms of trade-offs among conflicting constraints, the documentation of architecture for use over a product’s life cycle, and the role of architecture during coding activities.
3
SWEN-790
Thesis
This course provides the student with an opportunity to execute a thesis project, analyze and document the project in thesis document form. An in-depth study of a software engineering topic will be research focused, having built upon the thesis proposal developed prior to this course. The student is advised by their primary faculty adviser and committee. The thesis and thesis defense is presented for approval by the thesis adviser and committee.
6
SWEN-799
Independent Study
This course provides the graduate student an opportunity to explore an aspect of software engineering in depth, under the direction of an adviser. The student selects a topic, conducts background research, develops the system, analyses results, and disseminates the project work. The report explains the topic/problem, the student's approach and the results. (Completion of 9 semester hours is needed for enrollment)
3
 
Electives
3
Total Semester Credit Hours
36

Software engineering (capstone option), MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
SWEN-610
Foundations of Software Engineering
An overview course in software engineering emphasizing software design and software development projects. The course will focus on object-oriented (OO) analysis, design principles and techniques. Students will be introduced to OO modeling, design patterns and design/code refactoring techniques. While there is a significant emphasis on product development, students will be required to use a rigorous process in a team-based product development project. Major topics include analysis and specification of software, subsystem modeling using patterns, and software testing. A term-long, team-based project is used to reinforce concepts presented in class. Programming is required.
3
SWEN-746
Model-Driven Development
Software models help the software engineer to understand, specify, and analyze software requirements, designs, and implementations (code components, databases, support files, etc.). Model-driven development is a software engineering practice that uses tool-enabled transformation of requirements models to design models and then to code and associated implementation artifacts. Students will use the Unified Modeling Language (UML) and other modeling techniques to capture software requirements, designs, and implementations. Students will also use formal modeling methods to semi-automatically transform among the various models and to study the quality attributes of the modeled software, such as performance, reliability, security, and other qualities.
3
SWEN-640
Research Methods
Overview of the academic research methodologies used in graduate level work. Topics include: Writing style, Audience analysis, Research Planning, Experiment design and result analysis, Document structure, Research validation, and the process for submission and review to conferences and journals. In this course the student will identify and develop a detailed thesis or capstone proposal that may be continued in a subsequent course. An in-depth study of a software engineering topic will be research focused. The student selects a research problem, conducts background research, and selects appropriate technology and methodologies needed to fully conduct the project. The topic is selected by the student and is in agreement with the student’s advisor and committee. The proposal is presented in a scholarly format for approval by the advisor and committee.
3
SWEN-777
Software Quality Assurance
This course explores the concepts of process and product quality assurance and introduces approaches and support tools used to extract the information needed to assess and evaluate the quality of existing software systems. Major maintenance activities are detailed including unit and regression testing, test case generation, software refactoring, API migrations, bug localization and triage, and predicting technical debt. Students will participate in an active learning approach by exercising and practicing code reviews, software testing tools, and quality frameworks.
3
 
Electives
6
Second Year
SWEN-755
Software Architecture
A system’s software architecture is the first technical artifact that illustrates a proposed solution to a stated problem. For all but the simplest system, the achievement of qualities such as flexibility, modifiability, security, and reliability is critically dependent on the components and interactions defined by the architecture. The course focuses on the definition of architectural structures, the analysis of architectures in terms of trade-offs among conflicting constraints, the documentation of architecture for use over a product’s life cycle, and the role of architecture during coding activities.
3
SWEN-780
Capstone Research Project
This course provides the student with an opportunity to explore a project-based research experience that advances knowledge in that area. The student selects a research problem, conducts background research, develops the system, analyses the results, and builds a professional document and presentation that disseminates the project. The report must include an in-depth research report on a topic selected by the student and in agreement with the student's adviser. The report must be structured as a conference paper, and must be submitted to a conference selected by the student and his/her adviser.
3
 
Electives
9
 
SE Elective
3
Total Semester Credit Hours
36

 

Admission Requirements

To be considered for admission to the MS program in software engineering, candidates must fulfill the following requirements:

  • Complete a graduate application.
  • Hold a baccalaureate degree from an accredited institution,
  • Have a cumulative grade point average of 3.0 or higher (Prospective students from institutions that do not use the GPA scale are expected to demonstrate an equivalent level of academic accomplishment. Formal academic background in software engineering, computer science, or computer engineering is a plus.),
  • Submit official transcripts (in English) of all previously completed undergraduate and graduate course work,
  • Submit a professional essay (1-4 pages) describing current job (if applicable), relevant experience, and career plans,
  • Submit a current resume (including descriptions of significant software projects in which the candidate participated), and
  • Submit two letters of recommendation.
  • International applicants whose native language is not English must submit scores from the Test of English as a Foreign Language (TOEFL). Minimum scores of 570 (paper-based) or 88 (internet-based) are required. International applicants must provide Graduate Record Exam (GRE) scores. Domestic students are encouraged to provide GRE scores.

Professional experience developing software is preferred, but candidates without a background in computing will be considered. Additional bridge course work may be required, and may extend time to graduation.

Bridge courses

Based on the evaluation of academic and relevant experience, the graduate program director may require some applicants to successfully complete bridge courses to fill in any gaps in their background. Successful completion of bridge courses is necessary for registration in graduate-level courses.

Learn about admissions and financial aid