Master of Science with a Major in Software Engineering


Program Director: Mitch Thornton, Ph.D.


Software engineering is the computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues.

The SMU Master’s degree program in software engineering offers a balanced approach to management issues, such as directing programming teams, scheduling and budgeting and technical expertise necessary to succeed in this critically important field. Many of the courses are based upon those proposed by the Software Engineering Institute, specifically founded by the Department of Defense to assist in the development of a sound foundation for this rapidly emerging field. Centering on the problems of working professionals in this field, the SMU program in software engineering serves the needs of both the full- and part-time student.

Admission Requirements

In addition to meeting the Lyle School of Engineering admission requirements for an M.S. degree, applicants are required to satisfy the following:

  1. Bachelor’s degree in one of the quantitative sciences, mathematics, or computer science or in one of the engineering disciplines.
  2. A minimum of one year of college-level calculus.
  3. A minimum of two years of experience in software development and/or maintenance, or submission of official GRE graduate school admission test scores.

Degree Requirements

In addition to meeting the Lyle School of Engineering degree requirements for an M.S. degree, candidates are required to satisfy the following: 30 credit hours of coursework consisting of 12 credit hours of core courses and 18 credit hours of electives as follows:

1. Satisfactory completion of the core curriculum encompassing four courses: 

CS 7314 Software Testing and Quality Assurance
CS 7315 Software Project Planning and Management
CS 7316 Software Requirements
CS 7319 Software Architecture and Design

2. Satisfactory completion of three advanced elective courses from the following:

CS 7111 Intellectual Property and Information Technology
CS 7340 Service-Oriented Computing
CS 7345 Advanced Application Programming
CS 7347 XML and the Enterprise
CS 7359 Software Security
CS 8312 Software Generation and Maintenance
CS 8313 Object-Oriented Analysis and Design
CS 8314 Software Metrics and Quality Engineering
CS 8315 Software Acquisition Practices, Legal, and Economic Issues
CS 8316 User Interface Design
CS 8317 Software Reliability and Safety
CS 8340 Advanced Topics in Software Engineering

3. Satisfactory completion of three elective courses from available graduate-level course offerings.

Any deviation from the stated requirements must be approved in writing from the student’s adviser and department chair.

Students entering the program without an undergraduate degree in Computer Science must satisfy the following competency requirements in addition to the degree requirements listed above:

A.  The ability to write programs in a high level language such as Java, C++, Python, etc.
B.  Demonstrate competence in six core areas of computer science

Students may fulfill (A) by either:

i.   Demonstrating their programming ability in a departmental examination,
ii.  Successful completion of CS 1341, Principles of Computer Science, or
iii. Obtaining a certificate of achievement from EDX (or comparable entity) in one of the high‐level programming languages (e.g. Java, C++, Python)

Students may fulfill (B) by demonstrating competence in the following core areas of Computer Science:

1)  Computer Architecture
2)  Programming Languages
3)  Data Structures and Algorithms
4)  Database Management Systems
5)  Operating Systems and Concurrency
6)  Networks and Distributed Systems 

Competence in core areas may be demonstrated by one of the following:

i.   Completing a course from an ABET accredited program that covers a core area.
ii.  Obtaining 70% or better on a departmental examination that covers a core area.Exams will be based on a set of specified
     readings published by the Computer Science and Engineering Department and should be taken prior to beginning the first semester.
iii. Completing and passing one or more of the following core-area courses:

CS 7101 Foundations of Computer Architecture
CS 7102 Foundations of Programming Languages
CS 7103 Foundations of Data Structures and Algorithms 
CS 7104 Foundations of Database Management Systems 
CS 7105 Foundations of Operating Systems and Concurrency 
CS 7106 Foundations of Networks and Distributed Systems

These courses are 1 credit hour each and are offered pass-fail and do not count toward the 30 hour degree requirement. The grade for the course will be based on several assignments and a final examination.

Residency and Level Requirements

A minimum of 30 graduate credit hours must be earned toward an M.S. degree, of which at least 24 must be earned in residency at SMU. Up to six credit hours may be transferred with departmental approval. Of the 30 credit hours needed for graduation, at least nine credit hours must be at the 8000-level CS courses, with the remainder at the 7000 level or above. 

Degree Plan

Course Descriptions

Graduate Catalog

Graduate Catalog Archives

M.S. | Software Engineering Flyer (.pdf)

M.S. | Software Engineering + MBA