| 
	
		
		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. 
    | 
	
		 | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						301      
					 | 						
					
						Software Analysis and Design
					 | 						
				 
			 
		 | 
	 
	
		
			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.
			 Course Hours:
			3 units; H(3-1T-2)
			 Prerequisite(s):
			 Computer Science 319 or 331.
			
			
			 Antirequisite(s):
			Credit for Software Engineering 301 and any of Software Engineering 311, Computer Science 301 or 333 will not be allowed.
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						401      
					 | 						
					
						Software Architecture
					 | 						
				 
			 
		 | 
	 
	
		
			Software architectures and design for non-functional software properties. Introduction to program comprehension skills including analysis of existing architectures.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			 Software Engineering 301.
			
			
			 Antirequisite(s):
			Credit for Software Engineering 401 and Software Engineering 443 will not be allowed.
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						403      
					 | 						
					
						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 development project.
			 Course Hours:
			3 units; H(3-3T)
			 Prerequisite(s):
			Software Engineering 301.
			
			
			 Antirequisite(s):
			Credit for Software Engineering 403 and any of Software Engineering 411 or Computer Science 301 or 451 will not be allowed.
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						437      
					 | 						
					
						Software Testing
					 | 						
				 
			 
		 | 
	 
	
		
			Concepts, methods, techniques, processes, and tools for software testing.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			 Software Engineering 301.
			
			
			
			
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						471      
					 | 						
					
						Software Requirements Engineering
					 | 						
				 
			 
		 | 
	 
	
		
			Introduction to elicitation, modelling, expression and validation of the requirements. Techniques and methodologies for requirements engineering. Applications of requirements engineering to the management of the software development lifecycle.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			Software Engineering 301 or Computer Science 301.
			
			
			
			
			
			
			 Also known as:
			(formerly Software Engineering for Engineers 471)
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering
						499      
					 | 						
					
						Introductory Topics in Software Engineering  
					 | 						
				 
			 
		 | 
	 
	
		
			Special topics at an introductory level on software development methods, technologies, or tools.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			Consent of either the Department of Electrical and Computer Engineering or the Department of Computer Science. 
			
			
			
			
			 Notes:
			Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year. 
			
			
			
			 MAY BE REPEATED FOR CREDIT 
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						501      
					 | 						
					
						Advanced Topics in Software Engineering
					 | 						
				 
			 
		 | 
	 
	
		
			Special topics at an advanced level on software development methods, technologies, or tools.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			 Consent of either the Department of Electrical and Computer Engineering or the Department of Computer Science.
			
			
			
			
			 Notes:
			 Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.
			
			
			
			 MAY BE REPEATED FOR CREDIT
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						511      
					 | 						
					
						Software Process and Project Management
					 | 						
				 
			 
		 | 
	 
	
		
			Analysis of methods, tools, and techniques for software process improvement and software project management as an effort to achieve quality software products.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			Software Engineering 403 or 411.
			
			
			
			
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						513      
					 | 						
					
						Web-Based Systems
					 | 						
				 
			 
		 | 
	 
	
		
			An overview of software engineering methods and technologies for developing web-based software systems.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			Software Engineering 301.
			
			
			
			
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						515      
					 | 						
					
						Agile Software Engineering
					 | 						
				 
			 
		 | 
	 
	
		
			Investigation and application of agile software development practices.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			 One of Software Engineering 401, 403, 411, or 443.
			
			
			
			
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						521      
					 | 						
					
						Software Reliability and Software Quality
					 | 						
				 
			 
		 | 
	 
	
		
			The principles, processes, and applications of software reliability and software quality assurance.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			 Software Engineering 437 or 421.
			
			
			 Antirequisite(s):
			Credit for Software Engineering 521 and 637 will not be allowed.
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						523      
					 | 						
					
						Formal Methods
					 | 						
				 
			 
		 | 
	 
	
		
			Software specification, verification, and validation using a mathematically rigorous technique.
			 Course Hours:
			3 units; H(3-2T)
			 Prerequisite(s):
			Software Engineering 403 or 411.
			
			
			
			
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						533      
					 | 						
					
						Software Performance Evaluation
					 | 						
				 
			 
		 | 
	 
	
		
			Analyzing quality requirements of large-scale software. Performance analysis, testing, and tuning techniques. Evaluating software scalability. Capacity planning methodologies. Issues related to safety, security, and availability of software.
			 Course Hours:
			3 units; H(3-2)
			 Prerequisite(s):
			One of Software Engineering 301 or Computer Engineering 493 and one of Computer Science 457, Software Engineering for Engineers 413, or Computer Engineering 491.
			
			
			
			
			
			
			 Also known as:
			(formerly Software Engineering for Engineers 533)
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						541      
					 | 						
					
						Fundamentals of Software Evolution and Reuse
					 | 						
				 
			 
		 | 
	 
	
		
			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.
			 Course Hours:
			3 units; H(3-2T)
			 Prerequisite(s):
			Software Engineering 301.
			
			
			 Antirequisite(s):
			Credit for Software Engineering 541 and 641 will not be allowed.
     
			
			
			 Also known as:
			(formerly Software Engineering 531)
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		 | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						605      
					 | 						
					
						Industrial Topics in Software Engineering
					 | 						
				 
			 
		 | 
	 
	
		
			A study of practical approaches of industrial relevance to students specializing in Software Engineering.
			 Course Hours:
			1.5 units; Q(3-1)
			
			
			
			
			
			
			 Notes:
			 Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.
			
			
			
			 MAY BE REPEATED FOR CREDIT
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						607      
					 | 						
					
						Special Topics in Software Engineering
					 | 						
				 
			 
		 | 
	 
	
		
			A study of problems of particular interest to students specializing in Software Engineering.
			 Course Hours:
			3 units; H(3-1)
			
			
			
			
			
			
			 Notes:
			 Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.
			
			
			
			 MAY BE REPEATED FOR CREDIT
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						609      
					 | 						
					
						Special Topics in Software Engineering
					 | 						
				 
			 
		 | 
	 
	
		
			A study of problems of particular interest to students specializing in Software Engineering.
			 Course Hours:
			1.5 units; Q(3-1)
			
			
			
			
			
			
			 Notes:
			 Consult Department (Computer Science or Electrical and Computer Engineering) for details regarding offerings in the upcoming academic year.
			
			
			
			 MAY BE REPEATED FOR CREDIT
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						611      
					 | 						
					
						Requirements Engineering I
					 | 						
				 
			 
		 | 
	 
	
		
			The elicitation, modelling, expression, and validation of requirements.
			 Course Hours:
			1.5 units; Q(3-1)
			
			
			
			
			
			
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						615      
					 | 						
					
						Agile Software Engineering
					 | 						
				 
			 
		 | 
	 
	
		
			Investigation and application of agile software development practices.
			 Course Hours:
			3 units; H(3-1)
			
			
			
			
			
			
			 Notes:
			 Students are expected to have some background in software development as preparation for this course.
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering
						622      
					 | 						
					
						Software Release Planning
					 | 						
				 
			 
		 | 
	 
	
		
			Product release planning covers systematic methods, tools and techniques for defining the functionality of a sequence of product releases in incremental development. The planning and re-planning is established as a systematic process trying to optimize resources available towards the functionality most requested by customers and stakeholders.
			 Course Hours:
			3 units; H(3-1)
			
			
			
			
			 Antirequisite(s):
			Credit for Software Engineering 622 and 607.25 will not be allowed.
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						627      
					 | 						
					
						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.
			 Course Hours:
			3 units; H(3-1)
			
			
			
			
			 Antirequisite(s):
			Credit for Software Engineering 627 and 625 will not be allowed.
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						629      
					 | 						
					
						Software Engineering Standards and Models
					 | 						
				 
			 
		 | 
	 
	
		
			Formal description of algorithms for current software engineering standards and models. Trends and future development in software engineering standardization.
			 Course Hours:
			1.5 units; Q(3-0)
			
			
			
			
			
			
			
			
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		 | 
	
		
	
	
		
			
						
					| 
						Software Engineering
						639      
					 | 						
					
						Advanced Software Testing
					 | 						
				 
			 
		 | 
	 
	
		
			Advanced techniques, tools and concepts in software testing including: Agile testing, acceptance testing, GUI testing, test coverage analysis, automated testing, and new developments in testing research.
			 Course Hours:
			3 units; H(3-0)
			
			
			
			
			
			
			 Notes:
			Software Engineering 437 or equivalent is recommended as preparation for this course.
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						641      
					 | 						
					
						Software Evolution and Reuse
					 | 						
				 
			 
		 | 
	 
	
		
			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.
			 Course Hours:
			3 units; H(3-0)
			
			
			
			
			 Antirequisite(s):
			Credit for Software Engineering 641 and 541 will not be allowed.
			 Notes:
			Software Engineering 301 or equivalents are recommended as preparation for this course.
			 Also known as:
			(formerly Computer Science 601.33)
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		
	
	
		
			
						
					| 
						Software Engineering 
						652      
					 | 						
					
						Full-Course Project
					 | 						
				 
			 
		 | 
	 
	
		
			A project in either software development or software best practice and experience.
			 Course Hours:
			6 units; F(3S-0)
			
			
			
			
			 Antirequisite(s):
			Credit for Software Engineering 652 and either 651 or Electrical Engineering 698 will not be allowed.
			 Notes:
			 This course is only available to MEng students with a specialization in Software Engineering. Students should register for this course in the semester when they will complete it.
			
			
			
			  
			
			
		 | 
	 
	
		| back to top |    | 
	 
 
  | 
	
		 |