Software Engineering
Faculty of Engineering
Undergraduate Courses
Courses offered by the Faculty of Engineering are also found under the following course codes: CENG (Computer Engineering), CSC (Computer Science), ELEC (Electrical Engineering), ENGR (Engineering) and MECH (Mechanical Engineering).
SENG 265 Units: 1.5 Schedule
Software Development Methods
Systematic methods for designing, coding, testing and documenting medium-sized programs. Tools and techniques to promote programming productivity and software quality. Topics include specifications, code review and inspection techniques, testing and debugging methods and tools, reusable software components and templates, file system navigation, scripting languages, software tools, environments, instrumenting and profiling, and the fundamentals of software configuration management.
Note: Credit will be granted for only one of 265, CSC 265.
Prerequisites: CSC 115 or 160.
SENG 271 Units: 1.5 Schedule
Software Model Engineering
An introduction to analysis and design of software architectures with UML (Unified Modelling Language) and their subsequent synthesis at the program level. Topics include use-case driven requirements analysis, analysis and design of static and dynamic view points of software architectures and model driven code engineering. Design patterns are introduced and applied as reusable solutions to recurring design problems. Students are familiarized with framework-based component reuse, event-driven programming and computer-aided software engineering (CASE) tools.
Note: Credit will be granted for only one of 271, 221.
Pre- or corequisites: 265.
SENG 310 Units: 1.5 Schedule
Human Computer Interaction
Understanding human behaviour as it applies to user interfaces: work activity analysis, observational techniques, questionnaire administration and unobtrusive measures. Operating parameters of the human cognitive system, task analysis and cognitive modelling techniques and their application to designing interfaces. Interface representation and prototyping tools. Cognitive walkthroughs, usability studies and verbal protocol analysis. Case studies of specific user interfaces.
Prerequisites: 221 or 265 or CENG 241.
SENG 422 Units: 1.5 Schedule
Software Architecture
Architectural design of complex software systems. Techniques for designing, evaluating and implementing software system structures, models and formal notations for characterizing and reasoning about architectures, tools and generating specific instances of an architecture, and case studies of actual system architectures. Role of Standards. Students must complete a project that involves substantial software design. Students work in teams. Progress is determined through a preliminary design review; presentation; demonstration of the design; and final report.
Prerequisites: 271 or 330.
SENG 426 Units: 1.5 Schedule
Software Quality Engineering
Emphasizes software quality engineering as an integral facet of development, from requirements through delivery and maintenance. The students will learn how to choose appropriate quality goals and select, plan, and execute quality assurance activities throughout development and evolution to predictably meet quality and schedule goals. They will learn how quality assurance can be incorporated into process improvement feedback loops that amplify the ability of an organization to cost-effectively prevent and detect faults.
Prerequisites: 321 or 371.
SENG 440 Units: 1.5 Schedule
Embedded Systems
Characteristics and design of embedded systems. Formal models and specification languages for capturing system behaviour. Techniques for specification, exploration and refinement. System partitioning and hardware/software co-design. Tools for validation, verification, and simulation. Quality and performance metrics.
Prerequisites: CENG 355 or CSC 355.
SENG 480 Units: 1.5 Schedule
Formerly: 480A, 480B, 480C, 480D
Topics in Software Engineering
Topics depend primarily on the interests of the instructor. Entrance will be restricted to third- and fourth-year students who meet the prerequisites specified for the topic to be offered. Some topics may require laboratory work as well as lectures.
Notes: - Credit will be granted for only one of 480, 480A, 480B, 480C, 480D (if taken in the same topic).
- May be taken more than once for credit in different topics with permission of the department.
SENG 499 Units: 1.5 Schedule
Technical Project
The student is required to pursue an independent project under the supervision of a faculty member, to prepare a written report and present a seminar describing the work. Projects will normally focus on large software systems, and collaboration with an industrial sponsor is encouraged.
Prerequisites: Fourth-year standing in the Faculty.