Software Engineering

Note: See 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.

SWE4040Software Engineering Design Project7 ch (1*C 6L) [W]

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.

Prerequisite: 100 ch in the software engineering program or permission from the instructor. Students may not take both SWE 4040 and INFO 4900 for credit.

SWE4103Software Quality and Project Management [A]4 ch (3C 3*L) [W]

Software Quality: Requirements gathering techniques. Formal specification languages. Verification and validation techniques. Statistical software reliability engineering. Software metrics. Software process maturity models (CMM and ISO 9001). Software Project Management: Software project tracking, planning and scheduling. Organizing and managing software teams. Monitoring and controlling software development. Factors influencing productivity and success. Risk analysis. Planning for change. Note: alternating with SWE 4203

Prerequisite: CS 2043 or permission from the instructor. 

SWE4203Software Evolution and Maintenance [A]4 ch (3C 3*L)

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. Note: alternating with SWE 4103

Prerequisite: CS 2043 or permission from the instructor. 

SWE4303Performance Analysis of Computer Systems4 ch (3C 3*L)

Computer systems performance analysis and benchmarking. Metrics for the performance of the processor, the memory system, the communication system and the I/O system. Theoretical tools, and industrial benchmark suites like the SPEC benchmarks.

Prerequisite: permission from the instructor.

SWE4403Software Architecture and Design Patterns (Cross Listed: CS 4015)4 ch (3C 2*L) [P]

Examines pattern-oriented software architecture and development, architectural styles and patterns, design patterns, pattern systems and applications, pattern languages, and implementation techniques in various programming languages. 

Prerequisites: CS 2043 or permission from the instructor. 

SWE4913Independent Project4 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.