Software Engineering Master of science degree

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

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


91%

Outcome Rate of RIT Graduates

$90.3K

Average First-Year Salary of RIT Graduates


Overview

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.

Our program 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.

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 software engineering master's degree 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 master's 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 data science for software engineering and software engineering for data science. As a result, our software engineering masters degree prepares you to contribute to and lead software development projects from day one. 

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.

Typical Job Titles

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

Curriculum for Software Engineering MS

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. (Prerequisites: 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. (Graduate Computing and Information Sciences) 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: SWEN-601 and SWEN-610 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: This course is restricted to students with graduate standing in Software Engineering program or GCCIS graduate programs who have completed SWEN-601 and SWEN-610 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: SWEN-601 and SWEN-610 and SWEN-746 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: SWEN-601 and SWEN-610 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. (Prerequisites: 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. (Graduate Computing and Information Sciences) 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: SWEN-601 and SWEN-610 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: This course is restricted to students with graduate standing in Software Engineering program or GCCIS graduate programs who have completed SWEN-601 and SWEN-610 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: SWEN-601 and SWEN-610 and SWEN-746 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: SWEN-601 and SWEN-610 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

 

Admission Requirements

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

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, cost, and financial aid 

Latest News

  • May 11, 2021

    environmental portrait of student Joanna C. S. Santos.

    Ph.D. students take different career paths

    More than 50 students are expected to earn their Ph.D. degrees by the end of June. The hooding ceremony, which will also include Ph.D. recipients in the class of 2020, is May 15.

  • April 28, 2021

    exterior view of three-story building with glass front.

    Cybersecurity complex open for business

    The cyber pandemic is just one of many cybersecurity issues that RIT experts are working to address in the new Global Cybersecurity Institute (GCI). Late last fall, the GCI opened the doors to its 52,000-square-foot state-of-the-art facility on campus. With the institute, RIT is on its way to becoming one of the best places in the world for cybersecurity education, training, and research.