Software Engineering Master of Science Degree

Gain hands-on experience through team-based and individual projects in this master's in software engineering, all while you further your understanding of the development and implementation of modern software systems.


85%

Outcomes Rate of RIT Graduates from this degree

$129.5K

Median First-Year Salary of RIT Graduates from this degree


Overview for Software Engineering MS

As you pursue a software engineering master’s degree 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 data science for software engineering, artificial intelligence applications in software engineering, software modeling. Gain hands-on experience through team-based projects that help you master modern software engineering techniques.

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. A number of graduates from the software engineering master's degree are employed at companies such as Citrix, SpaceX, Intuit, Amazon, Microsoft, and many others.

RIT’s Master’s in Software Engineering

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

Software Engineering Courses

RIT’s master’s in software engineering accepts students from many educational backgrounds, including recent undergraduates and professionals interested in pursuing a software engineering career. An introductory course, Software Construction, helps students get up to speed on programming and basic computing concepts. We also have an introductory core course, Software Engineering Fundamentals. Students with degrees in engineering, science, business, and education have all bee successful graduates of our program. Our students master modern software engineering techniques in a team setting using state-of-the-art tools and platforms.

With careful selection of your electives and the topics chosen for your course projects and capstone project or thesis research, you may focus on core software engineering topics, or you may specialize in the applications of software engineering to numerous fields, including:

  • Data Science: Courses are available in areas such as Foundations of Data Science, Software Engineering for Data Science, Applied Data Science, Engineering Cloud Software Systems, etc.
  • Full-Stack Web Development: Courses are available in areas such as Software Architecture, Client Design and Development, Server Design and Development, and Secure Web Application Development.
  • Technology and Project Management: You may take courses from RIT’s MS in business analytics or MS in technology innovation management and entrepreneurship.

In RIT’s software engineering department, you will learn and receive personalized attention from faculty who are working in many areas of software engineering and its applications. 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.

Loading...

Careers and Cooperative Education

Typical Job Titles

Adjunct Faculty Member Analyst Application Engineer
Embedded Software Engineer Flight Software Engineer iOS App Developer
iOS Developer Software Developer Software Engineer
Software QA Engineer

Cooperative Education

What’s different about RIT’s engineering education? It’s the opportunity to complete engineering co-ops and internships with top companies in every single industry. You’ll earn more than a degree. You’ll gain real-world career experience that sets you apart.

What makes an RIT education exceptional? It’s the ability to complete relevant, hands-on career experience. At the graduate level, and paired with an advanced degree, cooperative education and internships give you the unparalleled credentials that truly set you apart. Learn more about graduate co-op and how it provides you with the career experience employers look for in their next top hires.

Curriculum for 2024-2025 for Software Engineering MS

Current Students: See Curriculum Requirements

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

Course Sem. Cr. Hrs.
First Year
SWEN-601
Software Construction
This is a programming based course to enhance individual, technical engineering knowledge and skills as preparation for masters level graduate work in computing. Students will be introduced to programming language syntax, object oriented concepts, data structures and foundational algorithms. An emphasis will be placed on obtaining practical programming skills, through regular programming assignments and practicum. (Corequisites: SWEN-610 and SWEN-746 or equivalent courses.) Lecture 3 (Fall).
3
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. (Co-requisites: SWEN-601 or equivalent courses.) Lecture 3 (Fall).
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Spring).
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. (Co-requisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261)) or equivalent courses.) Lecture 3 (Fall).
3
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Fall).
3
 
Elective
3
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Fall).
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Spring).
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. (Enrollment requires completion of all core courses and permission from the department offering the course.) Thesis 6 (Fall, Spring, Summer).
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) (Enrollment in this course requires permission from the department offering the course.) Ind Study (Fall, Spring, Summer).
3
 
Elective
3
Total Semester Credit Hours
36

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

Course Sem. Cr. Hrs.
First Year
SWEN-601
Software Construction
This is a programming based course to enhance individual, technical engineering knowledge and skills as preparation for masters level graduate work in computing. Students will be introduced to programming language syntax, object oriented concepts, data structures and foundational algorithms. An emphasis will be placed on obtaining practical programming skills, through regular programming assignments and practicum. (Corequisites: SWEN-610 and SWEN-746 or equivalent courses.) Lecture 3 (Fall).
3
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. (Co-requisites: SWEN-601 or equivalent courses.) Lecture 3 (Fall).
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Spring).
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. (Co-requisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261)) or equivalent courses.) Lecture 3 (Fall).
3
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Fall).
3
 
Elective
3
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Fall).
3
SWEN-777
Software Quality
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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) Lecture 3 (Spring).
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. (Enrollment in this course requires permission from the department offering the course.) Lec/Lab 6 (Fall, Spring, Summer).
3
 
Electives
6
 
SE Elective
3
Total Semester Credit Hours
36

 

Students are also interested in

Admissions and Financial Aid

This program is available on-campus only.

Offered Admit Term(s) Application Deadline STEM Designated
Full‑time Fall Rolling Yes
Part‑time Fall Rolling No

Full-time study is 9+ semester credit hours. Part-time study is 1‑8 semester credit hours. International students requiring a visa to study at the RIT Rochester campus must study full‑time.

Application Details

To be considered for admission to the Software Engineering MS program, candidates must fulfill the following requirements:

English Language Test Scores

International applicants whose native language is not English must submit one of the following official English language test scores. Some international applicants may be considered for an English test requirement waiver.

TOEFL IELTS PTE Academic
88 6.5 60

International students below the minimum requirement may be considered for conditional admission. Each program requires balanced sub-scores when determining an applicant’s need for additional English language courses.

How to Apply Start or Manage Your Application

Cost and Financial Aid

An RIT graduate degree is an investment with lifelong returns. Graduate tuition varies by degree, the number of credits taken per semester, and delivery method. View the general cost of attendance or estimate the cost of your graduate degree.

A combination of sources can help fund your graduate degree. Learn how to fund your degree

Additional Information

Bridge Courses

Candidates without a computing background will be considered. 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.

Resources

Current students in the software engineering master’s program may refer to these resources for additional information.

View resources

 

 

Related News

Contact

Admissions Contact
Program Contact
Christian Newman, Graduate Program Director