Doctor of Engineering with a Major in Software Engineering

SOFTWARE ENGINEERING

Program Director: Mitch Thornton, Ph.D.

Introduction

Software engineering covers both technical and management issues related to the planning, development, marketing, and evolution of large software systems used in society today, covering techniques, models, and processes from the initial market analysis and product planning, through product requirements gathering, system architecture and product design, product implementation, verification and validation, product release, and all the way to post-release product support, maintenance, and evolution. Issues related to software products and systems specific to different problem domains, such as software used in information processing, aerospace, telecommunications, financial services, etc., are also the subjects of study of software engineering.

Students receiving a Doctor of Engineering (D.Engr.) with a major in software engineering are expected to achieve and demonstrate a solid foundation and depth in software engineering practice, a breadth across the engineering discipline, and a significant and industrially relevant engineering innovative experience through the Doctor of Engineering praxis.

Admission Requirements

Applicants are required to satisfy the following requirements:

  • A master’s degree in software engineering, computer science, computer engineering, engineering management, or a related discipline.
  • Submission of official test scores from the GRE graduate school admission test score and submission of TOEFL English language proficiency exam scores if English is not the applicant’s native language.
  • Approval of the director of the software engineering program.

Degree Requirements

In addition to meeting the Lyle School of Engineering requirements for the D.Engr. degree, candidates are required to satisfy the following. The graduation requirements fall into the categories of completion of a specified number of graduate credit hours in appropriate subjects and completion of a praxis. Doctoral students must maintain at least a 3.000 GPA every term and at least a 3.300 overall (cumulative) GPA during their course of study.

Credit Requirements:

  • Twenty-four credit hours of core software engineering courses. These credit hours must come from graduate-level courses in software engineering, as specified.
  • Twelve credit hours of core engineering management courses. These credit hours must come from graduate-level courses in engineering management, as specified
  • Fifteen credit hours in a technical specialty. These credit hours must be taken in software engineering, computer science, computer engineering, engineering management, systems engineering, or other technical areas consistent with anticipated doctoral work demands.
  • Fifteen credit hours of electives. All elective credit hours must come from graduate-level courses and must be approved by the advisory committee. These courses should, in some way, complement and strengthen the student's degree plan. They should broaden the student's understanding of the issues and problems relating to the application of software technologies to different engineering disciplines.
  • Twelve credit hours of praxis. These credit hours must be taken in residence. The student enrolls for these credit hours in the course of preparing the praxis project.

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

Core Courses in Software Engineering

The following courses, or their equivalents, must be included in the degree plan:

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

In addition, at least four of the following courses must be taken:

CSE 8312 Software Generation and Maintenance
CSE 8313 Object-Oriented Analysis and Design
CSE 8314 Software Metrics and Quality Engineering
CSE 8315 Software Acquisition Practices, Legal and Economic Issues
CSE 8316 User Interface Design
CSE 8317 Software Reliability and Safety
CSE 8340 Advanced Topics in Software Engineering

Core Courses in Engineering Management

The following courses, or their equivalents, must be included in the degree plan:

EMIS 7370 Probability and Statistics for Scientists and Engineers
EMIS 7377 Statistical Design and Analysis of Experiments

In addition, at least two of the following courses must be taken:

EMIS 8360 Operations Research Models
EMIS 8361 Engineering Economics and Decision Analysis
EMIS 8364 Engineering Management
EMIS 8378 Optimization Models for Decision Support

Praxis

The student must perform a suitable engineering praxis proposed by the student and approved by the praxis adviser and the supervisory committee. The praxis must include a significant and industrially relevant engineering innovative experience, typically revolving around a well-defined project relevant to current software engineering practice. Good scholarship and the significance of the student’s praxis could be demonstrated by relevant technical publications, patents (or patent applications) or invention disclosures. As a culmination of the doctoral program, the student must submit an acceptable written praxis report and pass the oral praxis presentation and defense. 

Upon the successful completion of the praxis defense, the praxis is uploaded to the SMU/UMI Praxis Publishing website. The original abstract must be signed by the praxis adviser, and the original half-title page of the praxis must be signed by all of the CSE faculty members attending the praxis defense.

Sample Doctoral Degree Plans

The courses comprising a degree plan for a D.Engr. with a major in software engineering will be determined by the student’s supervisory committee. The plans will vary among students depending on their background and praxis topics. Sample degree plans cover both basic degree requirements and technical specialties. All students must select a technical specialty track that is approved by their committee and that relates to their praxis topic. The following are examples of technical specialty tracks appropriate for a D.Engr. with a major in software engineering candidates: 

Security

CSE 7339 Computer System Security
CSE 7348 Internetworking Protocols and Programming
CSE 7349 Data and Network Security
CSE 7359 Software Security
CSE 8349 Advanced Network and System Security
CSE 8352 Cryptography and Data Security

Networks/Distributed Computing

CSE 7344 Computer Networks and Distributed Systems II
CSE 7348 Internetworking Protocols and Programming
CSE 8344 Computer Networks
CSE 8377 Fault-Tolerant Computing
CSE 8380 Parallel and Distributed Processing

Data Management

CSE 7330 File Organization and Data Management
CSE 7331 An Introduction to Data Mining and Related Topics
CSE 7347 XML and the Enterprise
CSE 8330 Advanced Database Management Systems
CSE 8331 Advanced Data Mining
CSE 8337 Information Retrieval

Embedded Systems

CSE 7380 VLSI Algorithms
CSE 7385 Microprocessor Architecture and Interfacing
CSE 8317 Software Reliability and Safety
CSE 8357 Design of CAD/CAE Tools
CSE 8387 Switching Theory and Applications in VLSI CADI
CSE 8388 Embedded Systems

High-Performance Applications Engineering (e.g. computer gaming)

CSE 7350 Algorithm Engineering
CSE 7381 Computer Architecture
CSE 7382 Computer Graphics
CSE 8355 Graph Theory: Algorithms and Applications
CSE 8351 Computer Arithmetic
CSE 8383 Advanced Computer Architecture

Recognition of Previous Post-Baccalaureate Course Work

Students with an M.S. in software engineering, engineering management or other related areas may apply up to 30 credit hours of their M.S. degree credits toward their D.Engr. with a major in software engineering, subject to approval of their supervisory committee.

Recommended Degree Plan

Graduate Catalog

Graduate Catalog Archives