Software Engineering Master of Science Degree
Software Engineering
Master of Science Degree
- RIT /
- Rochester Institute of Technology /
- Academics /
- Software Engineering MS
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.
Overview for Software Engineering MS
Why Pursue an MS in Software Engineering at RIT?
STEM-OPT Visa Eligible: The STEM Optional Practical Training (OPT) program allows full-time, on-campus international students on an F-1 student visa to stay and work in the U.S. for up to three years after graduation.
Hands-on Experience: Our program immerses you in near real-world environments, providing practical experience in developing large-scale software systems.
Cutting-edge Specializations: Explore full-stack development, data science, DevOps, cloud engineering, machine learning, artificial intelligence, and other emerging fields that rely on advanced software engineering skills.
Flexible Learning Paths: Whether you're transitioning into software engineering or looking to specialize your existing skills, our program caters to diverse career goals. We support students entering adjacent fields like data science and artificial intelligence, as well as those aiming to advance their current software development careers.
Career Services and Networking: Benefit from our strong industry connections, career fairs, co-op connections, and alumni network to galvanize your career or advance to higher positions in your current field.
Capstone Project or Thesis: Showcase your expertise through a significant software development project or research thesis and produce tangible evidence of your capabilities to potential employers.
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 been 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: Specialize your Software Engineering Master's via course sequences in data science, helping you to understand how to build and maintain systems enabling the use and application of AI and Machine learning.
- Potential courses: Foundations of Data Science, Software Engineering for Data Science, Applied Data Science, Engineering Cloud Software Systems
- Full-Stack Web Development: Specialize in web development, teaching you to build, scale, secure, and maintain large web and cloud applications.
- Potential courses: Software Architecture, Web Technologies I, Web Technologies II, Secure Coding
- Artificial Intelligence and Machine Learning: Focus on developing intelligent systems and algorithms that can learn from data.
- Potential courses: Machine Learning Fundamentals, Deep Learning, Natural Language Processing, Computer Vision
- Technology and Project Management: Gain valuable experience in engineering software for business analytics or create your own start-up company by taking electives 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.
Capstone Project or Thesis
Showcase your expertise through a significant software development project or research thesis. This non-trivial work prepares you for your career beyond education and provides tangible evidence of your capabilities to potential employers. Those who do a thesis will perform real science, producing a tangible scientific impact that can help you step into a future in either industry R&D or academia. Those who do a capstone will engage in team projects that simulate real-world development scenarios, honing your teamwork and communication skills crucial for success in the software industry.
-
30% Tuition Scholarship for NY Residents and Graduates
Now is the perfect time to earn your Master’s degree. If you’re a New York state resident with a bachelor’s degree or have/will graduate from a college or university in New York state, you are eligible to receive a 30% tuition scholarship.
Careers and Cooperative Education
Typical Job Titles
Software Architect | Systems Engineer | Technical Product Manager |
DevOps Engineer | Full Stack Developer | Cloud Solutions Architect |
Machine Learning Engineer | Security Engineer | AI Research Engineer |
Systems Analyst | QA/Automation Engineer | Software Tester |
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:
- Complete an online graduate application.
- Submit copies of official transcript(s) (in English) of all previously completed undergraduate and graduate course work, including any transfer credit earned.
- Hold a baccalaureate degree (or US equivalent) from an accredited university or college. A minimum cumulative GPA of 3.0 (or equivalent) is recommended.
- Satisfy prerequisite requirements and/or complete bridge courses prior to starting program coursework.
- Submit a current resume or curriculum vitae.
- Submit a personal statement of educational objectives.
- Submit two letters of recommendation.
- Entrance exam requirements: GRE optional for Fall 2025 applicants. No minimum score requirement.
- Submit English language test scores (TOEFL, IELTS, PTE Academic), if required. Details are below.
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.
Related News
-
April 11, 2024
RIT students from across the globe launch entrepreneurial startups through the Simone Center
According to a 2023 Bloomberg article, over 5 million startup companies are founded each year in the United States. At RIT’s Albert J. Simone Center for Innovation and Entrepreneurship, students are working together to turn their dreams of starting companies into reality.
-
March 28, 2024
Potential of Internet of Things is booming, but personal info could be at risk
The Rochester Business Journal talks to Ashique KhudaBukhsh, assistant professor in the Department of Software Engineering, about the future of Internet of Things.
-
March 7, 2024
American Sign Language Reveals Wordplay Beyond Sound
The New York Times interviews alumnus Eric Epstein ’19 (software engineering).
Contact
- Paola Pena Rodriguez
- Senior Assistant Director
- Office of Graduate and Part-Time Enrollment Services
- Enrollment Management
- 585‑475‑5529
- paeges@rit.edu
- Christian Newman
- Graduate Program Director
- Department of Software Engineering
- Golisano College of Computing and Information Sciences
- 585‑475‑5094
- cdnvse@rit.edu
Department of Software Engineering