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 hand-on experience through team-based projects that help you master modern software engineering techniques.

Software engineers define, design, develop, and maintain high-quality software systems that enable computers to adapt and meet the innovative demands of the future. With the rapidly increasing release of new computer systems and applications, educated and experienced software engineers are in demand.

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.

Highly-experienced faculty, state-of-the-art facilities, and varied opportunities for experiential learning all lead to a strong return on investment for graduates of RIT’s software engineering masters degree. Graduates are working as developers, designers, engineers, applications developers, software testers, and software quality specialists at many well-known companies, including Amazon, Apple, Facebook, Fidelity Investments, General Electric, Google, IBM Corp., Intuit, Lockheed Martin, and Microsoft.  

 

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 semester-long, team-based project done in a studio format is used to reinforce concepts presented in class. Graduate standing in Software Engineering, and completion of a Computer Science programming sequence is needed for enrollment.
3
SWEN-745
Software Modeling
Modeling plays a pivotal role during the software lifecycle during the pre-construction and post-construction activities of the software lifecycle. During the pre-construction stage, models help software engineers understand, specify, and analyze software requirements and designs. During the post-construction stage, models can be used to analyze software systems while in operation. This kind of analysis includes reliability and safety issues as well as timing constraint analysis. (Department approval)
3
SWEN-640
Research Methods
Overview of the academic research methodologies used in graduate level work. Topics include writing style, audience analysis, research planning, experimental design, document structure, research validation, and the process for submission and review to conferences and journals. This course provides the student with an opportunity to identify and develop a detailed thesis or capstone proposal that will 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 adviser and committee. The proposal is presented in a scholarly format for approval by the adviser and committee.
3
SWEN-722
Process Engineering
In this course, students will study various lifecycle models for developing software systems. They will study the Software Process Engineering Metamodel (SPEM) standard as a tool for modeling and analyzing engineering processes. Students will use SPEM to characterize various process and organization models and patterns, and they will align these process characteristics to categories of needs for various organizations and projects. The students will study process engineering frameworks and the configuration and assembly of reusable process components into processes. Students will also study how tools and methods support the process. Students will also study software process assessment models, including the Capability Maturity Models, and learn how to identify specific recommendations for an organization to improve their processes. Students will apply their learning to engineer software engineering processes, tools, and methods appropriate for their graduate projects, course projects, and projects for organizations they have worked for.
3
SWEN-749
Software Evolution and Re-engineering
This course explores the concepts of software evolution and reengineering and introduces approaches and support tools used to extract the information needed to assess existing software systems. Major maintenance activities are presented including estimating maintenance costs, managing change and predicting maintainability with software quality metrics. Organizational issues relative to product maintenance are discussed. Principles of software reuse and reverse engineering techniques are demonstrated through the use of class activities, team projects and case studies.
3
SWEN-772
Software Quality Engineering
This course begins with an exploration of the concepts underlying quality systems and the use of metrics. Students are encouraged to discuss the advantages as well as the limitations of systems and quantitative approaches, with a view to understanding the 40 importance of interpretation in metrics usage and of matching quality systems choices to organizational objectives and culture. They learn the use of modern metrics such as DRE, PCE, COQ/COPQ, reliability objectives and SUMI scores through exercises in analyzing and interpreting charts. This is complemented with a project where they work in teams to design an appropriate quality system for a specific project/organizational situation, and discuss the application and analysis of its evaluation experimentation as a means of improving the quality aspects of subject project/organizational situation.
3
Second Year
SWEN-755
Software Architectures and Product Lines
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 tradeoffs among conflicting constraints, the documentation of architecture for use over a product's life cycle, and the role of architecture in defining product lines based on reusable components.
3
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
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
 
Electives
6
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 semester-long, team-based project done in a studio format is used to reinforce concepts presented in class. Graduate standing in Software Engineering, and completion of a Computer Science programming sequence is needed for enrollment.
3
SWEN-745
Software Modeling
Modeling plays a pivotal role during the software lifecycle during the pre-construction and post-construction activities of the software lifecycle. During the pre-construction stage, models help software engineers understand, specify, and analyze software requirements and designs. During the post-construction stage, models can be used to analyze software systems while in operation. This kind of analysis includes reliability and safety issues as well as timing constraint analysis. (Department approval)
3
SWEN-640
Research Methods
Overview of the academic research methodologies used in graduate level work. Topics include writing style, audience analysis, research planning, experimental design, document structure, research validation, and the process for submission and review to conferences and journals. This course provides the student with an opportunity to identify and develop a detailed thesis or capstone proposal that will 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 adviser and committee. The proposal is presented in a scholarly format for approval by the adviser and committee.
3
SWEN-722
Process Engineering
In this course, students will study various lifecycle models for developing software systems. They will study the Software Process Engineering Metamodel (SPEM) standard as a tool for modeling and analyzing engineering processes. Students will use SPEM to characterize various process and organization models and patterns, and they will align these process characteristics to categories of needs for various organizations and projects. The students will study process engineering frameworks and the configuration and assembly of reusable process components into processes. Students will also study how tools and methods support the process. Students will also study software process assessment models, including the Capability Maturity Models, and learn how to identify specific recommendations for an organization to improve their processes. Students will apply their learning to engineer software engineering processes, tools, and methods appropriate for their graduate projects, course projects, and projects for organizations they have worked for.
3
SWEN-749
Software Evolution and Re-engineering
This course explores the concepts of software evolution and reengineering and introduces approaches and support tools used to extract the information needed to assess existing software systems. Major maintenance activities are presented including estimating maintenance costs, managing change and predicting maintainability with software quality metrics. Organizational issues relative to product maintenance are discussed. Principles of software reuse and reverse engineering techniques are demonstrated through the use of class activities, team projects and case studies.
3
SWEN-772
Software Quality Engineering
This course begins with an exploration of the concepts underlying quality systems and the use of metrics. Students are encouraged to discuss the advantages as well as the limitations of systems and quantitative approaches, with a view to understanding the 40 importance of interpretation in metrics usage and of matching quality systems choices to organizational objectives and culture. They learn the use of modern metrics such as DRE, PCE, COQ/COPQ, reliability objectives and SUMI scores through exercises in analyzing and interpreting charts. This is complemented with a project where they work in teams to design an appropriate quality system for a specific project/organizational situation, and discuss the application and analysis of its evaluation experimentation as a means of improving the quality aspects of subject project/organizational situation.
3
Second Year
SWEN-755
Software Architectures and Product Lines
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 tradeoffs among conflicting constraints, the documentation of architecture for use over a product's life cycle, and the role of architecture in defining product lines based on reusable components.
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
 
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.

Learn about admissions and financial aid 

Additional Info

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.