COMP 3521: Software Engineering

Students are introduced to the different software process models and management of modular inter-communication, software engineering tools, software testing and project management including resource estimation, team organization and review. Students learn software engineering techniques for dependable and secure systems, reliability engineering, software evolution, software maintenance, quality management, configuration management, reuse, and ethical issues in software engineering.

Learning outcomes

After successfully completing this course, students will be able to:

  • Explain the key components of various process models.
  • Utilize a variety of strategies for testing simple programs.
  • Identify the principal issues associated with software evolution and explain their impact on the software lifecycle.
  • Identify methods to create software architecture that is reliable, dependable and secure.
  • Apply the basic principles of software project management in a team environment.
  • Analyze the ethical issues involved in developing software.

Course topics

  • Unit 1: Introduction to Software Engineering
    • Lesson 1: Software Processes
    • Lesson 2: Agile Software Development
    • Lesson 3: Testing
    • Lesson 4: Software Evolution
  • Unit 2: Dependability and Security
    • Lesson 5: Dependable Systems
    • Lesson 6: Security Engineering
    • Lesson 7: Resilience Engineering
  • Unit 3: Advanced Software Engineering
    • Lesson 8: Software Reuse
  • Unit 4: Software Management
    • Lesson 9: Project Management
    • Lesson 10: Project Planning
    • Lesson 11: Quality Management
    • Lesson 12: Configuration Management
  • Unit 5: Computer Reliability and Ethics
    • Lesson 13: Computer Reliability and Ethical Issues
    • Lesson 14: Professional Ethics and the ACM/IEEE Software Engineering Code of Ethics

Required text and materials

Sommerville I. Software Engineering, 10th Edition, Pearson Higher Education Inc. (2016)
ISBN-10: 0133943038.


Please be aware that due to COVID-19 safety guidelines all in-person exams have been suspended. As such, all final exams are currently being delivered through ProctorU, which has an approximate fee of $35 involved. There will be more information in your course shell, on how to apply, if your course has a final exam.

In order to successfully complete this course, students must achieve a passing grade of 50% or higher on the overall course and 50% or higher on the mandatory Final Exam.

Assignment 1: Software Process Model 5%
Assignment 2: Software Testing and Software Evolution 5%
Assignment 3: Security Engineering 5%
Assignment 4: Software Reuse 5%
Assignment 5: Project Management and Planning 5%
Assignment 6: Configuration Management Tool Review 5%
Assignment 7: Professional Ethics 5%
Quizzes: (7 at 3% each) 21%
Final Exam* 44%
Total 100%

* Mandatory

Open Learning Faculty Member

An Open Learning Faculty Member is available to assist students. Students will receive the necessary contact information at the start of your course.

Search To Top