You are here

Software Engineering Electives

To fulfill your Software Engineering Elective requirement, choose one process elective, and one design. 

Design Electives

  • SWEN-342 Engineering of Concurrent and Distributed Software Systems
  • SWEN-343 Engineering of Enterprise Software Systems
  • SWEN-344 Web Engineering
  • SWEN-563 (formerly 461) Real Time and Embedded Systems
  • SWEN-564 (formerly 462) Modeling of Real Time Systems
  • SWEN-565 (formerly 463) Performance Engineering of Real Time and Embedded Systems
  • SWEN-549 Software Engineering Design Seminar ** Descriptions for Fall 2017 seminar courses below!
  • SWEN-567 HW-SW Design


Process Electives

  • SWEN-350 Software Process and Product Quality
  • SWEN-352 Software Testing
  • SWEN-356 Trends in Software Development Processes
  • SWEN-559 Software Engineering Process Seminar


Design Seminar Courses, Fall 2017

Software Performance Engineering, Prof Andy Meneely
Prerequisite : SWEN-262

MWF 11:15-12:10

In the fall, Prof. Meneely will be offering an experiment. Literally. Performance is a critical requirement in many software systems, and yet it is easy to ignore. The field of software performance engineering provides us with some very useful methodologies to optimize our systems. The course will be an evidence-based, scientific deep dive into how we can find and improve software performance in various contexts. Below is the course description:

A survey of theory and techniques to integrate performance into the software development lifecycle. Special focus on design, implementation, testing, and operational concerns. Topics include monitoring, profiling, process practices, queuing theory, relational database query optimization, and various trade-offs.

Engineering of Cloud Software Systems, Prof Oliver Wang
Prerequisite : SWEN-262

MW 3:45-4:45

In this course, you will get hands-on experience in designing and implementing cloud software systems. We will first introduce the basic concepts of cloud computing such as virtualization, IAAS, etc., and learn how to develop and deploy your innovative applications on the cloud. As one of the major application of cloud computing is dealing with big data applications, we will also discuss topics related to big data techniques such as map-reduce, spark etc. You will learn how to integrate big data into cloud software systems.