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 2018-19 seminar courses below!
  • SWEN-567 HW-SW Design
  • SWEN-789 Graduate Special Topics by permission (if a design seminar)

 

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 ** Descriptions for 2018-19 seminar courses below!

 

Design Seminar Courses 2018-2019

Fall 2181 : SWEN-549 (Design Seminar) - Engineering Cloud Software Systems, taught by Prof. Oliver Wang

The course focuses on designing and implementing cloud software systems. The course consists of two major components. The first component introduces the basic concept and knowledge on cloud computing system and application infrastructure. The second component presents the key technologies and paradigms related to developing applications in the cloud. Each component contains a set of related topics which are covered via hands-on class instruction, application development in teams, course materials, and class discussions. Programming projects and demo presentations are required.

Fall 2181 : SWEN-789 (Graduate Special Topics) Engineering Self-Adaptive Software Systems, taught by Dr. Naveen Sharma

This course introduces beginning graduate students to key concepts and techniques underlying the engineering of self-adaptive and autonomic software systems. Such software systems are capable of self-management, self-healing, self-tuning, self-configuration and self-protection. The proposed course content shall include an introduction to the self-adaptive software and define their characteristics. This will be followed by foundational engineering principles and methodology for achieving self-adaptive systems – feedback control, modeling, machine learning, and systems concepts. Selected seminal research papers and term-long project will also be covered the class.   Note: 5th year undergraduate students are welcome to enroll; please contact your advisor for enrollment assistance. 

Spring 2185 : SWEN-549-01 (Design Seminar)  - Software Performance Engineering, taught by Prof. Andy Meneely

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.

Spring 2185:  SWEN-789-01 (Graduate Special Topics) -  Data Science Methods in Software Engineering, taught by Prof. Pradeep Murukanniah

Data science plays an increasingly important role in software engineering and in facilitating software systems adapt to evolving users and environments. Emerging data-driven methods in software engineering span requirements elicitation, design, development, testing and maintenance.    The main objective of this course is to introduce students to selected data science techniques and tools, and specifically, their applications in software engineering. However, software engineering is a vast domain, thus in this course we will focus on selected set of related topics in software engineering including requirements, architecture, quality modeling, and failure prediction.

Spring 2185:  SWEN-789-02 (Graduate Special Topics) -  Engineering Accessible Software, taught by Prof. Yasmine El-Glaly

This course introduces software accessibility principles, which are relevant to the Software Engineering approach of software development. The course will survey assistive technologies, accessibility standards and their applications to new and existing software, and how to incorporate accessibility principles at the various phases of the software development life cycle.  The course will emphasize the importance of inclusion of underrepresented groups in technology and information share. Other topics include mobile accessibility, accessibility design and testing, validation technologies, and tools. Course will combine lecture, in-class discussions, and projects.

Process Seminar Courses 2018-2019

Spring 2185 : SWEN-559-01 (SE Process Seminar)  -  DevOps Process and Culture, taught by Prof.  Samuel Malachowsky

A survey of DevOps process, culture, and tools.  Special focus on the conditions that make a DevOps environment and its expected benefits and outcomes.  Topics include project and operational cultures, workflow patterns, and the effect of implementing DevOps on an organization.  This course also provides students with DevOps team experience and an opportunity to implement many of the patterns, tools, and culture shifts discussed in the curriculum.