Site Navigation
Welcome
Important Notice and Disclaimer
Academic Schedule
Types of Credentials and Sub-Degree Nomenclature
Undergraduate Degrees with a Major
Combined Degrees
Minor Programs
Student and Campus Services
Admissions
Academic Regulations
Experiential Learning
Tuition and General Fees
Student Financial Support
Architecture, Planning and Landscape, School of
Faculty of Arts
Cumming School of Medicine
Faculty of Graduate Studies
Haskayne School of Business
Faculty of Kinesiology
Faculty of Law
Faculty of Nursing
Qatar Faculty
Schulich School of Engineering
Faculty of Science
Faculty of Social Work
Faculty of Veterinary Medicine
Werklund School of Education
Embedded Certificates
Continuing Education
COURSES OF INSTRUCTION
How to Use
Courses of Instruction by Faculty
Course Descriptions
A
B
C
D
E
F
G
H
I
J, K
L
M
N, O
P
R
S
School of Creative and Performing Arts SCPA
Science SCIE
Slavic SLAV
Social Work SOWK
Sociology SOCI
Software Engineering SENG
Software Engineering for Engineers ENSF
South Asian Studies SAST
Space Physics SPPH
Spanish SPAN
Statistics STAT
Strategic Studies STST
Strategy and Global Management SGMA
Supply Chain Management SCMA
Sustainability Studies SUST
Sustainable Energy Development SEDV
T, U
V, W, Z
About the University of Calgary
Glossary of Terms
Summary of Changes for the 2022/23 Calendar
Addenda/Errata
Archives
Contact Us
University of Calgary Calendar 2022-2023 COURSES OF INSTRUCTION Course Descriptions S Software Engineering SENG
Software Engineering SENG

For more information about these courses, see the Department of Computer Science: science.ucalgary.ca/computer-science.

Senior Courses
Software Engineering 300       Introduction to Software Engineering
Introduction to the development and evolution of software. Covers key conceptual foundations as well as key methods and techniques used in the different phases of the software lifecycle. Emphasis on both technical and soft skills needed for high quality software and software-based products developed in teams.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Computer Science 219, 233 or 235.
Antirequisite(s):
Credit for Software Engineering 300 and any of Software Engineering 301, 311, 403, 411, Computer Science 301, 333, 451 or Software Engineering for Engineers 480 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; (3-2)
Prerequisite(s):
3 units from Computer Science 319, 331 or Software Engineering for Engineers 338; and 3 units from Software Engineering 300, 301 or Software Engineering for Engineers 480; and admission to the Schulich School of Engineering.
Antirequisite(s):
Credit for Software Engineering 401 and 443 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; (3-2)
Prerequisite(s):
Software Engineering 301 or Software Engineering for Engineers 480.
back to top
Software Engineering 438       Software Testing, Reliability, and Quality
Concepts, methods, techniques, processes, and tools for software testing. The principles, processes, and applications of software reliability and software quality assurance.
Course Hours:
3 units; (3-2)
Prerequisite(s):
3 units from Computer Science 319, 331 or Software Engineering for Engineers 338; and 3 units from Software Engineering 300, 301 or Software Engineering for Engineers 480; and admission to the Schulich School of Engineering.
Antirequisite(s):
Credit for Software Engineering 438 and either Software Engineering 437 or 521 will not be allowed.
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; (3-2)
Prerequisite(s):
3 units from Computer Science 319, 331, Software Engineering for Engineers 338 or 409; and admission to the Schulich School of Engineering.
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; (3-2)
Prerequisite(s):
Consent of either the Department of Electrical and Software Engineering or the Department of Computer Science.
Notes:
Consult Department (Computer Science or Electrical and Software 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; (3-2)
Prerequisite(s):
Consent of either the Department of Electrical and Software Engineering or the Department of Computer Science.
Notes:
Consult Department (Computer Science or Electrical and Software Engineering) for details regarding offerings in the upcoming academic year.
MAY BE REPEATED FOR CREDIT
back to top
Software Engineering 511       Software Project Management
Analysis of methods, tools, and techniques for software project management as an effort to achieve quality software products.
Course Hours:
3 units; (3-2)
Prerequisite(s):
3 units from Software Engineering 300, 301, 403 or Software Engineering for Engineers 480; and admission to the Schulich School of Engineering.
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; (3-2)
Prerequisite(s):
3 units from Software Engineering 300, 301 or Software Engineering for Engineers 480.
back to top
Software Engineering 515       Agile Software Engineering
Investigation and application of agile software development practices.
Course Hours:
3 units; (3-2)
Prerequisite(s):
3 units from 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; (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; (3-2T)
Prerequisite(s):
3 units from Software Engineering 300, 301 or Software Engineering for Engineers 480.
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; (3-2)
Prerequisite(s):
Computer Science 457 or Software Engineering for Engineers 461; and 3 units from Software Engineering 300, 301 or Software Engineering for Engineers 480; and admission to the Schulich School of Engineering.
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; (3-2T)
Prerequisite(s):
3 units from Software Engineering 300, 301 or Software Engineering for Engineers 480.
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 550       Scalable Data Analytics
Sources and characteristics of large scale data, i.e., "big data", large scale data analysis, benefits of large scale data analysis to various industry domains, programming paradigms and middleware technologies for scalable data analysis, algorithms that enable large scale data processing, application of large scale data algorithms in selected application domains, e.g., Web user behaviour analysis and text processing, analytics frameworks.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Computer Science 319 or 331; and 3 units from Software Engineering 300, 301 or Software Engineering for Engineers 480.
Antirequisite(s):
Credit for Software Engineering 550 and 501.05 will not be allowed.
back to top
Graduate Courses
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; (3-1)
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; (3-1) or (3-0)
MAY BE REPEATED FOR CREDIT
back to top
Software Engineering 608       Analytical Software Project Management
Application of analytical methods such as clustering, classification, regression, machine learning, optimization, simulation on questions of managing artefacts and processes in consideration of the impact on time, cost, resource, and quality of software projects.
Course Hours:
3 units; (3-3)
Also known as:
(formerly Software Engineering 607.08)
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; (3-1)
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; (3-1)
back to top
Software Engineering 615       Agile Software Engineering
Investigation and application of agile software development practices.
Course Hours:
3 units; (3-1)
Antirequisite(s):
Credit for Software Engineering 615 and Computer Science 601.93 will not be allowed.
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; (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; (3-1)
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; (3-0)
Antirequisite(s):
Credit for Software Engineering 629 and 609.17 will not be allowed.
back to top
Software Engineering 637       Dependability and Reliability of Software Systems
Principles of software dependability techniques, and techniques to improve and predict software reliability.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to Electrical and Software Engineering graduate program or Computer Science graduate program; or consent of the Department.
Antirequisite(s):
Credit for Software Engineering 637 and 521 will not be allowed.
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; (3-0)
Antirequisite(s):
Credit for Software Engineering 639 and 607.22 will not be allowed.
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; (3-0)
Antirequisite(s):
Credit for Software Engineering 641 and 541 will not be allowed.
Also known as:
(formerly Computer Science 601.33)
back to top
Software Engineering 643       Automated Software Engineering
Discusses the main techniques for automating software engineering tasks such as requirement analysis, design, development, and testing. The covered automation techniques are based on concepts from data science, search-based software engineering, and model-driven software engineering. Focuses on the fundamental techniques and algorithms in each category with examples.
Course Hours:
3 units; (3-0)
Antirequisite(s):
Credit for Software Engineering 643 and 607.26 will not be allowed.
back to top
Software Engineering 652       Software Engineering Project
A project in either software development or software best practice and experience.
Course Hours:
6 units; (3S-0)
Prerequisite(s):
Consent of the Department.
Antirequisite(s):
Credit for Software Engineering 652 and Electrical Engineering 698 will not be allowed.
back to top
Software Engineering 696       Agent-Based Software Engineering
Principles and practices of engineering agent-based software systems.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to Electrical and Software Engineering graduate program or Computer Science graduate program; or consent of the Department.
Antirequisite(s):
Credit for Software Engineering 696 and Computer Science 609 will not be allowed for programs offered by the Department of Computer Science.
Also known as:
(formerly Software Engineering 697)
back to top