Software Engineering
NOTE: See the beginning of Section H for abbreviations, course numbers and coding.
L* - Laboratory periods on alternate weeks.
* - Engineering electives. Not all offered every year.
Consult Department as to availability of courses from year to year.
All courses must be passed with a grade of C or better.
SWE3503 | Systems Analysis, Design and Project Management | 4 ch (3C 1T) (W) |
---|---|---|
Introduces students to the life cycle of information systems. Covers techniques and tools used in systems analysis and project management. Emphasizes communication skills, both written and oral, as well as team skills. Prerequisites: CS 1103 and 60 ch. |
SWE4040 | Software Engineering Design Project | 8 ch (2C 4L) (W) (EL) |
---|---|---|
A software design and implementation experience involving a medium to large group. Students prepare requirements, specification, analysis and design documents as a team toward development of a useful software product and use the documentation to implement and test the product. The development process should consider a broad range of constraints including non-functional requirements to the software product, health and safety, sustainable development and environmental stewardship. Students manage their projects professionally, present their design work orally, and demonstrate formally that the product meets its requirements. Prerequisites: ((CS 3503 or SWE 3503 or at least 2 terms of co-op) and 100 ch in the software engineering program) or permission from the instructor. |
SWE4103 | Software Quality and Project Management | 4 ch (3C 3L*) (W) |
---|---|---|
Review software development processes, quality models, and quality standards. Learn about software process and product metrics and monitoring. Explore factors influencing team productivity and product quality. Survey ways that AI is influencing software quality practices. Use automated testing and continuous integration in a software project environment and include exploratory and acceptance tests as part of your manual test suite. Practice software project tracking, planning, and scheduling, along with organizing and managing software development teams, performing risk analyses, and planning for change. Prerequisite: ((CS 2613 or CS 3503 or SWE 3503), and (ECE 4403 or CS 2043)) or permission from the instructor. |
SWE4203 | Software Evolution and Maintenance | 4 ch (3C 3L*) |
---|---|---|
Maintainability and reusability analysis. Approaches to maintenance and long-term software development. Change management and impact analysis. Release and configuration management. Reengineering and reverse engineering. Regression testing. Prerequisite: CS 2043 or ECE 4403 or permission from the instructor. |
SWE4213 | Web Development, Deployment and Operations | 4 ch (3C 2L*) (P) |
---|---|---|
Explore behind the scenes configuration required for web applications to achieve scalability as well as robust and maintainable performance in production environments. Design and deploy local and hybrid development environments to bridge the gap between traditional development and operations management. |
SWE4403 | Software Architecture and Design Patterns (Cross Listed: CS 4015) | 4 ch (3C 2L*) (P) |
---|---|---|
This course introduces concepts of software design patterns and architecture. The course covers principles of reuseable object-oriented programming, as well as creational, structural, and behavioural patterns. The course also covers software quality attributes, architectural tactics and patterns, designing and documenting software architecture, architecture reconstruction, architecture evaluation, and software product lines. Students will practice applying and implementing design patterns and software architecture design and evaluation in course work by developing various software systems. Prerequisite: CS 2043 or permission from the instructor. |
SWE4503 | Engineering Machine Learning Systems | 4 ch (3C 1T) |
---|---|---|
Learn what it takes to develop and maintain production ready machine learning (ML) systems. Explore the phases of the ML Operations cycle, ML Continuous Integration/Continuous Development & Deployment/Continuous Testing pipelines, testing strategies, ML training and service architectures, and hardware considerations for deep learning systems. |
SWE4703 | Software Defined Energy Systems | 4 ch (3C 3L*) |
---|---|---|
Explores how full-stack software development improves the efficiency and awareness of energy systems. Introduction to software-driven paradigms in the energy sector, including transactive energy, peer to peer energy trading, and the internet of energy. Leverages distributed software technologies to implement a group research project addressing energy sustainability. Strengthens skills in sustainable and ethical software development, problem-solving, and teamwork. Learning outcomes include designing software architecture for complex energy requirements and prototyping novel solutions in energy systems. |
SWE4913 | Independent Project | 4 ch (W) |
---|---|---|
An independent project or literature survey. Students work under the supervision of a chosen faculty member. Students are responsible for finding a supervisor and initiating the project or literature survey. Deliverables include a comprehensive report detailing the work. Prerequisite: Successful completion of 100 ch in an undergraduate program in the Faculty of Engineering or Faculty of Computer Science. |