Site Navigation

Software Engineering SENG

Instruction offered by members of the Department of Computer Science in the Faculty of Science and the Department of Electrical and Computer Engineering in the Schulich School of Engineering.

Computer Science Department Head - K.Barker

Electrical and Computer Engineering Department Head - A. Sesay

Registration in each course requires the consent of the Department teaching the course.

Senior Courses

Software Engineering 301 H(3-1T-2)

Analysis and Design of Large-Scale Software I

Introduction to developing large-scale, quality software, from analysis of requirements, through design, implementation, and testing. Introduction to design for non-functional properties of software. Emphasis on individual skills.

Prerequisites: Computer Science 331.

Note: Credit for both Software Engineering 301 and any of Software Engineering 311, Computer Science 301 or 333, or Management Information Systems 333 will not be allowed.

(Return to Top)

Software Engineering 401 H(3-2)

Analysis and Design of Large-Scale Software II

Software architectures and design for non-functional software properties. Introduction to program comprehension skills including analysis of existing architectures.

Prerequisites: Software Engineering 301.

Corequisites: Computer Science 457.

Note: Credit for both Software Engineering 401 and Software Engineering 443 will not be allowed.

(Return to Top)

Software Engineering 403 H(3-3T)

Software Development in Teams and Organizations

A comparison of alternative software processes emphasizing both their strengths and weaknesses. Addresses the human, social, societal, ethical, and organizational factors inherent in real-world software development. Emphasis on team development skills in a large-scale project.

Prerequisites: (For students registered in Computer Science) Software Engineering 301 and one of Philosophy 249, 329, 349, Business and Environment 561, (For students registered in Software Engineering, Schulich School of Engineering) Software Engineering 301

Note: Credit for both Software Engineering 403 and any of Software Engineering 411 or Computer Science 301 or 451 will not be allowed.

(Return to Top)

Software Engineering 421 H(3-2)

Software Metrics

The theory, process, and application of measurement in software and software development processes.

Prerequisites: Computer Science 331 .

(Return to Top)

Software Engineering 501 H(3-2)

Advanced Topics in Software Engineering

Topics of the next generation of software development methods, technologies, or tools.

Prerequisites: Consent of either the Department of Electrical and Computer Engineering or the Department of Computer Science.

Note: Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.

MAY BE REPEATED FOR CREDIT

(Return to Top)

Software Engineering 511 H(3-2)

Software Process Improvement

Analysis of methods, tools, and techniques for software process improvement as an effort to achieve quality software products.

Prerequisites: Software Engineering 403 or 411, or Computer Science 301 or 451.

(Return to Top)

Software Engineering 513 H(3-2)

Web-Based Systems

An overview of software engineering methods and technologies for developing web-based software systems.

Prerequisites: Software Engineering 403 or 411 or Computer Science 301 or 451.

Corequisites: Computer Science 471.

(Return to Top)

Software Engineering 515 H(3-2)

(formerly Computer Science 599.93)

Agile Software Engineering

Investigation and application of agile software development practices.

Prerequisites: Software Engineering 403 or 443, and one of Software Engineering 401 or 411 or Computer Science 451.

(Return to Top)

Software Engineering 521 H(3-2)

Software Reliability and Testing

The principles, processes, and applications of software reliability and testing.

Prerequisites: Software Engineering 421.

(Return to Top)

Software Engineering 523 H(3-2T)

Formal Methods

Software specification, verification, and validation using a mathematically rigorous technique.

Prerequisites: Software Engineering 403 or 411 or Computer Science 301 or 451.

(Return to Top)

Software Engineering 531 H(3-2T)

Modifiability of Large-Scale Software

Phenomena and approaches involved in the evolution and reuse of large-scale software, including design for modifiability and tool support. Strengths and weaknesses of industrially-current techniques as well as recent research results.

Prerequisites: Software Engineering 401.

(Return to Top)

Graduate Courses

Software Engineering 605 Q(3-1)

Industrial Topics in Software Engineering

A study of practical approaches of industrial relevance to students specializing in Software Engineering.

Note: Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.

MAY BE REPEATED FOR CREDIT

(Return to Top)

Software Engineering 607 H(3-1)

Special Topics in Software Engineering

A study of problems of particular interest to students specializing in Software Engineering.

Note: Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.

MAY BE REPEATED FOR CREDIT

(Return to Top)

Software Engineering 609 Q(3-1)

Special Topics in Software Engineering

A study of problems of particular interest to students specializing in Software Engineering.

Note: Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.

MAY BE REPEATED FOR CREDIT

(Return to Top)

Software Engineering 611 Q(3-1)

Requirements Engineering I

The elicitation, modelling, expression, and validation of requirements.

(Return to Top)

Software Engineering 613 Q(3-1)

Requirements Engineering II

Applications of requirements engineering to the management of the lifecycle of software development from requirements elicitation through analysis, design, coding, testing, enhancement and reuse.

Prerequisites: Software Engineering 611.

(Return to Top)

Software Engineering 615 H(3-2)

(formerly Computer Science 601.93)

Agile Software Engineering

Investigation and application of agile software development practices.

Prerequisites: Consent of the Department.

Note: Students are expected to have some background in software development as preparation for this course.

Note: Lectures may run concurrently with Software Engineering 515.

(Return to Top)

Software Engineering 627 H(3-1)

Software Engineering Decision Support

Provides methodological foundations of software engineering decision-making and how to apply them to make better decisions about processes, products, and resources as well as for selection of tools and techniques.

Note: Credit for both Software Engineering 625 and 627 will not be allowed.

(Return to Top)

Software Engineering 629 Q(3-0)

(formerly Software Engineering 609.17)

Software Engineering Standards and Models

Formal description of algorithms for current software engineering standards and models. Trends and future development in software engineering standardization.

(Return to Top)

Software Engineering 637 H(3-2)

Dependability, Reliability, and Testing of Software Systems

Principles of software dependability techniques, and techniques to improve, to predict, and to test software reliability.

Note: Credit for both Software Engineering 637 and either Software Engineering 631 or 635 will not be allowed.

Note: Engineering 319, Software Engineering 511, and Software Engineering 421, or their equivalents, are recommended as preparation for this course.

(Return to Top)

Software Engineering 641 H(3-1)

(formerly Computer Science 601.33)

Modifiability of Large-Scale Software

Phenomena and approaches involved in the evolution and reuse of large-scale software, including design for modifiability and tool support. Strengths and weaknesses of industrially-current techniques as well as recent research results.

Prerequisites: Consent of the Department.

Note: Software Engineering 401 or equivalent is recommended as preparation for this course.

Note: Lectures may run concurrently with Software Engineering 531.

(Return to Top)

Software Engineering 651 H(3S-0)

Half-Course Project

A project in either software development or software best practice and experience.

Note: Credit for both Software Engineering 651 and 652 will not be allowed.

Note: This course is only available to students registered in the course-based MSc in Computer Science with the Software Engineering Specialization.

Note: Students should register for this course in the semester when they will complete it.

(Return to Top)

Software Engineering 652 F(3S-0)

Full-Course Project

A project in either software development or software best practice and experience.

Note: Credit for both Software Engineering 652 and either 651 or Electrical Engineering 698 will not be allowed.

Note: This course is only available to students registered in the course-based MSc in Computer Science with the Software Engineering Specialization or to MEng students with a specialization in Software Engineering.

Note: Students should register for this course in the semester when they will complete it.

(Return to Top)

Software Engineering 697 Q(3-0)

(formerly Software Engineering 609.22)

Agent-Based Software Engineering

Principles and practices of engineering agent-based software systems.

Note: Credit for both Software Engineering 697 and Computer Science 609 will not be allowed for programs offered by the Department of Computer Science.

(Return to Top)