Students must complete 45 credits as shown below:
* Course work consisting of 24 credits of core courses (SOEN 6011, SOEN 6431, SOEN 6441, SOEN 6481, COMP 6231, and INSE 6210).
* A minimum of 12 credits from Topic Area C09, and the remaining credits from Topic Areas C01 through C09, C12 and COMP 6961.
* Students who have completed an undergraduate Software Engineering degree must replace SOEN 6011 with another course chosen from Topic Area C09.
SOEN 6011 Software Engineering Processes (4 credits)
Introduction to software engineering concepts. Software process models and associated activities. Including requirements analysis, specification, design, implementation, and validation. Software documentation. Inspections and reviews. Collaborative works and project management. A project.
SOEN 6431 Software Comprehension and Maintenance (4 credits)
The course addresses both technical and managerial views of software comprehension and software maintenance issues. Topics covered in this course include: cognitive models, software visualization, CASE tools, reverse engineering, static and dynamic source code analysis. Introduction to current research topics in software maintenance and program comprehension. A project.
Note: Students who have received credit for COMP 6431 may not take this course for credit.
SOEN 6441 Advanced Programming Practices (4 credits)
Problems of writing and managing code. Managing complexity: programming process. Pragmatic Programming. Coding conventions, software documentation. Software configuration management. Advanced debugging techniques: program tracing, dynamic inspection and tools. Testing: coding techniques for testing software. Multithreading concurrency and distributed programming. Multi-language programming. A project. Laboratory: two hours per week.
Note: Students who have received credit for COMP 6441 may not take this course for credit.
SOEN 6481 Systems Requirements Specification (4 credits)
The objectives of the requirement specification process: determining and defining system requirements. Techniques for the identification of requirements. Formal models and representations for specifying system requirements. Formal techniques and tools for requirement specification support. Assessment of a specification for attributes such as correctness, consistency and completeness. Case studies involving large industrial projects in avionics, space mission, and atomic energy control systems will be taken up for an in-depth discussion of safety-critical issues, their specifications, and validation. A project.
Note: Students who have received credit for COMP 6481 may not take this course for credit.
SOEN 6611 Software Measurement: Theory and Practice (4 credits)
Prerequisite: SOEN 6011 previously or concurrently.
Role of Measurement in Software Engineering, Software measurements principles, Representational theory of measurement. Validation on Software Measures. Use of Category Theory for deriving object-oriented measures. Reliability Models and measurement. Cost and Effort Estimation Models. Measurement Program: Goal-Question-Metric Approach. NFR Framework. Software Measurement Research. A project.
SOEN 6761 Multimedia Computing (4 credits)
Prerequisite: SOEN 6011 previously or concurrently.
This course covers the state-of-the-art technology for multimedia computing. The course topics will cover current media types, images, video, audio, graphics and 3D models in terms of algorithms and data structures for their capture, representation, creation, storage, archival, transmission, assembling, presentation and retrieval. This course will cover fundamental ideas in multimedia technology applicable to computer science and software engineering. A project.
SOEN 6771 User Interface Development Tools and Techniques (4 credits)
Tools and software for user interface (UI). Event-driven programming. UI frameworks and patterns. OVID Methodology from IBM. Architectures: Seeheim, MVC, PAC, ARCH and AMF. Windowing systems. User interface management systems (UIMS). Toolkits: callback functions, event handlers, widgets hierarchy, widgets as objects, instantiation of widgets, containers and geometry managers. GUI Builders. Techniques for generating UI. Compound document technologies: OpenDoc, ActiveX, and Java Beans. UI tools for Internet-based applications and PDA (Personal Digital Assistants). End-user programming, customization, and scripting. Course project.
Note: Students who have received credit for COMP 6771 may not take this course for credit.
SOEN 691 Topics in Software Engineering (4 credits)
Subject matter will vary from term to term and from year to year. Students may re-register for this course, providing that the course content has changed. Changes in content will be indicated by the letter following the course number, e.g. SOEN 691A, SOEN 691B, etc.
SOEN 6951 Software Engineering Case Study (4 credits)
Students will complete a case study of a software project. Whenever possible, the project should be conducted in an industrial environment with the cooperation of the student's employer.
Note: Students who have received credit for COMP 6951 may not take this course for credit.
SOEN 7481 Software Verification and Testing (4 credits)
Prerequisite: SOEN 6481.
Role of verification, testing and quality assurance. Formal verification techniques. Proving correctness and conformity of system behaviour to Systems Requirement Specification (SRS). Nature and limitations of testing. Nature of hardware and software faults. Formal models of testing. Test environments. Test case generation. Test result analysis. Test standards and documentation. The course includes a project that will develop techniques and strategies for applying formal verification and testing techniques to a problem of industrial size and interest.
Note: Students who have received credit for COMP 7481 may not take this course for credit.
SOEN 7731 Empirical Studies in Software Engineering (4 credits)
Prerequisite: COMP 6751.
Usability requirements techniques for user interfaces. Usability goals/factors specification. Metrics for effectiveness, efficiency and satisfaction. Comparative studies on usability evaluation/testing techniques and tools. Questionnaires, heuristics evaluation, Wizard of Oz. Design of evaluation experiments. Usability in software development lifecycle. Case studies in testing and evaluation of selected GUI and Web user interfaces. Projects on selected applications.
Note: Students who have received credit for COMP 7731 may not take this course for credit.
SOEN 791 Topics in Software Engineering II (4 credits)
Subject matter will vary from term to term and from year to year. Students may re-register for this course, providing that the course content has changed. Changes in content will be indicated by the letter following the course number, e.g. SOEN 791A, SOEN 791B, etc.
SOEN 7941 Master’s Research and Thesis (29 credits)
Students are required to submit a thesis prepared under the guidance of a faculty member appointed by the Faculty Graduate Studies Committee. The thesis must represent the result of the student’s independent work undertaken after admission to the program. The thesis will be evaluated by a committee appointed by the Faculty Graduate Studies Committee.